// JavaScript Document
function findValue(li) {
	if( li == null ) return alert("No match!");

	// if coming from an AJAX call, let's use the CityId as the value
	if( !!li.extra ) var sValue = li.extra[0];

	// otherwise, let's just display the value in the text box
	else var sValue = li.selectValue;

	//alert("The value you selected was: " + sValue);
}

function selectItem(li) {
	findValue(li);
}

function formatItem(row) {
	return row[0] + " (id: " + row[1] + ")";
}

$(document).ready(function() {
	//alert($("#EmailSubscriber"):checked.val());
	var selectedVal = "";
	
	$("input").blur( function() {  
							  
		var selectedID = $(this).attr("id");
		//alert(selectedID);
		
		$.ajax({
		   type: "GET",
		   url: "registration_getCodes.asp",
		   data: "iv=" + $(this).val(),
		   dataType: "html",
		   success: function(data){
			   selectedID = "input#" + selectedID;
			   $(selectedID).val(data);
			   
		   }
		   //$(this).val(sanitizedText);
		   
		  // alert($("select#regProduct:selected").text());
		 });
		
		//alert($(this).text());
		
		}
	);
	
	
	$("select#regProduct").blur( function() { 
        var imageALT = $("div#ss_help img").attr("alt");
		selectedVal = $(this).val();
		
		$.ajax({
		   type: "GET",
		   url: "registration_getCodes.asp",
		   data: "custGroup=true" + "&r=" + $("select#regProduct").val(),
		   dataType: "html",
		   success: function(data){
			   //alert($("select#regProduct").val() + ", " + data);
			   $("input#custGroup").val(data);
			   $("input#ReturnTo").val($.trim("http://www.biblesoft.com/new/support/registration_thanks.asp?custGroup=" + data + "&productName=" + $("select#regProduct option:selected").text()));
			   //ReturnTo
		   }
		   
		  // alert($("select#regProduct:selected").text());
		 });
		
		checkCode();
		
		//Hide product code if not required
		if($("#regCode_valid").html() == "na"){
			$("#regCodeContainer").hide();
			$("div#ss_help").hide();
		}
		else
		{ //a product code is required, so help them out	
			$("#regCodeContainer").show();
			if(selectedVal == "ST42"){
				if(imageALT != "How to find product number for Systematic Theology"){
					$("div#ss_help").hide();
					$("div#ss_help").html("<img src='images/findSS_systheo.jpg' alt='How to find product number for Systematic Theology' />");
					$("div#ss_help").fadeIn("slow");
				}
			}
			else if(selectedVal.indexOf("5") > 0){
				if(imageALT != "How to find SS number on V5 disc"){
					$("div#ss_help").hide();
					$("div#ss_help").html("<img src='images/findSS_v5.gif' alt='How to find SS number on V5 disc' />");
					$("div#ss_help").fadeIn("slow");
				}
			}
			else if(selectedVal.indexOf("4") > 0){
				if(imageALT != "How to find SS number on V4 disc"){
					$("div#ss_help").hide();
					$("div#ss_help").html("<img src='images/findSS_v4.gif' alt='How to find SS number on V4 disc' />");
					$("div#ss_help").fadeIn("slow");
				}
			}
			else{
				$("div#ss_help").html("");
			}
		}
	 } 
	);
	
	$("#regCode").autocomplete(
		"registration_getCodes.asp",
		{		
			delay:1,
			minChars:8,
			matchSubset:1,
			onItemSelect:selectItem,
			onFindValue:findValue,
			matchCase:true,
			cacheLength:1,
			autoFill:true,
			maxItemsToShow:10

		}
	);
	
	$("input#regCode").blur( function() { 		
		checkCode();
	 } 
	);
	
	$("input#regCode").keyup( function() { 		
		checkCode();
	 } 
	);
	
	$("select#regProduct").blur( function() { 		
		checkCode();
	 } 
	);
	
	$("select#regProduct").click( function() { 		
		checkCode();
	 } 
	);
	
	$("input").focus( function() { 		
		if($(this).attr("type") != "submit")
			$(this).addClass("currentElem");		
	 	} 
	 );
	
	$("input").blur( function() { 		
		if($(this).attr("type") != "submit")
			$(this).removeClass("currentElem");		
	 	} 
	 );
	
	$("select").focus( function() { 		
		$(this).addClass("currentElem");
		}
	 );
	
	$("select").blur( function() { 		
		$(this).removeClass("currentElem");		
		}		
	 );
	
	/*$("input").keyup( function() { 		
		alert($(this).val());
		var tempVal = $(this).val();
		
	 } 
	);*/
	
	function checkCode(){
		$.ajax({
		   type: "GET",
		   url: "registration_getCodes.asp",
		   data: "p=" + $("#regProduct").val() + "&r=" + $("#regCode").val(),
		   dataType: "html",
		   success: function(data){
			 //alert(data);
			 if(data == 1){
				$("#regCode_valid").html("true");
			 }
			 else if(data == -1){
				 $("#regCode_valid").html("na");
			 }
			 else
				$("#regCode_valid").html("false");
		   }
		 });
	}
	
	
	$("#form_register").validate({
		rules: {
			regProduct: "required",
			regCode: {
				required: function() {
					if($("#regCode_valid").html() == "true" || $("#regCode_valid").html() == "na"){
						return false;
					}
					else{
						return true;
					}
				},
				minLength: 1000
			},
			FirstName: "required",
			LastName: "required",
			email: {
				required:true,
				email: true
			},
			Emailagain: {
				required:true,
				equalTo:"#email"
			},
			password: {
				required: true,
				minLength: 8
			},
			passwordagain: {
				required: true,
				equalTo: "#password"
			},
			BillingAddress1: "required",
			City: "required",
			/*State: "required",*/
			PostalCode: "required",
			Country: "required",
			PhoneNumber: {
				required: true,
				minLength: 10
			},
			vendor: "required",
			whyPurchased: "required",
			registeredBefore: "required"
		},
		messages: {
			regProduct: "&nbsp;",
			regCode: "not valid for selected product",
			FirstName: "&nbsp;",
			LastName: "&nbsp;",
			email: "&nbsp;",
			Emailagain: "must match email",
			password: "minimum 8 characters",
			passwordagain: "must match password",
			BillingAddress1: "&nbsp;",
			City: "&nbsp;",
			/*State: "&nbsp;",*/
			PostalCode: "if you don't have one type 'none'",
			Country: "&nbsp;",
			PhoneNumber: "must be at least 10 characters",
			vendor: "&nbsp;",
			whyPurchased: "&nbsp;",
			registeredBefore: "&nbsp;"
		},
		success: "valid"
	});

	
});
