/********************************************/
/*			  VERIF FORMULAIRE				*/
/********************************************/

function checkMail(form) {
			
			var x = document.forms[form].email.value;
									
			if (x) {
										
			var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (filter.test(x)) return true;
			else return false;
			}
			
			else return false;
										
}


function retour_vide(f, field, tr) {
									
	var e = eval("document.forms['"+f+"']" +"." +field +".value");
								
	if ((e == "") || (e == null) || isblank(e)) {
	
	return tr + '\n';
	}

	else return "";
									
}



function isblank(s) {

	for (var i = 0; i < s.length; i++) {
	var c = s.charAt(i);
	if ((c != ' ') && (c !='\n') && (c != '')) return false;
	}	
	return true;
}


function verify_fr(f) {


var retour;
var empty_fields = "";
var errors = "";


empty_fields += retour_vide(f, 'nom', 'Nom');
empty_fields += retour_vide(f, 'prenom', 'Prenom');
empty_fields += retour_vide(f, 'email', 'Adresse Email');
empty_fields += retour_vide(f, 'adresse', 'Adresse Postale');
empty_fields += retour_vide(f, 'codepostal', 'Code Postal');
empty_fields += retour_vide(f, 'ville', 'Ville');
empty_fields += retour_vide(f, 'id_pays', 'Pays');

if (document.forms[f].modif_password.checked || document.forms[f].modif_password.value == "true") {
empty_fields += retour_vide(f, 'pwd', 'Mot de passe');
empty_fields += retour_vide(f, 'pwd_verif', 'Vérification du mot de passe');
}


if (!checkMail(f) || retour_vide(f, 'email', 'Adresse Email') != "") {
errors+= "Adresse Email non valide. \n";
}

if (!retour_vide(f, 'pwd', 'Mot de passe') && !retour_vide(f, 'pwd_verif', 'Mot de passe')) {
	
	if (document.forms[f].pwd.value !==  document.forms[f].pwd_verif.value) {
	
		errors  ="Les mots de passe ne correspondent pas";
		
	}
}


//En cas d'erreur, affiche un message d'alerte.
										
if (empty_fields || errors) {  

retour = "Le formulaire contient des erreurs. Veuillez les corriger et revalider.\n\n";

}							

if (empty_fields) {
retour += "Les champs obligatoires suivants sont vides :\n";																
retour += empty_fields + "\n";
}


if (retour) {
retour += "\n" + errors;
alert(retour);
} else {
document.forms[f].submit();
}

return false;


}


function verify_en(f) {


var retour;
var empty_fields = "";
var errors = "";


empty_fields += retour_vide(f, 'nom', 'Last Name');
empty_fields += retour_vide(f, 'prenom', 'First Name');
empty_fields += retour_vide(f, 'email', 'Email address');
empty_fields += retour_vide(f, 'adresse', 'Street address');
empty_fields += retour_vide(f, 'codepostal', 'Zip Code');
empty_fields += retour_vide(f, 'ville', 'City');
empty_fields += retour_vide(f, 'id_pays', 'Country');
empty_fields += retour_vide(f, 'pwd', 'Password');
empty_fields += retour_vide(f, 'pwd_verif', 'Password Confirmation');

if (!checkMail(f) || retour_vide(f, 'email', 'Email address') != "") {
errors+= "Invalid email address. \n";
}

if (!retour_vide(f, 'pwd', 'Password') && !retour_vide(f, 'pwd_verif', 'Password')) {
	
	if (form.pwd.value !=  form.pwd_verif.value) {
	
		errors  ="Passwords don't match";
		
	}
}


//En cas d'erreur, affiche un message d'alerte.
										
if (empty_fields || errors) {  

retour = "The form contains errors. Please correct its and resubmit the form.\n\n";

}							

if (empty_fields) {
									
										
retour += "The following compulsory fields are empty :\n";
																	
retour += empty_fields + "\n";

}


if (retour) {
retour += "\n" + errors;
alert(retour);
} else {
f.submit();
}

return false;


}

