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

var defaultColor = "#999999";
var errorColor = "#cc0000";

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

$(document).ready(function(){

	$('input[type!="submit"]').focusout(function() {
	  form = $(this).parents('form:first').attr("id");
	  input = $(this).attr("id");
	  $("#"+form+" #"+input).filter(function() {
		thisCheck = check(this,form,input);
		})
		valueField = $(this).attr("value");
		//alert(nobug);
		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 false;
	})

	$("#button_input").click(function(e){ 
		//nobug=false;
		
		form = $(this).parents('form:first').attr("id");

		dataString ="";
		infoForm = $("#"+form+" :input").serializeArray();
		buttonNameInfo = $("#button_input").attr("name");
		
		//total = infoForm.length;
		a=1;
		thisCheck=true;
		jQuery.each(infoForm, function(i, field){
			input = field.name;
			//alert(input);
			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)
				{
					validForm(input,valueField,form);
				}
			}
			
	 	});
		if(nobug==true){
				$("#"+form+" #label_wrong_fields").css({'display':'none'});
				$("#"+form+" #label_good_fields").css({'display':'block','color':defaultColor});
			//$("#"+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 false;
	})	
})
function validForm(input,valueField,form)
{
	$.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;

				}
		}
	})	
}
// Form inscription ==========================================
//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
function check(lethis,form,input) {
	
	leInput = "#"+form+" #"+input;
	leInputLabel = "#"+form+" #label_"+input;
	//alert(leInput);
	if($(leInput).hasClass('required') && lethis.value == '')
	{
		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())))
	{
		nobug=false;
		lereturn = false;
		//alert(leInputLabel +"="+errorColor);
		$(leInputLabel).css("color",errorColor);
	}
	else
	{
		lereturn = true;
		//alert(leInputLabel +"="+defaultColor);
		$(leInputLabel).css("color",defaultColor);	
	}
	
	return lereturn;
}

//CHECK TYPE OF FIELD (PATTERN)
function checkPattern(oPattern){
	switch (oPattern)
	{
	case 'text':
		pattern = /\S/; 
		break;
	case 'email':
		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 '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':
		pattern = /^.{4,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;
	}
	   
}


