var global = this;


function VerifDyna(idChaine, isRequired, masque, minlen, maxlen, idSpanMsg, message, verifsup)
{
	var chaine = document.getElementById(idChaine).value;
	var re = new RegExp(masque,'g');
	var span = document.getElementById(idSpanMsg);
	
	if(verifsup.length == 0) verifsup = 'true';
	if(maxlen == 0) maxlen = chaine.length;
	
	if(isRequired)
	{
		if(re.test(chaine))
		{
			if(chaine.length >= minlen && chaine.length <= maxlen && global.eval(verifsup))
			{
				span.innerHTML = '';
				return true;
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction()
			return false;
		}
	}
	else
	{
		if(chaine.length > 0)
		{
			if(re.test(chaine))
			{
				if(chaine.length >= minlen && chaine.length <= maxlen)
				{
					span.innerHTML = '';
					return true;
				}
				else
				{
					span.innerHTML = GetMessage(message,'Invalide');
					ErrorAction()
					return false;
				}
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = '';
			return true;
		}
	}
}

function VerifChaine(idChaine, isRequired, minlen, maxlen, idSpanMsg, message)
{
	var chaine = document.getElementById(idChaine).value;
	var re = /^\w+([-+.']\w+)*/;
	var span = document.getElementById(idSpanMsg);
	
	if(isRequired)
	{
		if(re.test(chaine))
		{
			if(chaine.length >= minlen && chaine.length <= maxlen)
			{
				span.innerHTML = '';
				return true;
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction()
			return false;
		}
	}
	else
	{
		if(chaine.length > 0)
		{
			if(re.test(chaine))
			{
				if(chaine.length >= minlen && chaine.length <= maxlen)
				{
					span.innerHTML = '';
					return true;
				}
				else
				{
					span.innerHTML = GetMessage(message,'Invalide');
					ErrorAction()
					return false;
				}
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = '';
			return true;
		}
	}
}

function VerifMot(idChaine, isRequired, minlen, maxlen, idSpanMsg, message)
{
	var chaine = document.getElementById(idChaine).value;
	var re = /^\S+$/;
	var span = document.getElementById(idSpanMsg);
	
	if(isRequired)
	{
		if(re.test(chaine))
		{
			if(chaine.length >= minlen && chaine.length <= maxlen)
			{
				span.innerHTML = '';
				return true;
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction()
			return false;
		}
	}
	else
	{
		if(chaine.length > 0)
		{
			if(re.test(chaine))
			{
				if(chaine.length >= minlen && chaine.length <= maxlen)
				{
					span.innerHTML = '';
					return true;
				}
				else
				{
					span.innerHTML = GetMessage(message,'Invalide');
					ErrorAction()
					return false;
				}
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = '';
			return true;
		}
	}
}

function VerifMail(idChaine, isRequired, idSpanMsg, message)
{
	var chaine = document.getElementById(idChaine).value;
	var re = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.(\w+([-.]\w+)*){2,4}/;
	var span = document.getElementById(idSpanMsg);
	
	if(isRequired)
	{
		if(re.test(chaine))
		{
			span.innerHTML = '';
			return true;
		}
		else
		{
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction()
			return false;
		}
	}
	else
	{
		if(chaine.length > 0)
		{
			if(re.test(chaine))
			{
				span.innerHTML = '';
				return true;
			}
			else
			{
				span.innerHTML = GetMessage(message,'Invalide');
				ErrorAction()
				return false;
			}
		}
		else
		{
			span.innerHTML = '';
			return true;
		}
	}
}

function VerifListeValeur(idListe, isRequired, valeur, idSpanMsg, message)
{
	var liste = document.getElementById(idListe);
	var span = document.getElementById(idSpanMsg);
	
	var isSelected = false;
	for(var i = 0;i<liste.options.length;i++) {
		if(liste.options[i].selected) { isSelected = true; break; }
	}
		
	if(isRequired) {	
		
		if(isSelected && liste.options[liste.selectedIndex].value != valeur) {
			span.innerHTML = '';
			return true;
		}
		else {
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction();
			return false;
		}
		
	}
	else {
		
		span.innerHTML = '';
		return true;
		/*
		if(!isSelected) {
			span.innerHTML = '';
			return true;
		}
		else if(liste.options[liste.selectedIndex].value != valeur) {
			span.innerHTML = GetMessage(message,'Invalide');
			ErrorAction();
			return false;
		}
		*/
	}
}

function VerifChaine2(chaine, minlen, maxlen)
{
	var re = /^\w+([-+.']\w+)*/;
	
	if(re.test(chaine))
	{
		if(chaine.length >= minlen && chaine.length <= maxlen)
		{
			return true;
		}
		else
		{
			alert('1');
			return false;
		}
	}
	else
	{
		ErrorAction();
		return false;
	}
}

function VerifReference(idChaine, idSpanMsg, message)
{
	var chaine = document.getElementById(idChaine).value;
	var re = /^\w+([-+.']\w+)*/;
	var span = document.getElementById(idSpanMsg);
	
	var retour;
	
	if(VerifChaine(idChaine, true, 1, 32, idSpanMsg, message))
	{
		getXhr();
	
		xhr.open('POST','../commons/ajax_appels.php',false);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
		xhr.send('n=6&ref=' + escape(chaine));
		
		if(xhr.readyState == 4 && xhr.status == 200) {
			reponse = clean(xhr.responseXML.documentElement);
				
			var ref = reponse.getElementsByTagName("ref")[0].firstChild.nodeValue;
				
			if (ref=='false')
			{
				span.innerHTML = GetMessage(message,'Invalide');
				retour=false;
			}
			else
			{
				span.innerHTML = "";
				retour=true;
			}
		}
		
		return retour;
	}
	return false;
}
var erreurs;
function VerifReference2(chaine)
{
	var re = /^\w+([-+.']\w+)*/;
	var retour;
	
	if(VerifChaine2(chaine, 1, 32))
	{
		getXhr();
		
		xhr.open('POST','../commons/ajax_appels.php',false);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
		xhr.send('n=6&ref=' + chaine);

		if(xhr.readyState == 4 && xhr.status == 200) {
			reponse = clean(xhr.responseXML.documentElement);
				
			var ref = reponse.getElementsByTagName("ref")[0].firstChild.nodeValue;

			if (ref=="false")
			{
				retour=false;
				erreurs+=" "+chaine;
			}
			else
			{
				retour=true;
			}
			return retour;
		}
	}
	return false;
}

function VerifReferences(idChaine, idSpanMsg, message)
{
	var chaine = document.getElementById(idChaine).value;
	var span = document.getElementById(idSpanMsg);
	erreurs="Erreur:";
	
	var retour=true;
	
	chaine=chaine.split("\n");
	
	if (chaine.length<2)
	{
		span.innerHTML = GetMessage("pas assez de references",'Invalide');
		return false;
	}
	else
	{
		for (var i=0; i<chaine.length; i++)
		{
			if (VerifReference2(chaine[i])==false)
			{
				retour=false;
			}
		}
		
		if (retour==true)
			span.innerHTML = "";
		else
			span.innerHTML = erreurs;

		return retour;
	}
}

function FinalVerif(tabContainer)
{
	var container = document.getElementById(tabContainer)
	
	var inputs = container.getElementsByTagName('input');
	var selects = container.getElementsByTagName('select');
	var texts = container.getElementsByTagName('textarea');
	
	var isError = false;
	
	for(var i=0;i<inputs.length;i++)
	{
		if((inputs[i].getAttribute('type') == 'text' || inputs[i].getAttribute('type') == 'password' || inputs[i].getAttribute('type') == 'hidden') && inputs[i].getAttribute('onblur') != null)
		{
			var code = inputs[i].getAttribute('onblur') + '';
			code = code.replace('function anonymous()\n{','').replace('function() {','');
			if(code.substr(code.length-1,1) == '}') code = code.substr(0,code.length-2);

			if(global.eval(code) == false)
			{
				isError = true;
			}
		}
		/*
		else if(inputs[i].getAttribute('type') == 'checkbox' && inputs[i].getAttribute('onclick') != null)
		{
			var code = inputs[i].getAttribute('onclick') + '';
			code = code.replace('function anonymous()\n{','').replace('function() {','');
			if(code.substr(code.length-1,1) == '}') code = code.substr(0,code.length-2);
			
			if(!global.eval(code));
			{
				isError = true;
			}
		}
		*/
	}
	
	for(var i=0;i<selects.length;i++)
	{
		if(selects[i].getAttribute('onchange') != null && selects[i].id.indexOf('mce') == -1 )
		{
			var code = selects[i].getAttribute('onchange') + '';
			code = code.replace('function anonymous()\n{','').replace('function() {','');
			if(code.substr(code.length-1,1) == '}') code = code.substr(0,code.length-2);
			if(code.indexOf('Verif') >= 0) {
				if(!global.eval(code))
				{
					isError = true;
				}
			}
		}
	}
	
	for(var i=0;i<texts.length;i++)
	{
		if(texts[i].getAttribute('onblur') != null)
		{
			var code = texts[i].getAttribute('onblur') + '';
			code = code.replace('function anonymous()\n{','').replace('function() {','');
			if(code.substr(code.length-1,1) == '}') code = code.substr(0,code.length-2);
			
			if(!global.eval(code))
			{
				isError = true;
			}
		}
	}
	
	if(!isError)
	{
		SetAction();
		return true;
	}
	else
	{
		ErrorAction();
		return false;
	}
}


function GetMessage(message1, message2)
{
	if(message1 != null && message1.length >= 1)
	{
		return message1;
	}
	else
	{
		return message2;
	}
}

function ErrorAction() {}

function SetAction() {}

function VerifDate(idChaine, idSpanMsg, message)
{	
	var chaine = document.getElementById(idChaine).value;
	var span = document.getElementById(idSpanMsg);
	
	var ladate = (chaine).split("/")
	var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]))

	var annee = unedate.getYear()
	if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

	if((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])))
	{	
		span.innerHTML = '';
		return true;
	}
	else
	{
		span.innerHTML = GetMessage(message,'Invalide');
		ErrorAction();
		return false;
	}
}

function DateAnglaise(date)
{
	var ladate = (date).split("/");
	date=ladate[2]+'/'+ladate[1]+'/'+ladate[0];
	return date;
}

function VerifDates(date1, date2, compareTo, idSpanMsg, message)
{
	// Compare 2 dates au format jj/mm/aaaa
	// Renvoye 0 si égalité, 1 si la première est supérieure, sinon -1
	
	var span = document.getElementById(idSpanMsg);
	
	if(document.getElementById(date1) != null)
		date1 = document.getElementById(date1).value;
	
	if(document.getElementById(date2) != null)
		date2 = document.getElementById(date2).value;
	
	var date1 = DateAnglaise(date1);	
	var date2 = DateAnglaise(date2);
	date1 = Date.parse(date1);
	date2 = Date.parse(date2);
	
	if (date1 == date2 && compareTo == 0) {
		span.innerHTML = '';
		return true;
	}
	else if (date1 <= date2 && compareTo == -1) 
	{ 
		span.innerHTML = '';
		return true;
	}
	else if (date1 >= date2 && compareTo == 1) 
	{ 
		span.innerHTML = '';
		return true;
	}
	else {
		span.innerHTML = GetMessage(message,'Invalide');
		ErrorAction();
		return false;
	}
}



function VerifSociete(idSociete, idtva, idSpanMsg)
{
	societe=document.getElementById(idSociete).value;
	
	if (societe!='') 
		return VerifChaine(idtva,true,1,30,idSpanMsg,'TVA obligatoire')	
	else
		return VerifChaine(idtva,false,1,30,idSpanMsg,'TVA obligatoire')	
}

function VerifPassword(idPass, idConf, isRequired, idSpanMsg )
{
	var span = document.getElementById(idSpanMsg);
	
	if ( VerifMot(idConf,isRequired,6,20,idSpanMsg,'Confirmation obligatoire'))
	{
		var pass = document.getElementById(idPass).value;
		var conf = document.getElementById(idConf).value;
		
		if (pass!=conf)
		{
			span.innerHTML = GetMessage('Confirmation incorrecte','Invalide');
			return false;
		}
		else
			return true;
	}
	else
		return false;
}

function VerifLogin(idChaine, idclient, idSpanMsg, message, admin)
{
	var chaine = document.getElementById(idChaine).value;
	var re = /^\w+([-+.']\w+)*/;
	var span = document.getElementById(idSpanMsg);
	
	var retour;
	
	var chemin = '';
	if (admin)
		chemin = '../';
	
	if(VerifMot(idChaine, true, 6, 20, idSpanMsg, message))
	{
		getXhr();
		
		xhr.open('POST',chemin+'commons/ajax_appels.php',false);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');	
		xhr.send('n=7&login=' + escape(chaine) + '&idc=' + idclient);
		
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			reponse = clean(xhr.responseXML.documentElement);
				
			var login = reponse.getElementsByTagName("login")[0].firstChild.nodeValue;
				
			if (login=='true')
			{
				span.innerHTML = GetMessage("Cet identifiant existe déjà",'Invalide');
				retour=false;
			}
			else
			{
				span.innerHTML = "";
				retour=true;
			}
		}
		return retour;
	}
	return false;
}