// utils.js
// XHRConnection.js
// browserdetection.js
// tooltip.js
// picker.js

function $(id){return document.getElementById(id);}
function file(fichier){if(window.XMLHttpRequest)
xhr_object=new XMLHttpRequest();else if(window.ActiveXObject)
xhr_object=new ActiveXObject("Microsoft.XMLHTTP");else
return(false);xhr_object.open("GET",fichier,false);xhr_object.send(null);if(xhr_object.readyState==4)return(xhr_object.responseText);else return(false);}
function toggle(id,q){if(q){$(id).style.display='block';$(id).style.visibility='visible';}else{$(id).style.display='none';$(id).style.visibility='hidden';}}
function toggleomd(id,q){if(q){$(id).style.display='block';$(id).style.visibility='visible';}else{$(id).style.display='none';$(id).style.visibility='hidden';}}
function toggle2(id,id2){$(id2).style.display='block';$(id2).style.visibility='visible';$(id).style.display='none';$(id).style.visibility='hidden';}
function findPosX(obj)
{var curleft=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curleft+=obj.offsetLeft
obj=obj.offsetParent;}}
else if(obj.x)
curleft+=obj.x;return curleft;}
function findPosY(obj)
{var curtop=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curtop+=obj.offsetTop
obj=obj.offsetParent;}}
else if(obj.y)
curtop+=obj.y;return curtop;}
function ssmenu(id){$('ssmenu_'+ssold).style.visibility='hidden';$('ssmenu_'+ssold).style.display='none';$('ssmenu_'+id).style.visibility='visible';$('ssmenu_'+id).style.display='block';ssold=id;}
function acheterAP(id){a=file('ajax/acheter.php?id='+id);alert(a);for(var i=0;i<ar[rayonOuvert].length;i++){if(ar[rayonOuvert][i][0]==id){k=parseInt($('argent').innerHTML)-parseInt(ar[rayonOuvert][i][2]);if(k>=0)
$('argent').innerHTML=k;}}}
function addFav(){if(navigator.appName!="Microsoft Internet Explorer"){window.sidebar.addPanel(document.title,location.href,"");}else window.external.AddFavorite(location.href,document.title);}
function XHRConnection(){var conn=false;var debug=false;var datas=new String();var areaId=new String();var xmlObj;var xmlLoad;try{conn=new XMLHttpRequest();}
catch(error){if(debug){alert('Erreur lors de la tentative de création de l\'objet \nnew XMLHttpRequest()\n\n'+error);}
try{conn=new ActiveXObject("Microsoft.XMLHTTP");}
catch(error){if(debug){alert('Erreur lors de la tentative de création de l\'objet \nnew ActiveXObject("Microsoft.XMLHTTP")\n\n'+error);}
try{conn=new ActiveXObject("Msxml2.XMLHTTP");}
catch(error){if(debug){alert('Erreur lors de la tentative de création de l\'objet \nnew ActiveXObject("Msxml2.XMLHTTP")\n\n'+error);}
conn=false;}}}
this.setDebugOff=function(){debug=false;};this.setDebugOn=function(){debug=true;};this.resetData=function(){datas=new String();datas='';};this.appendData=function(pfield,pvalue){datas+=(datas.length==0)?pfield+"="+escape(pvalue):"&"+pfield+"="+escape(pvalue);};this.setRefreshArea=function(id){areaId=id;};this.createXMLObject=function(){try{xmlDoc=document.implementation.createDocument("","",null);xmlLoad='onload';}
catch(error){try{xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlLoad='onreadystatechange ';}
catch(error){if(debug){alert('Erreur lors de la tentative de création de l\'objet XML\n\n');}
return false;}}
return xmlDoc;}
this.setXMLObject=function(obj){if(obj==undefined){if(debug){alert('Paramètre manquant lors de l\'appel de la méthode setXMLObject');}
return false;}
try{xmlObj=obj;}
catch(error){if(debug){alert('Erreur lors de l\'affectation de l\'objet XML dans la méthode setXMLObject');}}}
this.loadXML=function(xml,callBack){if(!conn)return false;if(xmlObj&&xml){if(typeof callBack=="function"){if(xmlLoad=='onload'){xmlObj.onload=function(){callBack(xmlObj);}}
else{xmlObj.onreadystatechange=function(){if(xmlObj.readyState==4)callBack(xmlObj)}}}
xmlObj.load(xml);return;}}
this.sendAndLoad=function(Url,httpMode,callBack){httpMode=httpMode.toUpperCase();conn.onreadystatechange=function(){if(conn.readyState==4&&conn.status==200){if(typeof callBack=="function"){callBack(conn);return;}
else if(areaId.length>0){try{document.getElementById(areaId).innerHTML=conn.responseText;}
catch(error){if(debug){alert('Echec, '+areaId+' n\'est pas un objet valide');}}
return;}}};switch(httpMode){case"GET":try{Url=(datas.length>0)?Url+"?"+datas:Url;conn.open("GET",Url);conn.send(null);}
catch(error){if(debug){alert('Echec lors de la transaction avec '+Url+' via la méthode GET');}
return false;}
break;case"POST":try{conn.open("POST",Url);conn.setRequestHeader("Content-Type","application/x-www-form-urlencoded");conn.send(datas);}
catch(error){if(debug){alert('Echec lors de la transaction avec '+Url+' via la mthode POST');}
return false;}
break;default:return false;break;}
return true;};return this;}
var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser";this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version";this.OS=this.searchString(this.dataOS)||"an unknown OS";},searchString:function(data){for(var i=0;i<data.length;i++){var dataString=data[i].string;var dataProp=data[i].prop;this.versionSearchString=data[i].versionSearch||data[i].identity;if(dataString){if(dataString.indexOf(data[i].subString)!=-1)
return data[i].identity;}
else if(dataProp)
return data[i].identity;}},searchVersion:function(dataString){var index=dataString.indexOf(this.versionSearchString);if(index==-1)return;return parseFloat(dataString.substring(index+this.versionSearchString.length+1));},dataBrowser:[{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",identity:"Safari"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.platform,subString:"Linux",identity:"Linux"}]};BrowserDetect.init();var tooltip={id:"tooltip",offsetx:10,offsety:10,_x:0,_y:0,_tooltipElement:null,_saveonmouseover:null}
tooltip.show=function(htmlelement){var text=htmlelement.getAttribute("title");htmlelement.setAttribute("title","");htmlelement.setAttribute("title_saved",text);if(document.getElementById){this._tooltipElement=document.getElementById(this.id);}else if(document.all){this._tooltipElement=document.all[this.id].style;}
this._saveonmouseover=document.onmousemove;document.onmousemove=this.mouseMove;this._tooltipElement.innerHTML=text;this.moveTo(this._x+this.offsetx,this._y+this.offsety);if(this._tooltipElement.style){this._tooltipElement.style.visibility="visible";}else{this._tooltipElement.visibility="visible";}
return false;}
tooltip.hide=function(htmlelement){htmlelement.setAttribute("title",htmlelement.getAttribute("title_saved"));htmlelement.removeAttribute("title_saved");if(this._tooltipElement.style){this._tooltipElement.style.visibility="hidden";}else{this._tooltipElement.visibility="hidden";}
document.onmousemove=this._saveonmouseover;}
tooltip.mouseMove=function(e){if(e==undefined)
e=event;if(e.pageX!=undefined){tooltip._x=e.pageX;tooltip._y=e.pageY;}else if(event!=undefined&&event.x!=undefined&&event.clientX==undefined){tooltip._x=event.x;tooltip._y=event.y;}else if(e.clientX!=undefined){if(document.documentElement){tooltip._x=e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft);tooltip._y=e.clientY+(document.documentElement.scrollTop||document.body.scrollTop);}else{tooltip._x=e.clientX+document.body.scrollLeft;tooltip._y=e.clientY+document.body.scrollTop;}}else{tooltip._x=0;tooltip._y=0;}
tooltip.moveTo(tooltip._x+tooltip.offsetx,tooltip._y+tooltip.offsety);}
tooltip.moveTo=function(xL,yL){if(this._tooltipElement.style){this._tooltipElement.style.left=xL+"px";this._tooltipElement.style.top=yL+"px";}else{this._tooltipElement.left=xL;this._tooltipElement.top=yL;}}
function $(v){return(document.getElementById(v));}
function $S(v){return(document.getElementById(v).style);}
function agent(v){return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0));}
function toggle(v){$S(v).display=($S(v).display=='none'?'block':'none');}
function within(v,a,z){return((v>=a&&v<=z)?true:false);}
function XY(e,v){var z=agent('msie')?[event.clientX+document.body.scrollLeft,event.clientY+document.body.scrollTop]:[e.pageX,e.pageY];return(z[zero(v)]);}
function scrollY(e){return e.pageY;}
function XYwin(v){var z=agent('msie')?[document.body.clientHeight,document.body.clientWidth]:[window.innerHeight,window.innerWidth];return(!isNaN(v)?z[v]:z);}
function zero(v){v=parseInt(v);return(!isNaN(v)?v:0);}
var maxValue={'h':360,'s':100,'v':100},HSV={0:360,1:100,2:100};var hSV=165,wSV=162,hH=163,slideHSV={0:360,1:100,2:100},zINDEX=15,stop=1;function HSVslide(d,o,e){function tXY(e){tY=XY(e,1)-top;tX=XY(e)-left;}
function mkHSV(a,b,c){return(Math.min(a,Math.max(0,Math.ceil((parseInt(c)/b)*a))));}
function ckHSV(a,b){if(within(a,0,b))return(a);else if(a>b)return(b);else if(a<0)return('-'+oo);}
function drag(e){if(!stop){if(d!='drag')tXY(e);if(d=='SVslide'){ds.left=ckHSV(tX-oo,wSV)+'px';ds.top=ckHSV(tY-oo,wSV)+'px';slideHSV[1]=mkHSV(100,wSV,ds.left);slideHSV[2]=100-mkHSV(100,wSV,ds.top);HSVupdate();}
else if(d=='Hslide'){var ck=ckHSV(tY-oo,hH),j,r='hsv',z={};ds.top=(ck-5)+'px';slideHSV[0]=mkHSV(360,hH,ck);for(var i=0;i<=r.length-1;i++){j=r.substr(i,1);z[i]=(j=='h')?maxValue[j]-mkHSV(maxValue[j],hH,ck):HSV[i];}
HSVupdate(z);$S('SV').backgroundColor='#'+hsv2hex([HSV[0],100,100]);}
else if(d=='drag'){ds.left=XY(e)+oX-eX+'px';ds.top=XY(e,1)+oY-eY+'px';}}}
if(stop){stop='';var ds=$S(d!='drag'?d:o);if(d=='drag'){var oX=parseInt(ds.left),oY=parseInt(ds.top),eX=XY(e),eY=XY(e,1);$S(o).zIndex=zINDEX++;}
else{var left=($(o).offsetLeft+10),top=($(o).offsetTop+22),tX,tY,oo=(d=='Hslide')?2:4;if(d=='SVslide')slideHSV[0]=HSV[0];}
document.onmousemove=drag;document.onmouseup=function(){stop=1;document.onmousemove='';document.onmouseup='';};drag(e);}}
function HSVupdate(v){v=hsv2hex(HSV=v?v:slideHSV);$('plugHEX').innerHTML=v;$S('plugCUR').background='#'+v;$('couleur'+pick).value=v;$S('couleur'+pick).background='#'+v;return(v);}
function loadSV(){var z='';for(var i=hSV;i>=0;i--)z+="<div style=\"BACKGROUND: #"+hsv2hex([Math.round((360/hSV)*i),100,100])+";\"><br /><\/div>";$('Hmodel').innerHTML=z;}
function toHex(v){v=Math.round(Math.min(Math.max(0,v),255));return("0123456789ABCDEF".charAt((v-v%16)/16)+"0123456789ABCDEF".charAt(v%16));}
function rgb2hex(r){return(toHex(r[0])+toHex(r[1])+toHex(r[2]));}
function hsv2hex(h){return(rgb2hex(hsv2rgb(h)));}
function hsv2rgb(r){var R,B,G,S=r[1]/100,V=r[2]/100,H=r[0]/360;if(S>0){if(H>=1)H=0;H=6*H;F=H-Math.floor(H);A=Math.round(255*V*(1.0-S));B=Math.round(255*V*(1.0-(S*F)));C=Math.round(255*V*(1.0-(S*(1.0-F))));V=Math.round(255*V);switch(Math.floor(H)){case 0:R=V;G=C;B=A;break;case 1:R=B;G=V;B=A;break;case 2:R=A;G=V;B=C;break;case 3:R=A;G=B;B=V;break;case 4:R=C;G=A;B=V;break;case 5:R=V;G=A;B=B;break;}
return([R?R:0,G?G:0,B?B:0]);}
else return([(V=Math.round(V*255)),V,V]);}
var pick='';function colorPicker(id,e){pick=id;loadSV();$S('plugin').left=((XYwin()[1]/2))+'px';$S('plugin').top=(30+findPosY($('couleur'+id)))+'px';$S('plugin').display='block';if(navigator.appName=="Microsoft Internet Explorer"){$S('plugin').position='fixed';$S('plugin').top='100 px';}}