// AJAX FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

				function getXhr() {
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) {	xhr = new ActiveXObject("Microsoft.XMLHTTP");	}	}
else { // XMLHttpRequest non supporté par le navigateur 
alert("Votre navigateur ne supporte pas la technologie du site"); 
xhr = false; 	} 
return xhr;	}

// SWITCH LANG ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function switchLang(lang) {
affiche_overlay_window("Site international en construction");
/*var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
if (reponse == 1) {
	affiche_overlay_window(newlang);
	window.setTimeout("document.location.href='index.php'",2000);}
	}
}
xhr.open("POST",'php/switchlang.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("lang="+lang);*/
		}

// CHANGE ONGLET //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function changeOnglet(onglet) {
		for (i=0; i<3; i++) {
if (onglet == "onglet"+i) {
document.getElementById(onglet).className ="onglethover";
document.getElementById("link"+i).className ="brown";
moveTo("homeframecontent","jump"+i);
}
else {
document.getElementById("onglet"+i).className ="onglet";
document.getElementById("link"+i).className ="white";
} }
}

// MOVE TO //
function moveTo(container, element){
  Position.prepare();
  container_y = Position.cumulativeOffset($(container))[1]
  element_y = Position.cumulativeOffset($(element))[1]
  new Effect.Scroll(container, {x:0, y:(element_y-container_y)});
  return false;
}

// ADD TO BAG /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function checkstock(ref,quantity) {
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
if(reponse!= 'ok') {
	affiche_overlay_window_bag(2,reponse);
	addtobag(ref,quantity);
}
else {
	addtobag(ref,quantity);
	affiche_overlay_window_bag(1);
}
}
}
xhr.open("POST","php/checkstocks.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("ref="+ref+"&quantity="+quantity);
}
		
		function addtobag(ref,quantity) {
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
if (reponse.length >1) {
shoppingbag = unserialize(reponse);
document.getElementById('mybag').innerHTML = shoppingbag['status'];

if (quantity<1) affiche_overlay_window_bag(3); }
else if(reponse == 2) { affiche_overlay_window_bag(2, 60); }
else if(reponse == 3) { affiche_overlay_window_bag(4); }
}
}
xhr.open("POST","php/addtobag.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("ref="+ref+"&quantity="+quantity);
}

// fTEST FOR ENTER ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function testForEnter(event,nameinput,value) {    
if (event.keyCode == 13)  {        
event.cancelBubble = true;
event.returnValue = false;
if (nameinput == 'searchbar') searchProd(value,0);
else if (nameinput == 'avancedsearchbar') searchProd(value,1);
else if (nameinput == 'email') checkfill('authentificaton');
else if (nameinput == 'password') checkfill('authentificaton');
else if (nameinput =='newsletterbar') joinNewsletter(document.getElementById('newsletterbar').value,'newsletterbar');	}	} 

// JOIN NEWSLETTER /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function joinNewsletter(texte,nameinput) {
if (texte.length >0) {
	var check = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
	if ((check.exec(texte)!=null) == false) affiche_overlay_window(message["email"]);
	else {
	 //join newsletter
		var xhr = getXhr();
		xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
		reply = xhr.responseText;
		if (reply == 1){
		affiche_overlay_window(message["newsletter"]); }
		else if(reply == 3) affiche_overlay_window(message["nomorenewsletter"]);
		if (nameinput == 'suscribe' || nameinput == 'unsuscribe') updateModif(reply); 
		}	}
		xhr.open("POST","php/register_customer.php");
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send("newsletter="+texte+"&action="+nameinput);
		
		}
	}
}

// IS AVAILABLE ? /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function availability(data,field,table,url,ref) {
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
donext(reponse,data,field);}
}
xhr.open("POST",url,true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("data="+data+"&field="+field+"&table="+table+"&ref="+ref);
}

// GETURL VARS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getVar (nomVariable) {
var infos = location.href.substring(location.href.indexOf("?")+1, location.href.length)+"&"
if (infos.indexOf("#")!=-1)
infos = infos.substring(0,infos.indexOf("#"))+"&"
var variable=0
{
nomVariable = nomVariable + "="
var taille = nomVariable.length
if (infos.indexOf(nomVariable)!=-1)
variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf("&"))
}
return variable
} 
// SET UNIVERS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function setUnivers(value) {
document.location.href = 'categories.php?cat='+getVar('cat')+'&univers='+value;
}

