var nb_select_types_velo = 12;


//Vérifie la syntaxe de l'email
function verif_mail(email){
	var place = email.indexOf("@",1);
	var point = email.indexOf(".",place+1);
	if ((place > -1)&&(email.length >2)&&(point > 1))
		return true;
	else
		return false;
}

//Simple fonction qui rend visible un élément caché dans la page (display:none;)
function montre(id){
	var display=document.getElementById(id).style.display;
	if(display=="none"){
		document.getElementById(id).style.display="block";	//IE
		//document.getElementById(id).style.display="table-row";	//FF
	}
	else
		document.getElementById(id).style.display="none";
}

// Fonction qui vérifie le formulaire de reservation
function verif_form_reservation(){
	var nom=document.forms["form_reservation"].elements["nom"].value;
	var prenom=document.forms["form_reservation"].elements["prenom"].value;
	var email=document.forms["form_reservation"].elements["email"].value;
	var date=document.forms["form_reservation"].elements["date"].value;
	var telephone=document.forms["form_reservation"].elements["telephone"].value;
	
	if(nom=='' || prenom=='' || date=='' || telephone==''){
		if(nom==''){document.getElementById('nom').className ="input_wrong";}
		if(prenom==''){document.getElementById('prenom').className ="input_wrong";}
		if(date==''){document.getElementById('date').className ="input_wrong";}
		if(telephone==''){document.getElementById('telephone').className ="input_wrong";}
		
		alert('Tous les champs suivis d\'un * doivent \352tre remplis');
		return false;
	}
	
	if((!verif_mail(email) && email!='') || email==''){
		alert('Adresse email invalide, merci de la vérifier.');
		document.getElementById('email').className ="input_wrong";
		return false;
	}
	else
		return true;
}

// Fonction qui vérifie le formulaire de reservation
function verif_form_reservation_mag(){
	var nom=document.forms["form_resa_mag"].elements["nom"].value;
	var prenom=document.forms["form_resa_mag"].elements["prenom"].value;
	var email=document.forms["form_resa_mag"].elements["email"].value;
	var date=document.forms["form_resa_mag"].elements["date"].value;
	var telephone=document.forms["form_resa_mag"].elements["telephone"].value;
	
	if(nom=='' || prenom=='' || date=='' || telephone==''){
		if(nom==''){document.getElementById('nom').className ="input_wrong";}
		if(prenom==''){document.getElementById('prenom').className ="input_wrong";}
		if(date==''){document.getElementById('date').className ="input_wrong";}
		if(telephone==''){document.getElementById('telephone').className ="input_wrong";}
		
		alert('Merci de remplir tous les champs pour générer un devis complet.');
		return false;
	}
	
	if((!verif_mail(email) && email!='') || email==''){
		alert('Adresse email invalide, merci de la vérifier.');
		document.getElementById('email').className ="input_wrong";
		return false;
	}
	else
		return true;
}

// Fonction qui vérifie le formulaire d'envoi contact
function verif_form_contact(){
	var nom=document.forms["form_contact"].elements["nom"].value;
	var prenom=document.forms["form_contact"].elements["prenom"].value;
	var email=document.forms["form_contact"].elements["email"].value;
	var message=document.forms["form_contact"].elements["message"].value;	
	
	if(nom=='' || prenom=='' || email=='' || message==''){
		if(nom==''){document.getElementById('nom').className ="input_wrong";}
		if(prenom==''){document.getElementById('prenom').className ="input_wrong";}
		if(email==''){document.getElementById('email').className ="input_wrong";}
		if(message==''){document.getElementById('message').className ="input_wrong";}
		
		alert("Tous les champs suivis d'un * doivent être remplis");
		return false;
	}
	else if(!verif_mail(email) && email!=''){
		alert("Merci de vérifier votre adresse email, il semble qu'elle soit invalide");
		return false;
	}
	else
		return true;
}

