var divName = 'tooltip';
// position(décalage) de la boite info  par rapport à la souris
var offX = 5;
var offY = 5;

// fonction qui recupere l'objet
function findObj(theObj, theDoc)
{
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  {
	theDoc = parent.frames[theObj.substring(p+1)].document;
	theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++)  
	foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
	foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}

// déplacement Horizontal
function mouseX(evt) {
	if (!evt) evt = window.event;
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft);			
		else return 0;
}

// déplacement Vertical
function mouseY(evt) {
	if (!evt) evt = window.event;
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); 						
		else return 0;
}

function follow(evt) {
		var obj = findObj(divName).style;
		obj.visibility = 'visible';
		obj.left = (parseInt(mouseX(evt))+offX) + 'px';
		obj.top = (parseInt(mouseY(evt))+offY) + 'px';
}

function follow2(evt) {
		var obj = findObj(divName).style;
		obj.visibility = 'visible';
		obj.right = (parseInt(mouseX(evt))+offX) + 'px';
		obj.top = (parseInt(mouseY(evt))+offY) + 'px';
}

function createFollowDiv(desc){
	document.onmousemove = follow;
	findObj("desc").innerHTML="<span class='texte'>"+desc+"</span>";
}

function createFollowDivArab(desc){
	document.onmousemove = follow;
	findObj("desc").innerHTML="<div class='texteArab' dir='rtl'>"+desc+"</div>";
}

function createFollowDiv2(desc){	
	document.onmousemove = follow2;
	findObj("desc").innerHTML="<span class='texte'>"+desc+"</span>";
}

function deleteFollowDiv(){
	var obj = findObj(divName).style;
	obj.visibility = "hidden";
	document.onmousemove = "";
}

// Fonction qui transmet le pays d'achat a la 
// liste de selection du pays de résidence
function miseAjourSelection(paysAchat){
	findObj("form_pays").value = paysAchat;
}

// Fonction qui verifie le bon format des num de tel
function verifTel(Data,messIncorrect){
	numChars = ".0123456789";
	var isNum = true;
	var mess = "";
	var index = 0;
	if(Data != "") 	{
		while ((index < Data.length) && (isNum)){
			isNum = (numChars.indexOf(Data.charAt(index)) != -1);
			index ++;
		}
		if (!isNum) {
			findObj("affichage_retour").innerHTML = messIncorrect;
		}	
	}
}

// Vérifie si un champ est rempli
function verifRempli(origine,erreur,value)
{	
	if(value != "")	{
		// le chamsp est rempli, suppression du message d'erreur
		erreur = "";
	}
	else {
		erreur = erreur;
	}
	findObj("affichage_retour").innerHTML = erreur;
}

function affich_div(val1,val2) {
	findObj(val1).style.display = "block";
	findObj(val2).style.display = "none";
}

function affichage() {
	findObj("table_pdv").style.display = "block";
	form_garantie.form_pdv_enseigne.focus();
}

function cacher() {
	findObj("table_pdv").style.display = "none";
}
	
