//VARIABLES
var nobug = true;
var ie4   = (document.all) ? true : false;
var ns6   = (document.layers) ? true : false;
var ff2   = (document.getElementById && !document.all) ? true : false;


//VALIDATION FORM FUNCTION
var defaultColor = "#666666";
var errorColor = "#cc0000";

//VALIDATION FORM FUNCTION
// Form inscription ==========================================

var geocoder = new google.maps.Geocoder();

function getState(zipcode,form,input) {
   geocoder.geocode( { 'address': zipcode}, function (result, status) {
        var state = "";
		var country = "";
		arrayGetState= new Array();
		arrayGetState[0]=status;
		
		if(status=="OK")
		{
			//alert("test");
			for (var component in result[0]['address_components']) {
				for (var i in result[0]['address_components'][component]['types']) {
					if(result[0]['address_components'][component]['types'][i] == "country")
					{
						country = result[0]['address_components'][component]['short_name'];
					}
					if (result[0]['address_components'][component]['types'][i] == "administrative_area_level_1") {
					   //country = result[0]['address_components'][component]['short_name']['country']; 
					   state = result[0]['address_components'][component]['short_name'];
					   // do stuff with the state here!
					   // document.getElementById('state').innerHTML = state;
						//alert(state);x
					}
					
				}
			}
			//alert('test');
			//alert($("select[name='pays']").attr("id"));
			//alert(country);
			
			$("select[name='pays']").val(country);
			//$("span.select").remove();
			//Custom.init();
			afficherDiv($("select[name='pays']").val(),'province');
			$("select[name='province']").val(state);
			//$("span.select").remove();
			//Custom.init();
			
		}
		else
		{
			//alert("wrong");
			nobug=false;
			lereturn = false;
			leInput = "#"+form+" #"+input;
			leInputLabel = "#"+form+" #label_"+input;
			//alert(leInputLabel);
			$(leInputLabel).css("color",errorColor);
		}
    });
	
}

$(document).ready(function(){
	
	$('input[type!="submit"],textarea').focusout(function() {
	//alert('test');
	  form = $(this).parents('form:first').attr("id");
	  input = $(this).attr("id");
	  if(input=="code_postal")
	  {
		zipcode=$(this).val();
		//alert(zipcode);
		lestate = getState(zipcode,form,input);
		

		/*
			$("select[name='pays']").val(country);
			$("span.select").remove();
			Custom.init();
			afficherDiv($("select[name='pays']").val(),'province');
			$("select[name='province']").val(state);
			$("span.select").remove();
			Custom.init();
		*/

		
		//alert(lestate);
		//alert(getState(zipcode));  
	  }
	  
	  $("#"+form+" #"+input).filter(function() {
		thisCheck = check(this,form,input);
		})
		valueField = $(this).val();
		if((input=='email' || input=='login') && thisCheck==true)
		{
			validForm(input,valueField,form);
		}
		if(nobug==true){
			$("#"+form+" #label_wrong_fields").css({'display':'none'});
			//$("#"+form+" #label_good_fields").css({'display':'block','color':defaultColor});
		} else {
			//alert("#"+form+" #label_wrong_fields");
			$("#"+form+" #label_wrong_fields").css({'display':'block','color':errorColor});
			$("#"+form+" #label_good_fields").css({'display':'none'});
		}
		return nobug;
	})

	$("#button_input").click(function(e){ 
		//alert('test');
		nobug=true;
		varZip = "";
		form = $(this).parents('form:first').attr("id");
		//alert(form);
		//alert("test");
		dataString ="";
		var $infoForm = $("#"+form+" :input");
		buttonNameInfo = $("#button_input").attr("name");
		//alert(infoForm);
		//total = infoForm.length;
		a=1;
		thisCheck=true;

		
		//var formvals = {}; 
		//jQuery.each(infoForm, function(i, field){
		$infoForm.each(function() {
			//alert(this.name + " -- " + this.value);
			input = this.name;
			//alert(input);
			lavalue= this.value;

			
			if(input != buttonNameInfo && input!='none')
			{
				
				if(check(this,form,input)==false)
				{
					thisCheck = false;	
				}
				
				//thisCheck = false;
				
				//input = field.name;
				valueField = lavalue;
				if((input=='email' || input=='login') && thisCheck==true)
				{
					//alert(window.nozipbug);
					//Valider le formulaire en php
					//validForm(input,valueField,form);
					nobug = true;
					//alert('test');
					//nobug = false;
				}
			}
			
	 	});
		
	
		if(nobug==true){
				$("#"+form+" #label_wrong_fields").css({'display':'none'});
				$("#"+form+" #label_good_fields").css({'display':'block','color':defaultColor});
				$("#"+form).submit();
			//$("#"+form+" #label_good_fields").css({'display':'block','color':defaultColor});
			} else {
				//alert("notrue");
				$("#"+form+" #label_wrong_fields").css({'color':errorColor,'display':'block'});
				$("#"+form+" #label_good_fields").css({'display':'none'});	
			}
		
		return nobug;
	})	
})