// Fonction qui active ou désactive la liste des quantités si un type de vélo est sélectionné
function verif_disabled_qte_v(id,id_mag){
	var id_v=document.getElementById("type_v"+id).value;
	
	if(id_v!=''){
		var duree=document.getElementById('duree').value;
		var qte=document.getElementById('nb_v'+id).value;
		var prix=0;
		
		document.getElementById("nb_v"+id).disabled=false;
		
		var url = 'ajax/ajax_reservations.php';
		var pars = 'action=affiche_estimation&id='+id+'&id_v='+id_v+'&duree='+duree+'&qte='+qte+'&id_mag='+id_mag; // variables POST
		var myAjax = new Ajax.Request(
						url, 
						{method: 'post', parameters: pars,
						onComplete:function(rep){document.getElementById('div_estim'+id).innerHTML=rep.responseText;}}
						);
		
		id_suiv=id+1;
		if(id_suiv<=nb_select_types_velo) //nb_select_types_velo déclaré en haut de page
			document.getElementById("resa_v_"+id_suiv).style.display='block';
	}
	else{
		document.getElementById("nb_v"+id).disabled=true;
	}
}

function maj_estimations(id_mag){
	var id_v;
	for(i=1;i<=nb_select_types_velo;i++){
		if(document.getElementById("type_v"+i).selected!=0)
			verif_disabled_qte_v(i,id_mag);
	}
}



function htmlspecialchars (string, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Mirek Slugen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Nathan
    // +   bugfixed by: Arno
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // -    depends on: get_html_translation_table
    // *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES');
    // *     returns 1: '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;'
 
    var histogram = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    
    if (false === (histogram = this.get_html_translation_table('HTML_SPECIALCHARS', quote_style))) {
        return false;
    }
    
    histogram["'"] = '&#039;';
    for (symbol in histogram) {
        entity = histogram[symbol];
        tmp_str = tmp_str.split(symbol).join(entity);
    }
    
    return tmp_str;
}

// Fonction qui modifie un champ par une nouvelle valeur
function modif_flag(champs_id,id,table,champs_a_modifier,new_value,reload){ // reload = (reload de la page ou pas)
	//if(confirm('Vous confirmez votre action ?')){
	//if(new_value!=''){
		var url = 'ajax/ajax_reservations.php';
		var pars = 'action=modif_flag&id='+id+'&champs_id='+champs_id+'&table='+table+'&champs_a_modifier='+champs_a_modifier+'&new_value='+new_value; // variables POST
		var myAjax = new Ajax.Request(
			url, 
			{method: 'post', parameters: pars,
			onComplete:function(rep){
				if(champs_a_modifier=='etat_arrhes' && new_value==1){ // arrhes en attentes
					document.location.href='ctrl_form_reservation.php?ref='+id+'&status=444bcb3a3fcf8389296c49467f27e1d6';
				}
			
				//alert(rep.responseText);
				/*if(reload==true){
					window.location.reload(true);return false;
				}*/
				}}
			);
	//}
	//}
}

function modif_description_velo(id,id_v){
	//var desc=tinyMCE.get(id).getContent(); 
	var desc=tinyMCE.getInstanceById(id).getHTML();
	modif_flag('id_v',id_v,'resa_tarifs_colonnes','descriptif',escape(desc),false);
	alert('Description enregistrée');
}

// Fonction appelée pour afficher le tableau des vélos dans l'administration
function aff_tab_tarifs(id_conteneur,id_mag){
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=aff_tab_tarifs&id_mag='+id_mag; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			document.getElementById(id_conteneur).innerHTML=rep.responseText;}}
		);
}


// Fonction appelée pour afficher le tableau des réservations
//type_renvoi : flag pour définir des spécificités dans la construction du tableau
function aff_tab_reservations(deb,id_conteneur,where,order_by,type_renvoi){
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=aff_tab_reservations&deb='+deb+'&where='+where+'&type_renvoi='+type_renvoi; // variables POST
	if(order_by!=null)
		pars += '&order_by='+order_by;
	else
		pars += '&order_by=date DESC';
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			document.getElementById(id_conteneur).innerHTML=rep.responseText;}}
		);
}


