var tField = [];
var tFieldOblig = [];
var tFieldFunc = [];

/**
 * Vérifie un siret
 *
 */
function checkFormSiret(siret) {
	/* Vérification du SIRET */
	if (!(/[0-9]{14}$/).test(siret.value)) {
		alert("Le champ SIRET doit contenir 14 chiffres.");
		return false;
	}
	return true;
}

/**
 * Vérifie si le champ est non vide
 * @param champ Le nom du champ
 * @param str Une chaine contenant le nom du champ pour l'alerte
 * @return True si le champ est rempli, False sinon
 */
function checkEmpty(champ, str) {
	b = (champ.value != "");	
	if (!b) {
		alert("Le champ " + str + " est obligatoire.");
		champ.focus();
	}
		
	return b;
}
 
 
/**
 * Vérifie de l'email : on vérifie la présence du @ et du .
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkEmail(champ) {
	if (!(/[A-Za-z0-9\-\.\_]+\@[A-Za-z0-9\-\.\_]+\.[a-z]{2,6}$/).test(champ.value)) {
		return false;
	}
	
	return true;
}
		
 
/**
 * Vérifie le cp sous la forme "12345"
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkCP(champ) {
	if (isNaN(champ.value) || (champ.value.length != 5) || (champ.value.indexOf('.') != -1)) {
		return(false);
	}
	return(true);
}
 
/**
 * Vérifie le cp sous la forme "12"
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkCPShort(champ) {
	if (isNaN(champ.value) || (champ.value.length < 2 || champ.value.length > 5) || (champ.value.indexOf('.') != -1)) {
		return(false);
	}
	return(true);
}

/**
 * Vérifie la validité du champ : entier
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkInt(champ) {	
	if (isNaN(champ.value) || (champ.value == "") || (champ.value.indexOf('.') != -1)) {
		alert("La valeur doit être un nombre entier.\nVeuillez la corriger.");
		champ.value = 0;

		if (champ.focus){
			champ.focus();}

		return(false);
	}
	return(true);
}


/**
 * Vérifie la validité du champ : décimal
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
 */
function checkDecimal(champ) {	
	if (isNaN(champ.value) || (champ.value == "")) {
		alert("La valeur doit être une valeur décimale.\nVeuillez la corriger.");
		champ.value = 0.00;

		if (champ.focus){
			champ.focus();}
			
		return(false);
	}
	return(true);
}