function modifPassword(ele) {

	if (ele.checked) {
	document.getElementById('tbl_password').style.display='block';
	} else {
	document.getElementById('tbl_password').style.display='none';
	}
}



/********************************************/
/*			  ROLLOVER MENU					*/
/********************************************/


function changeImages()

{

	if (document.images) {

		for (var i=0; i<changeImages.arguments.length; i+=2) 

		{

			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];

		}

	}

}

/********************************************/
/*			 	   POPUP					*/
/********************************************/

function newWindow(mypage,myname,w,h,features) {

  if(screen.width){
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
  }else{winl = 0;wint =0;}
  if (winl < 0) winl = 0;
  if (wint < 0) wint = 0;
  var settings = 'height=' + h + ',';
  settings += 'width=' + w + ',';
  settings += 'top=' + wint + ',';
  settings += 'left=' + winl + ',';
  settings += features;
  win = window.open(mypage,myname,settings);
  win.window.focus();
  
}


function clearInputKeywords(val) {
	if (val == "Mots Clés") {
	$('keywords').value = '';
	}
}

function clearInputNewsletter(champ,val) {

	if (champ == 'nom') {
		if (val == "Votre Nom") {
			$('newsletter_nom').value = '';
		}
	}
	
	if (champ == 'email') {
		if (val == "Votre Email") {
			$('newsletter_email').value = '';
		}
	}
	
	
}

function removeProductFromCart(num_item) {
	$('remove').value = num_item;
	document.forms['shopping_cart'].submit();
}
/********************************************/
/*			 	   AJAX						*/
/********************************************/

function serializeForm(formName,val,index) {

var theForm = document.forms[formName];

if (!val) {
var serializedForm = new Array();
} else {
	if (!index) {
	var valSelected;
	} else {
	var valSelected = new Array();
	}
}

   for(i=0; i<theForm.elements.length; i++){
 
   

      if(theForm.elements[i].type == "text" || theForm.elements[i].type == "textarea" || theForm.elements[i].type == "button" || theForm.elements[i].type == "hidden"){
      	if (!val) {
      		serializedForm.push(theForm.elements[i].name+"=" + theForm.elements[i].value);
      	} else {
      		if (theForm.elements[i].name == val) {
      			valSelected = theForm.elements[i].value;
      		}
      	}
      }
      
      else if((theForm.elements[i].type == "checkbox" || theForm.elements[i].type == "radio") && theForm.elements[i].checked){
      
      	if (!val) {
     	 	serializedForm.push(theForm.elements[i].name+"=" + theForm.elements[i].value);
     	 } else {
     	 	if (theForm.elements[i].name == val) {
      			valSelected = theForm.elements[i].value;
      		}
     	 }
      }
      
      else if(theForm.elements[i].type == "select-one") {
      	if (!val) {
      		serializedForm.push(theForm.elements[i].name+"=" +theForm.elements[i].options[theForm.elements[i].selectedIndex].value);
      	} else {
      		if (theForm.elements[i].name == val) {
      			valSelected = theForm.elements[i].options[theForm.elements[i].selectedIndex].value;
      		}
      	}
      }
  
   }
  
  if (!val) {
  return serializedForm.join('&');
  } else {
  return valSelected;
  }
} 




// Recalcule le prix du produit consulté en fonction des formats et encadrements choisis

function loadAjax(urlAjax,data) {


var xhr_object; 
    try {  xhr_object = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e) 
    {
        try {   xhr_object = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2) 
        {
          try {  xhr_object = new XMLHttpRequest();     }
          catch (e3) {  xhr_object = false;   }
        }
     }



xhr_object.open("POST", urlAjax, true);

	
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.setRequestHeader("Connection", "close");

xhr_object.setRequestHeader("Content-length", data.length);
xhr_object.send(data);



return xhr_object;

}