// IMG MOUSEOVER FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// VERIF FORM ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		function checkfill(form) {
var emptyfield = 0;	var i = 0;	
		while (document.forms[form][i]) {
if (document.forms[form][i].value.length == 0) {
emptyfield = 1;	
document.forms[form][i].style.borderColor = "#D27611";
document.forms[form][i].style.backgroundColor = '#fff9f3';	}
i++;	}
if (emptyfield == 1) affiche_overlay_window(errors['empty']);
else if (form == 0 || form == 'authentificaton') submitForm(form);
else if (form == 'shipform') addaddress(1);
else if (form == 'contact') sendmessage();
else document.forms[form].submit();
		}

// fonction de verification du format de l'email
		function submitForm(form) {
var xhr = getXhr();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
reply = xhr.responseText;
if (reply == 1) document.location.reload(true);
else (affiche_overlay_window(errors['wrongpassword']));
}	}
xhr.open("POST","php/returning_customer.php");
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("email="+document.forms[form][0].value+"&password="+document.forms[form][1].value);

}

// fonction de verification du format de l'email
		function checkmail(texte,form,nameinput) {
if (texte.length >0) {
	var check = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
	if ((check.exec(texte)!=null) == false) showerror(form,nameinput,nameinput);
	else { //check if mail exists, via ajax request
		var xhr = getXhr();
		xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
		reply = xhr.responseText;
		if ((reply == 1) && (form == 'returning_customer'))									thatsok(form,nameinput);
		else if ((reply == 1) && ((form == 'new_customer') || (form == 'connexion_info')))	showerror(form,nameinput,'taken');
		else if ((reply == 0) && (form == 'returning_customer'))							showerror(form,nameinput,'void');
		else if ((reply == 0) && ((form == 'new_customer') || (form == 'connexion_info'))) 	thatsok(form,nameinput);
		else if(form == 'contact') thatsok(form,nameinput);
		}	}
		xhr.open("POST","php/checkmail.php");
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send("email="+texte); //thatsok(form,nameinput);	
		}
	}
	else thatsok(form,nameinput);
}

<!-- generic functions for the form verification -->
	function showerror(form,nameinput,msg) {
affiche_overlay_window(errors[msg]);
document.forms[form][nameinput].value = "";
document.forms[form][nameinput].style.borderColor = "#D27611";
document.forms[form][nameinput].style.backgroundColor = '#fff9f3';	}

	function thatsok(form,nameinput) {
document.forms[form][nameinput].style.borderColor = "#cccccc"; }

// SERIALIZE /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


function serialize (txt) {
	switch(typeof(txt)){
	case 'string':
		return 's:'+txt.length+':"'+txt+'";';
	case 'number':
		if(txt>=0 && String(txt).indexOf('.') == -1 && txt < 65536) return 'i:'+txt+';';
		return 'd:'+txt+';';
	case 'boolean':
		return 'b:'+( (txt)?'1':'0' )+';';
	case 'object':
		var i=0,k,ret='';
		for(k in txt){
			//alert(isNaN(k));
			if(!isNaN(k)) k = Number(k);
			ret += serialize(k)+serialize(txt[k]);
			i++;
		}
		return 'a:'+i+':{'+ret+'}';
	default:
		return 'N;';
		alert('var undefined: '+typeof(txt));return undefined;
	}
}

