var cradouille = "ok";

/*
* Utilities functions for the validation of forms.
*/

function validate(formName) { 
	
	if (formName!="quickSearch") {
		document.forms[formName].submit();
	}
	else {
		var keywords = document.getElementById("keywords");
		if (keywords.value == "" || keywords.value == "Search..." || keywords.value == "Rechercher..." || keywords.value == "Search" || keywords.value == "Rechercher") {
			alert(js_PleaseEnterValueSearch);
		}
		else {
			document.forms[formName].submit();
		}
	}
}


var dontsubmit = false;

function validateSubmitPortrait(formName) {
	try {
		var file = document.getElementById("file");
		var star = document.getElementById("star");
		if (file.value == "") {
			alert(js_PleaseEnterPicture);
			return false;
		}
		if (star.value == "") {
			alert(js_PleaseEnterCelebrity);
			return false;
		}
		if (!dontsubmit) {
			//document.getElementById('userFileName').value = document.getElementById('file').value;
			document.forms[formName].submit();
		}
	} catch (ex) {
			alert(js_PleaseEnterPicture);
	}
}

function checkMail(email) {
	var ok = "1234567890abcdefghijklmnopqrstuvwxyz.@-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	// check if there is no special characters
	for(i=0; i<email.length; i++){
		if(ok.indexOf(email.charAt(i))<0)
			return false;
	}

	// check if the email is well formed
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email))
		return true;
	else
		return false; 
}

function checkSite(site) {
	var ok = "1234567890abcdefghijklmnopqrstuvwxyz.@-_ABCDEFGHIJKLMNOPQRSTUVWXYZ/\\#~&%,:?=";
	// check if there is no special characters
	for(i=0; i<site.length; i++){
		if(ok.indexOf(site.charAt(i))<0) {
			return false;
		}
	}
	//TODO check with regexp http:// || ftp://   a-zA-Z0-9_\-\\\/    .   a-zA-Z0-9\_-.
	return true;
}

function checkQuotes(text) {
	var quotes = "\"<>|*?";
	for(i=0; i<text.length; i++){
		if(quotes.indexOf(text.charAt(i))>=0)
			return false;
	}
	return true;
}

function checkPasswords(password1, password2, password3) {
	if (password2=="" && password3=="") {
		return true;
	}
	else if (password2.length<4) {
		alert(js_ErreurNewPwd);
		return false;
	}
	else if (password2!=password3) {
		alert(js_ErreurOldNewPwd);
		return false;
	}
	else if (password1=="") {
		alert(js_ErreurAncienPwd);
		return false;
	}
	else return true;
}

function checkPseudo(pseudo) {
	if (pseudo=='') {
		alert(js_ErreurPseudo);
		return false;
	}
	var ok = "1234567890abcdefghijklmnopqrstuvwxyz.@-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	// check if there is no special characters
	for(i=0; i<pseudo.length; i++){
		if(ok.indexOf(pseudo.charAt(i))<0) {
			alert(js_ErreurPseudoInvalide);
			return false;
		}
	}
	return true;
}

function checkPassword(password) {
	if (password=='') {
		alert(js_ErreurPwd);
		return false;
	}
	var ok = "1234567890abcdefghijklmnopqrstuvwxyz.@-_ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	// check if there is no special characters
	for(i=0; i<password.length; i++){
		if(ok.indexOf(password.charAt(i))<0) {
			alert(js_ErreurPwdInvalide);
			return false;
		}
	}
	return true;

}

function validateNewsletter(mail) {
	var email = document.getElementById(mail).value;
	if (email=="") {
		alert(js_ErreurEmail);
		return false;	
	} 
	if (!checkMail(email)) {
		alert(js_IncorrectEmail);
		return false;
	}
	document.forms.newsletter.submit();
}

