// JavaScript Document
//
////////////////////////////////////////////
// fonction pour detecter les navigateurs //
////////////////////////////////////////////
function Browser() {
	if (navigator.userAgent.indexOf('Opera') !=-1)
	this.opera = true;
	if (navigator.userAgent.indexOf('Konqueror') !=-1)
	this.Konqueror = true;
	if (navigator.userAgent.indexOf('Safari') !=-1)
	this.safari = true;
	if (navigator.userAgent.indexOf('Firefox/1.0') !=-1)
	this.ff10 = true;
	if (navigator.userAgent.indexOf('Firefox/1.5') !=-1)
	this.ff15 = true;
	if (navigator.userAgent.indexOf('Firefox/2.0') !=-1)
	this.ff20 = true;
	if (navigator.userAgent.indexOf('Firefox/3.0') !=-1)
	this.ff30 = true;
	if (navigator.userAgent.indexOf('Netscape/7.0') !=-1)
	this.netscape = true;
	if (navigator.userAgent.indexOf('MSIE 7') != -1)
	this.ie7 = true;
	if (navigator.userAgent.indexOf('MSIE 6') != -1)
	this.ie6 = true;
	if (navigator.userAgent.indexOf('iPhone') != -1)
		   /* iPhone user pour le fun*/
	this.iphone = true;
}
///////////////////////////////////////////////////////////////////////////////////////////////
//En premier lieu une fonction generique d'enregistrment d'observateurs                      //
//focntion portable d'association de gestionnaire                                            //
//compatible entre msie et le reste du monde                                                 //
///////////////////////////////////////////////////////////////////////////////////////////////
function addListener(element, baseName, handler){
	if (element.addEventListener)
	 element.addEventListener(baseName, handler, false);
	else if (element.attachEvent)
	 element.attachEvent('on' + baseName, handler);
}
///////////////////////////////////////////////////////////////////////////////////////////////
// Fonction generique en AJAX pour interroger le fichier php qui retire les couleurs o� tout //
// autre chose. URL est l'adresse vers laquelle on interroge et TARGET est l'endroit o� l'on //
// doit afficher la reponse(ici en format TEXTE)                                             //
// Ici c'est purement une requete SYNCHRONE.                                                 //
///////////////////////////////////////////////////////////////////////////////////////////////
function verCosa(url,target) {
//je demarre en construisant mon objet de requete ajax en fonction du navigateur
if (this.ie7 || this.ie6){
	 var requeteAJAX = new ActiveXObject("Microsoft.XMLHTTP");
	}
	//sous les autres navigateurs
	else {
	  var requeteAJAX = new XMLHttpRequest();
	}
	requeteAJAX.open('GET',url, false);
	requeteAJAX.send(null);
	document.getElementById(target).innerHTML = requeteAJAX.responseText;
	//alert(requeteAJAX.responseText); pour le debogage
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// le meme type de requete ajax mais avec un message d'attente pendant  le chargement          //
/////////////////////////////////////////////////////////////////////////////////////////////////
function viewReq(url,target,messageatente) {
//je demarre en construisant mon objet de requete ajax en fonction du navigateur
if (this.ie7 || this.ie6){
	 var reqAJAX = new ActiveXObject("Microsoft.XMLHTTP");
	}
	//sous les autres navigateurs
	else {
	  var reqAJAX = new XMLHttpRequest();
	}
	reqAJAX.open('GET',url, false);
	reqAJAX.send(null);
	if (reqAJAX.readyState != 4) {
    // la reponse est en cours de traitement
	document.getElementById(target).innerHTML = messageatente;
} else {
    // alors on affiche si l'etat change
	document.getElementById(target).innerHTML = reqAJAX.responseText;
}
	//alert(requeteAJAX.responseText); pour le debogage
}
/////////////////////////////////////////////////////////////////////////////////////
// retourne un objet xmlHttpRequest pour utiliser dans une autre fonction.         //
// methode compatible entre tous les navigateurs (IE/Firefox/Opera)comme verCosa   //
/////////////////////////////////////////////////////////////////////////////////////
function getXMLHTTP(){
  var xhr=null;
  if(window.XMLHttpRequest) // Firefox et autres
  xhr = new XMLHttpRequest();
  else if(window.ActiveXObject){ // Internet Explorer
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e1) {
        xhr = null;
      }
    }
  }
  else { // XMLHttpRequest non support� par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  }
  return xhr;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//insere une regle avec son nom dans la css chargée en memoire...pour ne pas alourdir plus la css //
//et creer plus facilement des widgets                                                            //
////////////////////////////////////////////////////////////////////////////////////////////////////
function insereCSS(nom,regle){
  if (document.styleSheets) {
    var I=document.styleSheets[0];
    if(I.addRule){ // m�thode IE
      I.addRule(nom,regle)
    }else if(I.insertRule){ // m�thode DOM
      I.insertRule(nom+" { "+regle+" }",I.cssRules.length)
    }
  }
}

///////////////////////////////////////////////////////////////////////////
// une bete fonction pour eviter de reecrir au kilometre la fonstion     //
// document.getElementById('') en le faisant parle biais d'un raccourci  //
///////////////////////////////////////////////////////////////////////////
function $(id){ return document.getElementById(id);}
/*Fonction pour créer un chargeur de fichier JS en manipulant le DOM*/
function LoadMyModule(source){
	var head = document.getElementsByTagName("head")[0];
	script = document.createElement('script');
	//script.id = identity;
	script.type = 'text/javascript';
	script.src = source;
	//script.src = 'upload.js';
	head.appendChild(script);
}
/////////////////////////////////////////////////////////////////////
//fontion poiur afficher ou masquer un element identifié par son id//
// l'element id doit avoir au prealable un style= display:none     //
/////////////////////////////////////////////////////////////////////
function visibilite(thingId)
{
var targetElement;
targetElement = document.getElementById(thingId) ;
if (targetElement.style.display == "none")
{
targetElement.style.display = "" ;
} else {
targetElement.style.display = "none" ;
}
}
/*******fonction de debug ***********/
function YoupiYaya(){
	alert("Youpi YAAAAAAAAAAAAAAAAYYYYYYYYYYYYYAAAAAAAAAAAA!");
}
/******fonction pour affichage page par page par AJAX******/
function affichePage(debut,fin,famille,sousfamille){
	//on affiche le message d'attente
	var image='<div id="waitingloading"><img src="js/src/large-loading.gif">';
	$('contenu_central').innerHTML=image+"...<strong>chargement peut etre en cours!</strong></div>";
	//on stylise le message d'attente
	with($('waitingloading')){
		style.color = "red";
		style.fontSize = "11px";
		style.display = "block";
		style.marginLeft = "50%";
		style.marginTop = "25%";
		style.marginBottom = "25%";
	}
	//puis on insere le resultat
	var urltoseeforpage = 'initsearch.php?afficher=page&debut='+debut+'&fin='+fin+'&famille='+famille+'&sousfamille='+sousfamille;
	alert("le lien fut :\r"+urltoseeforpage);
	//
	//$('contenu_central').innerHTML='';
	verCosa(urltoseeforpage,'contenu_central');
	//
	//
}
/***** function bannière enTête medistore **********/
addListener(window,'load',rotate);
//addListener('window', 'load', rotate);

//var adImages = new Array ("images/banners/enTete/promo1.gif", "images/banners/enTete/promo2.gif", "images/banners/enTete/promo3.gif");

/******fonction pour le controle de stock sur le bouton commander***/
//rappel pour note: les statuts RT doivent être en statut bloquant (quelque soit la quantité)
//
_errorstock = '';
_prevstock = '';
function controlItem(numero){
	//en premabule ici je fais comme une fonction privée pour faire mon tableau à deux dimensions plus loin
	function minitab(nthing){
		this.code = nthing;
	}
	//là dessous je demarre réellment mon script en verifiant les numeros envoyés...pour le cas des gammes
	if(numero == "gamme"){
		if(_errorstock != ''){
			if(_errorstock == "stock suffisant\n\r"){
				//on envoie le formulaire regroupant les gammes
				document.forms.cart_quantity.submit();
			}
			else alert(_errorstock);
		}
		//on envoie le formulaire
		//document.forms.cart_quantity_individuel.submit();
	//ou alors pour le cas du produit simple de la fiche
	}else{
	var itemnumber = ($('cart_quantity[]').value);
	if ( $('products_id[]').value == '' ) $('products_id[]').value = numero;
	//var nextpage=parseInt(page)+parseInt(chiffre);
	var urltofindfor = "asynctest.php?control="+numero;
	var urltofindstatus = "asynctest.php?verifstatut="+numero;
	//on cherche par ajax la quantite
	var requeteAJAX = getXMLHTTP();
	requeteAJAX.open('GET',urltofindfor, false);
	requeteAJAX.send(null);
	var chiffrecontrol = requeteAJAX.responseText;
	//on controle d'abord par rapport à la quantite si le chiffre est inferieur au stock
	if(parseInt(chiffrecontrol)<parseInt(itemnumber)){
		//si le stock est de ZERO
		if(parseInt(chiffrecontrol) == '0'){
			//certains produits retournenront toujours ZERO comme chiffre car il faut les commander chez le fournisseur
			//ils ne sont donc pas en rupture de stock tel que
			//alert('controle du stock :'+chiffrecontrol);
			document.forms.cart_quantity_individuel2.submit();
		}else{
			//sinon si le stock est inferieur à la quantite demandée et n'est pas zero on previent de l'impossibilite de commander
			//pour cela on cherche par ajax le statut pour verifier qu'il n'a aucun statut
	        var secondrequeteAJAX = getXMLHTTP();
	        secondrequeteAJAX.open('GET',urltofindstatus, false);
	        secondrequeteAJAX.send(null);
	        var statutcontrol = secondrequeteAJAX.responseText;
			if(statutcontrol === 'F' || statutcontrol === 'S'|| statutcontrol === 'RT'){
			  alert('Veuillez nous consulter sur ce produit.');	
			}else{
				//on peut envoyer sinon
				//alert()
				document.forms.cart_quantity_individuel2.submit();
			}
			//alert("stock insuffisant par rapport \340 la quantit\351 command\351e\nactuellement nous avons "+chiffrecontrol+" produits en stock!");	
		}
	}else{
	//si jamais on a un stock superieur à la commande on peut y aller
		//mais si jamais on n'a plus que 1 PRODUIT on previent...
		if(parseInt(chiffrecontrol) == "1"){
			alert("stock suffisant mais attention plus que un seul produit!");
			//alert('controle du stock :'+chiffrecontrol);
			document.forms.cart_quantity_individuel2.submit();
		}else{
			//sinon c'est bon on peut envoyer
		//alert("stock suffisant");
		//alert('controle du stock :'+chiffrecontrol);
		//on envoie le formulaire
		document.forms.cart_quantity_individuel2.submit();
		}
	}
	//
	
	}
}


var thisAd = 0;
//setTimeout("rotate()", 5000);
function rotate(){
	var adImages = new Array ('<a href="http://dev.medistore.fr/-3578-sac-multifonction-vert"><img src="http://dev.medistore.fr/images/banners/enTete/promo1.gif" border="0" /></a>','<a href="http://dev.medistore.fr/-28970-praxiline-cardio-pulse-stethoscope-cardiologie-tubulure-bleu-fonce"><img src="http://dev.medistore.fr/images/banners/enTete/promo2.gif" border="0" /></a>','<a href="http://www.google.fr"><img src="http://dev.medistore.fr/images/banners/enTete/promo3.gif" border="0" /></a>');
//alert("dans rotate");
		thisAd++;
		if(thisAd == adImages.length)
		{thisAd = 0;}
//document.getElementById("adBanner").src = adImages[thisAd];
//document.getElementById("afficheEntete").innerHTML=adImages[thisAd];
//alert(thisAd);
document.getElementById("afficheEntete").innerHTML=adImages[thisAd];

setTimeout("rotate()", 3 * 1000);
}