var check_var = false;
var processing_info1 = "false";
var processing_info2 = "false";


var whoAre = new Array();
whoAre[0] = "GM-Member-Registration-Bride.png";
whoAre[1] = "GM-Member-Registration-Groom.png";
whoAre[2] = "GM-Member-Registration-Bridesmaid.png";
whoAre[3] =	"GM-Member-Registration-Groomsman.png";
whoAre[4] =	"GM-Member-Registration-MaidofHonor.png";
whoAre[5] =	"GM-Member-Registration-Parent.png";
whoAre[6] =	"GM-Member-Registration-Press.png";
whoAre[7] =	"GM-Member-Registration-Professional.png";
whoAre[8] =	"GM-Member-Registration-Other.png";


function UI_SWITCH( val )
{
	switch( val )
	{
				//Bride, Groom
				case "1": case "2": 
					//Displays...
					if($(".marrying").is(":hidden")){ $(".marrying").slideDown("slow");}
					if($("#business").is(":visible")){ $("#business").slideUp("slow"); }
					if($("#wedding").is(":hidden")){ $("#wedding").slideDown("slow"); }
					
					//Validation
					if($("#f_first_name .required").html() == "null"){ $("#f_first_name").rules("add", { required: true}); }
					if($("#f_last_name .required").html() == "null"){ $("#f_last_name").rules("add", { required: true}); }
					
					//Adding Validation back..
					if( $("#wed_date .required").html() == null){ 
						$("#wed_date").rules( "add" , { required: true, date: true } ); } 
					if( $("#wed_state .required").html() == "null" ){ $("#wed_state").rules("add", { required: true}  ); }
					if( $("#wed_country .required").html() == "null" ){ $("#wed_country").rules("add",{ required:true});}
					if( $("#wed_city .required").html() == "null" ||  $("#wed_city .required").html() == null){ $("#wed_city").rules("add",{ required:true});}	

					///Removing Validation... 
					if( $("#company_name .required").html() != "null" || 
					    $("#company_name .required").html() != "undefined" ){ $("#company_name").rules("remove","required"); }
					if( $("#business_category .required").html() != "null" || 
						$("#business_category .required").html() != "undefined" ){ $("#business_category").rules("remove", "required"); }
				
				break;
		
				
				//Bridesmaid, Groomsman, Maid of Honor, Parent, Other
				case "3": case "4": case "5": case "6": case "9": 
					
				//Displays..				
				if($("#wedding").is(":hidden")){ $("#wedding").slideDown("slow"); }
				if($(".marrying").is(":visible")){ $(".marrying").slideUp("slow"); }
				if($("#business").is(":visible")){ $("#business").slideUp("slow"); }
				
				
				//Validation
					if($("#f_first_name .required").html() != "null"){ $("#f_first_name").rules("remove", "required"); }
					if($("#f_last_name .required").html() != "null"){ $("#f_last_name").rules("remove", "required"); }
				
					//Adding Validation back..
					if( $("#wed_date .required").html() == "null"){ 
						$("#wed_date").rules( "add" , { required: true, date: true } ); } 
					if( $("#wed_state .required").html() == "null" ){ $("#wed_state").rules("add", { required: true}  ); }
					if( $("#wed_country .required").html() == "null" ){ $("#wed_country").rules("add",{ required:true});}	
					if( $("#wed_city .required").html() == "null" ){ $("#wed_city").rules("add",{ required:true});}		
					///Removing Validation... 
					if( $("#company_name .required").html() != "null" ){ $("#company_name").rules("remove","required"); }
					if( $("#business_category .required").html() != "null" ){ $("#business_category").rules("remove", "required"); }
				
				break; 
				
				//Press, Wedding Professional
				case "7": case "8": 
					//Displays
					if($(".marrying").is(":visible")){ $(".marrying").slideUp("slow"); }
					if($("#wedding").is(":visible")){ $("#wedding").slideUp("slow"); }
					if($("#business").is(":hidden")){ $("#business").slideDown("slow"); }
					
					
					//Validation
					if($("#f_first_name .required").html() != "null"){ $("#f_first_name").rules("remove", "required"); }
					if($("#f_last_name .required").html() != "null"){ $("#f_last_name").rules("remove", "required"); }
					
					//Adding Validation back..
					$("#company_name").rules("add", "required"); 
					$("#business_category").rules("add", "required"); 
					///Removing Validation... 
					$("#wed_date").rules("remove", "required date"); 
					$("#wed_state").rules("remove","required"); 
					$("#wed_country").rules("remove","required");
					$("#wed_city").rules("remove","required");
				break;
				
				default:
	}
	
	if($(".contactcheck").is(":checked"))
	{
		if($("#address1 .required").html() == "null") $("#address1").rules("add", {required: true});
		if($("#city .required").html() == "null") $("#city").rules("add", {required: true});
		if($("#zip .required").html() == "null") $("#zip").rules("add", {required: true});
		//$("#state").rules("add", {required: true});

	}else{

		if($("#address1 .required").html() != "null") { $("#address1").rules("remove", "required"); }
		if($("#city .required").html() != "null") { $("#city").rules("remove", "required"); }
/* 		if($("#zip .required").html() != "null") { $("#zip").rules("remove", "required"); } */
		//$("#state").rules("remove", "required");
	}
}