// Fonction Onclick qui permet de modifier un texte à la volée 
function modif_intitule_velo_onclick(id_v,table){
	var intitule_velo=document.getElementById('intit_'+id_v).innerHTML.replace('\'','&apos;').replace('"','&quot;'); 
	document.getElementById('intit_'+id_v).innerHTML='<input type="text" id="'+id_v+'" name="'+id_v+'" style="width:250px;" value="'+intitule_velo+'" onblur="modif_intitule_velo_onblur('+id_v+',\''+table+'\')" />';
	document.getElementById('intit_'+id_v).onclick=''; // désactive le onclick pour éviter les "débordements"
	document.getElementById(id_v).focus();
}
// Fonction Onblur qui permet de modifier un texte à la volée 
function modif_intitule_velo_onblur(id_v,table){
	var intitule_velo=document.getElementById(id_v).value;
	if(table=='resa_tarifs_colonnes'){
		modif_flag('id_v',id_v,table,'intitule_type',intitule_velo,true);
	}
	else{
		modif_flag('id_v',id_v,table,'intitule_type',intitule_velo,false);
	}
	document.getElementById('intit_'+id_v).innerHTML=intitule_velo;
	//document.getElementById('intit_'+id_v).onclick=function(){modif_intitule_velo_onclick(id_v,table)};
	/*if(table=='resa_tarifs_colonnes'){
		window.location.reload(true);return false;
	}
	else{
		aff_tab_tarifs("conteneur_tab_tarifs");
	}*/
}

// Fonction appelée pour afficher le tableau des vélos dans l'administration
function aff_tab_velos(id_conteneur,table,id_mag){
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=aff_tab_velos&table='+table+'&id_mag='+id_mag; // variables POST
	
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			document.getElementById(id_conteneur).innerHTML=rep.responseText;
			for(i=0;i<document.getElementsByTagName("textarea").length;i++){
				//alert(document.getElementsByTagName("textarea")[i].id);
					tinyMCE.execCommand('mceRemoveControl', false, document.getElementsByTagName("textarea")[i].id); // désactive controle tinymcs
					tinyMCE.execCommand('mceAddControl', false, document.getElementsByTagName("textarea")[i].id); // et les réactive
			  }
			
			}}
		);
}

// Fonction appelée pour afficher le tableau de la gestion des réductions (discount)
function aff_tab_discount(id_conteneur){
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=aff_tab_gestion_reduc'; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			document.getElementById(id_conteneur).innerHTML=rep.responseText;
			
			cal3 = new dhtmlxCalendarObject("date_deb", true, {
							isWinHeader: false,
							isWinDrag: false
						});
							cal3.setSkin("classic");
							cal3.setDateFormat("%d/%m/%Y");
							cal3.loadUserLanguage("fr");
							
							cal4 = new dhtmlxCalendarObject("date_fin", true, {
							isWinHeader: false,
							isWinDrag: false
						});
							cal4.setSkin("classic");
							cal4.setDateFormat("%d/%m/%Y");
							cal4.loadUserLanguage("fr");
		}}
		);
}

// Fonction appelée pour afficher le tableau des périodes de réservations closes 
function aff_tab_period_resa_closed(id_conteneur){
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=aff_tab_periode_closes'; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			document.getElementById(id_conteneur).innerHTML=rep.responseText;
				cal1 = new dhtmlxCalendarObject("date_deb_p", true, {
				isWinHeader: false,
				isWinDrag: false
			});
				cal1.setSkin("classic");
				cal1.setDateFormat("%d/%m/%Y");
				cal1.loadUserLanguage("fr");
				
				cal2 = new dhtmlxCalendarObject("date_fin_p", true, {
				isWinHeader: false,
				isWinDrag: false
			});
				cal2.setSkin("classic");
				cal2.setDateFormat("%d/%m/%Y");
				cal2.loadUserLanguage("fr");
		}}
		);
}