// Fonction de vérification des champs obligatoires
function verifFormulaire(message,mess_pdv,mess_email) {

	var email = findObj("form_email").value;
	var imei = findObj("form_imei").value;
	var datej = findObj("form_date_achatj").value;
	var datem = findObj("form_date_achatm").value;
	var datea = findObj("form_date_achata").value;
	var pays = findObj("form_pays_achat").value;
	var pdv_b = findObj("form_pdv")[0].checked;
	var pdv_i = findObj("form_pdv")[1].checked;
	if(pdv_b) {
		var pdv_enseigne = findObj("form_pdv_enseigne").value;
		var pdv_adresse = findObj("form_pdv_adresse").value;
		var pdv_cp = findObj("form_pdv_cp").value;
		var pdv_ville = findObj("form_pdv_ville").value;
	}
	else {
		var pdv_enseigne = "a";
		var pdv_adresse = "a";
		var pdv_cp = "a";
		var pdv_ville = "a";
	}
	if(pays =="" || pdv_ville=="" || pdv_enseigne=="" || pdv_adresse=="" || pdv_cp=="" || (email=="" || email=="\n")|| datej=="" || datem=="" || datea=="" || (imei=="" || imei=="\n"))	{
		findObj("affichage_retour").innerHTML=message;
	}
	else {
		// Verification pour l'IMEI et l'email
		var aff_imei = findObj("affichage_imei").innerHTML;
		var aff_email = findObj("affichage_email").innerHTML;
		if(aff_email!="" && aff_email!="\n")
			findObj("form_email").focus();
		else {
			if(aff_imei!="" && aff_imei!="\n") 
				findObj("form_imei").focus();
			else {
				if(!pdv_b && !pdv_i) 
					findObj("affichage_retour").innerHTML=mess_pdv;
				else
					form_garantie.submit();		
			}			
		}
	}
}

function verifMail(val) {
	// Fonction de controle de la validité d'un mail
	aro=val.indexOf('@');
	p=val.lastIndexOf('.');
	if (p<1 || p==(val.length-1) || aro<1 || aro==(val.length-1) || p-1<=aro) 
		return(false);
	else
		return(true);
}

function envoi_fichier() {
	// pour eviter l'erreur sous firefox
	if (document.all) document.all.frame_traitement.style.display="";
	findObj("frame_traitement").style.display="";
	document.form.submit();
}

function ouvrirConstante(nom,langue) {
	window.open("popConstante.php?nom="+nom+"&langue="+langue,"Modification","height=800, width=500, resizable=yes");
}

function creerConstante() {
	window.open("popConstante.php","Modification","height=660, width=420, resizable=yes");
}

/******************************************** AJAX FUNCTION************************************/
// instanciation de l'objet XMLHTTPRequest permettant l'appel de scripts php (ou autre web)
function createXMLHttpRequest() {
    if (window.ActiveXObject)
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    else if (window.XMLHttpRequest)
        xmlHttp = new XMLHttpRequest();		
}

// Gestion du retour pour la verification sur l'IMEI
function handleStateChange_param() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
			findObj("affichage_imei").innerHTML = "";
			findObj("affichage_imei").innerHTML = xmlHttp.responseText;			
		}
   }
}

// Gestion du retour pour la verification sur l'email
function handleStateChange_param2() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
			findObj("affichage_email").innerHTML = "";
			findObj("affichage_email").innerHTML = xmlHttp.responseText;			
		}
   }
}

// Fonction pour les contrôles à effectuer sur l'email et le numéro IMEI
function verifInfos(param,value,message,message2){
	createXMLHttpRequest();
	if(param == "imei_id")
	{
		if(value == "")
		{
			// IMEI vide, on retourne l'erreur associée
			findObj("affichage_imei").innerHTML = message;
		}
		else
		{
			if(value.length == 15)
			{
				xmlHttp.onreadystatechange = handleStateChange_param;
				xmlHttp.open("GET", "scripts/verifInfos.php?param=" + param + "&value=" + value, true);
   				xmlHttp.send(null);
			}
			else
			{
				findObj("affichage_imei").innerHTML = message2;				
			}
				
		}
	}
	if(param == "usr_email")
	{
		if(value == "")
		{
			// Email vide, on retourne l'erreur associée
			findObj("affichage_email").innerHTML = message;
		}
		else
		{			
			// Fonction de controle de la validité d'un mail
			val=findObj("form_email").value;
			var test_mail = verifMail(val);
			if (test_mail)
			{
				xmlHttp.onreadystatechange = handleStateChange_param2;
				xmlHttp.open("GET", "scripts/verifInfos.php?param=" + param + "&value=" + value, true);
   				xmlHttp.send(null);
			} 
			else
			{				
				findObj("affichage_email").innerHTML = message2;
			}
		}
	}
}