var valid_finished1 = false;
var valid_finished2 = false;

function check_valid(rounds, f1)
{
	r=0;
	alert("Checking! "+rounds);
	if(rounds != 0)
		r = rounds;
	
	r++;
	
	if(processing_info1 == "finished")
		valid_finished1 = true;
	if(processing_info2 == "finished")
		valid_finished2 = true;

	if(valid_finished1 && valid_finished2)
	{
		//alert(valid_finished1+" "+valid_finished2);
		if($("#emailok").val() == "true" && $("#userok").val() == "true")	
		{	
  					//f1.submit();
  		}
  			else{
  				//There are errors...
  				var str_errors = "";
  				if($("#emailok").val() != "true" && $("#email").val() != "")
  					str_errors += "Email Address: is already in use..<br/>";
  				if($("#userok").val() != "true" && $("#scname").val() != "")
  					str_errors += "Username: is already in use..<br/>";
  				
  				$("#dialog_errors").html(str_errors);  				
  				$("#dialog_errors").dialog('open');
  			}
	}else{
		setTimeout("check_valid("+r+", "+f1+");", 1000);
	}
}

function check_email( val )
{
	processing_info1 = "checking";
	$("span.echeck").html("<div class=\"redarrow\"></div>Checking Email..<img src='/_images/spinner.gif'/>");
	$("span.echeck").show();
		$.ajax({
    			url: "/register/check/email.php",
    			type: "POST",
    			data: "email="+val,
    			success: function(msg){
    				if(msg == "1")
    				{
    					$("#emailok").val("true");
    					$("span.echeck").hide();
  						processing_info1 = "finished";
    				}
    				else{
    					$("#emailok").val("false");
    					$("span.echeck").html("<div class=\"redarrow\"></div>Email already in use.");
    					processing_info1 = "finished";
    				}
    			},
    			error: function(msg){
    			
    			}
    		});
    
    	var check_var = $("#emailok").val();
    	//$("#debug").html(check_var);
    return check_var;
}

