var emptyField=false;

function load(id,url) {
	new Ajax.Updater(id,url);
}

if (!Array.prototype.forEach) {
	Array.prototype.forEach = function(fun /*, thisp*/) {
		var len = this.length;
		if (typeof fun != "function") throw new TypeError();

		var thisp = arguments[1];
		for (var i = 0; i < len; i++) {
			if (i in this) fun.call(thisp, this[i], i, this);
	        }
	};
}

function checkVar(element, index, array) {
	//print("[" + index + "] is " + element); // assumes print is already defined
	if ($F(element)!="") {
		$(element).style.backgroundColor = "white";
	} else {
		$(element).style.backgroundColor = "#ff625f";
		emptyField = true;
	}
}

//choix de quelle fonction de la page php a afficher + mise a jour du main
function selectMenu(choice,form,addonPage){
	new Ajax.Updater("main", 'page/'+choice+'.php', {
		method: 'get',
		parameters: 'function='+form
	});
	addons(addonPage);
}

function addons(page){
	var divID="addons";
	if (page){
		$(divID).style.visibility="visible";
		new Ajax.Updater(divID, page);
	}
	else $(divID).style.visibility="hidden";
}

//*********************************************************************envoi du mail de la page "contact"
function checkContact() {

	var email = $F("email");
	emptyField=false;

	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (filter.test(email)&& email!="") {
		$("email").style.backgroundColor = "white";
	}else {
		$("email").style.backgroundColor = "#ff625f";
		emptyField=true;
	}
	
	["email","subject","comments"].forEach(checkVar);
	
	//si toutes les informations sont correctes appel fonction mail
	if(!emptyField) mail();
} 

//fonction pour appel page apres envoi mail
function mail(){
	$('ajax').value = "1";
	new Ajax.Updater("main", 'page/contact.php', {
		method: 'post',
		encoding: 'UTF-8',
		parameters: 'function=getPostMail&'+$("contact").serialize()
	});
}

//*********************************************************************enregistrement des personnes
function checkRegister(formId) {
	var mail = $F("email");
	var password1 = $F("password1");
	var password2 = $F("password2");
	emptyField=false;

	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if (filter.test(mail)&& mail!="") {
		$("email").style.backgroundColor = "white";
	}else {
		$("email").style.backgroundColor = "#ff625f";
		emptyField=true;
	}
	
	//alert(emptyField);
	["lastName","firstName","street","zipCode","city","password1","password2","department","institution","cityInstitution"].forEach(checkVar);
	
	if (password1!=password2) {
		$("password1").style.backgroundColor = "#ff625f";
		$("password2").style.backgroundColor = "#ff625f";
		emptyField=true;
	}

	//alert(emptyField);
	//si tout est OK, appel fonction mail pour la page a afficher une fois l enregistrement fait
	//if(!emptyField) registerMail();
	if(!emptyField) $(formId).submit();
} 

function loading() {
	new Insertion.Top('main', 'Loading...'); 
	
	//document.title = "Loading..."; // new title of window
}

//appel fonction ou il y a la carte et l enregistrement des donnees dans la base de donnee
function registerMail(){
	$('ajax').value = "1";
	new Ajax.Updater("main", 'page/register.php', {
		onLoaded: loading(),
		method: 'post',
		encoding: 'UTF-8',
		parameters: 'function=getPostRegister&'+$("register").serialize(),
		onSuccess: function() {
		      //alert("Registration OK");
		},
		onFailure: function(t) {
			//$('main').innerHTML=t.responseText;
		}
	});
}

//*****************************************************************************************login
function checkLogin(formId) {
	emptyField = false;
	["id_author","password"].forEach(checkVar);

	//si toutes les informations sont correctes appel fonction postLogin
	if(!emptyField) $(formId).submit();
}

//*****************************************************************************************abstract
function sendAbstract() {
	emptyField = false;

	["titleAbstract","textAbstract"].forEach(checkVar);

	//si toutes les informations sont correctes appel fonction postAbstract
	if(!emptyField) postAbstract();
}

