var tabPos = new Array(); function fixTabPos(){ for(key in tabPos){ if(tabPos[key]) { tabPos[key].parentNode.firstChild.style.top = findPosY(tabPos[key]) + 'px'; //alert(tabPos[key].parentNode.firstChild.style.top + ' --> ' + findPosY(tabPos[key])); } } } function findPosX(obj) { var curleft = 0; if(obj) { 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) { if (obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop obj = obj.offsetParent; } } else if (obj.x) { curtop += obj.x; } return curtop; } } function fillDiv(key, divid) { var divObj = document.getElementById(divid); var tabObj = document.getElementById(key + '_btn'); for(var i=0; i 1) { thisObj.removeChild(thisObj.firstChild); } } } if(tabInfoObj.innerHTML == '' || tabInfoObj.innerHTML == 'Searching for the latest local information...' || tabInfoObj.innerHTML.indexOf('Error:') >= 0) { tabInfoObj.innerHTML = 'Searching for the latest local information...'; switch(key) { case "map": break; case "journeyplanner": var ajaxVar = new ajaxVars(); ajaxVar.vars['sql_type'] = "select"; ajaxVar.vars['sql_what'] = "name, intro, bodytext"; ajaxVar.vars['sql_from'] = "pages"; ajaxVar.vars['sql_where'] = "label='journey planner'"; ajaxVar.vars['action'] = "mysql_fetch_array"; ajaxVar.fnVars['divId'] = key; ajaxVar.gotoFunction = "showData"; ajaxVar.AjaxPostSQL(); break; default: var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "tabData"; ajaxVar.vars['args'] = key + ',' + randPostcode; ajaxVar.fnVars['divId'] = key; ajaxVar.gotoFunction = 'putData'; ajaxVar.AjaxPostSQL(); break; } } var infoHeight = tabInfoObj.offsetHeight + 10; if(tabInfoObj.id == 'map') { infoHeight = 480; } infoHeight = (infoHeight < 190) ? 190 : infoHeight; tabInfoObj.parentNode.style.height = infoHeight + 'px'; fixTabPos(); } function showData(data, fnVars) { var divObj = document.getElementById(fnVars['divId']); if(isArray(data)) { divObj.innerHTML = data['intro'][0]; divObj.innerHTML += data['bodytext'][0]; }else{ divObj.innerHTML =data; } var infoHeight = divObj.offsetHeight + 10; infoHeight = (infoHeight < 190) ? 190 : infoHeight; divObj.parentNode.style.height = infoHeight + 'px'; fixTabPos(); } function putData(data, fnVars) { var divObj = document.getElementById(fnVars['divId']); divObj.innerHTML = data; var infoHeight = divObj.offsetHeight + 10; infoHeight = (infoHeight < 190) ? 190 : infoHeight; divObj.parentNode.style.height = infoHeight + 'px'; fixTabPos(); if((fnVars['divId'] == "parknews") && (document.getElementById('newstd'))){ moveTop(); } if((fnVars['divId'] == "localoffers") && (document.getElementById('offerstd'))){ moveOffTop(); } } function isArray(obj) { if (obj.constructor.toString().indexOf('Array') == -1) return false; else return true; } function SetDateTimeDropDown() { var currentDate = new Date(); var hour = currentDate.getHours(); var minute = currentDate.getMinutes(); // round up the minutes to the nearest 15 var minutes = (Math.round(minute/5))* 5 minutes = minutes+15; if (minutes > 59) { minutes = minutes % 60; // increment the hour hour++; if(hour > 23) { // increment the day day++; // set the hour to midnight hour = 0; } } var month = currentDate.getMonth(); var day = currentDate.getDate(); var year = currentDate.getFullYear(); var monthList = new Array(12); monthList[0]="Jan"; monthList[1]="Feb"; monthList[2]="Mar"; monthList[3]="Apr"; monthList[4]="May"; monthList[5]="Jun"; monthList[6]="Jul"; monthList[7]="Aug"; monthList[8]="Sep"; monthList[9]="Oct"; monthList[10]="Nov"; monthList[11]="Dec"; var displayMonthsText = new Array(3); var displayMonthsNumber = new Array(3); var followingYear = year+1; switch(month) { case 10: displayMonthsText[0] = monthList[month]+" "+year; displayMonthsText[1] = monthList[month+1]+" "+year; displayMonthsText[2] = monthList[0]+" "+followingYear; var month2 = month+1; var month3 = month+2; displayMonthsNumber[0] = month2+""+year; displayMonthsNumber[1] = month3+""+year; displayMonthsNumber[2] = "01"+followingYear; break; case 11: displayMonthsText[0] = monthList[month]+" "+year; displayMonthsText[1] = monthList[0]+" "+followingYear; displayMonthsText[2] = monthList[1]+" "+followingYear; var currentMonth = month+1; displayMonthsNumber[0] = currentMonth+""+year; displayMonthsNumber[1] = "01"+followingYear; displayMonthsNumber[2] = "02"+followingYear; break; default: var month2 = month+1; var month3 = month+2; var month4 = month+3; displayMonthsText[0] = monthList[month]+" "+year; displayMonthsText[1] = monthList[month2]+" "+year; displayMonthsText[2] = monthList[month3]+" "+year; displayMonthsNumber[0] = ""+month2+year; displayMonthsNumber[1] = ""+month3+year; displayMonthsNumber[2] = ""+month4+year; break; } // Get a reference to the drop-down var hourDropDownList = document.getElementById("timeHours"); var minutesDropDownList = document.getElementById("timeMinutes"); var daysDropDownList = document.getElementById("dateTimeDay"); var monthsDropDownList = document.getElementById("dateTimeMonth"); // Loop through hours for (i = 0; i< hourDropDownList.options.length; i++) { if (hourDropDownList.options[i].value == hour) { hourDropDownList.options[i].selected = true; break; } } // Loop through minutes for (k = 0; k< minutesDropDownList.options.length; k++) { if (minutesDropDownList.options[k].value == minutes) { minutesDropDownList.options[k].selected = true; break; } } // Loop through days for (m = 0; m< daysDropDownList.options.length; m++) { if (daysDropDownList.options[m].value == day) { daysDropDownList.options[m].selected = true; break; } } // Loop through months for (n = 0; n< displayMonthsText.length; n++) { //name, value e.g. ("May 2006", "052006") monthsDropDownList.options[n]=new Option(displayMonthsText[n], displayMonthsNumber[n]); } // set current month (the first item in the array) as the selected item monthsDropDownList.selectedIndex = 0; } function AssembleParameters() { var inputText = document.getElementById("txtOrigin").value; var outputText = document.getElementById("txtDestination").value; //set the date and time document.getElementById("departureDate").value = GetDate("dateTimeDay","dateTimeMonth"); document.getElementById("departureTime").value = GetTime("timeHours","timeMinutes"); if(document.getElementById("returnDate")){ document.getElementById("returnDate").value = GetDate("RdateTimeDay","RdateTimeMonth"); document.getElementById("returnTime").value = GetTime("RtimeHours","RtimeMinutes"); } // destination is the entered postcode document.getElementById("destinationData").value = outputText; document.getElementById("destinationName").value = outputText; document.getElementById("destinationType").value = "p"; // origin is the entered postcode document.getElementById("originData").value = inputText; document.getElementById("originType").value = "p"; document.getElementById("originName").value = inputText; } function GetTime(hr,mn) { var hour = document.getElementById(hr).options[document.getElementById(hr).selectedIndex].value; var min = document.getElementById(mn).options[document.getElementById(mn).selectedIndex].value; return hour+""+min; } function GetDate(dy,mt) { var day = document.getElementById(dy).options[document.getElementById(dy).selectedIndex].value; var monthYear = document.getElementById(mt).options[document.getElementById(mt).selectedIndex].value; return day+""+monthYear; } function comparePass(data){ if(data == 1){ alert("New password cannot be same as that of the current password"); document.getElementById('coll_pword').value = ''; document.getElementById('coll_pword').focus(); } } function check_old_password(){ var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "get_comp_result"; ajaxVar.vars['nosplit'] = 1; ajaxVar.vars['old_pass'] = document.getElementById('old_password').value; ajaxVar.vars['new_pass'] = document.getElementById('password').value; ajaxVar.gotoFunction = 'comparePass'; ajaxVar.AjaxPostSQL(); } // function to validate the password function validatePassword (pw, options, username, confirmpass) { // default options (allows any password) var o = { lower: 0, upper: 0, alpha: 0, /* lower + upper */ numeric: 0, special: 0, length: [0, Infinity], custom: [ /* regexes and/or functions */ ], badWords: [], badSequenceLength: 0, noQwertySequences: true, noSequential: true }; for (var property in options) o[property] = options[property]; var re = { lower: /[a-z]/g, upper: /[A-Z]/g, alpha: /[A-Z]/gi, numeric: /[0-9]/g, special: /[\W_]/g }, rule, i; // enforce min/max length if (pw.length < o.length[0] || pw.length > o.length[1]) return false; // enforce lower/upper/alpha/numeric/special rules for (rule in re) { if ((pw.match(re[rule]) || []).length < o[rule]) return false; } // enforce alphanumeric/qwerty sequence ban rules if (o.badSequenceLength) { var lower = "abcdefghijklmnopqrstuvwxyz", upper = lower.toUpperCase(), numbers = "0123456789", qwerty = "qwertyuiopasdfghjklzxcvbnm", start = o.badSequenceLength - 1, seq = "_" + pw.slice(0, start); for (i = start; i < pw.length; i++) { seq = seq.slice(1) + pw.charAt(i); if ( lower.indexOf(seq) > -1 || upper.indexOf(seq) > -1 || numbers.indexOf(seq) > -1 || (o.noQwertySequences && qwerty.indexOf(seq) > -1) ) { return false; } } } // enforce custom regex/function rules for (i = 0; i < o.custom.length; i++) { rule = o.custom[i]; if (rule instanceof RegExp) { if (!rule.test(pw)) return false; } else if (rule instanceof Function) { if (!rule(pw)) return false; } } // check if password is same as that of username if(username){ if(username==pw){ return false; } } // check if confirm pass is not same as that of the password if(confirmpass){ if(confirmpass!=pw){ return false; } } // great success! return true; } function setBM(catId){ var ajaxVar = new ajaxVars(); ajaxVar.vars['sql_type'] = "select"; ajaxVar.vars['sql_what'] = "bm_cat, bm_email,firstname,lastname"; ajaxVar.vars['sql_from'] = "bm_cat_user as b left join users as u on b.bm_email=u.email"; ajaxVar.vars['sql_where'] = "b.park_id='5' and bm_cat="+catId; ajaxVar.vars['action'] = "mysql_fetch_array"; ajaxVar.gotoFunction = "listBM"; ajaxVar.AjaxPostSQL(); } function listBM(dataArr,fnvars){ document.getElementById('reported_to').value = ""; if(dataArr["bm_email"]){ document.getElementById('reported_to').value = dataArr["bm_email"][0]; document.getElementById('bm_name').value = dataArr["firstname"][0]+" "+dataArr["lastname"][0]; } } function checkBMAvailability(bmEmail,bId){ if(bmEmail == "" || bmEmail == " "){ alert("Please select an Email address"); }else{ var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['bmEmail'] = bmEmail; ajaxVar.vars['bId'] = bId; ajaxVar.vars['func'] = "verifyBMEmail"; ajaxVar.gotoFunction = "bmVerfied"; ajaxVar.AjaxPostSQL(); } } function bmVerfied(data){ if(data == 0){ alert("The e-mail address you have entered does not belong to a registered helpdesk administrator."); }else{ location.href="bm_reply.php"; } } var winImgId = 0; // function getWinnerImg(cnt,timeVal,imgDirection){ // timer = setTimeout(function() {viewWinnerImg(cnt,timeVal,imgDirection)},5000); // } // function viewWinnerImg(cnt,timeVal,imgDirection){ // var imgArr = new Array(); // var imgStrArr = new Array(); // // document.getElementById('offerLogo_'+winImgId).className = "hiddenClass"; // if(imgDirection == 1){ // winImgId = winImgId-1; // if(winImgId <= 0){ // winImgId = cnt-1; // } // }else{ // winImgId = winImgId+1; // if(winImgId >= cnt){ // winImgId = 0; // } // } // // document.getElementById('offerLogo_'+winImgId).className = "visibleClass"; // if(timeVal == 2){ // clearTimeout(timer); // }else{ // timer = setTimeout(function() {viewWinnerImg(cnt,timeVal,imgDirection)},5000); // } // } function getWinnerImg(cnt){ setTimeout(function() {viewWinnerImg(cnt)},2000); } function viewWinnerImg(cnt){ var imgArr = new Array(); var imgStrArr = new Array(); document.getElementById('offerLogo_'+winImgId).className = "hiddenClass"; winImgId = winImgId+1; if(winImgId >= cnt){ winImgId = 0; } document.getElementById('offerLogo_'+winImgId).className = "visibleClass"; setTimeout(function() {viewWinnerImg(cnt)},2000); } function showApartments(selectedId){ var ajaxVar = new ajaxVars(); if(selectedId){ ajaxVar.fnVars['selectedId'] = selectedId; } ajaxVar.vars['action'] = "mysql_fetch_array"; ajaxVar.vars['sql_type'] = "select"; ajaxVar.vars['sql_what'] = "id,apartment_no"; ajaxVar.vars['sql_from'] = "apartment_floor"; ajaxVar.vars['sql_where'] = ""; if(selectedId != ''){ ajaxVar.vars['sql_where'] += "floor_no ='"+selectedId+"'"; } ajaxVar.vars['sql_order'] = 'apartment_no'; ajaxVar.fnVars['formName'] = 'admin'; ajaxVar.fnVars['fieldName'] = 'apartment_no'; ajaxVar.gotoFunction = 'putDropDownAll'; ajaxVar.AjaxPostSQL(); } function putDropDownAll(dataArr, fnVars){ var dropField = document.forms[fnVars['formName']].elements[fnVars['fieldName']]; dropField.options.length = 0; dropField.options[0] = new Option(' ',' '); if(dataArr['id']){ if(dropField) { if(dataArr != 'empty') { for(var i=0; i 0){ location.href = fnVars['pageurl']+"?subaction=edit&id="+dataArr["id"][0]; } }else{ location.href = fnVars['pageurl']+"?subaction=edit&on="+fnVars['eDate']; } } function buildSubCatPopup(catId){ var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "buildSubCatPopup"; ajaxVar.vars['id'] = catId; ajaxVar.gotoFunction = "showSubCatPopup"; ajaxVar.AjaxPostSQL(); } function showSubCatPopup(dataArr,fnVars){ var divObj = document.getElementById('subCatPopId'); divObj.style.display = "block"; divObj.style.visibility = "visible"; divObj.style.top = Math.round((document.documentElement.clientHeight/2)-(divObj.style.height/2)+document.documentElement.scrollTop)+'px'; divObj.style.left = Math.round((document.documentElement.clientWidth/2)-(divObj.style.width/2))+"px"; divObj.innerHTML = dataArr; } function generateApartmentDrop(parkId,fObj,divId,docId,tablename){ selectedFloor = new Array(); for(var i=0; i 0){ var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "createApartmentDrop"; ajaxVar.vars['parkId'] = parkId; ajaxVar.fnVars['divId'] = divId; ajaxVar.vars['docId'] = docId; ajaxVar.vars['selectedFloor'] = selectedVal; ajaxVar.vars['tablename'] = tablename; ajaxVar.gotoFunction = "showApartmentDrop"; ajaxVar.AjaxPostSQL(); }else{ alert("Please select floors"); } } function showApartmentDrop(data,fnVars){ if(data.indexOf('Error:') >= 0){ document.getElementById(fnVars['divId']).innerHTML = ""; var dropField = document.admin.elements['apart_no']; dropField.options.length = 0; dropField.options[0] = new Option(' ',' '); }else{ document.getElementById(fnVars['divId']).innerHTML = data; } } function updateDuty(dutyVal, empId){ newArr = dutyVal.split('_'); var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "dutyUpdate"; ajaxVar.vars['empId'] = empId; ajaxVar.vars['dutyDate'] = newArr[0]; ajaxVar.vars['status'] = newArr[1]; ajaxVar.AjaxPostSQL(); } function generateUserApt(userId,parkId,fObj){ selectedFloor = new Array(); for(var i=0; i 0){ var ajaxVar = new ajaxVars(); ajaxVar.vars['action'] = "runFunction"; ajaxVar.vars['func'] = "createUserApt"; ajaxVar.vars['userId'] = userId; ajaxVar.vars['parkId'] = parkId; ajaxVar.vars['selectedFloor'] = selectedVal; ajaxVar.fnVars['divId'] = "apartmentrow"; ajaxVar.gotoFunction = "showUserApt"; ajaxVar.AjaxPostSQL(); }else{ alert("Please select floors"); } } function showUserApt(data,fnVars){ if(data.indexOf('Error:') >= 0){ document.getElementById(fnVars['divId']).innerHTML = ""; var dropField = document.admin.elements['apart_no']; dropField.options.length = 0; dropField.options[0] = new Option(' ',' '); }else{ document.getElementById(fnVars['divId']).innerHTML = "Select Apartments
"; document.getElementById(fnVars['divId']).innerHTML += data; } }