/* 
 * Ces fonctions ne sont pas libres d'utilisation
 * La totalité de cette page est protégé par le droit d'auteur 
 * Toutes copies, partielles ou totales, sont strictement interdites
 */

var siteannonces = "http://www.annuaireduyacht.com/annonces-bateaux/";

function initXHR()
{
		xhr_object = null;
   		if (window.ActiveXObject) {
			try { 
				xhr_object = new ActiveXObject("Msxml2.XMLHTTP"); 
			} 
			catch (e) { 
				try { 
					xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
				}
				catch (e) { 
					return null;
				} 
    	   	} 
        }	
		else if (window.XMLHttpRequest) {
			xhr_object = new XMLHttpRequest();
			if (xhr_object.overrideMimeType) { xhr_object.overrideMimeType("text/xml"); }
 		} 
		return xhr_object;
}

function init()
{
	for(i=0; i < document.getElementsByTagName("input").length;i++) {
			document.getElementsByTagName("input")[i].autocomplete = 'off'; 
			document.getElementsByTagName("input")[i].onfocus = inputFocus;
			if ((document.getElementsByTagName("input")[i].id == 'constructeur')) {
				continue;
			}
			document.getElementsByTagName("input")[i].onblur = inputNoFocus;  
	}
	
	for(i=0; i < document.getElementsByTagName("textarea").length;i++) {
			document.getElementsByTagName("textarea")[i].onfocus = inputFocus;
			document.getElementsByTagName("textarea")[i].onblur = inputNoFocus;  
	}
	
	if (document.forms["inscription"] != null)
	{
		for(i=0; i < document.forms["inscription"].getElementsByTagName("input").length;i++) {
			document.forms["inscription"].getElementsByTagName("input")[i].onkeyup = check;
			document.forms["inscription"].getElementsByTagName("input")[i].onchange = check; 
		}
	}
	
	if (document.forms["formulaireAnnonce"] != null)
	{
		for(i=0; i < document.forms["formulaireAnnonce"].getElementsByTagName("input").length;i++) {
			if ((document.getElementsByTagName("input")[i].id.substring(0,5) == 'photo') || (document.getElementsByTagName("input")[i].id.substring(0,10) == 'precisions')) {
				continue;
			}
			if ((document.getElementsByTagName("input")[i].id == 'constructeur')) {
				continue;
			}
			document.getElementsByTagName("input")[i].onkeyup = check; 
		}
		for(i=0; i < document.forms["formulaireAnnonce"].getElementsByTagName("select").length;i++) {
			document.getElementsByTagName("select")[i].onkeyup = check; 
		}
		for(i=0; i < document.forms["formulaireAnnonce"].getElementsByTagName("textarea").length;i++) {
			document.getElementsByTagName("textarea")[i].onkeyup = check; 
		}
	}
}

function inputFocus(event) { this.style.backgroundColor = '#DDE2D3'; }
function inputNoFocus(event){ this.style.backgroundColor = ''; }

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }


var oldResp = null;