function postAbstract(){
	$('ajax').value = "1";
	new Ajax.Updater("preview", 'page/registerAbstract.php', {
		method: 'post',
		encoding: 'UTF-8',
		parameters: 'function=saveAndPreviewAbstract&'+$("abstract").serialize()
	});
}

//*****************************************************************************************institutions
function checkInstitution(target,name) {
	emptyField = false;

	["ajax","department","institution","city","id_country"].forEach(checkVar);

	//si toutes les informations sont correctes appel fonction postAbstract
	if(!emptyField) postInstitution(target,name);
}

function postInstitution(target,name){
	$('ajax').value="1";
	new Ajax.Updater("main", 'page/institutionAbstract.php', {
		method: 'post',
		encoding: 'UTF-8',
		parameters: 'function='+target+'&'+$(name).serialize()
	});
}

//*****************************************************************************************co-authors
function checkCoAuthor(target,name) {
	emptyField = false;

	["ajax","lastName","firstName"].forEach(checkVar);

	//si toutes les informations sont correctes appel fonction postAbstract
	if(!emptyField) postCoAuthor(target,name);
}

function postCoAuthor(target,name){
	$('ajax').value="1";
	new Ajax.Updater("main", 'page/authorsAbstract.php', {
		method: 'post',
		encoding: 'UTF-8',
		parameters: 'function='+target+'&'+$(name).serialize()
	});
}

function membership(name) {

	$('membershipDues').value = "";
	
	if (name=="membership[student]") $("membership[others]").checked=false;
	if (name=="membership[others]") $("membership[student]").checked=false;
	$("membershipDues").value=$(name).title;
	computeTotal();
}

function room(name) {

	$('hotelFees').value = "";
	if (name != "room[double]" ){
		$("selectedMember[chosen]").checked=false;
		$("selectedMember[random]").checked=false;
		$("selectedMemberName").value="";
	}
	
	if (name=="room[double]") {
		$("room[single]").checked=false;
		$("room[no]").checked=false;
	}
	
	if (name=="room[single]") {
		$("room[double]").checked=false;
		$("room[no]").checked=false;
	}
	
	if (name=="room[no]") {
		$("room[single]").checked=false;
		$("room[double]").checked=false;
	}
	
	$("hotelFees").value=$(name).title;
	computeTotal();
}

function roomSharing(type){
	$("room[double]").checked=true;
	room("room[double]");
	if (type=="selectedMember[random]"){
		$("selectedMember[chosen]").checked=false;
		$("selectedMemberName").value="";
		return;
	}
	if (type=="selectedMember[chosen]"){
		$("selectedMember[random]").checked=false;
		$(type).checked=true;
		return;
	}
}

function computeTotal(){
	var membership=0;
	var hotel=0;
	$('amountDues').value = "";
	if ( $F('membershipDues') != "") membership=parseInt($F('membershipDues'));
	if ( $F('hotelFees') != "") hotel=parseInt($F('hotelFees'));
	$('amountDues').value=membership+hotel;
}

function payment(type) {

	if (type == "paymentMode[netbanking]" ){
		$("ccNum").value="";
		$("expMM").value="";
		$("expYY").value="";
		$("secCode").value="";
		$("holderName").value="";
	}
	if (type=="paymentMode[netbanking]"){
		$("paymentMode[visa]").checked=false;
		$("paymentMode[masterCard]").checked=false;
		return;
	}
	if (type=="paymentMode[masterCard]"){
		$("paymentMode[visa]").checked=false;
		$("paymentMode[netbanking]").checked=false;
		return;
	}
	if (type=="paymentMode[visa]"){
		$("paymentMode[masterCard]").checked=false;
		$("paymentMode[netbanking]").checked=false;
		return;
	}
}

function cardData(name){
	if (($("paymentMode[visa]").checked==false) && ($("paymentMode[masterCard]").checked==false)){
		alert("You have to choose between the Visa or the Master card!");
		return;
	}
}

function protectMe(name){
	/*$(name).disabled=true;*/
	$(name).readonly=true;

}