function check_scname( val )
{
	processing_info2 = "checking";
	$("span.ucheck").html("<div class=\"redarrow\"></div>Checking Username..<img src='/_images/spinner.gif'/>");
	$("span.ucheck").show();
		$.ajax({
    			url: "/register/check/user.php",
    			type: "POST",
    			data: "user="+val,
    			success: function(msg){
    				if(msg == "1")
    				{
    					$("#userok").val("true");
    					$("span.ucheck").hide();
    					processing_info2 = "finished";
    				}
    				else{
    					$("#userok").val("false");
    					$("span.ucheck").html("<div class=\"redarrow\"></div>Username taken, please select another.");
    					processing_info2 = "finished";
    				}
    			},
    			error: function(msg){
    			
    			}
    		});
    
    	var check_var = $("#userok").val();
    return check_var;
}
//jQuery.noConflict();
$().ready(function(){
		
		
		//if(jQuery.browser.msie)
		//{
		/*
			$(".fields").corner("10px");
			$(".header_green").corner("10px");
			$(".field_orange").corner("10px");
			$(".header_orange").corner("5px");
		//}*/


	//$(".fields, .header_green, .field_orange, .header_orange").corner();
	
	/** 
	 *	ERROR DIALOG
	 */
	$("#dialog_errors").dialog({
	
		title: "Error: Please check the following...",
		autoOpen: false,
		width: 400,
		buttons: { "Ok": function() { $(this).dialog("close"); } },
		show: 'slide'
	}
	
	);
	
	/**
	 * Validation and Masking...
	 */
	$("[name='phone1']").setMask("(999) 999-9999");
	$("[name='wed_date']").setMask("99/99/9999");
	$("[name='zip']").setMask("99999");
	
	if($("[name='state']").val() != "0"){ $("[name='country']").attr("disabled", "disabled");}
	if($("[name='wed_state']").val() != "0"){ $("[name='wed_country']").attr("disabled", "disabled");}
	
	//** Make the screen name be their first initial and there last name...
	$("[name='last_name']").change( function(){
	
		if($("[name='scname']").val() == "")
		{
			var f = $("[name='first_name']").val();
			var l = $("[name='last_name']").val();
			var scname = "";
			scname = f.substr(0,1);
			scname += l;
			
			$("[name='scname']").val(scname);
			$("#f1").validate().element("#scname");
			check_scname( $("#scname").val() );
		}
	});
	
	/**
	 *	Enabling and disabling to reduce there work...
	 */
	
	$("[name='state']").change( function() {
		if($(this).val() == "0")
		{
			$("[name='country']").attr("disabled", "");
		}else{
			$("[name='country']").attr("disabled", "disabled");
		}	
	});
	
	$("[name='wed_state']").change( function() {
		if($(this).val() == "0")
		{
			$("[name='wed_country']").attr("disabled", "");
		}else{
			$("[name='wed_country']").attr("disabled", "disabled");
		}	
	});
	
	
	$("[name='youare']").change( function() {
		$("#youare").find(".leftImage img").attr("src", "/register/_images/reg/" + whoAre[(parseInt($(this).val())-1)]	);
	});
	
	/**
	 *	 UI interactions///
	 */

	
	$('.date_pick').datepicker({ 	
    		changeMonth: true,
			changeYear: true
	});
	
    
    /**
     *	Window scrolling we want our optin bar to stay with us.
     * ---------------------------------------------------------------------
     * Works by using a div that is positioned: relative.
     * Internal div is then positioned absolute 'To take advantage of the top, left..'
     * This script then does not have to account for the top limit as top 0 on the format is 0.
     * Hence limiting our animations top to the container div.
     *
     * Second part needs a footer height limit. 
     * And the div we scroll inside of needs a height also. 
     * We check to see if were we are moving to is less than our nav track.
     * If not we move to the tracks height minus the footer.
     * Custom Coded by: Shaun Strickland -> http://www.shaunware.com
     */
    /* 
    jQuery.easing.def = 'easeOutBounce';
	var footerheight = 450;	
	var effectChange = 50;					
	$(window).scroll( function(){
	
		//This deviats a little more from the above.. It keeps the bar at the top of the document..
		//While still keeping itself contained..
		var moveTo = ( $(window).scrollTop() / $(document).height()) * 1000;	
		var navbarTrack = (parseInt($("#f1").height()) );
		
		//$("#debug").html(navbarTrack+" "+moveTo);
			 		
		if( (moveTo) > footerheight) { moveTo = (navbarTrack-footerheight); effectChange = -50; 
		}else{
		
			if(moveTo > 10)
				effectChange = 50;
			else
				effectChange = 5;
		}
		
	
		$("#rightnav").stop();		 
		$("#rightnav").stop().animate({"top": (moveTo+effectChange)  + "px"}).animate( {"top": (moveTo)  + "px"}, {duration: 1000, easing: 'easeOutBounce'} );
		
	});
	*/
	
	$(".contactcheck").click(function(){
		if($(this).is(':checked'))
		{
				if($("#address1 .required").html() == "null") $("#address1").rules("add", {required: true});
				if($("#city .required").html() == "null") $("#city").rules("add", {required: true});
				if($("#zip .required").html() == "null") $("#zip").rules("add", {required: true});
				//$("#state").rules("add", {required: true});
			}else{
		
				if($("#address1 .required").html() != "null") { $("#address1").rules("remove", "required"); }
				if($("#city .required").html() != "null") { $("#city").rules("remove", "required"); }
/* 				if($("#zip .required").html() != "null") { $("#zip").rules("remove", "required"); } */
				//$("#state").rules("remove", "required");	
		}	
	});
	
	
	//Validates as you tab...
	//$("input, select").keyup( function() { $(this).valid(); });
	$("input, select").blur( function() { $("#f1").validate().element(this); });
	$("input, select").change( function() { $("#f1").validate().element(this); });

	$("#wed_date").change(function(){
		$("#f1").validate().element(this);
	});

	$("#email").change( function() {
		if($("#f1").validate().element(this))
			check_email($("#email").val());
			
		if($(this).val() == "")
		{
			$("span.echeck").hide();
		}	
	});
	$("#scname").change( function() {
		if($("#f1").validate().element(this))
			check_scname($("#scname").val());
		if($(this).val() == "")
		{
			$("span.ucheck").hide();
		}
	});


var validate = $("#f1").validate({
		submitHandler: function(form) {
		 	
		 		check_scname($("#scname").val());
				check_email($("#email").val());
				/*
				if($("#emailok").val() == "true" && $("#userok").val() == "true"){ 	
  					form.submit();
  				}	
  				else	 
		 			check_valid(0, form);*/
		 		if($("#emailok").val() == "true" && $("#userok").val() == "true")	
				{	
  					form.submit();
  				}
  			else{
  				//There are errors...
  				var str_errors = "";
  				if($("#emailok").val() != "true" && $("#email").val() != "")
  					str_errors += "Email Address: is already in use..<br/>";
  				if($("#userok").val() != "true" && $("#scname").val() != "")
  					str_errors += "Username: is already in use..<br/>";
  				
  				$("#dialog_errors").html(str_errors);  				
  				$("#dialog_errors").dialog('open');
  			}
		 },

		rules: {
			terms: { required: true },
			first_name: { required:true },
			last_name: {required:true},
			f_first_name: { required:true },
			f_last_name: {required:true},
			email: {required: true, email: true},
			vemail: { required: true, equalTo: "#email" },
			scname: { required: true},
			password: {required: true, minlength: 4},
			vpassword: { required: true, equalTo: "#password"},
			/*** Wedding **/
			wed_date: { required: true, date: true },
			wed_state: { required: true },
			wed_city: { required: true },
			wed_country: { required: true },
			/*** Company ***/
			company_name: { required: true },
			business_category: { required: true },
			//website: { required: true },
			/*** Contact info ***/
			/*phone1: { required: true },*/
			address1: { required: true },
			city: { required: true },
			zip: { required: true, digits: true },
			state: { required: true }
			//country: { required: true }	
		},
		messages: {
				terms: { required: "<div class=\"redarrow\"></div>You must agree to the T&C's of the site."},
				first_name: {required:"<div class=\"redarrow\"></div>Please enter a first name."},
				last_name: {required: "<div class=\"redarrow\"></div>Please enter a last name."},
				f_first_name: {required: "<div class=\"redarrow\"></div>Please enter a first name."},
				f_last_name: {required:"<div class=\"redarrow\"></div>Please enter a last name."},
				email: {required: "<div class=\"redarrow\"></div>Please enter an email address"},// takenemail: "Email address already in use."},
				vemail: {
							required: "<div class=\"redarrow\"></div>Please verify your email.",
							equalTo: "<div class=\"redarrow\"></div>Emails do not match."
						},
				scname: {required: "<div class=\"redarrow\"></div>Please enter a Username."},//, user_check: "Username already in use."} ,
				password: "<div class=\"redarrow\"></div>Please enter a password",
				vpassword: {
							required: "<div class=\"redarrow\"></div>Please verify your password.",
							equalTo: "<div class=\"redarrow\"></div>Passwords do not match."},
				/*** Wedding **/
				wed_date: { required: "<div class=\"redarrow\"></div>Please enter a Wedding Date..", date: "Format must be MM/DD/YYYY" },
				wed_state: "<div class=\"redarrow\"></div>Please select a wedding state.",
				wed_city: "<div class=\"redarrow\"></div>Please enter a wedding city.",
				wed_country: "<div class=\"redarrow\"></div>Please select a wedding country.",
				/*** Company ***/
				company_name: "<div class=\"redarrow\"></div>Please enter the company you work for." ,
				business_category: "<div class=\"redarrow\"></div>Please select a category.",
				//website: { required: true },
				/*** Contact info ***/
				phone1: "<div class=\"redarrow\"></div>Please enter a phone number." ,
				address1: "<div class=\"redarrow\"></div>Please enter an address.",
				city:  "<div class=\"redarrow\"></div>Please enter a city.",
				zip: { required: "<div class=\"redarrow\"></div>Please enter a zipcode.", digits: "<div class=\"redarrow\"></div>Zip must be numerical." },
				state: "<div class=\"redarrow\"></div>Please select a State/Region."//,
				//country: "Please select a country."
			}
	});
		

	$("[name='youare']").change(function(){
			UI_SWITCH( $(this).val() );
	});
	if(stop_bait_switch == 1)
	{
		//Removing Validation... 
		 $("#company_name").rules("remove","required"); 
		 $("#business_category").rules("remove", "required"); 
	}
	
	//Run this in the beginning to start up..
	UI_SWITCH( $("[name='youare']").val() );
	
	//Trigger Loading Scheme.
	$("#loading").fadeOut("slow");
	setTimeout("$(\"#f1\").slideDown('slow');", 1000);
});