/****************************** FUNCTION DE LA BOUTIQUE ************************************/
// Fonction vérifiant la page de présentation pour ne pas permettre de poster le formulaire
// si aucune quantité>0 n'est saisie pour un des produits.
function verifFormBoutik (message)
{
	var form_boutik = document.forms["form_boutik"];
	var iNbValues=0;
	
	// Vérifie au minimum une quantié est sélectionnée sur un produit 
	// => détecter chaque Select et déterminer si une option différente de 0 est sélectionnée
	for (var i=0; i < form_boutik.elements.length; i++) {
		if (form_boutik.elements[i].name=="form_qte[]") {
			if (form_boutik.elements[i].selectedIndex != 0) iNbValues += 1;
		}
	}
	// Quantité à 0, on retourne l'erreur associée sinon on poste formulaire
	if(iNbValues > 0) {
		form_boutik.submit();
	} else {
		findObj("qty_error").innerHTML = message;}
}

// Fonction de vérification des champs obligatoires
function verifFormIdentify(message,mess_email,mess_mdp,mess_confirm)
{
	// Récupère toutes les valeurs du formulaire
	var email = findObj("form_email").value;
	var nom = findObj("form_nom").value;
	var pnom = findObj("form_prenom").value;
	var mdp = findObj("form_mdp").value;
	var mdp_confirm = findObj("form_confirm").value;
	var civ1 = findObj("form_civilite")[0].checked;
	var civ2 = findObj("form_civilite")[1].checked;
	// Verification que tous les champs obligatoires soit renseignés
	if(nom =="" || pnom=="" || mdp=="" || mdp_confirm=="" || email=="" || (civ1=="" && civ2==""))
		{findObj("affichage_email").innerHTML=message;}
	else
	{
		if(email!="")
		{
			// Vérification de la validité du mail
			aro=email.indexOf('@');
			p=email.lastIndexOf('.');
			if (p<1 || p==(email.length-1) || aro<1 || aro==(val.length-1) || p-1<=aro)
				{findObj("affichage_email").innerHTML=mess_email;} 
			else if(mdp != "")
			{
				// Vérifie qu'il y est plus de quatre caractères
				if(mdp.length < 4)
					{findObj("affichage_email").innerHTML=mess_mdp;}
				// Vérifie que la confirm == mot de passe	
				else if(mdp!=mdp_confirm)
						{findObj("affichage_email").innerHTML=mess_confirm;}	
						else
							{form_identifcation.submit();}
			}
		}
	}
}

// Fonction de vérification des champs obligatoires
function verifFormCustomers(message)
{
	// Récupère toutes les valeurs du formulaire
	var nom = findObj("form_nom").value;
	var pnom = findObj("form_prenom").value;
	var adresse = findObj("form_adresse1").value;
	var cp = findObj("form_cp").value;
	var city = findObj("form_ville").value;
	var pays = findObj("form_pays").value;
		
	// Verification que tous les champs obligatoires soit renseignés
	if(nom =="" || pnom=="" || adresse=="" || cp=="" || city=="" || pays=="0") 
			findObj("affichage_email").innerHTML=message;
		else  
			form_delivery.submit();		
		
}