function validateProfile() {
	var avatar = document.getElementById("avatar").value;
	var email = document.getElementById("email").value;
	var site = document.getElementById("site").value;
	var password1 = document.getElementById("password1").value;
	var password2 = document.getElementById("password2").value;
	var password3 = document.getElementById("password3").value;
		
	if (site=="http://") {
		site="";
		document.getElementById("site").value = site;
	}
	
	// check passwords
	if (!checkPasswords(password1, password2, password3)) {
		return false;
	}
	
	//check avatar
	if (avatar!="" && !checkQuotes(avatar)) {
		alert(js_AvatarCaracteresSpec);
		return false;
	}	
	
	// check email
	if (email!="" && !checkMail(email)) {
		alert(js_IncorrectEmail);
		return false;
	}
	// check website
	if (site!="" && !checkSite(site)) {
		alert(js_ErreurSiteWeb);
		return false;
	}
	else {
		if (site!="" && (site.charAt(0) != 'h' && site.charAt(0) != 'f')) {
			site = "http://"+site;
			document.getElementById("site").value = site;
		}	
		return true;
	}
}

function validateMessage(email, message) {
	// check message
	if (message=='') {
		alert(js_ErreurMessage);
		return false;	
	}

// check email
	if (email=='') {
		alert(js_ErreurEmail);
		return false;	
	}
	if (email!="" && !checkMail(email)) {
		alert(js_IncorrectEmail);
		return false;
	}		
	return true;
}

function validateInscription() {
	
	var pseudo = document.getElementById("pseudo").value;
	var email = document.getElementById("email").value;
	var site = document.getElementById("site").value;
	var password = document.getElementById("password").value;
	var pays = document.getElementById("pays").value;
	var code = document.getElementById("code").value;

	// check pseudo
	if (!checkPseudo(pseudo)) {
		return false;
	}
	
	// check password
	if (!checkPassword(password)) {
		return false;
	}
	
	// check email
	if (email=='') {
		alert(js_ErreurEmail);
		return false;	
	}
	if (email!="" && !checkMail(email)) {
		alert(js_IncorrectEmail);
		return false;
	}	
	
	// check pays
	if (pays=='--' || pays=='') {
		alert(js_ErreurPays);
		return false;	
	}	
	
	// check sexe
	if (! document.getElementById("fille").checked && ! document.getElementById("gars").checked) {
		alert(js_ErreurSexe);
		return false;
	}	
	 
	// check code
	if (code.length<5) {
		alert(js_ErreurCode);
		return false;
	}
	
	// check site
	if (site=="http://") {
		site="";
		document.getElementById("site").value = site;
	}
	if (site!="" && !checkSite(site)) {
		alert(js_ErreurSiteWeb);
		return false;
	}
	else {
		if (site!="" && (site.charAt(0) != 'h' && site.charAt(0) != 'f')) {
			site = "http://"+site;
			document.getElementById("site").value = site;
		}	
		return true;
	}	
}

function validateComment() {
	var nom = document.getElementById("nom").value;
	var message = document.getElementById("message").value;
	if (message=="") {
		alert(js_ErreurCommentaire);
		return false;
	}
	if (nom=="") {
		document.getElementById("nom").value = "Anonyme";
	}
	return true;
}

function validateEmail(email) {
	if (email=="") {
		alert(js_ErreurEmail);
		return false;
	}
	if (email!="" && !checkMail(email)) {
		alert(js_IncorrectEmail);
		return false;
	}
	return true;
}

function validateAcceptDecline() {
	var checkbox = document.getElementById("accept");
	if (checkbox.checked == false) {
		alert(js_PleaseCheckBox);
	}
	else {
		document.forms["acceptDecline"].submit();
	}
}

/* Fonction pour limiter la taille d'un textarea */
function limite(zone,max) { 
	if(zone.value.length>=max) {
		zone.value=zone.value.substring(0,max);
	} 
} 

function validateReportAbuse() {
	var msg = document.getElementById("message").value;
	if (msg=="") {
		alert(js_ErreurMessage);
		return false;
	}
	else return true;
}
	
function validateBugreport() {
	if (validateMessage(bugreportForm.email.value, bugreportForm.message.value)) {
		if (bugreportForm.typeBug.value=="") {
			alert(js_ErreurTypeBug);
			return false;
		} else return true;
	}
	return false;
}