function supp_velo(id_v,table,id_mag){
	if(confirm('Voulez vous supprimer ce v\351lo ?')){
		var url = 'ajax/ajax_reservations.php';
		var pars = 'action=supp_velo&id_v='+id_v+'&table='+table; // variables POST
		var myAjax = new Ajax.Request(
			url, 
			{method: 'post', parameters: pars,
			onComplete:function(rep){
				if(table=='resa_tarifs_colonnes'){
					window.location.reload(true);return false;
				}
				else{
					aff_tab_velos('conteneur_tab_velos'+id_mag,table,id_mag);
					aff_tab_tarifs("conteneur_tab_tarifs");
				}
			}}
			);
	}
}

function supp_resa(deb,id_r,id_client){
	if(confirm('Voulez vous supprimer cette r\351servation ?')){
		var url = 'ajax/ajax_reservations.php';
		var pars = 'action=supp_resa&id_r='+id_r+'&id_client='+id_client; // variables POST
		var myAjax = new Ajax.Request(
			url, 
			{method: 'post', parameters: pars,
			onComplete:function(rep){
				//aff_tab_reservations(deb,"conteneur_tab_reservations",'','');
				window.location.reload(true);return false;
			}}
			);
	}
}

function supprimer(table,nom_id,id){ // Fonction générique pour supprimer
	if(confirm('Voulez vous supprimer cet \351l\351ment ?')){
		var url = 'ajax/ajax_reservations.php';
		var pars = 'action=supp&id='+id+'&table='+table+'&nom_id='+nom_id; // variables POST
		var myAjax = new Ajax.Request(
			url, 
			{method: 'post', parameters: pars,
			onComplete:function(rep){
				window.location.reload(true);return false;
			}}
			);
	}
}

function ajout_velo(table,id_mag){
	var intitule_v=document.getElementById('champs_ajout_velo'+id_mag).value;
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=ajout_velo&intitule_v='+escape(intitule_v)+'&table='+table+'&id_mag='+id_mag; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			if(table=='resa_tarifs_colonnes'){
				window.location.reload(true);return false;
			}
			else{
				aff_tab_velos('conteneur_tab_velos'+id_mag,table,id_mag);
				aff_tab_tarifs("conteneur_tab_tarifs");
			}
		}}
		);
}

function ajout_reduc(){
	var date_deb=document.getElementById('date_deb').value;
	var date_fin=document.getElementById('date_fin').value;
	var discount=document.getElementById('discount').value;
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=ajout_reduc&date_deb='+date_deb+'&date_fin='+date_fin+'&discount='+discount; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			//aff_tab_discount("conteneur_gestion_discount");
			window.location.reload(true);return false;
		}}
		);
}

function ajout_periode_close(){
	var date_deb=document.getElementById('date_deb_p').value;
	var date_fin=document.getElementById('date_fin_p').value;
	var url = 'ajax/ajax_reservations.php';
	var pars = 'action=ajout_periode_close&date_deb='+date_deb+'&date_fin='+date_fin; // variables POST
	var myAjax = new Ajax.Request(
		url, 
		{method: 'post', parameters: pars,
		onComplete:function(rep){
			//alert(rep.responseText);
			//aff_tab_period_resa_closed("conteneur_periode_resa_closed");
			window.location.reload(true);return false;
		}}
		);
}

function test_navigateur(){
	//alert(navigator.userAgent);
	
	var compatible=0;
	
	// Opéra en premier car sinon détecté en tant que IE
	if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Opera/x.x or Opera x.x (ignoring remaining decimal places);
	 var oprversion=new Number(RegExp.$1) // capture x.x portion and store as a number
	 if (oprversion>=8)
		compatible=1;
	}
	else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
	 var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
	 if (ieversion>=7)
		compatible=1;
	}
	else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
	 var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
	 if (ffversion>=2)
		compatible=1;
	}
	else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for GG Chrome
	  compatible=1;
	}
	else if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Safari
	  compatible=1;
	}
	
	if(compatible==0)
		document.location.href="spip.php?rubrique10&err=navig"
}
