sErrColor = '#f4d7e2';
sValidColor = '#ffffff';
sTextErrColor = '#000000';
sTextValidColor = '#000000';
iTextMaxLength = 2500;

// Objet "Element de formulaire à vérifier"
// oItem : .item_id / .confirm_id / .mandatory / .type / .empty_msg / .invalid_msg / .differ_msg
// type : string | boolean | email | birth_year | login | password |file

function icFormItem (sItemId, sConfirmId, bMandatory, sType, sEmptyMsg, sInvalidMsg, sDifferMsg) {
	this.item_id     = sItemId;
	this.confirm_id  = sConfirmId;
	//bMandatory : attribut.is_required
	this.mandatory   = bMandatory;
	this.type        = sType;
	this.empty_msg   = sEmptyMsg;
	this.invalid_msg = sInvalidMsg;
	this.differ_msg  = sDifferMsg;	
}

// Fonction de validation
// La liste des objets éléments est passée en paramètre

function FormValidation(oFormItem) {
	if(!cancelAction) {
		var globalError = false;
		for (var item in oFormItem) {
			if (globalError == false)
			{
				var oItem = oFormItem[item];
				var oElement = document.getElementById(oItem.item_id);
				if (oItem.confirm_id != "")
				{
					var cElement = document.getElementById(oItem.confirm_id);
				}
				else
				{
					var cElement = null;
				}
				var error = false;

				// TYPE STRING
				if (oItem.type =='string'&&oElement) {
					error = false;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						if (cElement != null)
						{
							riseError(oElement, cElement, oItem.empty_msg);
						}
						else
						{
							riseError(oElement, null, oItem.empty_msg);
						}
						error = true;
						globalError = true;
						break;
					}
					if(error == false)
					{
						if (cElement != null)
						{
							validate(oElement, cElement);
						}
						else
						{
							validate(oElement, null);
						}
					}
				}			
				// TYPE SELECT	
				if (oItem.type =='select'&&oElement) {
					error = false;
					//alert(oElement.selectedIndex);
					if ((oItem.mandatory == 1)&&(oElement.selectedIndex == 0)&&(oElement.style.display!="none")) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				// TYPE RADIO			
				if (oItem.type =='radio') {
					rootNode = document.getElementById(oItem.item_id);
					inputs = rootNode.getElementsByTagName("input");
					//alert(rootNode);
					is_empty = true;
					for(i=0;i<inputs.length;i++) {
						if(inputs[i].checked)
							is_empty = false;
					}
					
					if(is_empty) {
						alert(oItem.empty_msg);
						return false;
					}
				}	
				
				// TYPE BIRTHDAY			
				if (oItem.type =='birthday'&&oElement) {	
					error = false;					
					var regInteger = /^(\d{1,2}\/){2}\d{4}$/;
						if (oItem.mandatory == 1 && oElement.value.length == 0) {					
							//return riseError(oElement, null, oItem.empty_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;					
						}
						else if ((isNaN(parseInt(oElement.value)) || !oElement.value.match(regInteger))&&(oElement.value.length != 0)) {
							riseError(oElement, null, oItem.invalid_msg);
							//riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;					
						}
						else if (((parseInt(oElement.value)<oItem.mandatory) &&(oElement.value.length != 0))) {
							riseError(oElement, null, oItem.differ_msg);
							//riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
					if(error == false)
					{
						validate(oElement, null);
					}
				}  

				// TYPE BIRTH_YEAR
				if (oItem.type =='birth_year'&&oElement) {
					error = false;
					var today = new Date();
					if (oItem.mandatory == 1){
						if (oElement.value.length == 0) {
							//return riseError(oElement, null, oItem.empty_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
						else if ((isNaN(parseInt(oElement.value)))&&(oElement.value.length != 0)) {
							//return riseError(oElement, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.invalid_msg);
							error = true;
							globalError = true;
						}
						else if (((parseInt(oElement.value)<1880)||(parseInt(oElement.value)>today.getFullYear())&&(oElement.value.length != 0))) {
							//return riseError(oElement, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.invalid_msg);
							error = true;
							globalError = true;
						}
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				// TYPE INTEGER			
				if (oItem.type =='integer'&&oElement) {	
					error = false;					
					var regInteger = /^[0-9]+$/;
						if (oItem.mandatory == 1 && oElement.value.length == 0) {					
							//return riseError(oElement, null, oItem.empty_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;					
						}
						else if ((isNaN(parseInt(oElement.value)) || !oElement.value.match(regInteger))&&(oElement.value.length != 0)) {
							//return riseError(oElement, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.invalid_msg);
							error = true;
							globalError = true;					
						}
						else if (((parseInt(oElement.value)<oItem.mandatory) &&(oElement.value.length != 0))) {
							//return riseError(oElement, null, oItem.differ_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				
				// TYPE LOGIN
				if (oItem.type =='login'&&oElement) {
					error = false;
					var regLogin = /^[a-zA-Z0-9_-]{3,20}$/i;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0) ) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else {
						if (!oElement.value.match(regLogin))
						{
							//return riseError(oElement, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}

				// TYPE PASSWORD
				if (oItem.type =='password'&&oElement) {
					error = false;
					var oElementConfirm = document.getElementById(oItem.confirm_id);				
					var regPassword = /^[a-zA-Z0-9_-]{4,20}$/i;

					if ((oItem.mandatory == 1)&&((oElement.value.length == 0)||(oElementConfirm.value.length == 0))) {
						//return riseError(oElement, oElementConfirm, oItem.empty_msg);
						riseError(oElement, oElementConfirm, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > 0){
						if (!oElement.value.match(regPassword))
						{ 
							//return riseError(oElement, oElementConfirm, oItem.invalid_msg);
							riseError(oElement, oElementConfirm, oItem.empty_msg);
							error = true;
							globalError = true;
						}
						else if (oElement.value != oElementConfirm.value) {
							//return riseError(oElement, oElementConfirm, oItem.differ_msg);
							riseError(oElement, oElementConfirm, oItem.empty_msg);
							error = true;
							globalError = true;
						}
						else {
							if(error == false)
							{
								validate(oElement, oElementConfirm);
							}
						}
					}
					if(error == false)
					{
						validate(oElement, oElementConfirm);
					}
				}
				// TYPE EMAIL NEWSLETTER (OBSOLETE)
				if (oItem.type =='email_news'&&oElement) {
					error = false;
					var regEmail = /([0-9a-zA-Z]([-+.\w]*[0-9a-zA-Z_])*@(((([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})|(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))/;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > 0){					
						if (!oElement.value.match(regEmail))
						{
							//return riseError(oElement, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
						else
						{
							if(error == false)
							{
								validate(oElement, null);
							}
						}
					}
					
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				// TYPE EMAIL
				if (oItem.type =='email'&&oElement) {
					error = false;	
					var regEmail = /([0-9a-zA-Z]([-+.\w]*[0-9a-zA-Z_])*@(((([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})|(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))/;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > 0){					
						if (!oElement.value.match(regEmail))
						{
							//return riseError(oElement, null, oItem.invalid_msg);
							//alert(oItem.invalid_msg);
							riseError(oElement, null, oItem.invalid_msg);
							error = true;
							globalError = true;
						}
						else
						{
							if(error == false)
							{
								validate(oElement, null);
							}
						}
					}
					
					if(error == false)
					{
						validate(oElement, null);
					}
				}

				// TYPE BOOLEAN
				if (oItem.type =='boolean'&&oElement) {
					error = false;
					if ((oItem.mandatory == 1)&&(!oElement.checked)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}

				// TYPE TEXT
				if (oItem.type =='text'&&oElement) {
					error = false;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > iTextMaxLength){
						//return riseError(oElement, null, oItem.invalid_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}

				// TYPE PHONE
				if (oItem.type =='phone'&&oElement) {
					error = false;
					var regPhone = /^[0-9\.\+\-\(\) ]{10,30}$/g;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > 0){
						if (!oElement.value.match(regPhone)) 
						{
							riseError(oElement, null, oItem.invalid_msg);
							//riseError(oElement, null, oItem.empty_msg);
							error = true;
							globalError = true;
						}
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				

				// TYPE DUAL PHONE
				if (oItem.type =='dual_phone'&&oElement) {
					error = false;
					var oElementDual = document.getElementById(oItem.confirm_id);
					var regPhone = /^[0-9\.\+\-\(\) ]{10,30}$/g;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)&&(oElementDual.value.length == 0)) {
						//return riseError(oElement, oElementDual, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					else if (oElement.value.length > 0){
						if (!oElement.value.match(regPhone)) 
							{
								//return riseError(oElement, null, oItem.invalid_msg);
								riseError(oElement, null, oItem.invalid_msg);
								error = true;
								globalError = true;
							}
					}
					else if (oElementDual.value.length > 0){
						if (!oElementDual.value.match(regPhone)) 
						{
							//return riseError(oElementDual, null, oItem.invalid_msg);
							riseError(oElement, null, oItem.invalid_msg);
							error = true;
							globalError = true;
						}
					}
					if(error == false)
					{
						validate(oElement, oElementDual);
					}
				}
				// TYPE DUAL DEP CITY
				if (oItem.type =='dual_ville_dep'&&oElement) {
					error = false;
					var oElementDual = document.getElementById(oItem.confirm_id);				
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)&&(oElementDual.value.length == 0)) {
						//return riseError(oElement, oElementDual, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					//else if (oElement.value.length > 0){
					//	if (!oElement.value.match(regPhone)) return riseError(oElement, null, oItem.invalid_msg);
					//}
					//else if (oElementDual.value.length > 0){
					//	if (!oElementDual.value.match(regPhone)) return riseError(oElementDual, null, oItem.invalid_msg);
					//}
					if(error == false)
					{
						validate(oElement, oElementDual);
					}
				}
				
				//TYPE FILE
				if (oItem.type =='file'&&oElement) {
					error = false;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						riseError(oElement, null, oItem.empty_msg);
						error = true;
						globalError = true;
					}
					if(error == false)
					{
						validate(oElement, null);
					}
				}
				
				if (oItem.type =='zip_code'&&oElement) {
					error = false;
					if ((oItem.mandatory == 1)&&(oElement.value.length == 0)) {
						//return riseError(oElement, null, oItem.empty_msg);
						if (cElement != null)
						{
							riseError(oElement, cElement, oItem.empty_msg);
						}
						else
						{
							riseError(oElement, null, oItem.empty_msg);
						}
						error = true;
						globalError = true;
						break;
					}
					else if ((oItem.mandatory == 1)&&(oElement.value.length != 5)) 
					{
						if (cElement != null)
						{
							riseError(oElement, cElement, oItem.invalid_msg);
						}
						else
						{
							riseError(oElement, null, oItem.invalid_msg);
						}
						error = true;
						globalError = true;
						break;
					}
					if(error == false)
					{
						if (cElement != null)
						{
							validate(oElement, cElement);
						}
						else
						{
							validate(oElement, null);
						}
					}
				}				
			}
		}
		if(globalError == true)
		{
			return false;
		}
		else{
			var validForm = true;
			
			// Specific validations for diplomas, languages and experiences
			// Always return true if not needed
			// Functions defined in gpec_form.js
			if (validForm)
			{
				validForm = validateDiplomas();
			}
			if (validForm)
			{
				validForm = validateLanguages();
			}
			if (validForm)
			{
				validForm = validateExperiences();
			}

			return validForm;
		}
	}
	else {
		return true;
	}
}

 function riseError (oItem,oConfirmItem,sMsg) {
	alert(sMsg);
	
	// Open affected tab
	$(oItem).closest('.form_step').find('h2 a').click();
	
	if(oConfirmItem) {
		oConfirmItem.style.backgroundColor = sErrColor;
	}

	oItem.focus();
	oItem.style.backgroundColor = sErrColor;
	oItem.style.color = sTextErrColor;

	// return false;
}

 function validate (oItem, oConfirmItem) {
	
	oItem.style.backgroundColor = sValidColor;
	oItem.style.color = sTextValidColor;
	if(oConfirmItem) {
		oConfirmItem.style.backgroundColor = sValidColor;		
	}
	return true;
}

function oKiosk(sUrl,sName,iWid,iHei,iLeft,iTop){var kWid=750;if(iWid>=100) kWid=iWid;else if(screen&&screen.availWidth) kWid=screen.availWidth-50;else if(self.outerWidth) kWid=self.outerWidth;var kHei=550;if (iHei>=100) kHei=iHei;else if(screen&&screen.availHeight) kHei=screen.availHeight-100;else if(self.outerHeight) kHei=self.outerHeight;var kLeft=25;if(iLeft>=0) kLeft=iLeft;else if(screen&&screen.availWidth) kLeft=Math.floor((screen.availWidth-kWid)/2);else if(self.screenX) kLeft=self.screenX;var kTop=25;if(iTop>=0) kTop=iTop;else if(screen&&screen.availHeight) kTop=Math.floor((screen.availHeight-kHei)/2);else if(self.screenY) kTop=self.screenY;var options='toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=' + kWid + ',height=' + kHei + ',top=' + kTop + ',left=' + kLeft;newWindow = window.open(sUrl,sName,options);if (newWindow.focus){newWindow.focus();}}



function checkAuctionAmount(form,current_amount,min_step) {
	min_amount = current_amount + min_step;
	regInteger = /^[0-9]+$/;
	
	if(form.Amount.value.length == 0) {
		form.Amount.style.backgroundColor = sErrColor;
		form.Amount.color = sTextErrColor;
		alert("Vous n'avez saisi aucun montant");
		form.Amount.focus();
		return false;
	}
	
	if(!form.Amount.value.match(regInteger)) {
		form.Amount.style.backgroundColor = sErrColor;
		form.Amount.color = sTextErrColor;
		alert("La saisie du montant est incorrecte.");
		form.Amount.focus();
		return false;
	}
	
	if(form.Amount.value < min_amount) {
		form.Amount.style.backgroundColor = sErrColor;
		form.Amount.color = sTextErrColor;
		alert("Le montant minimal de l'enchère est de "+ min_amount +" euros.");
		form.Amount.focus();
		return false;
	}
	return true;
}

/* Test si c'est un nombre supérieur à 0 */
function TestInt(id)
{
	//recuperation de l'element
	var d=document.getElementById(id);
	
	//test de l'integrité de l'element
	if (d.value!="")
	{
		if (isNaN(d.value)==false)
		{
			if (d.value>0)
			{
				d.value=parseInt(d.value);
				d.style.backgroundColor = sValidColor;
				return true;
			}
			else
			{
				d.value='';
				d.style.backgroundColor = sErrColor;
				alert('La somme doit être supérieure à 0€');
				return false;
			}
		}
		else
		{
			d.value='';
			d.style.backgroundColor = sErrColor;
			alert('La somme doit être numérique');
			return false;
		}
	}
	else
	{
		d.style.backgroundColor = sErrColor;
		alert('Vous devez saisir une somme');
		return false;
	}
}

function verif(radio,amount_id){
	var oElement = document.getElementById(radio);
	if(oElement.checked)
	{
		
		return TestInt(amount_id);
	}
	else
	{
		return true;
	}
}