function unserialize(txt){
	var level=0,arrlen=new Array(),del=0,final=new Array(),key=new Array(),save=txt;
	while(1){
		switch(txt.substr(0,1)){
		case 'N':
			del = 2;
			ret = null;
		break;
		case 'b':
			del = txt.indexOf(';')+1;
			ret = (txt.substring(2,del-1) == '1')?true:false;
		break;
		case 'i':
			del = txt.indexOf(';')+1;
			ret = Number(txt.substring(2,del-1));
		break;
		case 'd':
			del = txt.indexOf(';')+1;
			ret = Number(txt.substring(2,del-1));
		break;
		case 's':
			del = txt.substr(2,txt.substr(2).indexOf(':'));
			ret = txt.substr( 1+txt.indexOf('"'),del);
			del = txt.indexOf('"')+ 1 + ret.length + 2;
		break;
		case 'a':
			del = txt.indexOf(':{')+2;
			ret = new Array();
			arrlen[level+1] = Number(txt.substring(txt.indexOf(':')+1, del-2))*2;
		break;
		case 'O':
			txt = txt.substr(2);
			var tmp = txt.indexOf(':"')+2;
			var nlen = Number(txt.substring(0, txt.indexOf(':')));
			name = txt.substring(tmp, tmp+nlen );
			//alert(name);
			txt = txt.substring(tmp+nlen+2);
			del = txt.indexOf(':{')+2;
			ret = new Object();
			arrlen[level+1] = Number(txt.substring(0, del-2))*2;
		break;
		case '}':
			txt = txt.substr(1);
			if(arrlen[level] != 0){alert('var missed : '+save); return undefined;};
			//alert(arrlen[level]);
			level--;
		continue;
		default:
			if(level==0) return final;
			alert('syntax invalid(1) : '+save+"\nat\n"+txt+"level is at "+level);
			return undefined;
		}
		if(arrlen[level]%2 == 0){
			if(typeof(ret) == 'object'){alert('array index object no accepted : '+save);return undefined;}
			if(ret == undefined){alert('syntax invalid(2) : '+save);return undefined;}
			key[level] = ret;
		} else {
			var ev = '';
			for(var i=1;i<=level;i++){
				if(typeof(key[i]) == 'number'){
					ev += '['+key[i]+']';
				}else{
					ev += '["'+key[i]+'"]';
				}
			}
			eval('final'+ev+'= ret;');
		}
		arrlen[level]--;//alert(arrlen[level]-1);
		if(typeof(ret) == 'object') level++;
		txt = txt.substr(del);
		continue;
	}
}

// get page ////////////////////////////////////////
function getPageSize()
{
var xScroll, yScroll;

if (window.innerHeight && window.scrollMaxY)
{
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
}
else if (document.body.scrollHeight > document.body.offsetHeight)
// all but Explorer Mac
{
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
}
else
// Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
{
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}

var windowWidth, windowHeight;

if (self.innerHeight)
// all except Explorer
{
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
scrollpos = window.pageYOffset;
}
else if (document.documentElement && document.documentElement.clientHeight)
// Explorer 6 Strict Mode
{
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
scrollpos = document.documentElement.scrollTop;
}
else if (document.body)
// other Explorers
{
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
scrollpos = document.documentElement.scrollTop;
}

// for small pages with total height less then height of the viewport
if (yScroll < windowHeight)
pageHeight = windowHeight;
else
pageHeight = yScroll;

// for small pages with total width less then width of the viewport
if (xScroll < windowWidth)
pageWidth = windowWidth;
else
pageWidth = xScroll;

arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight,scrollpos)
return arrayPageSize;
}

// téléchargement catalogue
	function catalogue() {
	if (user != 0) {
	document.getElementById('inputdata').innerHTML = '<table width="280" height="100" border="0" cellspacing="0" cellpadding="0"><tr><td width="140" align="center">choisissez le catalogue souhait&eacute; :</td></tr><tr><td align="center"><select name="catalog" id="catalog"><option value="0">d&eacute;coration</option><option value="1">bijoux</option><option value="2">enfants</option></select></td></tr><tr><td colspan="2" align="center"><a href="javascript:downloadCatalogue(document.getElementById(\'catalog\').value)" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage(\'ok\',\'\',\'images/ok_button_hover.gif\',1)"><img src="images/ok_button.gif" width="52" height="26" border="0" id="ok" /></a></td></tr></table>';
	montreoverlay("<table class = 'image_calque ' valign = 'center' border = '0' align = 'center'><tr><td></tr>");
	montrefenetre();
	}
	else affiche_overlay_window(connected);
	}
	
	function downloadCatalogue(a) {
	document.location.href = 'catalogue.php?a='+a;
	}
