// Copyright 2007, BMT Defence Services Ltd, All rights reserved.

function bmtWebBinaryFind(cbo,zString,bExactMatch,bText){var bpComplete=false;var lpStartIndex=0;var lpEndIndex=cbo.options.length-1;var lpCurrentIndex;var lpPreviousIndex=-1;var zpComboValue;var zpSearchValue=new String(zString).toLowerCase();var lpMinIndex=-1;var bpBinarySearch=true;if(cbo.sorted){if(cbo.sorted=="False")bpBinarySearch=false;}for(var lpLoop=0;lpLoop<zpSearchValue.length;lpLoop++){lpKeyCode=zpSearchValue.charCodeAt(lpLoop);if(lpKeyCode>57&&(lpKeyCode<65||lpKeyCode>90)){bpBinarySearch=false;}}if(bpBinarySearch==true){if(lpEndIndex==0)lpMinIndex=lpStartIndex;else{while(1!=2){lpPreviousIndex=lpCurrentIndex;lpCurrentIndex=parseInt((lpEndIndex-lpStartIndex)/2+lpStartIndex);if(bText==true){if(bExactMatch==true)zpComboValue=cbo.options[lpCurrentIndex].text.toLowerCase();else zpComboValue=cbo.options[lpCurrentIndex].text.toLowerCase().substring(0,zpSearchValue.length);}else{if(bExactMatch==true)zpComboValue=cbo.options[lpCurrentIndex].value.toLowerCase();else zpComboValue=cbo.options[lpCurrentIndex].value.toLowerCase().substring(0,zpSearchValue.length);}if(lpPreviousIndex==lpCurrentIndex){break;}if(zpSearchValue<=zpComboValue){if(zpSearchValue==zpComboValue)lpMinIndex=lpCurrentIndex;lpEndIndex=lpCurrentIndex;}else{if((lpEndIndex-lpStartIndex)==2)lpStartIndex=lpCurrentIndex+1;else lpStartIndex=lpCurrentIndex;}}}}else{for(lpLoop=lpStartIndex;lpLoop<cbo.options.length;lpLoop++){if(bText==true){if(bExactMatch==true)zpComboValue=cbo.options[lpLoop].text.toLowerCase();else zpComboValue=cbo.options[lpLoop].text.toLowerCase().substring(0,zpSearchValue.length);}else{if(bExactMatch==true)zpComboValue=cbo.options[lpLoop].value.toLowerCase();else zpComboValue=cbo.options[lpLoop].value.toLowerCase().substring(0,zpSearchValue.length);}if(zpComboValue==zpSearchValue){lpMinIndex=lpLoop;break;}}}return lpMinIndex;}
function bmtWebNumericKeyPress(oEvent){var bpKeyCheck;bpKeyCheck=bmtWebKeyCheck(oEvent);if(bpKeyCheck==true)oEvent.returnValue=true;else{if(oEvent.ctrlKey&&(oEvent.keyCode==65||oEvent.keyCode==67||oEvent.keyCode==88)){oEvent.returnValue=true;}else{if(oEvent.ctrlKey&&oEvent.keyCode==86){var zpString=window.clipboardData.getData("Text");oEvent.returnValue=!isNaN(zpString);}else{if((oEvent.keyCode<48)||(oEvent.keyCode>57)&&((oEvent.keyCode<96)||(oEvent.keyCode>105))){if(oEvent.keyCode!=46&&oEvent.keyCode!=8&&oEvent.keyCode!=37&&oEvent.keyCode!=39){oEvent.returnValue=false;}else{oEvent.returnValue=true;}}else{oEvent.returnValue=true;}}}}}
function bmtWebDecimalKeyPress(oTextBox,oEvent){var bpKeyCheck;bpKeyCheck=bmtWebKeyCheck(oEvent);if(bpKeyCheck==true)oEvent.returnValue=true;else{if(oEvent.ctrlKey&&(oEvent.keyCode==65||oEvent.keyCode==67||oEvent.keyCode==88)){oEvent.returnValue=true;}else{if(oEvent.ctrlKey&&oEvent.keyCode==86){var zpString=window.clipboardData.getData("Text");oEvent.returnValue=!isNaN(zpString);}else{if((oEvent.keyCode<48)||(oEvent.keyCode>57)&&((oEvent.keyCode<96)||(oEvent.keyCode>105))){if(oEvent.keyCode!=46&&oEvent.keyCode!=8&&oEvent.keyCode!=37&&oEvent.keyCode!=39){if(oEvent.keyCode==189){if(String(oTextBox.value).indexOf("-")==-1)oTextBox.value="-"+oTextBox.value;oEvent.returnValue=false;}else{if(oEvent.keyCode==190){if(String(oTextBox.value).indexOf(".")>0)oEvent.returnValue=false;else oEvent.returnValue=true;}else oEvent.returnValue=false;}}else{oEvent.returnValue=true;}}else{oEvent.returnValue=true;}}}}}
function bmtWebNumericPropertyChange(oControl,oEvent){if(oEvent.propertyName=="value"){if(oControl.value=="")oControl.previousValue=oControl.value;else{var opReg=/^\d+$/;var zpString=new String(oControl.value);if(!opReg.test(zpString))oControl.value=oControl.previousValue;else oControl.previousValue=oControl.value;}}}
function bmtWebDecimalPropertyChange(oControl,oEvent){if(oEvent.propertyName=="value"){if(oControl.value=="")oControl.previousValue=oControl.value;else{var opReg=/^(-)?\d+(\.\d+)?$/;var zpString=new String(oControl.value);if(!opReg.test(zpString))oControl.value=oControl.previousValue;else oControl.previousValue=oControl.value;}}}
function bmtWebGetOffsetLeft(oElement){var zpCSSText=document.styleSheets[0].cssText;var opParent=oElement.offsetParent;var lpOffset=oElement.offsetLeft;try{while(1!=2){lpOffset+=opParent.offsetLeft;if(opParent.style.borderLeftWidth)lpOffset+=parseInt(opParent.style.borderLeftWidth);if(opParent.className)lpOffset+=bmtWebGetCSSBorder(zpCSSText,opParent.className,"left")
opParent=opParent.offsetParent;}}catch(opCatch){return lpOffset;}}
function bmtWebGetOffsetTop(oElement){var zpCSSText=document.styleSheets[0].cssText;var opParent=oElement.offsetParent;var lpOffset=oElement.offsetTop;try{while(1!=2){if(opParent.nodeName=="DIV"){if(opParent.style.overflow=="auto"||opParent.style.overflowY=="auto"){return lpOffset;}}lpOffset+=opParent.offsetTop;if(opParent.style.borderTopWidth)lpOffset+=parseInt(opParent.style.borderTopWidth);opParent=opParent.offsetParent;}}catch(opCatch){return lpOffset;}}
function bmtWebGetCSSBorder(zCSSText,zClassName,zBorder){var lpBorder=0;var zpStartText="."+zClassName+"{";var lpStart=zCSSText.indexOf("."+zClassName+"{");if(lpStart==-1){lpStart=zCSSText.indexOf("."+zClassName+" {");zpStartText="."+zClassName+" {";}if(lpStart!=-1){var zpCSSText=zCSSText.slice(lpStart+zpStartText.length,zCSSText.length);var lpEnd=zpCSSText.indexOf("}");zpCSSText=zpCSSText.slice(0,lpEnd);lpStart=zpCSSText.indexOf("BORDER-"+String(zBorder).toUpperCase());if(lpStart!=-1){zpCSSText=zpCSSText.slice(lpStart,zpCSSText.length);lpEnd=zpCSSText.indexOf("px");if(lpEnd!=-1){zpCSSText=zpCSSText.slice(0,lpEnd);lpStart=zpCSSText.lastIndexOf(" ");if(lpStart!=-1){zpCSSText=zpCSSText.slice(lpStart+1,zpCSSText.length);lpBorder=parseInt(zpCSSText);}}}}return lpBorder;}
function bmtWebGetOffsetTopFull(oElement){var opParent=oElement.offsetParent;var lpOffset=oElement.offsetTop;try{while(1!=2){lpOffset+=opParent.offsetTop;if(opParent.style.borderTopWidth)lpOffset+=parseInt(opParent.style.borderTopWidth);opParent=opParent.offsetParent;}}catch(opCatch){return lpOffset;}}
function bmtWebKeyCheck(oEvent){switch(oEvent.keyCode){case 8:case 9:case 16:case 17:case 18:case 19:case 20:case 27:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 45:case 46:case 92:case 93:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 144:case 145:return true;break;default:return false;break;}}
function bmtWebGetBritishDate(zDate){if(!(zDate==null)&&!(zDate.length==0)){var opDate=new Date();if(zDate.slice(0,1)=="0")var lpDay=parseInt(zDate.slice(1,2));else var lpDay=parseInt(zDate.slice(0,2));if(zDate.slice(3,4)=="0")var lpMonth=parseInt(zDate.slice(4,5));else var lpMonth=parseInt(zDate.slice(3,5));var lpYear=zDate.slice(6,10);opDate.setMonth(lpMonth-1);opDate.setDate(lpDay);opDate.setYear(lpYear);opDate.setHours(0,0,0,0);return opDate;}else return null;}
function bmtWebDateFormat(zDate,zInputFormat,zOutputFormat){var opMonth;var lpMonth=0;var opMonths=new Array();var zpTime=zDate.split(" ")[1];var zpDate=new String(zDate.split(" ")[0]);var zpDay=new String();var zpMonth=new String();var zpYear=new String();opMonth=new Object();opMonth.Month="Jan";opMonth.FullMonth="January";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Feb";opMonth.FullMonth="February";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Mar";opMonth.FullMonth="March";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Apr";opMonth.FullMonth="April";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="May";opMonth.FullMonth="May";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Jun";opMonth.FullMonth="June";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Jul";opMonth.FullMonth="July";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Aug";opMonth.FullMonth="Aug";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Sep";opMonth.FullMonth="September";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Oct";opMonth.FullMonth="October";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Nov";opMonth.FullMonth="November";opMonths[lpMonth++]=opMonth;opMonth=new Object();opMonth.Month="Dec";opMonth.FullMonth="December";opMonths[lpMonth++]=opMonth;switch(zInputFormat){case"dd/mm/yyyy":zpDay=zpDate.slice(0,2);zpMonth=zpDate.slice(3,5);zpYear=zpDate.slice(6,10);break;case"dd-mmm-yyyy":zpDay=zpDate.slice(0,2);zpMonth=zpDate.slice(3,6);for(lpMonth=0;lpMonth<opMonths.length;lpMonth++){if(zpMonth==opMonths[lpMonth].Month){if(lpMonth<10)zpMonth="0"+(lpMonth+1);else zpMonth=lpMonth+1;break;}}zpYear=zpDate.slice(7,11);break;}switch(zOutputFormat){case"dd/mm/yyyy":zpDate=zpDay+"/"+zpMonth+"/"+zpYear;break;case"dd/mm/yy":zpDate=zpDay+"/"+zpMonth+"/"+zpYear.slice(2,4);break;case"dd-mmm-yyyy":switch(zpMonth){case"10":case"11":case"12":zpMonth=zpMonth;break;default:zpMonth=zpMonth.slice(1,2);break;}zpMonth=opMonths[parseInt(zpMonth)-1].Month;zpDate=zpDay+"-"+zpMonth+"-"+zpYear;break;case"mmmm dd, yyyy":zpMonth=opMonths[parseInt(zpMonth)-1].FullMonth;zpDate=zpMonth+" "+zpDay+", "+zpYear;break;}if(zpTime)return zpDate+" "+zpTime;else return zpDate;}
function bmtWebSetSessionWarning(){try{window.parent.opener.indexSetSessionInterval();}catch(opCatch){try{window.opener.indexSetSessionInterval();}catch(opCatch){try{window.parent.parent.indexSetSessionInterval();}catch(opCatch){try{window.parent.indexSetSessionInterval();}catch(opCatch){}}}}}
function bmtWebHelp(oEvent,zHelpPage){if(zHelpPage==null)zHelpPage="";var opToolbarWinHelp=window.open("Help/Help.aspx?HelpPage="+zHelpPage,"HELP","left=0,top=0,width="+(screen.availWidth-12)+",height="+(screen.availHeight-38)+",resizable=yes, status=no");opToolbarWinHelp.focus();oEvent.returnValue=false;}
function bmtWebSave(oFunction){$addHandler(document.body,"keyup",function(){bmtWebKeySave(oFunction,event)});}
function bmtWebKeySave(oFunction,oEvent){if(oEvent.keyCode==83&&oEvent.ctrlKey){oFunction.call();}}
function bmtWebErrorTrap(){DataService.set_defaultFailedCallback(bmtWebAJAXError);onerror=bmtWebClientError;}
function bmtWebAJAXError(oError){var opClientError=new Object();opClientError.Error=oError.get_message();opClientError.URL=document.location.href;opClientError.LineNumber="AJAX";DataService.ClientErrorSave(opClientError,bmtWebClientErrorResponse);}
function bmtWebClientError(zMessage,zURL,zLineNumber){var opClientError={Error:zMessage,URL:zURL,LineNumber:zLineNumber};DataService.ClientErrorSave(opClientError,bmtWebClientErrorResponse);return true;}
function bmtWebClientErrorResponse(oResult){alert(oResult.Description);}
function bmtWebFormLoad(){bmtWebErrorTrap();bmtWebBeforeUnload();bmtWebBodyPopupHide();document.body.ondrag=function(){event.returnValue=false;};document.body.onselectstart=function(){bmtWebSelectCancel(event);};document.body.oncontextmenu=function(){bmtWebContextCancel(event);};}
function bmtWebBeforeUnload(){document.body.onbeforeunload=function(){return controlUnload()};}
function bmtWebBodyPopupHide(){$addHandler(document.body,"click",function(){bmtWebPopupMenuHide()});}
function bmtWebPopupMenuHide(){try{window.parent.popupMenuHide();}catch(opCatch){}try{window.parent.parent.popupMenuHide();}catch(opCatch){}try{window.parent.parent.parent.popupMenuHide();}catch(opCatch){}}
function bmtWebResolveURL(zPath) {
    var zpHref = document.location.href;
    var zpRelative = "";
    var zpPath = String(zPath);
    var zpAppPath = document.getElementById("Header1_hidLocation").value;

    if (zpPath.indexOf("~/") == 0)
        zpPath = zpPath.slice(2, zpPath.length);
    
    zpHref = zpHref.slice(String("http://").length, zpHref.length);
    zpHref = zpHref.slice(zpHref.indexOf("/") + 1, zpHref.length);
    
    if (zpAppPath != "/")  // If the site doesn't run at root of IIS
        zpHref = zpHref.slice(zpHref.indexOf("/") + 1, zpHref.length);

    while (zpHref.indexOf("/") != -1) 
    {
        zpHref = zpHref.slice(zpHref.indexOf("/") + 1, zpHref.length);

        zpRelative += "../";
    } 
    
    return zpRelative + zpPath;
}
function bmtWebSelectCancel(oEvent){var bpReturn=false;if(oEvent){if(oEvent.srcElement){if(oEvent.srcElement.tagName=="INPUT"||oEvent.srcElement.tagName=="TEXTAREA")bpReturn=true;else{if(document.getElementById("debug"))bpReturn=true;}}oEvent.returnValue=bpReturn;}}
function bmtWebContextCancel(oEvent){var bpReturn=false;if(oEvent.srcElement.tagName=="INPUT"||oEvent.srcElement.tagName=="TEXTAREA")bpReturn=true;else{if(document.getElementById("debug"))bpReturn=true;}oEvent.returnValue=bpReturn;}
function bmtWebDateValid(zDate){if(zDate.slice(0,1)=="0")var lpDay=parseInt(zDate.slice(1,2));else var lpDay=parseInt(zDate.slice(0,2));if(zDate.slice(3,4)=="0")var lpMonth=parseInt(zDate.slice(4,5));else var lpMonth=parseInt(zDate.slice(3,5));var lpYear=parseInt(zDate.slice(6,10));var opDate=new Date();opDate.setDate(1);opDate.setYear(lpYear);opDate.setMonth(lpMonth-1);opDate.setDate(lpDay);if(opDate.getFullYear()!=lpYear||opDate.getMonth()!=(lpMonth-1)||opDate.getDate()!=lpDay)return false;else{if(lpYear<1753)return false;else return true;}}