// Copyright (C) 2005-2006 Laurent Destailleur // // Script javascript mis en en-tete de pages (dans section head) // // \file htdocs/lib/lib_head.js // \brief Fichier qui inclue les fonctions javascript d'en-tete (inclue si option use_javascript active) // \version $Revision$ /*================================================================= Purpose: Pour la fonction de saisie auto des villes Input: postalcode,objectville Author: Eric Seigne Licence: GPL ==================================================================*/ function autofilltownfromzip_PopupPostalCode(postalcode,objectville) { var url = 'searchpostalcode.php?cp=' + postalcode + '&targetobject=window.opener.document.formsoc.' + objectville.name; // alert(url); var hWnd = window.open(url, "SearchPostalCodeWindow", "width=" + 300 + ",height=" + 150 + ",resizable=yes,scrollbars=yes"); if((document.window != null) && (!hWnd.opener)) hWnd.opener = document.window; } function autofilltownfromzip_save_refresh_edit() { document.formsoc.action.value="edit"; document.formsoc.submit(); } function autofilltownfromzip_save_refresh_create() { document.formsoc.action.value="create"; document.formsoc.submit(); } /*================================================================= Purpose: Pour la saisie des dates par calendrier Input: base "/theme/eldy" dateFieldID "dateo" Nom du champ format "dd/MM/yyyy" Format issu de Dolibarr de SimpleDateFormat à utiliser pour retour ==================================================================*/ function showDP(base,dateFieldID,format) { showDP.datefieldID=dateFieldID; var dateField=getObjectFromID(dateFieldID); //check to see if another box is already showing var alreadybox=getObjectFromID("DPCancel"); if(alreadybox) closeDPBox(); //get positioning var thetop=getTop(dateField)+dateField.offsetHeight; // var xxx=getObjectFromID('bottompage'); //alert(xxx.style.pixelTop); //alert(document.body.clientHeight); //alert(document.body.style.offsetTop); //alert(thetop); //alert(window.innerHeight); if (thetop+160 > window.innerHeight) thetop=thetop-160-20; var theleft=getLeft(dateField); if (theleft+140 > window.innerWidth) theleft= theleft-140+dateField.offsetWidth-15; showDP.box=document.createElement("div"); showDP.box.className="bodyline"; showDP.box.style.siplay="block"; showDP.box.style.position="absolute"; showDP.box.style.top=thetop + "px"; showDP.box.style.left=theleft + "px"; if(dateField.value) // Si il y avait valeur initiale dans champ { selDate=getDateFromFormat(dateField.value,format); if (selDate) { year=selDate.getFullYear(); month=selDate.getMonth()+1; day=selDate.getDate(); datetime=selDate.getTime(); ymd=formatDate(selDate,'yyyyMMdd'); } } else { selDate=new Date(); year=selDate.getFullYear(); month=selDate.getUTCMonth()+1; day=selDate.getDate(); datetime=selDate.getTime(); ymd=formatDate(selDate,'yyyyMMdd'); } loadMonth(base,month,year,ymd); hideSelectBoxes(); document.body.appendChild(showDP.box); } function loadMonth(base,month,year,ymd) { showDP.box.innerHTML="Loading..."; var theURL=base+"datepicker.php?cm=shw"; theURL+="&m="+encodeURIComponent(month); theURL+="&y="+encodeURIComponent(year); if (selDate) { theURL+="&sd="+ymd; } loadXMLDoc(theURL,null,false); showDP.box.innerHTML=req.responseText; } function closeDPBox() { document.body.removeChild(showDP.box); displaySelectBoxes(); showDP.box=null; showDP.datefieldID=null; } function dpChangeDay(dateFieldID,format) { showDP.datefieldID=dateFieldID; var thefield=getObjectFromID(showDP.datefieldID); var thefieldday=getObjectFromID(showDP.datefieldID+"day"); var thefieldmonth=getObjectFromID(showDP.datefieldID+"month"); var thefieldyear=getObjectFromID(showDP.datefieldID+"year"); var date=getDateFromFormat(thefield.value,format); if (date) { thefieldday.value=date.getDate(); if(thefieldday.onchange) thefieldday.onchange.call(thefieldday); thefieldmonth.value=date.getMonth()+1; if(thefieldmonth.onchange) thefieldmonth.onchange.call(thefieldmonth); thefieldyear.value=date.getFullYear(); if(thefieldyear.onchange) thefieldyear.onchange.call(thefieldyear); } else { thefieldday.value=''; if(thefieldday.onchange) thefieldday.onchange.call(thefieldday); thefieldmonth.value=''; if(thefieldmonth.onchange) thefieldmonth.onchange.call(thefieldmonth); thefieldyear.value=''; if(thefieldyear.onchange) thefieldyear.onchange.call(thefieldyear); } } function dpClickDay(year,month,day,format) { var thefield=getObjectFromID(showDP.datefieldID); var thefieldday=getObjectFromID(showDP.datefieldID+"day"); var thefieldmonth=getObjectFromID(showDP.datefieldID+"month"); var thefieldyear=getObjectFromID(showDP.datefieldID+"year"); var dt = new Date(); dt.setMonth(month-1); dt.setYear(year); dt.setDate(day); thefield.value=formatDate(dt,format); if(thefield.onchange) thefield.onchange.call(thefield); thefieldday.value=day; if(thefieldday.onchange) thefieldday.onchange.call(thefieldday); thefieldmonth.value=month; if(thefieldmonth.onchange) thefieldmonth.onchange.call(thefieldmonth); thefieldyear.value=year; if(thefieldyear.onchange) thefieldyear.onchange.call(thefieldyear); closeDPBox(); } function dpHighlightDay(year,month,day){ var displayinfo=getObjectFromID("dpExp"); var months=Array("January","February","March","April","May","June","July","August","September","October","November","December"); displayinfo.innerHTML=months[month-1]+" "+day+", "+year; } //Returns an object given an id function getObjectFromID(id){ var theObject; if(document.getElementById) theObject=document.getElementById(id); else theObject=document.all[id]; return theObject; } // This Function returns the top position of an object function getTop(theitem){ var offsetTrail = theitem; var offsetTop = 0; while (offsetTrail) { offsetTop += offsetTrail.offsetTop; offsetTrail = offsetTrail.offsetParent; } if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") offsetLeft += document.body.TopMargin; return offsetTop; } // This Function returns the left position of an object function getLeft(theitem){ var offsetTrail = theitem; var offsetLeft = 0; while (offsetTrail) { offsetLeft += offsetTrail.offsetLeft; offsetTrail = offsetTrail.offsetParent; } if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") offsetLeft += document.body.leftMargin; return offsetLeft; } function loadXMLDoc(url,readyStateFunction,async) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = readyStateFunction; req.open("GET", url, async); req.send(null); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { if(readyStateFunction) req.onreadystatechange = readyStateFunction; req.open("GET", url, async); req.send(); } } } function hideSelectBoxes() { var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) { for(var i = 0; i < document.all.length; i++) { if(document.all[i].tagName) if(document.all[i].tagName == "SELECT") document.all[i].style.visibility="hidden"; } } } function displaySelectBoxes() { var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10); if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) { for(var i = 0; i < document.all.length; i++) { if(document.all[i].tagName) if(document.all[i].tagName == "SELECT") document.all[i].style.visibility="visible"; } } } // Afficher/cacher les champs d'un formulaire function formDisplayHideId(baliseId,numField) { //if (document.getElementById && document.getElementById(baliseId) != null) //{ //var balise = document.getElementById(baliseId); var numDiv = 1 if (document.formsoc.typent_id.value == 8) { while ( document.getElementById( baliseId + numDiv) ) { var balise = document.getElementById( baliseId + numDiv); if (balise && balise.className == "hidden") balise.className = "visible"; if (balise && balise.className == "visible") balise.className = "hidden"; numDiv++ } } else { while ( document.getElementById( baliseId + numDiv) ) { var balise = document.getElementById( baliseId + numDiv); if (balise && balise.className == "visible") balise.className = "hidden"; if (balise && balise.className == "hidden") balise.className = "visible"; numDiv++ } } //} } /*********************************************** * Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ var offsetxpoint=-60 //Customize x offset of tooltip var offsetypoint=20 //Customize y offset of tooltip var ie=document.all var ns6=document.getElementById && !document.all var enabletip=false if (ie||ns6) var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : "" function ietruebody() { return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body } function showtip(thetext) { if (ns6||ie) { tipobj.innerHTML=thetext enabletip=true return false } } function positiontip(e) { if (enabletip) { var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft; var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop; //Find out how close the mouse is to the corner of the window var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20 var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20 var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000 //if the horizontal distance isn't enough to accomodate the width of the context menu if (rightedge 2) ? argv[2] : 600; var h = (argc > 3) ? argv[3] : 400; var wfeatures="directories=0,menubar=0,status=0,resizable=0,scrollbars=1,toolbar=0,width="+l+",height="+h+",left=" + eval("(screen.width - l)/2") + ",top=" + eval("(screen.height - h)/2"); fen=window.open(tmp,title,wfeatures); return false; }