//for the markerTimer we need global viariables var markerTimer=null; var request=null; // the response from an XMLHttpRequest /* Create a new XMLHttpRequest object to talk to the Web server */ var xmlHttp = false; // Set-up a multi div-tag direction function function handleDivTag(divtag) { var divtag; return divtag; } // Create the Divtag Handler -- Mainly an IE 6 Fix var divhandler = new handleDivTag(null); function createRequestObject() { var req; if(window.XMLHttpRequest){ // Firefox, Safari, Opera... req = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer 5+ req = new ActiveXObject("Microsoft.XMLHTTP"); } else { // There is an error creating the object, // just as an old browser is being used. alert("There was a problem creating the XMLHttpRequest object"); } return req; } function sendRequest( reqDoc, divtag ) { now= new Date(); var htmlDoc= reqDoc; htmlDoc += htmlDoc.indexOf("?")>0?"&zz=":"?zz="; htmlDoc += now.getTime().toString(10); document.body.style.cursor="wait"; if (markerTimer) clearTimeout(markerTimer); if( reqDoc !== "/access/welcome.php" && reqDoc !== "/access/noaccess.php" ) { closeDiv("ButtonBox"); } else { if( userLevel < 5 ) showDiv("ButtonBox"); } // Check if requestobject is initialized, if not do so... if( !request ) { request = createRequestObject(); } // Setup the taghandler to handle the different tags divhandler.divtag = (divtag==null?"DataContainer":divtag); // Open PHP script for requests request.open("GET", htmlDoc,true); request.onreadystatechange = handleResponse; request.send(null); } function postRequest( reqDoc, strSubmit, formDoc, divtag ) { var htmlDoc= reqDoc; document.body.style.cursor="wait"; // Check if requestobject is initialized, if not do so... if( !request) { request = createRequestObject(); } divhandler.divtag = (divtag==null?"DataContainer":divtag); // Open PHP script for requests request.open("POST", htmlDoc,true); try { if( formDoc.encoding == "multipart/form-data") { request.setRequestHeader("Content-Type", "multipart/form-data"); }else { request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } } catch(e) { // do nothing } request.onreadystatechange = handleResponse; request.send(strSubmit); } function handleResponse() { if(request.readyState == 4 && request.status == 200) { docType= request.getResponseHeader("Content-Type"); switch (docType) { case "text/xml": break; default: var htmlDoc =request.responseText; // check if we received our welcome page if( divhandler.divtag=="WELCOME" && htmlDoc.indexOf("Pakket123 Welkom Pagina") != -1) { // we found a match so reset divtag //divhandler.divtag = ""; window.top.location = "/index.php?url=/access/welcome.php"; //exit; } // process divtag specific requests switch(divhandler.divtag) { case "SmsBox": document.getElementById("SmsBoxContent").innerHTML = htmlDoc; showDiv("Overlay"); showDiv(divhandler.divtag); divhandler.divtag=null; // avoid tag-memory issues! break; case "AlarmBox": document.getElementById("AlarmBoxContent").innerHTML = htmlDoc; showDiv("Overlay"); showDiv("AlarmBox"); divhandler.divtag=null; // avoid tag-memory issues! // if(dataInterval < 60000 || !dataInterval || isNaN(dataInterval)) dataInterval=60000; // alarmTimer=setTimeout( "getUpdate(updateUrl+'?companyID='+CompanyID+'&int='+dataInterval,'AlarmBox')",dataInterval); // document.getElementById("lastrefresh").value= Date(); break; case "ButtonBox": break; case "TreeContainer": document.getElementById('MapContainer').style.visibility='hidden'; document.getElementById('MapContainer').style.zIndex=0; document.getElementById("DataContainer").style.zIndex=1; document.getElementById("DataContainer").innerHTML = ""; document.getElementById("TreeContainer").innerHTML=htmlDoc; break; case "UpdateDiv": document.getElementById("UpdateDiv").innerHTML = htmlDoc; break; default: document.getElementById('MapContainer').style.visibility='hidden'; document.getElementById('MapContainer').style.zIndex=0; document.getElementById("DataContainer").style.zIndex=1; document.getElementById("ButtonBox").style.visibility='hidden'; document.getElementById("DataContainer").innerHTML = htmlDoc; if( !document.getElementById("DTREE")) { document.getElementById("TreeContainer").innerHTML=""; if( document.getElementById("TreeContainerData") ) { document.getElementById("TreeContainer").innerHTML=document.getElementById("TreeContainerData").innerHTML; document.getElementById("TreeContainerData").innerHTML=""; } } // special post processing instructions here: switch(divhandler.divtag) { case "ParcelStep1": innerHTML = "
"; document.getElementById("TreeContainer").innerHTML=innerHTML; pdate = document.getElementById("pickupdate").value; ddate = document.getElementById("deliverydate").value; $(function() { $("#pupdate").datepicker({altField: '#pickupdate', altFormat: 'yy-mm-dd'}); }); // $('#pupdate').datepicker('option', 'minDate', new Date()); // if(ddate.length > 0 && ddate < pdate) // { // pday= new Date(pdate.substr(0,4),pdate.substr(5,2)-1,pdate.substr(8,2)); // $('#pupdate').datepicker('setDate',pday); // } if( pdate=='') { $('#pupdate').datepicker('option', 'minDate', new Date()); } else { pday= new Date(pdate.substr(0,4),pdate.substr(5,2)-1,pdate.substr(8,2)); $('#pupdate').datepicker('setDate',pday); } divtag=""; break; case "ParcelStep2": innerHTML = "
"; document.getElementById("TreeContainer").innerHTML=innerHTML; pdate = document.getElementById("pickupdate").value; ddate = document.getElementById("deliverydate").value; dday= new Date(pdate.substr(0,4),pdate.substr(5,2)-1,pdate.substr(8,2)); $(function() { $("#dlvdate").datepicker({altField: '#deliverydate', altFormat: 'yy-mm-dd'}); }); // $('#dlvdate').datepicker('option', 'minDate', dday); // if(ddate.length > 0 && ddate < pdate ) // { // //pday= new Date(ddate.substr(0,4),ddate.substr(5,2)-1,ddate.substr(8,2)); // $("#dlvdate").datepicker('setDate',dday ); // } if( ddate == '') { $('#dlvdate').datepicker('option', 'minDate', dday); } else { if(ddate < pdate ) { $("#dlvdate").datepicker('setDate',dday ); } else { dday= new Date(ddate.substr(0,4),ddate.substr(5,2)-1,ddate.substr(8,2)); $("#dlvdate").datepicker('setDate',dday ); } } divtag=""; break; case "ParcelStep3": innerHTML = "
"; document.getElementById("TreeContainer").innerHTML=innerHTML; divtag=""; break; case "ParcelStep4": innerHTML = "
"; if( document.getElementById("OK") ) { innerHTML += "
"; } else innerHTML += ""; document.getElementById("TreeContainer").innerHTML=innerHTML; divtag=""; break; default: innerHTML = "
"; if( document.getElementById("ICON") ) { innerHTML +=document.getElementById("ICON").innerHTML+"
"; document.getElementById("TreeContainer").innerHTML=innerHTML; } divtag=""; break; } } } document.body.style.cursor="default"; } } function getUpdate() { tmpUrl = ""+document.getElementById("update").innerHTML; sendRequest(tmpUrl); } function postForm( docForm,htmlDoc, divTag) { var validInput = true; switch( docForm.name ) { case "userInfo": // check if all fields have valid input if( checkUserInfo(docForm)==0) { validInput=true; } else validInput=false; break; case "companyInfo": // check if all fields have valid input if( checkCompanyInfo(docForm)==0) { validInput=true; } else validInput=false; break; case "paramDetail": // check if all fields have valid input if( checkParamInfo(docForm)==0) { validInput=true; } else validInput=false; break; case "parcelInfo": // check if all fields have valid input if( checkParcelInfo(docForm)==0) { validInput=true; } else validInput=false; break; case "SMSCredits": // check if all fields have valid input if( checkSMSInfo(docForm)==0) { validInput=true; } else validInput=false; break; } if( validInput) { var formData =formData2QueryString(docForm); postRequest( htmlDoc, formData, docForm, divTag ); } // prevent form from submitting form. return false; } function prePostForm( tForm,url) { closeSmsBox(); postForm(tForm,url); return false; } // got to prev formpage without validating function backStep( docForm,htmlDoc, divTag ) { var formData =formData2QueryString(docForm); postRequest( htmlDoc, formData, docForm, divTag ); } function checkUserInfo( docForm ) { //A binary shift right is used to test checksum var checksum = 127;// binary 1111111 for 7 fields var msg = "Je hebt de volgende informatie niet (juist) opgegeven:\n"; if( docForm.login.value == "") { msg += "Je hebt geen loginnaam opgegeven.\n"; } else { checksum>>>=1; } if( docForm.password.value == "" && docForm.what.value=="new" ) { msg += "Je hebt geen wachtwoord opgegeven\n"; } else{ checksum>>>=1; } if( docForm.confirm.value == "" && docForm.what.value=="new") { msg += "Je hebt geen bevestigingswachtwoord opgegeven.\n"; } else{ checksum>>>=1; } if( docForm.first_name.value == "") { msg += "Je hebt geen voornaam opgegeven\n"; } else{ checksum>>>=1; } if( docForm.last_name.value == "") { msg += "Je hebt geen achternaam opgegeven\n"; } else{ checksum>>>=1; } if( docForm.phone.value == "") { msg += "Je hebt geen telefoonnummer opgegeven\n"; } else { if( docForm.phone.value.indexOf(" ")>=0 || docForm.phone.value.indexOf("-")>0 || docForm.phone.value.length<10 || docForm.phone.value.length>11 || docForm.phone.value.indexOf("0")==0) { msg += "Het telefoonnummer is niet in het formaat \n31123456789!\n"; } else{ checksum>>>=1; } } if( docForm.email.value == "") { msg += "Je hebt geen e-mail adres opgegeven\n"; } else { if( docForm.email.value.lastIndexOf(".")>docForm.email.value.indexOf("@") && docForm.email.value.lastIndexOf(".")!=docForm.email.value.indexOf("@") && docForm.email.value.indexOf("@")>=0 && validEmail(docForm.email.value) ) { checksum>>>=1; } else { msg += "Je hebt een ongeldig e-mail adres opgegeven!!\n"; } } if( checksum ) alert(msg); return checksum; } function checkCompanyInfo( docForm ) { //A binary shift right is used to test checksum var checksum = 63; // binary 111111 for 6 fields var msg = "Je hebt de volgende informatie niet (juist) opgegeven:\n"; if( docForm.company.value == "") { msg += "Je hebt geen bedrijfsnaam opgegeven\n"; } else{ checksum>>>=1; } if( docForm.address.value == "") { msg += "Je hebt geen adres opgegeven\n"; } else{ checksum>>>=1; } if( docForm.zip.value == "") { msg += "Je hebt geen postcode opgegevenn\n"; } else{ checksum>>>=1; } if( docForm.city.value == "") { msg += "Je hebt geen plaats opgegeven\n"; } else{ checksum>>>=1; } if( docForm.phone.value == "") { msg += "Je hebt geen telefoonnummer opgegeven\n"; } else { if( docForm.phone.value.indexOf(" ")>=0 || docForm.phone.value.indexOf("-")>0 || docForm.phone.value.length<10 || docForm.phone.value.length>11 || docForm.phone.value.indexOf("0")==0) { msg += "Het telefoonnummer is niet in het formaat \n31123456789!!\n"; } else{ checksum>>>=1; } } if( docForm.email.value == "") { msg += "Je hebt geen e-mail adres opgegeven\n"; } else { if( docForm.email.value.lastIndexOf(".")>docForm.email.value.indexOf("@") && docForm.email.value.lastIndexOf(".")!=docForm.email.value.indexOf("@") && docForm.email.value.indexOf("@")>=0 && validEmail(docForm.email.value)) { checksum>>>=1; } else { msg += "Je hebt een ongeldig e-mail adres opgegeven!!\n"; } } return checksum; } function checkParcelInfo( docForm ) { //A binary shift right is used to test checksum var msg = "Je hebt de volgende informatie niet (juist) opgegeven:\n"; nbtn=pbtn=null; zip = zipa= housenr= email = ""; ftype = totype= false; switch (docForm.step.value ) { case "1": var checksum = 31;// binary 11111 for 5 fields (zip is a combined field) nbtn = docForm.Submit1; nbtn.disabled=true; ftype = (docForm.fromtype[0].checked || docForm.fromtype[1].checked); zip = docForm.zip.value; zipa = docForm.zipa.value; housenr = docForm.housenr.value; email = docForm.email.value; phone= docForm.phone.value; break; case "2": var checksum = 15;// binary 1111 for 4 fields nbtn = docForm.Submit2; nbtn.disabled=true; pbtn= docForm.Submit2a; pbtn.disabled=true; d_arr=docForm.deliverydate.value.split("-"); p_arr=docForm.pickupdate.value.split("-"); dtime = new Date( d_arr[0],new Number(d_arr[1])-1,d_arr[2],docForm.dlvhour.value,docForm.dlvmin.value,0,0); // dtime.setHours(docForm.dlvhour.value,docForm.dlvmin.value,0); ptime = new Date(p_arr[0],new Number(p_arr[1])-1,p_arr[2],docForm.puphour.value,docForm.pupmin.value,0,0); // ptime.setHours(docForm.puphour.value,docForm.pupmin.value,0); totype=(docForm.totype[0].checked || docForm.totype[1].checked); zip = docForm.zip2.value; zipa = docForm.zip2a.value; housenr = docForm.housenr2.value; break; case "3": var checksum = 63;// binary 111111 for 4 fields nbtn = docForm.Submit; nbtn.disabled=true; pbtn= docForm.Submit3a; pbtn.disabled=true; amt= docForm.amount.value; ptype= docForm.parceltype.value; hgt = docForm.height.value; wdt = docForm.width.value; lgt = docForm.length.value; wgt = docForm.weight.value; break; default: return checksum; } if( docForm.step.value<3 ) { if( !ftype && docForm.step.value==1) { msg += "Geef aan of je een particulier of een bedrijf bent\n"; }else if( !totype && docForm.step.value==2) { msg += "Geef aan of je een particulier of een bedrijf bent\n"; }else{ checksum>>>=1; } if( zip == "" || zipa == "") { msg += "Je hebt geen postcode opgegeven\n"; } else{ checksum>>>=1; } if( housenr == "") { msg += "Je hebt geen huis nummer opgegeven.\n"; } else{ checksum>>>=1; } if(docForm.step.value==1) { if( email == "" ) { msg += "Je hebt geen e-mail adres opgegeven\n"; } else { if( email.lastIndexOf(".")>email.indexOf("@") && email.lastIndexOf(".")!=email.indexOf("@") && email.indexOf("@")>=0 && validEmail(email) ) { checksum>>>=1; } else { msg += "Je hebt een ongeldig e-mail adres opgegeven!!\n"; } } if( phone == "" ) // is ok { checksum>>>=1; } else { //check on correct format if( phone.indexOf(" ")>=0 || phone.indexOf("-")>0 || phone.length<10 || phone.length>11 || phone.indexOf("0")==0) { msg += "Het telefoonnummer is niet in het formaat \n31123456789!!\n"; } else{ checksum>>>=1; } } } else { if( dtime <= ptime ) { msg += "De aflevertijd kan niet op of voor de ophaaltijd liggen\n"; } else { checksum>>>=1; } } } else { if( amt=="" || amt<1 ) { msg += "Je hebt geen aantal opgegeven!\n"; } else { checksum>>>=1; } if( ptype=="" || ptype=="0") { msg += "Je hebt geen pakketsoort opgegeven!\n"; } else { checksum>>>=1; } if( hgt == "" ) { msg += "Je hebt geen hoogte opgegeven!\n"; } else { checksum>>>=1; } if( wgt == "" ) { msg += "Je hebt geen gewicht opgegeven!\n"; } else { checksum>>>=1; } if( wdt == "" ) { msg += "Je hebt geen breedte opgegeven!\n"; } else { checksum>>>=1; } if( lgt == "" ) { msg += "Je hebt geen lengte opgegeven!\n"; } else { checksum>>>=1; } } if( checksum ) { nbtn?nbtn.disabled=false:null; pbtn?pbtn.disabled=false:null; alert(msg); } return checksum; } function checkSMSInfo( docForm ) { //A binary shift right is used to test checksum var checksum = 3;// binary 11 for 2 fields var msg = "Je hebt de volgende informatie niet (juist) opgegeven:\n"; if( !docForm.acceptterms.checked) { msg += "Je hebt 'Ik accepteer de algemene voorwaarden' niet aangevinkt.\n"; } else { checksum>>>=1; } if(docForm.dfltCredit.value=='') { msg += "Je hebt geen Credits geselecteerd.\n"; } else { checksum>>>=1; } if( checksum ) { alert(msg); return false; }else return checksum; } function onLoad( url ) { request = createRequestObject(); sendRequest(url); } /* * Copyright 2005 Matthew Eernisse (mde@fleegix.org) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Original code by Matthew Eernisse (mde@fleegix.org) * Additional bugfixes by Mark Pruett (mark.pruett@comcast.net) * */ // The var docForm should be a reference to a
function formData2QueryString(docForm) { var submitContent = ""; var formElem; var lastElemName = ""; //for (i = 0; i < docForm.elements.length; i++) i=0; while( formElem=docForm.elements[i] ) { i++; //formElem = docForm.elements[i]; switch (formElem.type) { // Text fields, hidden form elements case "text": case "hidden": case "password": case "textarea": case "select-one": case "submit": submitContent += formElem.name + "=" + escape(formElem.value) + "&"; break; case "select-multiple": submitContent += formElem.name + "="; separate=false; for( j=0;j