function showValues() {
      var fields = $(":input").serializeArray();
      jQuery.each(fields, function(i, field){
       // alert(field.name);
			input = field.name;
			
			if(input != buttonNameInfo)
			{
				//alert(input);
				$("#"+form+" #"+input).filter(function() {
					if(check(this,form,input)==false)
					{
						thisCheck = false;	
					}
				})
				//input = field.name;
				valueField = field.value;
				
				if((input=='email' || input=='login') && thisCheck==true)
				{
					//Valider le formulaire en php
					//validForm(input,valueField,form);
					nobug = true;
				}
			}
      });
    }
function validForm(input,valueField,form)
{
	//alert(valueField);
	$.ajax({
		type: "POST",
		url: '../validform.php?validUserID=0',
		//cache: false,
		data: input+"="+valueField,				
		success: function(data){
		if(data=='')
				{
					//alert("true courriel");
					$("#"+form+" #label_"+input).css("color",defaultColor);	
					$("#"+form+" #label_wrong_"+input).css({'display':'none'});
					nobug=true;
				}
				else
				{
					$("#"+form+" #label_"+input).css("color",errorColor);
					$("#"+form+" #label_wrong_"+input).css({'color':errorColor,'display':'block'});
					nobug=false;

				}
		}
	})	
}
function valid_contact()
{	
	nobug=true;
	check('email','email','0', 'True');
	//check('login','text','0', 'True');
	if(document.getElementById('password') != null)
	{
		check('password','text','0', 'True');
	}
	check('prenom','text','0', 'True');
	check('nom','text','0', 'True');
	check('tel','phone', '0', 'True');	
	check('pays','text','0', 'True');
	check('province','text','0', 'True');
	check('ville','text','0', 'True');	
	
	if(document.getElementById('pays').value=='CA')
	{
		//alert('ca');
		check('code_postal','postalcode_CA','0', 'True');	
	}
	else if(document.getElementById('pays').value=='US')
	{
		check('code_postal','postalcode_US','0', 'True');
	}
	else
	{
		check('code_postal','text','0', 'True');
	}
	
	/*
	if(document.getElementById('cie_nom'))
	{
		check('cie_nom','text','0', 'True');
	}
	*/
	//check('adresse','text','0', 'True');
	//check('date_naissance','birth', '0', 'False');

	//check('txt_comments','text','0', 'True');

	if(nobug==true){
		checkError('wrong_fields', 'wrong_fields', 'none', defaultColor);
		return true;
	} else {
		checkError('wrong_fields', 'wrong_fields', 'block', 'ff0000');
		return false;
	}
}

//VALIDATION FORM Livraison
function valid_livraison()
{	
	nobug=true;
	checkRadio('livraison','modif_panier','livraison');

	if(nobug==true){
		checkError('wrong_fields', 'wrong_fields', 'none', 'ff0000');
		return true;
		//alert('test');
	} else {
		checkError('wrong_fields', 'wrong_fields', 'block', 'ff0000');
		return false;
	}
}