function check(e) {
	var regMail = new RegExp("^(\\s|\\S)*[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}(\\s|\\S)*$");	
	var regPhone = new RegExp("^(\\s|\\S)*(\\+33 6|\\+33 5|\\+33 4|\\+33 3|\\+33 2|\\+33 1|\\+336|\\+331|\\+332|\\+333|\\+334|\\+335|01|02|03|04|05|06|08)(([-\.\/ ])?[0-9][0-9]){4}(\\s|\\S)*$");
	value = this.id;
	text = this.value;
	xhr_object = initXHR();
	if (text.length == 0) {
		oldResp = null;
		document.getElementById("info" + value).innerHTML = '';
		return;
	}
	else if ((value == "codePostal" && text.length <= 3) || (value == "codePostal" && text.length == 4 && text.substring(0,1) == "0")) {
		valid(value,false,''); 
		return;
	}
	else if (value == "nom" || value == "prenom") {
		var reg = new RegExp("^[a-zA-Zéèêëç']{3,25}$");
		if (text.length > 25) { 
			valid(value,false,"Trop long..."); 
		}
		else if (text.length < 3) {
			valid(value,false,"Trop court...");
		}
		else if (reg.exec(text) == null) {
			 valid(value,false,"Caractère(s) incorrect(s)");
		}
		else {
			valid(value,true,'');
		}
	}
	else if (value == "adresse") {
		var reg = new RegExp("^[a-zA-Zéèêëç,'0-9 ]{3,50}$");			
		reg.exec(text) == null ? valid(value,false,'') : valid(value,true,'');
	}
	/* Verification des champs pour la soumission d'une petite annonce */
	else if (value == "modele") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "motorisation") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "constructeur") {
		if (text.length > 30) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "materiaux") {
		if (text.length > 30) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "annee") {
		var reg = new RegExp("^[0-9]{4}$");			
		reg.exec(text) == null ? valid(value,false,'') : valid(value,true,'');
	}
	else if (value == "couleur") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "heuresmoteur") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "surfacevoile") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "pavillon") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "carburant") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "equipement") {
		if (text.length > 255) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "propulsion") {
		if (text.length > 20) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "internet") {
		if (text.length > 40) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	else if (value == "titre") {
		if (text.length > 30) valid(value,false,'Trop long');
		else if (regMail.exec(text) != null) valid(value,false,'Email(s) interdit(s)');
		else if (regPhone.exec(text) != null) valid(value,false,'Téléphone(s) interdit(s)');
		else valid(value,true,'');
	}	
	else if (value == "description") {
		if (text.length > 2056) valid(value,false,'Trop long');
		else if (regMail.exec(text) != null) valid(value,false,'Email(s) interdit(s)');
		else if (regPhone.exec(text) != null) valid(value,false,'Téléphone(s) interdit(s)');
		else valid(value,true,'');
	}
	else if (value == "descriptioncourte") {
		if (text.length > 200) valid(value,false,'Trop long');
		else if (regMail.exec(text) != null) valid(value,false,'Email(s) interdit(s)');
		else if (regPhone.exec(text) != null) valid(value,false,'Téléphone(s) interdit(s)');
		else valid(value,true,'');
	}
	else if (value == "prix") {
		var reg = new RegExp("^[0-9]{1,10}$");			
		reg.exec(text) == null ? valid(value,false,'') : valid(value,true,'');
	}


	else if (value == "localisation") {
		if (text.length > 50) valid(value,false,'Trop long');
		else valid(value,true,'');
	}
	
	else if (value == "longueur") {
		if (IsNumeric(text)) valid(value,true,'');
		else valid(value,false,'Ce n\'est pas un nombre');
	}
	
	/* Fin de verification des champs pour la soumission d'une petite annonce */
	else if (value == "telephone") {
		/*var reg = new RegExp("^(\\+33 6|\\+33 5|\\+33 4|\\+33 3|\\+33 2|\\+33 1|\\+336|\\+331|\\+332|\\+333|\\+334|\\+335|01|02|03|04|05|06|08)(([-\.\/ ])?[0-9][0-9]){4}$");		*/
		if (text.length>20) {
				valid(value,false,'Trop long');
		} else if(text.length<10) {
				valid(value,false,'Trop court');
		} else {
			valid(value,true,'Téléphone correct');
		}
	}
	else {
		if (value == "email") {
			var reg = new RegExp("^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$");			
			if (reg.exec(text) == null) {
				valid(value,false,'Ce n\'est pas une adresse email');
				valid('confirmationemail','neutre','');
				return;
			}
			else {
				valid(value,true,'Adresse email valide');
			}
			if (text == document.getElementById('confirmationemail').value) {
				valid('confirmationemail',true,'Les emails correspondent');
			} else {
				valid('confirmationemail',false,'Les emails ne correspondent pas');
			}
		}

		if (value == "confirmationemail") {
			var reg = new RegExp("^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$");			
			if (reg.exec(text) == null) {
				valid(value,false,'Ce n\'est pas une adresse email')
				return;
			}
			else {
				if (text == document.getElementById('email').value) {
					valid(value,true,'Les emails correspondent');
				} else {
					valid(value,false,'Les emails ne correspondent pas');
				}
				return;				
			}
		}

		if(xhr_object && xhr_object.readyState != 0)
		{
			xhr_object.abort();
			delete xhr_object;
		}
		
		xhr_object = initXHR();
		xhr_object.open("POST", siteannonces + "/tools/inscription.php", true); 
		xhr_object.onreadystatechange = function() {  
		   if(xhr_object.readyState == 4 && xhr_object.status == 200) {
				var resp = xhr_object.responseText;
				if (value + resp != oldResp) {
					document.getElementById("info" + value).innerHTML = resp; 
					oldResp = value + resp;
				}
			}
		}  
		xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xhr_object.send(value + "="+document.getElementById(value).value+"&cas=verifieConformite");
	}
	return;
}


function checkCategorie(val) {
	xhr_object = initXHR();
		
	if(xhr_object && xhr_object.readyState != 0)
	{
		xhr_object.abort();
		delete xhr_object;
	}
	
	if (val=='choix') {
		document.getElementById('sb1').disabled=true;
		document.getElementById("infoCategories").innerHTML = ''; 
		return;
	}
	document.getElementById('sb1').disabled=false;
	xhr_object = initXHR();
	xhr_object.open("POST", siteannonces + "tools/post_annonce.php", true); 
	xhr_object.onreadystatechange = function() {  
		if(xhr_object.readyState == 4 && xhr_object.status == 200) {
			var resp = xhr_object.responseText;
			if (resp != oldResp) {
				document.getElementById("infoCategories").innerHTML = resp; 
				oldResp = resp;
			}
		}
	}  
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send("categorie="+val);
	return;
}

function valid(value,valid,message)
{
	var resp = (valid != "neutre" ? '<img src="' + (valid ? siteannonces + 'pic/valid.gif' : siteannonces + 'pic/invalid.gif') + '"/><i>&nbsp;' + message + '</i>' : '');
	if (value + resp != oldResp) {
		document.getElementById("info" + value).innerHTML = resp;
		oldResp = value + resp;
	}
}