function calculPrix(ele) {
	
	
	if (ele == "format") {
	
			var current_encad;
			
			for (i=0;i<document.forms["product"].encadrement.length;i++) {
				if (document.forms["product"].encadrement[i].selected) {
				current_encad = document.forms["product"].encadrement[i].value;
				}
			}
			
			updateEncadrements();
	}
	
	
	urlAjax = "/ajax.php?op=calculPrix&id_product="+document.getElementById('id_product').value+"&product_price="+document.getElementById('product_price').value;
		
	ajaxCalculPrix = loadAjax(urlAjax,serializeForm('product'));


	ajaxCalculPrix.onreadystatechange = function() { 
	 
	 
	 if(ajaxCalculPrix.readyState == 4) {
	 	
	 	//alert(ajaxCalculPrix.responseText);
		document.getElementById("prix_total").innerHTML = ajaxCalculPrix.responseText;
		
		
		// Si l'internaute change la taille de son tirage, on selectionne le dernier encadrement choisi
		
		if (ele == "format") {
			
			if (current_encad) {
				
				for (i=0;i<document.forms["product"].encadrement.length;i++) {
					if (document.forms["product"].encadrement[i].value == current_encad) {
					document.forms["product"].encadrement[i].selected = true;
					
					} else {
					document.forms["product"].encadrement[i].selected = false;
					}
				
				}
				
			}
			
		}
			
	}
		
	} 
	
	
}


function getSelectedElement(form) {

	var checkedEle = false;
	
	for (i=0;i<form.length;i++) {
		if (form[i].checked) {
		checkedEle = form[i].getAttribute('id');
		}
		
	}
	
	return checkedEle;
	
}

function updateEncadrements() {
	
	
	
	// Récupère le format sélectionné
	selected_format = serializeForm('product','format');
	
	
	// Récupère l'encadrement sélectionné
	selected_encadrement = getSelectedElement(document.forms['product']['encadrement']);
	
	urlAjax = "/ajax.php?op=changeEncadrement&selected_format="+selected_format+"&selected_encadrement="+selected_encadrement;
	
	ajaxUpdateEncadrements = loadAjax(urlAjax,serializeForm('product'));


	ajaxUpdateEncadrements.onreadystatechange = function() { 
	 
	 if(ajaxUpdateEncadrements.readyState == 4) {
	 	
	 	
	document.getElementById("liste_encadrements").innerHTML = ajaxUpdateEncadrements.responseText; 
		
	
		
		
		// Récréé une instance de multibox pour le contenu dynamique (encadrements)
		/*
		var box2 = {};
			window.addEvent('domready', function(){
				box2 = new MultiBox('mb2', {descClassName: 'multiBoxDesc', useOverlay: true});
		});
		*/		
		
	}
	
	}
	
	
}

function toDOM(strHTML) {
// Define the wrapper and his level
	var wrapper = ['', ''], level = 0;
	if (new RegExp('^&lt;thead|^<tfoot|^<tbody').test(strHTML)) wrapper = ['<table>', '</table>'], level = 1;
	else if (new RegExp('^<tr').test(strHTML)) wrapper = ['<table><tbody>', '</tbody></table>'], level = 2;
	else if (new RegExp('^<th|^<td').test(strHTML)) wrapper = ['<table><tbody><tr>', '</tr></tbody></table>'], level = 3;
	else if (new RegExp('^<li').test(strHTML)) wrapper = ['<ul>', '</ul>'], level = 1;
	else if (new RegExp('^<dt|^<dd').test(strHTML)) wrapper = ['<dl>', '</dl>'], level = 1;
 
	// Convert the string into DOM nodes (keeping text nodes)
	var html = document.createElement('div');
	html.innerHTML = wrapper[0] + strHTML + wrapper[1];
	html = html.childNodes;
 
	// Strip the wrapper
	for (;level > 0; level--) html = html[0].childNodes;
 
	return html;

}