//VALIDATION FORM INSCRIPTION FUNCTION
function valid_contact_inscription()
{	
	nobug=true;
	check('login','text','0', 'True');
	if(document.getElementById('password') != null)
	{
		check('password','text','0', 'True');
	}
	check('prenom','text','0', 'True');
	check('nom','text','0', 'True');
	check('email','email','0', 'True');
	//check('tel','phone', '0', 'True');	
	check('pays','text','0', 'True');
	//check('province','text','0', 'True');
	check('ville','text','0', 'True');	
	check('adresse','text','0', 'True');
	check('code_postal','text','0', 'True');	
	
	//check('txt_comments','text','0', 'True');

	if(nobug==true){
		checkError('wrong_fields', 'wrong_fields', 'none', 'ff0000');
		return true;
		//alert('test');
	} else {
		checkError('wrong_fields', 'wrong_fields', 'block', 'ff0000');
		return false;
	}
}
function valid_demande()
{
	nobug=true;
	check('nom','text','0', 'True');
	check('prenom','text','0', 'True');
	check('telephone','phone', '0', 'True');	
	check('courriel','email','0', 'True');
	check('demande','text','0', 'True');

	
	if(nobug==true){nobug
		//alert('yte');
		checkError('wrong_fields', 'wrong_fields', 'none', defaultColor);
		return true;
	} else {
		//alert('yt2e');
		checkError('wrong_fields', 'wrong_fields', 'block', 'ff0000');
		return false;
	}
}
function valid_getdemo()
{	
	nobug=true;
	
	check('txt_firstname','text','0', 'True');
	check('txt_lastname','text','0', 'True');
	check('txt_company','text','0', 'True');
	check('txt_email','email','0', 'True');
	check('txt_phone','phone','0', 'True');
	check('txt_fax','phone','0', 'False');
	check('txt_address','text','0', 'True');
	check('txt_city','text','0', 'True');
	check('opt_province','province','0', 'True');
	check('txt_postalcode','postalcode_CA','0', 'True');
	
	if(nobug==true){
		checkError('wrong_fields', 'wrong_fields', 'none', 'ff0000');
		return true;
	} else {
		checkError('wrong_fields', 'wrong_fields', 'block', 'ff0000');
		return false;
	}
}


//CHECK WITH NO SPACE
function trim(val)
{
	if (!val) return val;

	 while(val.charAt(0) == ' ') val = val.substring(1,val.length);
	 while(val.charAt(length)==' ')  val = val.substring(0,val.length-1);

	return val;
}

//CONVERT TO UPPERCASE AND SUPPRESS SPACE
function toUC(oObject){
		eval("var oCurrentObject = document.getElementById('"+oObject+"').value");
		oCurrentObject = oCurrentObject.split(" ").join("");
		eval("document.getElementById('"+oObject+"').value = oCurrentObject.toUpperCase()");
}

//CONVERT TO LOWERCASE AND SUPPRESS SPACE
function toLC(oObject){
		eval("var oCurrentObject = document.getElementById('"+oObject+"').value");
		oCurrentObject = oCurrentObject.split(" ").join("");
		eval("document.getElementById('"+oObject+"').value = oCurrentObject.toLowerCase()");
}

//DELETE SPACE
function noSpace(oObject){
		eval("var oCurrentObject = document.getElementById('"+oObject+"').value");
		oCurrentObject = oCurrentObject.split(" ").join("");
		eval("document.getElementById('"+oObject+"').value = oCurrentObject");
}
//CHECK FIELD Radio
function checkRadio(oObject,formName,element)
{
	//eval("var oCurrentObject = document.getElementById('"+oObject+"').value");
	eval("var oCurrentObject2 = document.getElementById('"+oObject+"')");
	eval("var radioObj = document.forms['"+formName+"'].elements['"+element+"']");

	
	radio_result = getCheckedValue(radioObj);
	if(radio_result == false)
	{
		result = null;
	}
	else
	{
		result = "Good";
	}

	if(result==null) { 
		if(nobug == true){oCurrentObject2.focus();}
		nobug = false;
		checkError('wrong_fields', oObject, 'block', 'ff0000');
		
	} 
	else
	{
		checkError('wrong_fields', oObject, 'none', defaultColor);
	}

}
//CHECK FIELD
function check(lethis,form,input) {
	
	lastChars = input.substring((input.length-2),input.length);
	selector_checked = 1;
	if(lastChars=="[]")
	{
		input = input.substring(0,(input.length-2));
		//var selector_checked = $("input[name='"+input+"[]']:checked").length;
	}
	//alert(input);
	leInput = "#"+form+" #"+input;
	leInputLabel = "#"+form+" #label_"+input;
	if($(leInput).is('select'))
	{
		leInputLabel="#"+form+" #select"+input;
			//alert(leInputLabel);
	}
	
	
	//alert($(leInput).is('[type=checkbox,type=radio]:checked'));
	//alert(leInput);
	
	if(($(leInput).hasClass('required') || $(leInput).attr('laclass')=="required") && (lethis.value == '' || ( ( $(leInput).is('[type=radio]') == true || $(leInput).is('[type=checkbox]') == true) && $(leInput).is(':checked') == false)) )
	{
		//alert("test");
		if(nobug == true)
		{
			if($(leInput).is('select'))
			{
				document.getElementById(input).focus();
			}
			else
			{
				document.getElementById("label_"+input).focus();
			}
		}
		
		nobug=false;
		lereturn = false;
		$(leInputLabel).css("color",errorColor);
	}
	else if($(leInput).hasClass('requiredspecific') && (lethis.value.match(checkPattern(input)) == null ||  lethis.value == '' || (input=='password1' && lethis.value!=$("#"+form+" #password").val())))
	{
		if(nobug == true)
		{
			document.getElementById("label_"+input).focus();
		}
		nobug=false;
		lereturn = false;
		//alert(leInputLabel +"="+errorColor);
		$(leInputLabel).css("color",errorColor);
		
	}
	else
	{
		//alert('damn pas else');
		//alert(lethis.name + " = " + $(leInput).is(':checked'));
		lereturn = true;
		//alert(leInputLabel +"="+defaultColor);
		$(leInputLabel).css("color",defaultColor);	
	}
	
	//lereturn = false;
	//alert(lereturn);
	return lereturn;
}