// Fonction de vérification des champs obligatoires
function verifFormDelivery(message,pays_iso)
{
	// Récupère toutes les valeurs du formulaire
	var nom = findObj("form_nom").value;
	var pnom = findObj("form_prenom").value;
	var adresse = findObj("form_adresse1").value;
	var cp = findObj("form_cp").value;
	var city = findObj("form_ville").value;
	var pays = findObj("form_pays").value;
	var tel = findObj("form_tel").value;
	var societe = findObj("form_pdv")[1].checked;
	var particulier = findObj("form_pdv")[0].checked;
	var cgv = findObj("form_cgv").checked;
	
	if(societe) {
		var name_societe = findObj("form_society").value;
		var id_tva = findObj("form_id_tva").value;
		var siren = findObj("form_siren").value;
		var siret = findObj("form_siret").value;
	}
	else 
	{
		var name_societe = "NULL";
		var id_tva = "NULL";
		var siren = "NULL";
		var siret = "NULL";
	}
	
	if (pays_iso=="FR" || pays_iso=="fr") {
		// Verification que tous les champs obligatoires soit renseignés
		if((societe==false && particulier==false) || name_societe=="" || id_tva== "" || siren=="" || siret=="" || nom =="" || pnom=="" || adresse=="" || cp=="" || city=="" || pays=="0" || tel=="" || cgv==false) {
			findObj("affichage_email").innerHTML=message;
		}
		else 
			form_delivery.submit();
	}
	else {
		
		// Verification que tous les champs obligatoires soit renseignés
		if((societe==false && particulier==false) || name_societe=="" || nom =="" || pnom=="" || adresse=="" || cp=="" || city=="" || pays=="0" || tel=="" || cgv==false) 
			findObj("affichage_email").innerHTML=message;
		else  
			form_delivery.submit();		
		
	}
}

var newWin = null;
function closeWin(){
if (newWin != null){
if(!newWin.closed)
newWin.close();
}
}
function popUp(strURL,strType,strHeight,strWidth) {
closeWin();
var strOptions="";
if (strType=="console") strOptions="resizable,scrollbars,height="+strHeight+",width="+strWidth;
if (strType=="fixed") strOptions="status=no,scrollbars,height="+strHeight+",width="+strWidth;
if (strType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+strHeight+",width="+strWidth;
newWin = window.open(strURL, 'newWin', strOptions);
newWin.focus();
} 


// Fonction de vérification de sélection du mode de paiement
function verifCheckPayment(message)
{
	// Récupère toutes les valeurs du formulaire
	var CheckPayment1 = findObj("form_modep")[0].checked;
	var CheckPayment2 = findObj("form_modep")[1].checked;	

	// Verification que tous les champs obligatoires soit renseignés
	if(CheckPayment1 == false && CheckPayment2 == false)
		findObj("errorcheck_payment").innerHTML=message;
	else 
		form_delivery.submit();
}

//--------------------------------------------------
// Affichage mobile Pfin
//--------------------------------------------------
function ajax_product(id)
{
	texte = product(id);
	//texte = 'test';
	document.getElementById('product_pfin').innerHTML = texte;
}

function product(get)
{
	if(window.XMLHttpRequest) // FIREFOX
	xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) // IE
	xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
	
	return(false);
	xhr_object.open("GET", 'product_pfin.php?prod='+get, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
}
//--------------------------------------------------
// FIN Affichage mobile Pfin
//----------------------------------


//------------------------------------------------------------------------------------
//PRECHARGEMENT DES IMAGES
// L'extension de toutes les images
var ext = ".jpg";

// Si toutes les images sont dans le meme repertoire et ont la meme extension
// Le nom de chaque image a precharger, peu importe l'ordre
var liste_images = new Array('photo_on','visuel1_on','visuel2_on','logo_on','animation_on');

// Si les images sont dans des repertoires differents ou ont des extensions differentes, indiquer dans le tableau precedent le chemin et l'extension de chaque image

// Un tableau qui permettra le stockage 'virtuel' des images pour les precharger
document.image_chargee = new Array();


// La fonction de prechargement
function prechargement() {

// Pour chaque image
	for ( i = 0; i < liste_images.length; i++ ) {

// on cree virtuellement une image
		document.image_chargee[i] = new Image;

// On en indique la source en assemblant le chemin, le nom et l'extension
		document.image_chargee[i].src = chemin + liste_images[i] + ext;

//Si les images sont dans des repertoires differents ou ont des extensions differentes, ne pas mettre 'chemin + liste_images[i] + extension' mais uniquement les variables necessaires
	}
}
// Et le navigateur place dans son cache toutes les images !!
//-------------------------------------------------------------------------------------