function updateCouleursEncadrements(id) {
	
	if (id !=0) {
	
	urlAjax = "/ajax.php?op=changeCouleursEncadrements&selected_encadrement="+id;
	
	
	ajaxUpdateCouleursEncadrements = loadAjax(urlAjax,serializeForm('product'));


	ajaxUpdateCouleursEncadrements.onreadystatechange = function() { 
	 
	 if(ajaxUpdateCouleursEncadrements.readyState == 4) {
	 	
	 	
	 	if (ajaxUpdateCouleursEncadrements.responseText!="false") {
	 		
	 		
	 		document.getElementById("liste_couleurs_encadrements").innerHTML = ajaxUpdateCouleursEncadrements.responseText;
	 		
	 		
	 		var responseHTML = toDOM(ajaxUpdateCouleursEncadrements.responseText);
	 		nb_elements = responseHTML[0].getElementsByTagName('option').length;
	 		
	 		if (nb_elements > 1 ) {
	 		document.getElementById("couleurs_encadrements").style.display="block";
	 		// Multibox contenu dynamique (couleurs encadrements)
				var box3 = {};
				box3 = new MultiBox('mb3', {descClassName: 'multiBoxDesc', useOverlay: true});
			} else {
			
			document.getElementById("couleurs_encadrements").style.display="none";
			}
			
		} else {
		
			document.getElementById("couleurs_encadrements").style.display="none";
		}
		
	}
	
	}
	
	} else {
	
	document.getElementById("couleurs_encadrements").style.display="none";
	}
	

}



function submitFormLoginFlash(email,pwd) {
	document.getElementById('log_flash_email').value=email;
	document.getElementById('log_flash_password').value=pwd;
	document.forms['login_flash'].submit();
}

function submitFormSearch(search) {
	document.getElementById('search_flash_str').value=search;
	document.forms['search_flash'].submit();
}

function submitAtos(val) {

// Check si le client a accepté les conditions de ventes

if (document.getElementById('conditions_ventes').checked) {




var val_payment = document.createElement("input");
val_payment.setAttribute('type','hidden');
val_payment.setAttribute('name','val_payment');
val_payment.setAttribute('value',val);

var val_x = document.createElement("input");
val_x.setAttribute('type','hidden');
val_x.setAttribute('name',val+'_x');
		
var val_y = document.createElement("input");
val_y.setAttribute('type','hidden');
val_y.setAttribute('name',val+'_y');

document.forms[0].appendChild(val_payment);

if (val !="CHEQUE") {
switch (val) {

	case "CB":
	
		val_x.setAttribute('value','31');
		val_y.setAttribute('value','28');
	
	break;
	
	case "VISA":
	
		val_x.setAttribute('value','31');
		val_y.setAttribute('value','7');
		
	break;
	
	case "MASTERCARD":
		
		val_x.setAttribute('value','33');
		val_y.setAttribute('value','24');
		
	break;
}
	
	document.forms[0].appendChild(val_x);
	document.forms[0].appendChild(val_y);
	
	
	// Formulaire récupérant le commentaire et qui enclenche le process d'enregistrement du cart
	document.forms[0].submit();

// PAIEMENT PAR CHEQUE	
} else {

//alert('paiement par chèque !');
document.forms[0].submit();
}

} else {

	alert('Vous devez accepter nos conditions de vente');

}

}


function switchPaiementEncadrement(type) {
	
	if (type=="a_retirer") {
	
		// Cacher les infos de livraison
		document.getElementById('infos_livraison').style.display='none';
		
		// Titre devis / paiement
		document.getElementById('titre_paiement_a_retirer').style.display='block';
		document.getElementById('titre_paiement_devis_livraison').style.display='none';
		
		// Afficher les btns de paiement
		document.getElementById('paiement_a_retirer').style.display='block';
		// Cacher la demande de devis
		document.getElementById('paiement_devis_livraison').style.display='none';
		
		// Afficher la case conditions de ventes
		document.getElementById('case_conditions_vente').style.display='block';
	} else {
	
		// Afficher les infos de livraison
		document.getElementById('infos_livraison').style.display='block';
		
		
		// Titre devis / paiement
		document.getElementById('titre_paiement_a_retirer').style.display='none';
		document.getElementById('titre_paiement_devis_livraison').style.display='block';
		
		// Cacher les btns de paiement
		document.getElementById('paiement_a_retirer').style.display='none';
		// Afficher la demande de devis
		document.getElementById('paiement_devis_livraison').style.display='block';
		
		// Cacher la case conditions de ventes
		document.getElementById('case_conditions_vente').style.display='none';
	
	}

}



