﻿var count = 0;
var logoutTIME;
var shipCode = "", pdfinstalled = "";
var testresults;
var oHttpSUpd;
var obj, obj1, obj2, obj3, obj4, obj5, obj6;

function PopupMe() {
    try {
        document.getElementById("ctl00_Top1_imgprocess").style.visibility = "visible";
    }
    catch (e) { }
}
function PopupWin_dismissbox() {
    try {
        document.getElementById("ctl00_Top1_imgprocess").style.visibility = "hidden";
    }
    catch (e) { }
}

function MakeCursorHourglass() {
    document.body.style.cursor = "wait";
}

function MakeCursorNormal() {
    document.body.style.cursor = "default";
}

function keycheck(val, e) {//debugger;
    var KeyID = getKEYCODE(e);

    if (val.length == 0) {
        count = 0;
    }
    //alert(KeyID);
    if ((KeyID >= 48 && KeyID <= 57) || (KeyID == 46) || (KeyID == "allow")) {
        if (KeyID == 46) {
            if (val.indexOf('.') != -1) {
                count++;
            }
        }

        if (count > 0) {
            if (KeyID != 46) {
                return true;
            }
            else {
                return false;
            }
        }
        else {
            return true;
        }
    }
    else {
        return false;
    }
}
//////////////////

function keyInt(e) {
    var KeyID = getKEYCODE(e);

    ///integer values  && DEL, BACKSPACE, ARROW KEYS,                          
    if ((KeyID >= 48 && KeyID <= 57) || (KeyID == "allow"))
        return true;
    else
        return false;
}

function keyPhoneNoValidate(e) {
    var KeyID = getKEYCODE(e);

    if ((KeyID >= 48 && KeyID <= 57) || (KeyID == 32) || ((KeyID >= 40 && KeyID <= 45) && (KeyID != 42 && KeyID != 44)) || (KeyID == "allow")) {
        return true;
    }
    else {        
        return false;
    }
}

////////////////////email validator
function emailCheck(email) {
    var str = email;
    var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (filter.test(str)) {
        testresults = true;
    } else {
        //alert("Please input a valid email address!")
        testresults = false;
    }
    return (testresults);
}

///////////////////////////////////////////////