//SHOW OR HIDE ERROR
function checkError(eError, eObject, eShow, eColor){
		if(ie4) {
			eval("document.all['label_"+eError+"'].style.display = '"+eShow+"'");
			eval("document.getElementById('label_"+eObject+"').style.color = '#"+eColor+"'");
		}	
		if(ns6) {
			if(eShow=='block'){eShow='Show';}else{eShow='Hide';}
			eval("document.layers['label_"+eError+"'].display = '"+eShow+"'");
			eval("document.layers['label_"+eObject+"'].color = '#"+eColor+"'");
		}
		if(ff2) {
			eval("document.getElementById('label_"+eError+"').style.display = '"+eShow+"'");
			eval("document.getElementById('label_"+eObject+"').style.color = '#"+eColor+"'");
		}
}

//CHECK TYPE OF FIELD (PATTERN)
function checkPattern(oPattern){
	switch (oPattern)
	{
	case 'text':
		pattern = /\S/; 
		break;
	case 'panier_price':
	case 'price':
	pattern = /^[0-9]+$/; 
	break; 
	
	case 'email':
	case 'courriel':
		pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/; 
		break; 
	
	case 'code_postal':
		pattern = /^\s*[a-ceghj-npr-tvxy]\d[a-ceghj-npr-tv-z](\s)?\d[a-ceghj-npr-tv-z]\d\s*$/i; 
		break; 
	
	case 'tel':
	case 'telephone':
	case 'cell':
	case 'phone':
		pattern = /^(1\s*[-\/\.]?)?(\((\d{3})\)|(\d{3}))\s*[-\/\.]?\s*(\d{3})\s*[-\/\.]?\s*(\d{4})\s*(([xX]|[eE][xX][tT])\.?\s*(\d+))*$/;
		break; 
		
	case 'birth':
		pattern = /([0-9]{4})(\/| )([0-1]{1,}[0-9]{1,})(\/| )([0-3]{1,}[0-9]{1,})/;
		/*/[0-9]{4}(\/| )[0-9]{2}(\/| )[0-9]{2}/*/
		break; 
		
	case 'password':
	case 'password1':
		pattern = /^.{1,10}$/;
		break;
		
	case 'province':
		pattern = /^(AB|BC|PE|MB|NB|NS|ON|QC|SK|TN)$/; 
		break;
	}
	
	return pattern;
}
function verif_date(oCurrentObject)
{
	var actualDate=new Date();
	var year = oCurrentObject.substring(0,4);
	var month = oCurrentObject.substring(5,7);
	var day = oCurrentObject.substring(8,10);
	//alert(year +"= y "+month +"= m "+day +"= d ");
	var HumanCapacity = 120;
	var maxYear = actualDate.getFullYear();
	var minYear = actualDate.getFullYear()-HumanCapacity;
	if(year >= maxYear || year <= minYear || month > 12 || month <= 0 ||  day > 31 ||  day <= 0)
	{
		return false;
	}
	else
	{
		return true;
	}
	   
}
function getCheckedValue(radioObj) {
	if(!radioObj)
		return false;
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return true;
		else
			return false;
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return true;
		}
	}
	return false;
}


