var popupTimer = 120*1000;
if(window.location.hostname == 'news.makemeheal.com'  || window.location.hostname == 'education.makemeheal.com') popupTimer = 60*1000;
else if(window.location.pathname == '/mmh/home.do') popupTimer = 30*1000;


var usernameTaken = false;
	
function getVirtualDirectory() {
	//var vDir = document.location.pathname.split('/');
	//return '/' + vDir[1] + '/';
	return 'http://www.makemeheal.com/answers/';
}
function callUserTagForm(){
	jQuery.ajax({
		type: "GET",
		url: getVirtualDirectory()+"createUserTag.do?type=popup",
		success:function(result){
			jQuery("#tagPopupForm").html(result);
		}
	});	
}

function callUserTagNotificationForm(){
	jQuery.ajax({
		type: "GET",
		url: getVirtualDirectory()+"createUserTag.do?type=notification",
		success:function(result){
			jQuery("#tagNotificationForm").html(result);
		}
	});	
}


function propagateChecks(cat_id, checked_value) {
  			 var categories = document.getElementsByName('categories');   
  			 for( var i=0; i < categories.length; i++) {
				if(categories[i].value == cat_id) categories[i].checked = checked_value;
   			}   
}

	function callAjax(){
		jQuery.ajax({
		type: "POST",
		url: getVirtualDirectory()+"createUserTag.do",
		data: jQuery("#target").serialize(),
		success:function(result){			
			 var data=jQuery('#userflag').val();			
			 jQuery("#dialog-form").dialog( "close" );
				if(isEmpty(data)){				 				 	
					jQuery("#dialog-form-confirm").dialog('open');
				}else{					
					jQuery('[name=email]').val(result);	
					jQuery("#dialog-form-userreg").dialog('open');
				}
			}		
		});	
	}
	
	function callNotificationAjax(){
		jQuery.ajax({
		type: "POST",
		url: getVirtualDirectory()+"createUserTag.do",
		data: jQuery("#target").serialize(),
		success:function(result){			
			 var data=jQuery('#userflag').val();			
			 jQuery("#notificationStep1").hide();
				if(isEmpty(data)){				 				 	
					jQuery("#dialog-form-confirm").dialog('open');
				}else{		
					document.getElementById('email2').value = result;	
					jQuery("#notificationStep2").show();
				}
			}		
		});	
	}
	
	function callUserRegAjax(){
		jQuery.ajax({
		type: "POST",
		url: "https://www.makemeheal.com/mmh/register.do",
		data: jQuery("#registerForm").serialize(),
		success:function(result){			 
			jQuery("#dialog-form-userreg").dialog("close");
			jQuery("#results").val(result);
			jQuery("#dialog-form-confirm").dialog( "open" );
			}		
		});	
	}
	
	function callUserRegNotificationAjax(){
		jQuery.ajax({
		type: "POST",
		url: "https://www.makemeheal.com/mmh/register.do",
		data: jQuery("#registerForm").serialize(),
		success:function(result){			 
			jQuery("#notificationStep2").dialog("close");
			}		
		});	
	}
	
	jQuery(function() {		
		var categories;
		categories=new Array();
		var username = jQuery( "#username_popup" ),
			email = jQuery( "#email" ),			
			categories = jQuery( "#categories" ),
			password = jQuery( "#password_popup" ),			
			allFields = jQuery( [] ).add( email ).add(categories).add( username ).add( password ),
			tips = jQuery( ".validateTips" );

		function updateTips( t ) {
			tips
				.text( t )
				.addClass( "ui-state-highlight" );
			setTimeout(function() {
				tips.removeClass( "ui-state-highlight", 1500 );
			}, 500 );
		}
		

		function checkLength( o, n, min, max ) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass( "ui-state-error" );
				updateTips( "Length of " + n + " must be between " +
					min + " and " + max + "." );
				return false;
			} else {
				return true;
			}
		}
		function checkRegexp( o, regexp, n ) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass( "ui-state-error" );
				updateTips( n );
				return false;
			} else {
				return true;
			}
		}		
		function checkcategories(o,n,min){
 			 var fields = jQuery("input[name='categories']").serializeArray();
  				if (fields.length == 0)
  				{   				
   				 o.addClass( "ui-state-error" );
				updateTips( "You need to select at least one interest..." );
				return false;
  				}
  				else
  					{    				
    				return true;
  					}	
		}

		//height was 460
		jQuery( "#dialog-form" ).dialog({
			autoOpen: false,
			height: 530,
			width: 400,
			modal: true,
			buttons: {
				"Sign Up": function() {
					var bValid = true;
					allFields.removeClass( "ui-state-error" );
					bValid = bValid && checkLength( email, "email", 6, 100 );					
					bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Please enter a valid email address. -eg. xyz@makemeheal.com" );					
					bValid = bValid && checkcategories( categories, "categories", 1);				
					if ( bValid ) {		
						tips = jQuery(".validateTips2");
						callAjax();							
					}
				},
				"No Thanks!": function() {
					var exp = new Date();
					var expDays = 28;
					exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
					SetCookie('emailPrefByUser', window.location.href ,exp);								
					jQuery( this ).dialog( "close" );
				}
			},
			close: function() {
				allFields.val( "" ).removeClass( "ui-state-error" );
				var exp = new Date();
				var expDays = 28;
				exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
				SetCookie('emailPrefByUser', window.location.href ,exp);	
			}
		});
		
		//width was 200
		jQuery("#dialog-form-confirm").dialog({
			autoOpen: false,
			resizable: false, 
			draggable: false, 
			modal: true, 
			width: 300,
			buttons: {
				"OK": function(){ jQuery("#dialog-form-confirm").dialog('close'); }
				}
		});		
		jQuery("#dialog-form-userreg").dialog({
			autoOpen: false,
			resizable: true, 
			draggable: true, 
			modal: true,
			height: 700, 
			width: 500,
			buttons: {
				"Sign Up": function(){				
						var bValid = true;
						allFields.removeClass( "ui-state-error" );
						bValid = bValid && checkLength( username, "username", 4, 100 );
						bValid = bValid && checkRegexp( username, /^[A-Za-z0-9\\.\\_\\-\\@]+$/, "Username can be 4 or more characters, including alphanumeric characters (A-Z, 0-9), dashes, ampheres (@), underscores, and periods." );
						bValid = bValid && checkLength( password, "password", 5, 16 );
						var passwordVal = jQuery('#password_popup').val();
        				var checkVal = jQuery('#retypepassword').val();
        				if(bValid && passwordVal != checkVal) {
        					jQuery('#registerFormPasswordMismatch').html('[Passwords do not match]');
        					bValid = bValid && (passwordVal == checkVal);
        				}	
        				bValid = bValid && !usernameTaken;
						if ( bValid ) {											
							callUserRegAjax();	
						}					
				 },
				"No Thanks!": function() {									
					jQuery( this ).dialog( "close" );
				}
			  }
			});				
	 });	
	
	
	function createUserTagsFromNotification() {

		jQuery(function() {
			var categories;
			categories=new Array();
			var username = jQuery( "#username_popup" ),
				email = jQuery( "#email" ),			
				categories = jQuery( "#categories" ),
				password = jQuery( "#password_popup" ),			
				allFields = jQuery( [] ).add( email ).add(categories).add( username ).add( password ),
				tips = jQuery( ".validateTips" );
			function updateTips( t ) {
			tips
				.text( t )
				.addClass( "ui-state-highlight" );
			setTimeout(function() {
				tips.removeClass( "ui-state-highlight", 1500 );
			}, 500 );
		}
		

		function checkLength( o, n, min, max ) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass( "ui-state-error" );
				updateTips( "Length of " + n + " must be between " +
					min + " and " + max + "." );
				return false;
			} else {
				return true;
			}
		}
		function checkRegexp( o, regexp, n ) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass( "ui-state-error" );
				updateTips( n );
				return false;
			} else {
				return true;
			}
		}		
		function checkcategories(o,n,min){
 			 var fields = jQuery("input[name='categories']").serializeArray();
  				if (fields.length == 0)
  				{   				
   				 o.addClass( "ui-state-error" );
				updateTips( "You need to select at least one interest..." );
				return false;
  				}
  				else
  					{    				
    				return true;
  					}	
		}
		
		var bValid = true;
		allFields.removeClass( "ui-state-error" );
		bValid = bValid && checkLength( email, "email", 6, 100 );					
		bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Please enter a valid email address. -eg. xyz@makemeheal.com" );					
		bValid = bValid && checkcategories( categories, "categories", 1);				
		if ( bValid ) {		
			tips = jQuery(".validateTips2");
			callNotificationAjax();							
		}
	});
			
	}	
	
	function registerUser() {

		jQuery(function() {
			var categories;
			categories=new Array();
			var username = jQuery( "#username_popup" ),
				email = jQuery( "#email2" ),			
				categories = jQuery( "#categories" ),
				password = jQuery( "#password_popup" ),			
				allFields = jQuery( [] ).add( email ).add(categories).add( username ).add( password ),
				tips = jQuery( ".validateTips2" );
			function updateTips( t ) {
			tips
				.text( t )
				.addClass( "ui-state-highlight" );
			setTimeout(function() {
				tips.removeClass( "ui-state-highlight", 1500 );
			}, 500 );
		}
		

		function checkLength( o, n, min, max ) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass( "ui-state-error" );
				updateTips( "Length of " + n + " must be between " +
					min + " and " + max + "." );
				return false;
			} else {
				return true;
			}
		}
		function checkRegexp( o, regexp, n ) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass( "ui-state-error" );
				updateTips( n );
				return false;
			} else {
				return true;
			}
		}		
		function checkcategories(o,n,min){
 			 var fields = jQuery("input[name='categories']").serializeArray();
  				if (fields.length == 0)
  				{   				
   				 o.addClass( "ui-state-error" );
				updateTips( "You need to select at least one interest..." );
				return false;
  				}
  				else
  					{    				
    				return true;
  					}	
		}
		
		var bValid = true;
		allFields.removeClass( "ui-state-error" );
		bValid = bValid && checkLength( username, "username", 4, 100 );
		bValid = bValid && checkRegexp( username, /^[A-Za-z0-9\\.\\_\\-\\@]+$/, "Username can be 4 or more characters, including alphanumeric characters (A-Z, 0-9), dashes, ampheres (@), underscores, and periods." );
		bValid = bValid && checkLength( password, "password", 5, 16 );
		var passwordVal = jQuery('#password_popup').val();
		var checkVal = jQuery('#retypepassword').val();
		if(bValid && passwordVal != checkVal) {
			jQuery('#registerFormPasswordMismatch').html('[Passwords do not match]');
			bValid = bValid && (passwordVal == checkVal);
		}	
		bValid = bValid && !usernameTaken;
		if ( bValid ) {											
			callUserRegNotificationAjax();	
			jQuery("#notificationStep2").fadeOut("slow");
		}
	});
			
	}	
	
	function dismissNotification() {
		jQuery( function () {
			jQuery("#notificationStep1").fadeOut("slow");
			jQuery("#notificationStep2").fadeOut("slow");
			var exp = new Date();
			var expDays = 28;
			exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
			SetCookie('emailPrefByUser', window.location.href ,exp);
		});
	}
	
	
	function getCookie(name) {	 		
    		var nameEQ = name;
    		var ca = document.cookie.split(';');
    		for(var i=0;i < ca.length;i++) {
        			var c = ca[i];
        			while (c.charAt(0)==' ') c = c.substring(1,c.length);
        			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    		}
    	return null;
	}
	
	function setCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));        
        var expires = ""+date.getTime();
       
    }
    else var expires = "";
    var path="/";
	var domain=".makemeheal.com";
    document.cookie = name + "=" + value + "; expires=" + expires + "; path=" + path + "; domain=" + domain; 
	}
	
	function isEmpty(obj){
    if (typeof obj == 'undefined' || obj === null || obj === '') 		return true;
	else
 		return false;
	}	
	
	var expDays = 7;
	
	function GetCookie (name) {
		var arg = name + "=";
		var alen = arg.length;
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen) {
			var j = i + alen;
			if (document.cookie.substring(i, j) == arg)
				return getCookieVal (j);
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0) break;
		}
		return null;
	}	
	
	function SetCookie (name, value) {
		var argv = SetCookie.arguments;
		var argc = SetCookie.arguments.length;
		var expires = (argc > 2) ? argv[2] : null;
		var path = (argc > 3) ? argv[3] : null;
		var domain = (argc > 4) ? argv[4] : null;
		var secure = (argc > 5) ? argv[5] : false;
		path="/";
		domain=".makemeheal.com";
		document.cookie = name + "=" + escape (value) +
		((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
		((path == null) ? "" : ("; path=" + path)) +
		((domain == null) ? "" : ("; domain=" + domain)) +
		((secure == true) ? "; secure" : "");
	}	
	function DeleteCookie (name) {
		var exp = new Date();
		exp.setTime (exp.getTime() - 1);
		var cval = GetCookie (name);
		document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
	}
	function getCookieVal(offset) {
		var endstr = document.cookie.indexOf (";", offset);
		if (endstr == -1)
		endstr = document.cookie.length;
		return unescape(document.cookie.substring(offset, endstr));
	}
	var exp = new Date();
	exp.setTime(exp.getTime() + (expDays*24*60*60*1000));	
	
	function checkCount() {		
		var count = GetCookie('count');	
		
		if (count == null) {
			DeleteCookie('count');	
			//alert("setting count cookie");
			count=1;
			SetCookie('count', count, exp);				
		}
		else {		
			count++;
			SetCookie('count', count, exp);			
		}
		return count;
	}
	
	function getPopupTime() {
		var popupAtTime = GetCookie('popup_time');
		if(popupAtTime == null) {
			//alert("setting popup timer cookie");
			DeleteCookie('popup_time');
			var now = new Date();
			var popupAtTime = now.getTime() + popupTimer;
			SetCookie('popup_time', popupAtTime, exp);
		}
		return popupAtTime;
	}
	
	
	
function validateEmail(email){
	jQuery('#loginformEmail').html('');
	jQuery.ajax({
	   type: "POST",
	   url: "https://www.makemeheal.com/mmh/register.do?action=validateEmail&email="+email,
	   success: function(response){
	     if(response.indexOf('taken')!=-1){
	     	jQuery('#loginformEmail').html('[Email already taken]');
	     }
	   }
	 });
 }
function validateUsername(username){
	jQuery('#registerFormUsernameDIV').html('');
	jQuery.ajax({
	   type: "POST",
	   url: "https://www.makemeheal.com/mmh/register.do?action=validateUsername&username="+username,
	   success: function(response){
	     if(response.indexOf('taken')!=-1){
	    	 usernameTaken = true;
	     	jQuery('#registerFormUsernameDIV').html('[Username already taken]');
	     } else {
	    	 usernameTaken = false;
	     }
	   }
	 });
 }
	