// Removes leading whitespaces
function LTrim(value) {

    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim(value) {

    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim(value) {
    var newValue = "";
    try {
        newValue = LTrim(RTrim(value));
        //newValue = value.replace(/^\s+|\s+$/g, "");

    }
    catch (nE) {
        //alert("new message: "+nE.message);
    }
    return newValue;

}

function callResetSessionTime() {
    try {
        resetSESSIONTIME();
    }
    catch (e) {
        try {
            opener.resetSESSIONTIME();
        }
        catch (e1) {
            try { opener.opener.resetSESSIONTIME(); } catch (e2) { }
        }
    }
}

///////function to get the xmlhttp object

function getXMLHTTPRequest() {
    callResetSessionTime();
    var XmlHttp = null;
    if (window.XMLHttpRequest) {
        XmlHttp = new XMLHttpRequest();

        if (XmlHttp.overrideMimeType) {
            XmlHttp.overrideMimeType('text/html');
        }
    }
    else if (window.ActiveXObject) {
        try {
            XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) { }
        }
    }
    if (!XmlHttp) {
        alert("We are sorry but you are using an outdated browser.\nTo view this site you must update your browser.");
        return false;
    }
    else {
        return XmlHttp;
    }
}

function promptMeforManifest() {
    alert("Your default settings states that you have selected\nto print 0 copies of the manifest.\nKindly update your default settings and then try.");
}

///to update session time when user clicks on OK button of session timeout message.
function updateCurrentSession() {

    oHttpSUpd = getXMLHTTPRequest();
    if (oHttpSUpd != null) {
        oHttpSUpd.onreadystatechange = pr_updateCurrentSession;
        oHttpSUpd.open("GET", "AjaxProcess/process-company.aspx?pvcase=440", true);
        oHttpSUpd.send(null);
    }
}

function pr_updateCurrentSession() {
    if (oHttpSUpd.readyState == 4) {
        if (oHttpSUpd.status == 200) {
            ////session updated
            var retval = oHttpSUpd.responseText; /////returned response            
        }
    }
}

///////////////////Print todays manifest report
function printManifestReport(imgORpdf) {

    AllowNavigation();

    imgORpdf = (trim(imgORpdf) == "" ? "PDF" : imgORpdf);
    pdfinstalled = (imgORpdf == "PDF" && detectAcrobat() ? "1" : "0");
    MakeCursorHourglass();
    PopupMe();
    showPopUpWindow('MANI', null, true, SECURED_URL + "iPopUp.aspx?reload=false&title=Manifest Report&page=manifestdata.aspx&pi=" + pdfinstalled, 800, 600);
    MakeCursorNormal();
    PopupWin_dismissbox();

    setTimeout("resetNavigValues('" + _done + "')", 5000);

}

function AllowNavigation() {
    var fnm = returnPageName();
    var arPages = new Array("createshipment.aspx", "transit.aspx", "defaultsettings.aspx", "frmviewshipment.aspx", "tracking.aspx");
    if (arPages.contains(fnm.toLowerCase())) {
        if ((chkNavigationChanges != null) && (chkNavigationChanges)) { chkNavigationChanges = false; _done = true; }
    }
}

function resetNavigValues(_done) {
    var fnm = returnPageName();
    var arPages = new Array("createshipment.aspx", "transit.aspx", "defaultsettings.aspx", "frmviewshipment.aspx");

    if (_done != false) {
        if (arPages.contains(fnm.toLowerCase())) {
            if (chkNavigationChanges != null)
                chkNavigationChanges = true;
        }
    }
}

/////////////Specify date
function printManifestOfSpecifiedDate(d, m, y, imgORpdf, assignedCarrierCode) {
    MakeCursorHourglass();
    PopupMe();
    imgORpdf = (trim(imgORpdf) == "" ? "PDF" : imgORpdf);
    pdfinstalled = (imgORpdf == "PDF" && detectAcrobat() ? "1" : "0");
    PopupWin_dismissbox();
    showPopUpWindow('MANI', null, true, SECURED_URL + "iPopUp.aspx?reload=false&title=Manifest Report&page=manifestdata.aspx&pi=" + pdfinstalled + "&dd=" + d + "&mm=" + m + "&yy=" + y, 800, 600);
    MakeCursorNormal();
}



/////////////////////////End of old Ajax

function printLabelbyThermal(shipID, condition) {
    shipCode = shipID;
    if (condition == "1") PopupMe();

    obj4 = getXMLHTTPRequest();
    if (obj4 != null) {
        obj4.onreadystatechange = ProcessResponseThermal;
        obj4.open("GET", "AjaxProcess/ProcessedPage.aspx?thermal=1&tShipID=" + shipID, true);
        obj4.send(null);
    }
}

function ProcessResponseThermal() {
    if (obj4.readyState == 4) {
        if (obj4.status == 200) {
            var retval = obj4.responseText; /////returned response  
            //alert(retval);  
            if (retval.length != 'error') {
                //alert(retval);    
                if (document.getElementById("ctl00_ContentPlaceHolder1_hndLabelText") != null) {
                    document.getElementById("ctl00_ContentPlaceHolder1_hndLabelText").value = retval;

                    PrintSomething(shipCode);
                    shipCode = '';
                }
            }
            else {
                alert(retval);
            }
            return false;
        }
        else {
            alert("Error retrieving data!");
        }
    }

    PopupWin_dismissbox();
    MakeCursorNormal();
}

function alertMess() {
    alert('Cannot Re-Print Labels from Previous Dates.');
    return false;
}
//////

//////function for avoiding copying and pasting in textbox            
function disableCtrlKeyCombination(e) {
    //list all CTRL + key combinations you want to disable
    var forbiddenKeys = new Array('a', 'n', 'c', 'x', 'v', 'j');
    var key;
    var isCtrl;

    if (window.event) {
        key = window.event.keyCode;     //IE

        if (window.event.ctrlKey)
            isCtrl = true;
        else
            isCtrl = false;
    }
    else {
        key = e.which;     //firefox
        if (e.ctrlKey)
            isCtrl = true;
        else
            isCtrl = false;
    }

    //if ctrl is pressed check if other key is in forbidenKeys array
    if (isCtrl) {
        for (i = 0; i < forbiddenKeys.length; i++) {
            //case-insensitive comparation
            if (forbiddenKeys[i].toLowerCase() == String.fromCharCode(key).toLowerCase()) {
                alert('Key combination CTRL + ' + String.fromCharCode(key) + ' has been disabled.');
                return false;
            }
        }
    }
    return true;
}

////////////////////////
function chkINT(obj) {
    try {
        var val = trim(obj.value);
        if (val != '') {
            var val_1 = parseInt(val);

            if (!isNaN(val)) {
                obj.value = val;
            }
            else {
                obj.value = '';
            }
        }
    }
    catch (e) {
        obj.value = '';
    }
}


////////////function to get two digit value 
function Ret2digitVal(obj) {
    try {
        var val = trim(obj.value);
        var pos = -1;

        if (val != '') {
            var val_1 = parseFloat(val);
            val_1 = val_1.toFixed(2);
            val = val_1.toString();
        }

        if (!isNaN(val)) {
            obj.value = val;
        }
        else {
            obj.value = '';
        }
    }
    catch (e) {
        obj.value = '';
    }
}

////////////////////

function clearClipBord() {
    //alert('hi');
    try {
        //window.clipboardData.clearData();    
    }
    catch (err) { }
}

function getKEYCODE(e) {//debugger;
    ///////getting keycodes on keypress event
    var kcode;
    try {
        switch (detectBrowser().toLowerCase()) {
            case "microsoft internet explorer":
                kcode = (!e.keyCode || e.keyCode == "undefined") ? "allow" : e.keyCode;
                break;
            case "netscape":
                kcode = (!e.charCode || e.charCode == "undefined" || e.charCode == 0) ? "allow" : e.charCode;
                break;
        }
    }
    catch (ERR) {
        try {
            kcode = e.which;
        }
        catch (er1) {
          //  kcode = e.target;
        }
    }
    return kcode;
}

function getKEYID(e) {
    var KeyID;
    try {
        /////IE  

        KeyID = e.charCode ? e.charCode : e.keyCode;

        if (!e) var e = window.event;
        if (e.keyCode) KeyID = e.keyCode;
        else if (e.which) KeyID = e.which;
    }
    catch (er) {
        try {
            KeyID = e.which;
        }
        catch (er1) {
            KeyID = e.target;
        }
    }
    return KeyID;
}

function getKBChar(e) {
    try {
        var CHAR = "";
        var KeyID;
        KeyID = getKEYID(e);

        switch (KeyID) {
            /////FUNCTIONAL KEYS                                                                                                           
            case 8: CHAR = "BACKSPACE"; break; case 9: CHAR = "TAB"; break; case 13: CHAR = "ENTER"; break; case 16: CHAR = "SHIFT"; break;
            case 27: CHAR = "ESC"; break; case 37: CHAR = "LEFT"; break; case 38: CHAR = "UP"; break; case 39: CHAR = "RIGHT"; break;
            case 40: CHAR = "DOWN"; break; case 46: CHAR = "DEL"; break;
            //////DIGITS                                                                                                                      
            case 96: case 48: CHAR = "0"; break; case 97: case 49: CHAR = "1"; break; case 98: case 50: CHAR = "2"; break; case 99: case 51: CHAR = "3"; break;
            case 100: case 52: CHAR = "4"; break; case 101: case 53: CHAR = "5"; break; case 102: case 54: CHAR = "6"; break; case 103: case 55: CHAR = "7"; break;
            case 104: case 56: CHAR = "8"; break; case 105: case 57: CHAR = "9"; break;
            ///////ALPHABETS                                                                                                           
            case 65: CHAR = "a"; break; case 66: CHAR = "b"; break; case 67: CHAR = "c"; break; case 68: CHAR = "d"; break;
            case 69: CHAR = "e"; break; case 70: CHAR = "f"; break; case 71: CHAR = "g"; break; case 72: CHAR = "h"; break;
            case 73: CHAR = "i"; break; case 74: CHAR = "j"; break; case 75: CHAR = "k"; break; case 76: CHAR = "l"; break;
            case 77: CHAR = "m"; break; case 78: CHAR = "n"; break; case 79: CHAR = "o"; break; case 80: CHAR = "p"; break;
            case 81: CHAR = "q"; break; case 82: CHAR = "r"; break; case 83: CHAR = "s"; break; case 84: CHAR = "t"; break;
            case 85: CHAR = "u"; break; case 86: CHAR = "v"; break; case 87: CHAR = "w"; break; case 88: CHAR = "x"; break;
            case 89: CHAR = "y"; break; case 90: CHAR = "z"; break;

            ///////SPECIAL CHARACTERS                                                                                                           
            case 32: CHAR = " "; break; ///(SPACE)
            case 106: CHAR = "*"; break; ///(*)
            case 107: CHAR = "+"; break; ///(+)
            case 186: CHAR = ";"; break; ///(;)
            case 187: CHAR = "="; break; ///(EQUAL)
            case 188: CHAR = ","; break; ///(comma)
            case 109: case 189: CHAR = "-"; break; ///(DASH)
            case 110: case 190: CHAR = "."; break; ///(DOT)
            case 111: case 191: CHAR = "/"; break; ///( / FORWARD SLASH)
            case 192: CHAR = "`"; break; ///()
            case 219: CHAR = "["; break; ///([)                
            case 220: CHAR = "\\"; break; ///( \ BACKWORD SLASH)
            case 221: CHAR = "]"; break; ///(])
            case 222: CHAR = "'"; break; ///(APPOSTROPHE)

            default: return "invalid";
        }
        //alert(CHAR);
        return CHAR;
    }
    catch (err) {
        return "";
    }
}

//////////////////////////////
this.Sleep = function ZZzzzZZzzzzzzZZZz(naptime) {
    naptime = naptime * 1000;
    var sleeping = true;
    var now = new Date();
    var alarm;
    var startingMSeconds = now.getTime();
    //alert("starting nap at timestamp: " + startingMSeconds + "\nWill sleep for: " + naptime + " ms");
    while (sleeping) {
        alarm = new Date();
        alarmMSeconds = alarm.getTime();
        if (alarmMSeconds - startingMSeconds > naptime) { sleeping = false; }
    }
}

///////////////
function OpenPopup(ht, wt, param1, param2, scrollBar) {
    var nPopUp;
    try {
        w = wt;
        h = ht;
        w += 32;
        h += 96;
        wleft = (screen.width - w) / 2;
        wtop = (screen.height - h) / 2;

        if (wleft < 0) {
            w = screen.width;
            wleft = 0;
        }
        if (wtop < 0) {
            h = screen.height;
            wtop = 0;
        }
        scrollBar = (scrollBar == "undefined" ? "yes" : scrollBar);
        callResetSessionTime();
        if (startupMessage) startupMessage.close();
        nPopUp = window.open(param1, param2, 'toolbar=no,titlebar=no,resizable=no,status=no,alwaysRaised=false,scrollbars=' + scrollBar + ',width=' + wt + ',height=' + ht + ',top=' + wtop + ',left=' + wleft + '');
        nPopUp.focus();
    }
    catch (exPOPUP) {
        alert("A popup blocker has been detected at your Browser.");
    }
    return nPopUp;
}

function OpenModalDialog(ht, wt, param1, param2) {
    var nPopUp;
    try {
        window.showModalDialog(param1, param2, 'dialogWidth:' + wt + 'px;dialogHeight:' + ht + 'px;center:1;resizable:1;status:0;scroll:1;');
        //nPopUp.focus();
    }
    catch (exPOPUP) {
        alert("Error: " + exPOPUP.message);
    }
    return nPopUp;
}

////function to set text in dropdown
function setSelectedOptionbyText(select, text) {
    var opts = select.options;
    var l = opts.length;
    if (select == null) return;

    for (var i = 0; i < l; i++) {
        if (trim(opts[i].text.toLowerCase()) == trim(text.toLowerCase())) {
            select.selectedIndex = i;
            return true;
        }
    }
    return false;
}


////function to set value in dropdown
function setSelectedOptionbyValue(select, value) {
    var opts = select.options;
    var l = opts.length;
    if (select == null) return;

    for (var i = 0; i < l; i++) {
        if (trim(opts[i].value) == trim(value)) {
            select.selectedIndex = i;
            return true;
        }
    }
    return false;
}
////////////
function DateComare(frmdt, todate) {
    var arrFrmdt = frmdt.split('/'); var arrTodate = todate.split('/'); dt1 = getDateObject(arrFrmdt[0] + "/" + arrFrmdt[1] + "/" + arrFrmdt[2], "/"); dt2 = getDateObject(arrTodate[0] + "/" + arrTodate[1] + "/" + arrTodate[2], "/");
    if (dt1 > dt2) {
        return "1";
    }
    else if (dt1 < dt2) {
        return "-1";
    }
    else {
        return "0";
    }
}

function getDateObject(dateString, dateSeperator) {
    var curValue = dateString; var sepChar = dateSeperator; var curPos = 0; var cDate, cMonth, cYear;
    curPos = dateString.indexOf(sepChar); cDate = dateString.substring(0, curPos);
    endPos = dateString.indexOf(sepChar, curPos + 1); cMonth = dateString.substring(curPos + 1, endPos);
    curPos = endPos; endPos = curPos + 5; cYear = curValue.substring(curPos + 1, endPos);
    dtObject = new Date(cYear, cMonth, cDate); return dtObject;
}
////////
function resetCookie() {
    try {
        var idCookie = 'logout';
        var results = document.cookie.match(idCookie + '=(.*?)(;|$)');
        if (results) {
            //alert(unescape(results[1]));
            var cookie_date = new Date();  // current date & time
            var milli = cookie_date.getMilliseconds() + 5 * 60 * 1000; // == cokie valid for 5 minutes
            cookie_date.setMilliseconds(milli);
            cookie_date.setTime(cookie_date.getTime());
            document.cookie = idCookie += "=0; expires=" + cookie_date.toGMTString();
        }
    }
    catch (e) {
    }
}

function showtooltip(objCntrl) {
    // alert(objCntrl.tagName);
    switch (objCntrl.tagName.toLowerCase()) {
        case "select": if (objCntrl.selectedIndex != -1)
                objCntrl.title = objCntrl[objCntrl.selectedIndex].text;
            break;
        case "input":
            if ((objCntrl.type.toLowerCase() == 'submit') || (objCntrl.type.toLowerCase() == 'button')) objCntrl.title = objCntrl.value;
            break;
    }
}

///////////
function getDPUtilObject() {
    var objDPUtil = null;
    try {
        objDPUtil = new ActiveXObject("RawDataPrinter.Printer");
        objDPUtil.Key = "3646ACBA9E43640073AEF90170FB9F7620DD14AAF802172B8E0E433717FAE9EC1388DE579B1FDE88025B050";
    }
    catch (e) {//alert("e: "+e.message);
        try {
            objDPUtil = new ActiveXObject("RawPrinter.PrintRawData");
        }
        catch (e1) {
            //alert("e1: "+e1.message);            
        }
    }
    return objDPUtil;
}

function setDPUtilObject(dp) {
    var _wt = 0, _ht = 0, _cls, _cab, _url, _id, html = "";
    switch (dp) {
        case "0":
        case "1":
            _wt = 400; _ht = 200;
            _id = "PrintRawData";
            _cls = "CLSID:B8889FC2-4AE5-4746-B1A6-3414CCDEBB41";
            _cab = "downloads/RawPrinter.CAB#version=1,0,0,0";
            //html = " In the Top-Left corner of you browser you can see information bar. right click on it and you will see an option to install ActiveX Add-On.";
            //html += "Then please click to install add-on.";
            break;
        case "2":
            _url = "http://www.vbgold.com/digitally_signed/Ascertia_Root_CA.cer";
            //window.open(_url, 'certificate', "top=150,left=150,height=50,width=50,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no");
            html = "<ol><li>In order to install this ActiveX you need to install its certificate first.Please <a href='" + _url + "' target=_blank>click here</a>  and open ceritificate to install.</li>"
            html += '<br><br><li>If you have successfully installed the cerificate.Please <a href=javascript:parent.setDPUtilObject("3");>click here</a> to continue.</li></ol>';
            _wt = 400; _ht = 200;
            showPopUpWindow('', null, false, html, 400, 200);
            return;
        case "3":
            _id = "RDP";
            _cls = "CLSID:402C09CD-68ED-48B0-B008-E7B01DDBD2D5";
            _cab = "downloads/RawDataPrinter.CAB#version=2,0,0,0";
            break;
        case "4":
            _url = "downloads/RawPrinter.CAB";
            window.open(url, 'download', "top=150,left=150,height=50,width=50,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no");
            break;
    }
    //var _div = document.createElement("div");//'<object onReadyStateChange ="alert(this.id);"
    var _script = '  onReadyStateChange="RDP=getDPUtilObject();if(RDP) setThermal();"';

    var _div = document.getElementById('ctl00_ContentPlaceHolder1_axObject');
    html += '<object id="' + _id + '" width="0" height="0" classid="' + _cls + '" codebase="' + _cab + '" ' + (dp == "1" ? _script : '') + ' ></object>';
    _div.innerHTML = html;
    //showPopUpWindow(null, null,false, html, _wt, _ht);
    //document.appendChild(_div);
}
/******** Supporting Functions *********/
function detectBrowser() {
    var browser = navigator.appName;
    var b_version = navigator.appVersion;
    var version = parseFloat(b_version);
    return browser;
}

function getTop(Elem) { var yPos = Elem.offsetTop; var tempEl = Elem.offsetParent; while (tempEl != null) { yPos += tempEl.offsetTop; tempEl = tempEl.offsetParent; } return yPos; }
function getLeft(Elem) { xPos = Elem.offsetLeft; tempEl = Elem.offsetParent; while (tempEl != null) { xPos += tempEl.offsetLeft; tempEl = tempEl.offsetParent; } return xPos; }

//Being Used in iPopup pages like displayreports.aspx and manifestdata.aspx
function shrinkImages() { return; if (document.all && getIEVersion() < 7.0) return; var arImg = document.getElementsByTagName("IMG"); var HasRunTimeStyle = (arImg.length > 0 && arImg[0].runtimeStyle); for (var i = 0; i < arImg.length; i++) { if (HasRunTimeStyle) { arImg[i].width = '1500'; arImg[i].runtimeStyle.zoom = '50%'; } else arImg[i].width = '800'; } }
function getIPopUpWindow(iPopUpID) { var iPopUpFrame, iPopUpDoc, iPopUpContentFrame, iPopUpContentDoc; try { iPopUpFrame = parent.parent.document.getElementById(iPopUpID); iPopUpDoc = parent.parent.getIFrameDocument(iPopUpFrame); iPopUpContentFrame = iPopUpDoc.getElementById("PageIFrame"); iPopUpContentDoc = parent.parent.getIFrameDocument(iPopUpContentFrame); return (iPopUpContentDoc.parentWindow ? iPopUpContentDoc.parentWindow : iPopUpContentFrame.contentWindow); } catch (e) { return null; } }
function getIPopUpDocument(iPopUpID) { var iPopUpFrame, iPopUpDoc, iPopUpContentFrame, iPopUpContentDoc; try { iPopUpFrame = parent.parent.document.getElementById(iPopUpID); iPopUpDoc = parent.parent.getIFrameDocument(iPopUpFrame); iPopUpContentFrame = iPopUpDoc.getElementById("PageIFrame"); iPopUpContentDoc = parent.parent.getIFrameDocument(iPopUpContentFrame); return iPopUpContentDoc; } catch (e) { return null; } }
function getIEVersion() { var b_version = navigator.appVersion; var verels = b_version.split(';'); for (var i = 0; i < verels.length; i++) if (verels[i].indexOf("MSIE") != -1) break; if (i != verels.length) { verels = verels[i].split(" "); return parseFloat(verels[2]); } }
/***********startupMessage*************/
var startupMessage = function() {
    var id = 'tooltip'; var ie = document.all ? true : false; var bgShadow = '#666'; var bgColor = '#736F6E'/*InfoBackground*/; var txtColor = '#FFFFFF'/*InfoText*/;
    var top = 3; var left = 3; var maxw = 570; var speed = 5; var timer = 100; var endalpha = 100; var _opacity = .9; var alpha = 0; var _tooltip, t, _content, _closediv, _dontdiv, h;
    return {
        show: function(anchorCtrl, v, w) {
            if (_tooltip == null) {
                _tooltip = document.createElement('div'); _tooltip.setAttribute('id', id); document.body.appendChild(_tooltip);
                _content = document.createElement('div'); _content.setAttribute('id', id + 'content'); _tooltip.appendChild(_content); _tooltip.style.font = 'normal 13px Arial'; _content.style.borderTop = 'none';
                _content.style.display = 'block'; _content.style.background = bgColor; _content.style.color = txtColor; _content.style.padding = '5px'; _content.style.border = 'solid 1px #000'; _content.style.margin = '-2px 0 0 -2px';
                _tooltip.style.opacity = 0; _tooltip.style.filter = 'alpha(opacity=0)'; _tooltip.style.position = 'absolute'; _tooltip.style.background = bgShadow; _tooltip.style.padding = '2px'; _tooltip.style.cursor = 'default';
                top = (anchorCtrl ? getTop(anchorCtrl) : 150); //_tooltip.style.top = (anchorCtrl ? getTop(anchorCtrl) : 50);
                left = (anchorCtrl ? getLeft(anchorCtrl) : 150); //_tooltip.style.left = (anchorCtrl ? getLeft(anchorCtrl) : 50);
                _tooltip.style.zIndex = 99;
                // _tooltip.onmouseover = function() { _tooltip.style.opacity = 1; _tooltip.style.filter = 'alpha(opacity=100)'; }
                //_tooltip.onmouseout =  function() { _tooltip.style.opacity = 0.6; _tooltip.style.filter = 'alpha(opacity=60)'; }//function() { clearInterval(_tooltip.timer); _tooltip.timer = setInterval(function() { startupMessage.fade(-1) }, timer); }
            }
            _closediv = '<div style="float:right;width:25px;height:20px;background-color:#fff;color:#006;border:solid 1px black;font:bold 20px Calibri,Arial;text-align:center;cursor:pointer;" title="Click here to close this message." onclick="startupMessage.close();">X</div>';
            _dontdiv = ''; //'<br><br><div style="text-align:right;height:15px;cursor:pointer;width:100%"><a href="javascript:alert(\'hi\')">Dont display in future.</a></div>';
            _tooltip.style.display = 'block'; _content.innerHTML = _closediv + v + _dontdiv; _tooltip.style.width = w ? w + 'px' : 'auto';
            if (!w && ie) { _tooltip.style.width = _tooltip.offsetWidth; } if (_tooltip.offsetWidth > maxw) { _tooltip.style.width = maxw + 'px' } h = parseInt(_tooltip.offsetHeight) + top; clearInterval(_tooltip.timer); _tooltip.timer = setInterval(function() { startupMessage.fade(1) }, timer);
            if (!ie && anchorCtrl.id == "ctl00_ContentPlaceHolder1_dvEmail") try { document.getElementById('ctl00_ContentPlaceHolder1_txtUserEmail').focus(); } catch (e) { }
        },
        fade: function(d) { var a = alpha; if ((a != endalpha && d == 1) || (a != 0 && d == -1)) { var i = speed; if (endalpha - a < speed && d == 1) i = endalpha - a; else if (alpha < speed && d == -1) i = a; alpha = a + (i * d); _tooltip.style.opacity = _opacity * alpha * .01; _tooltip.style.filter = 'alpha(opacity=' + (_opacity * alpha) + ')'; _tooltip.style.top = top * (alpha * .01); _tooltip.style.left = left * (alpha * .01); if (ie && _tooltip && _tooltip.style.display != 'none') _tooltip.focus(); } else { clearInterval(_tooltip.timer); if (d == -1) { _tooltip.style.display = 'none' } } },
        hide: function(f) { if (!_tooltip) return; clearInterval(_tooltip.timer); if (f == 0) _tooltip.style.display = 'none'; else _tooltip.timer = setInterval(function() { startupMessage.fade(-1) }, timer); },
        close: function() { if (!_tooltip) return; _tooltip.style.display = 'none'; }
    };
} (); //startupMessage

function CancelBack(e) {
    try {
        if (!e) var e = window.event; if (getKBChar(e) == "BACKSPACE") {
            var vSrc, vName, vType; vSrc = e.srcElement ? e.srcElement : e.target;
            if (vSrc) { if (vSrc.nodeName) vName = vSrc.nodeName.toString().toUpperCase(); if (vSrc.type) vType = vSrc.type.toString().toUpperCase(); }
            /*neither TextArea Nor Text*/if (vName != 'TEXTAREA' && vType != 'TEXT' && vType != 'PASSWORD') { e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation(); return false; }
        }
    } catch (e) { }
}

function isNumeric(str) {
    try {
        if ((str == null) || (trim(str) == "")) return false;
        else {
            str = parseFloat(str);
            if (isNaN(str) == true) return false;
        }
        return true;

    }
    catch (ez) {
        return false;
    }
}

function handlePress(e) {
    try {
        var shiftPressed = (window.Event) ? e.modifiers & Event.SHIFT_MASK : e.shiftKey; /////shift key pressed
        //var altPressed = (window.Event) ? e.modifiers & Event.ALT_MASK : e.altKey; /////alt key pressed
        //var CntrlPressed = (window.Event) ? e.modifiers & Event.CONTROL_MASK : e.ctrlKey; /////control key pressed
        //  alert(shiftPressed);
        if (shiftPressed) {
            // alert("The Shift Key is not supported on this site");
            return true;
        }
        else return false;
    } catch (exx) { alert(exx.message); }
}

function setFocus2OwnOnShiftTab(_ctrl, e) {
    var KEYChar = getKBChar(e).toLowerCase();
    if (handlePress(e) && KEYChar == "tab") { _ctrl.focus(); return false; } return true;
}

function haltPage() {
    PopupMe();
    DarkenPage();
    MakeCursorHourglass();
}

function returnPageName() {
    var pathname = location.pathname;
    var filename = pathname.substr(pathname.lastIndexOf("/") + 1, pathname.length);
    var fNAME = filename.split('?');
    return fNAME[0];
}


//////////JavaScript Extension Methods///////////////

/////DATE: 24/03/2010. This method check the element in an array.
Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i].toLowerCase() === obj.toLowerCase()) {
            return true;
        }
    }
    return false;
}