/**
 * Vérification d'un numéro de téléphone
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
*/
function checkTel(champ) {
	ret = false;
	var verifPhoneFr = /^(01|02|03|04|05|06|08|09)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/; 
	var verifPhoneInt = /^(\+[0-9]{2})[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
	if ( (verifPhoneFr).test(champ.value) ){
		ret = true;}
	if ( (verifPhoneInt).test(champ.value) ){
		ret = ret | true;}
	return(ret);
}

/**
 * Vérification d'un numéro de téléphone
 * @param champ Le nom du champ
 * @return True si le champ est bien rempli, False sinon
*/
function checkCellular(champ) {
	ret = false;
	var verifPhoneFr = /^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/; 
	var verifPhoneInt = /^(\+[0-9]{2})[ \.\-]?[6][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/;
	if ( (verifPhoneFr).test(champ.value) ){
		ret = true;}
	if ( (verifPhoneInt).test(champ.value) ){
		ret = ret | true;}
	return(ret);
}

/**
 * Vérifie la longueur du champ (pour les textaera où les maxlength ne fonctionnent pas)
 * @param champ Le nom du champ
 * @return True si la maxlength n'est pas atteinte
 */
function checkNotMaxLength(champ, maxlength) {
	if (champ.value.length >= maxlength) {
		alert("La taille maximale du champ de " + maxlength + " caractères est atteinte.\nVeuillez raccourcir le texte.");
		champ.focus();
		return(false);
	}
	return(true);
}

function disableTruefield(){
	if (document.getElementById('etranger').checked){
		tFieldOblig[7] = '';
		tFieldOblig[8] = '';
		document.getElementById("verif"+tField[7]).className='verif';
		document.getElementById("verif"+tField[8]).className='verif';
	} else {
		tFieldOblig[7] = '1';
		tFieldOblig[8] = '1';
		document.getElementById("verif"+tField[7]).className='verif';
		document.getElementById("verif"+tField[8]).className='verif';
	}
	return true;
}

function checkMultiEmail(champ) {
	var tEmail = [];
	tEmail = champ.value.split(";");
	i=0;
	bRet = true;
	while (i<tEmail.length){
		bRetTmp = true;
		if (!(/[A-Za-z0-9\-\.\_]+\@[A-Za-z0-9\-\.\_]+\.[a-z]{2,6}$/).test(tEmail[i])) {
			bRetTmp = false;
		}
		bRet = bRet & bRetTmp;
		i++;
	}
	return bRet;
}

function hpo_forms_toggleCheck(obj, champ) {
    if (obj.checked){
        document.getElementById(champ).value = document.getElementById(champ).value + 1;}
    else{
        document.getElementById(champ).value = document.getElementById(champ).value.substr(0,document.getElementById(champ).value.length-1);}
}


function hpo_forms_verif(obj,obligatory,funcVerif){
	ret = false;
	if (obligatory==1){
		//RTE
		if(obj.id.indexOf('RTEarea')!=-1){
			valId = obj.id.substring(7);
			objValue = RTEarea[valId]['editor'].getHTML();
		} else {//Common
			objValue = obj.value;}
			
		if (objValue!=''){
			document.getElementById("verif"+obj.id).className='verif ok';
			// document.getElementById("verif"+obj.id).innerHTML='';
			ret = true;
		} else{
			document.getElementById("verif"+obj.id).className='verif nok';
			// document.getElementById("verif"+obj.id).innerHTML='Ce champ est obligatoire, veuillez le renseigner';
		}
	} else {
		ret = true;
	}
	
	if (funcVerif){
		ret = false;
		if (obj.value!=''){
			if (funcVerif=="email"){
				if (checkEmail(obj)){
					document.getElementById("verif"+obj.id).className='verif ok';
					ret = true;
				} else {
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="phone"){
				if (checkTel(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="cellular"){
				if (checkCellular(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="cp"){
				if (checkCP(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="cpshort"){
				if (checkCPShort(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="multiEmail"){
				if (checkMultiEmail(obj)){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			} else if (funcVerif=="disableTruefield"){
				if (disableTruefield()){
					ret = true;
				}
			} else {
				if(eval(funcVerif + '()')){
					ret = true;
					document.getElementById("verif"+obj.id).className='verif ok';
				} else{
					document.getElementById("verif"+obj.id).className='verif nok';}
			}
		} else if (funcVerif=="disableTruefield"){
			if (disableTruefield()){
				ret = true;
			}
		} else if (!obligatory){
			ret = true;
			document.getElementById("verif"+obj.id).className='verif';
		}
	}
	return ret;
}

function hpo_forms_verifFields(form, nextpart, control){
	var i=0;
	bRet = true;
	
	document.getElementById('tcForm').value=nextpart;
	if (control){
		while (i<tField.length){
			obj = document.getElementById(tField[i]);
			bRet = bRet & hpo_forms_verif(obj, tFieldOblig[i], tFieldFunc[i]);
			i++;
		}
	}
	if (bRet){
		if (window.onSubmitRTE){
			onSubmitRTE();
		}
		form.submit();
	} else{
		alert("Veuillez renseigner les champs incorrects");}
}


/* *******************************************************************/
/*                              AJAX																 */
/* *******************************************************************/

var globalUrl = null;
var hpoCalqueDialog;

$(document).ready(function() {
	if(!document.getElementById('hpoMasqueContent')){
		$('<div id="hpoMasqueContent"></div>').appendTo("body");
	}
	
	hpoCalqueDialog = $('#hpoMasqueContent');
	hpoCalqueDialog.dialog(
			{
				width: widthCalque,
				modal: true, 
				autoOpen: false,
				closeText: 'Fermer',
				dialogClass: 'hpoMasqueContent',
				position: ['center','top']
				// hide: 'fadeOut'
			}
	);
});

if(!timeoutFermetureCalque) {
	timeoutFermetureCalque = 5000;
}
function showAjaxPage(url){
	hpoCalqueDialog.load(url);
	hpoCalqueDialog.dialog('open');
	hpoCalqueDialog.attr('style', '');
}

function hpo_forms_ajaxSubmit(form, nextpart, control){        
    eval(document.getElementById('ajaxVerif').value);
    
    var i=0;
    bRet = true;
    
    document.getElementById('tcForm').value=nextpart;
    
    if (control){
        while (i<tField.length){
            obj = document.getElementById(tField[i]);
            bRet = bRet & hpo_forms_verif(obj, tFieldOblig[i], tFieldFunc[i]);
            i++;
        }
    }
    if (bRet){
        
		var myFields = $(form).serialize();
		
		jQuery.ajax(
			{
				type: "POST",
				data: myFields,
				url: form.action,
				timeout: 45000,
				success: function(r) {
					$('#hpoMasqueContent').html(r);
					setTimeout("hpoCalqueDialog.dialog('close')", timeoutFermetureCalque);
				}
			}
		);
        
    } else{
        alert("Veuillez renseigner les champs incorrects");}
}

