/*
'*************************************************************************************************************
' Copyright (C) 2001, The Hartford Steam Boiler Inspection and Insurance Company.  All Rights Reserved.
'*************************************************************************************************************
*/

// === GLOBAL DECLARATIONS ======================================
//var appRoot="/framework/applications/Toga";
//var appName="TOGA";

//var arrInvalidChars = new Array('~','&','<','>','"',"'", " ");
//var arrMonths =["January","February","March","April","May","June","July","August","September","October","November","December"]

//// variables for loading Locations by Account
//var delim = "~";
////var delim1 = ":";
////var delim2 = "^";
//var acctStr;
//var arrAcct = new Array();
//var arrLoc = new Array();
//var arrNameID = new Array();

//================================================================================
if (NS == true) {
    document.write("<link href='images/ns_style.css'  rel='Stylesheet'>");
} else if (IE == true) {
    document.write("<link href='images/ie_style.css'  rel='Stylesheet'>");
} else if (NS6 == true) {
    document.write("<link href='images/ns6_style.css'  rel='Stylesheet'>");
}


//=================================================================
//workbench images
var arrImgs = new Array();
arrImgs[0] = new Image();
arrImgs[0].src = "images/corner-ulh.gif";
arrImgs[1] = new Image();
arrImgs[1].src = "images/line-vert.gif";
arrImgs[2] = new Image();
arrImgs[2].src = "images/line-horz.gif";
arrImgs[3] = new Image();
arrImgs[3].src = "images/menubartop.gif";
arrImgs[4] = new Image();
arrImgs[4].src = "images/hsbtoga.gif";
arrImgs[5] = new Image();
arrImgs[5].src = "images/menu-user.gif";
arrImgs[6] = new Image();
arrImgs[6].src = "images/spacer.gif";
arrImgs[7] = new Image();
arrImgs[7].src = "images/button-submit.gif";
//===Pre load other images============================
var arrWKImgs = new Array()
var imageOn = new Array();
var imageOff = new Array();
var imageOvr = new Array();
arrWKImgs[1] = new Image();
arrWKImgs[1].src = "images/icon-filter.gif";
arrWKImgs[2] = new Image();
arrWKImgs[2].src = "images/ovr-icon-filter.gif";
arrWKImgs[3] = new Image();
arrWKImgs[3].src = "images/arrow-up.gif";
arrWKImgs[4] = new Image();
arrWKImgs[4].src = "images/arrow-dwn.gif";
arrWKImgs[5] = new Image();
arrWKImgs[5].src = "images/icon-changelocation.gif";
arrWKImgs[6] = new Image();
arrWKImgs[6].src = "images/icon-changestatus.gif";
arrWKImgs[8] = new Image();
arrWKImgs[8].src = "images/icon-commentunit.gif";
arrWKImgs[9] = new Image();
arrWKImgs[9].src = "images/icon-printdata.gif";
arrWKImgs[10] = new Image();
arrWKImgs[10].src = "images/icon-exportdata.gif";
arrWKImgs[11] = new Image();
arrWKImgs[11].src = "images/icon-printreport.gif";

arrWKImgs[12] = new Image();
arrWKImgs[12].src = "images/ovr-icon-changelocation.gif";
arrWKImgs[13] = new Image();
arrWKImgs[13].src = "images/ovr-icon-changestatus.gif";
arrWKImgs[14] = new Image();
arrWKImgs[14].src = "images/ovr-icon-commentunit.gif";
arrWKImgs[15] = new Image();
arrWKImgs[15].src = "images/ovr-icon-printdata.gif";
arrWKImgs[16] = new Image();
arrWKImgs[16].src = "images/ovr-icon-exportdata.gif";
arrWKImgs[17] = new Image();
arrWKImgs[17].src = "images/ovr-icon-printreport.gif";
arrWKImgs[18] = new Image();
arrWKImgs[18].src = "images/icon-changesample.gif";
arrWKImgs[19] = new Image();
arrWKImgs[19].src = "images/ovr-icon-changesample.gif";
arrWKImgs[20] = new Image();
arrWKImgs[20].src = "images/button-selall.gif";
arrWKImgs[21] = new Image();
arrWKImgs[21].src = "images/button-replace-contact.gif";
arrWKImgs[22] = new Image();
arrWKImgs[22].src = "images/button-add.gif";
arrWKImgs[23] = new Image();
arrWKImgs[23].src = "images/button-back.gif";
arrWKImgs[24] = new Image();
arrWKImgs[24].src = "images/button-home.gif";
arrWKImgs[25] = new Image();
arrWKImgs[25].src = "images/button-new.gif";
arrWKImgs[26] = new Image();
arrWKImgs[26].src = "images/button-remove.gif";
arrWKImgs[27] = new Image();
arrWKImgs[27].src = "images/button-update.gif";
arrWKImgs[28] = new Image();
arrWKImgs[28].src = "images/button-save.gif";

imageOn[0] = new Image();
imageOn[0].src = "images/tab-on-unit.gif";
imageOff[0] = new Image();
imageOff[0].src = "images/tab-off-unit.gif";
imageOvr[0] = new Image();
imageOvr[0].src = "images/tab-ovr-unit.gif";

imageOn[2] = new Image();
imageOn[2].src = "images/tab-on-cnct.gif";
imageOff[2] = new Image();
imageOff[2].src = "images/tab-off-cnct.gif";
imageOvr[2] = new Image();
imageOvr[2].src = "images/tab-ovr-cnct.gif";

imageOn[1] = new Image();
imageOn[1].src = "images/tab-on-loc.gif";
imageOff[1] = new Image();
imageOff[1].src = "images/tab-off-loc.gif";
imageOvr[1] = new Image();
imageOvr[1].src = "images/tab-ovr-loc.gif";

imageOn[4] = new Image();
imageOn[4].src = "images/tab-on_report.gif";
imageOff[4] = new Image();
imageOff[4].src = "images/tab-off_report.gif";
imageOvr[4] = new Image();
imageOvr[4].src = "images/tab-ovr_report.gif";

imageOn[3] = new Image();
imageOn[3].src = "images/tab-on_lab.gif";
imageOff[3] = new Image();
imageOff[3].src = "images/tab-off_lab.gif";
imageOvr[3] = new Image();
imageOvr[3].src = "images/tab-ovr_lab.gif";

// ========= the next functions handle the Add/Remove/Update and associated list boxes ===


function writeimg(height, width) {
    //insert a blank image.  Used for positioning in Netscape, when NS is 
    //being difficult about positioning tables etc.
    if (NS == true) {
        var tempstring;
        if (height == "" || height == null) {
            height = 1;
        }
        if (width == "" || width == null) {
            width = 175;
        }
        tempstring = "<img border=0 src='images/spacer.gif' height=" + height + " width=" + width + ">";
        document.write(tempstring);
    }
}



function overIcon(currImg) {
    var srcString = currImg.src;
    srcString = srcString.slice(srcString.lastIndexOf("/") + 1);
    if (srcString.slice(0, 3) == "ovr") {
        srcString = "images/" + srcString.slice(4);
    } else {
        srcString = "images/ovr-" + srcString;
    }
    currImg.src = srcString;
}



function pgFocus(ctrl) {

    if (ctrl.disabled) {
        ctrl.blur();
    }
}

function stripSpace(value) {
    var regExp = / /;
    var rep = "";

    value = value.replace(regExp, rep);
    return value;
}



function setSamplingFreq(evt) {

    var ctrl = evt.currentTarget;
    var samplingFreqs = new Array();
    var ctrlNextSampleDateField = evt.data;

    samplingFreqs[0] = "0";
    samplingFreqs[1] = "30";
    samplingFreqs[2] = "60";
    samplingFreqs[3] = "90";
    samplingFreqs[4] = "183";
    samplingFreqs[5] = "365";
    samplingFreqs[6] = "730";
    samplingFreqs[7] = "1095";
    samplingFreqs[8] = "150";
    samplingFreqs[9] = "270";

    //var ses1 = new JS_State();
    var oneMinute = 60 * 1000;  // milliseconds in a minute
    var oneHour = oneMinute * 60;
    var oneDay = oneHour * 24;
    var oneWeek = oneDay * 7;

    var futureDate;
    var myDate;
    //var origDate = ses1.nextSampleDate;
    var origDate = document.forms[0].ctl00$SitePage$hid_next_sample_date.value;

    //If we are adding a new unit, there will be no next sample date
    // We do not want to mess with the next sample date if we are dealing with a new unit
    //  It is set once during initialize and we want the onchange event of the frequency to 
    //   leave this alone.
    if (origDate == '') {
        return;
        //origDate = new Date();
        //origDate = formatDate(origDate);
    }

    //Turn the next sample date into a time value so we can do some arithmetic
    myDate = new Date(origDate).getTime();
    //myDate = myDate + ses.samplingFreqs[ctrl.options.selectedIndex] * oneDay;
    myDate = myDate + samplingFreqs[ctrl.options.selectedIndex] * oneDay;

    //Format a new date value in the form "04/30/2002"
    futureDate = new Date(myDate);
    myDate = formatDate(futureDate);

    //If the freq is zero, use the original next sample date
    if (ctrl.options.selectedIndex == 0)
    //document.forms[0].ctl00_SitePage_txt_nextSampleDate.value = origDate;
        ctrlNextSampleDateField.value = origDate;
    else
    //document.forms[0].ctl00_SitePage_txt_nextSampleDate.value = myDate; 
        ctrlNextSampleDateField.value = myDate;
}


//pass this function document.all.wait (wait is the id of the image being passed)
function centerImage(myDocument) {
    //Simple browsercheck
    var n = (document.layers) ? 1 : 0;
    var ie = (document.all) ? 1 : 0;
    var oCont;

    //Getting the height and width of the document
    pageWidth = (n) ? innerWidth : document.body.offsetWidth;
    pageHeight = (n) ? innerHeight : document.body.offsetHeight;

    //Making a simple object for the divCont
    //oCont=(n)?eval('document.Searching'):eval('Searching.style')
    oCont = (n) ? eval(myDocument) : eval(myDocument.style);

    //Moving the divCont to the center of the page.
    oCont.left = pageWidth / 2 - 175;
    oCont.top = pageHeight / 2;
    myDocument.style.visibility = "";
}

function mouseChangeTab(over, ctrl) {
    var ctrlSrc = new String(ctrl.src);
    var ImgOnSrc;
    var index;

    switch (ctrl.name) {
        case "TabUnit":
            index = 0;
            break;
        case "TabLocation":
            index = 1;
            break;
        case "TabContact":
            index = 2;
            break;
        case "TabLab":
            index = 3;
            break;
        case "TabReportOrder":
            index = 4;
            break;
    }

    ImgOnSrc = new String(imageOn[index].src);

    ctrlSrc = ctrlSrc.slice(ctrlSrc.lastIndexOf("/"));
    ImgOnSrc = ImgOnSrc.slice(ImgOnSrc.lastIndexOf("/"));

    if (ctrlSrc == ImgOnSrc) {
        return;
    }
    if (over == 'true') {
        ctrl.src = imageOvr[index].src
    } else {
        ctrl.src = imageOff[index].src;
    }
}

function tabChange(onTab) {
    var doc = document.forms[0];
    var index;
    var command;
    switch (onTab.name) {
        case "TabUnit":
            index = 0;
            command = "getUnitWorkbench";
            break;
        case "TabLocation":
            index = 1;
            command = "getLocationWorkbench";
            break;
        case "TabContact":
            index = 2;
            command = "getContactWorkbench";
            break;
        case "TabLab":
            index = 3;
            command = "getLabOrderWorkbench";
            break;
        case "TabReportOrder":
            index = 4;
            command = "getReportOrderWorkbench";
            break;
    }
    submitForm(document.forms[0], document.forms[0], command);
}



function pgMouseOver(ctrl) {
    if (ctrl.name == "tab1" || ctrl.name == "tab2" || ctrl.name == "tab3" || ctrl.name == "tab4" || ctrl.name == "tab5") {
        mouseChangeTab('true', ctrl);
    }
}
function pgMouseOut(ctrl) {
    if (ctrl.name == "tab1" || ctrl.name == "tab2" || ctrl.name == "tab3" || ctrl.name == "tab4" || ctrl.name == "tab5") {
        mouseChangeTab('false', ctrl);
    }
}

function pgClick(ctrl) {
    if (ctrl.name == "tab1" || ctrl.name == "tab2" || ctrl.name == "tab3" || ctrl.name == "tab4" || ctrl.name == "tab5") {
        tabChange(ctrl);
    }
}

function getNextMonday(mydate) {
    var nextMonday = new Date(mydate);
    daystoAdd = 8 - nextMonday.getDay();
    if (daystoAdd == 8) daystoAdd = 1;
    nextMonday.setDate(nextMonday.getDate() + daystoAdd);

    return nextMonday;
}

function formatDate(inputDt) {
    var newDate;
    newDate = inputDt.getMonth() + 1 + '/' + inputDt.getDate() + '/' + inputDt.getFullYear();
    return newDate;
}



function isCheckBoxesSelected() {
    // Added as ASPX uses SPAN for checkbox
    var elm;
    var bSelected = false;
    elm = document.forms[0].elements;

    for (i = 0; i < elm.length; i++) {
        if (elm[i].type == "checkbox") {
            if (elm[i].checked) {
                bSelected = true;
                break;
            }
        }
    }
    return bSelected;
}

function SelectAllCheckboxes(spanChk) {

    // Added as ASPX uses SPAN for checkbox
    var oItem = spanChk.children;
    var theBox = (spanChk.type == "checkbox") ? spanChk : spanChk.children.item[0];
    xState = theBox.checked;
    elm = theBox.form.elements;

    for (i = 0; i < elm.length; i++)
        if (elm[i].type == "checkbox" && elm[i].id != theBox.id) {
        if (elm[i].checked != xState)
            elm[i].click();
    }
}

function submitGroup(sAction) {
    var bSelected = isCheckBoxesSelected();

    if (!bSelected)
        alert('Use the check box to select or deselect one or more items from the table.');
    else
        submitAction(sAction);
}

function goUWB()
{
    try {
        document.forms[0].ctl00$SitePage$htxt_prompt.value = '';
    }
    catch (e) { }

    submitAction('getunitworkbench');
}

function go(sAction, sKeyfield, sLinkType)
//function go(sAction, sKeyfield)
{
    // These are the prompt actions
    //   approve_next_sample
    //   approve_unit_changes
    //   getoverduelaborderworkbench
    //   print_new_orders
    //   getUnitWorkbench
    //   getsearchresultslaborders
    //   approve_sample_results

    //These are the link types
    // Location
    // Unit
    // Location Contact
    // Report Order
    // FedX tracking 

    //disableHyperLinks();

    try {
        document.forms[0].ctl00$SitePage$hidKeyField.value = sKeyfield;
    }
    catch (e) { }

    //This may or not be passed in to the function
    if (sLinkType != undefined)
        document.forms[0].ctl00$SitePage$hidLinkType.value = sLinkType;

    submitAction(sAction);
}

function fMenuGo(page) {
    var ls = 'toolbar=0,location=0,directories=0,status=0,menubar=1,right=0,top=0,width=750,height=500,scrollbars=1,resizable=1';
    window.open('staticPg.aspx?var=' + page, 'TOGA', ls, 1);
}

function fMenuGo2(page) {
    var ls = '';
    window.open(page);
}

function removeList(ctrlToUpdate) {
    if (ctrlToUpdate.options.selectedIndex == -1) {
        alert("You need to select an item to remove");
    } else {
        if (ctrlToUpdate.options.length > 0) {
            ctrlToUpdate.options[ctrlToUpdate.options.selectedIndex] = null;
        }
        if (ctrlToUpdate.options.length > 0) {
            ctrlToUpdate.options[0].selected = true;
        }
    }
}
function addToList(cboCtrl, secondCtrl, ctrlToUpdate, delimiter) {
    //add a value to a list
    var firstValue;
    var secondValue;
    var i = ctrlToUpdate.options.length;
    var exists = false;
    var id;
    var addDelim;

    if (cboCtrl.options.length == 0) {
        return;
    }

    if (secondCtrl == "") {
        secondValue = ""
    } else {
        secondValue = secondCtrl.value;
    }
    firstValue = cboCtrl.options[cboCtrl.options.selectedIndex].text;
    id = cboCtrl.options[cboCtrl.options.selectedIndex].value;

    addDelim = (secondValue == "") ? "" : delim;

    //check if value already exits
    var len = firstValue.length;
    for (var opt = 0; opt < i; opt++) {
        if (ctrlToUpdate.options[opt].text.substr(0, len) == firstValue) {
            alert("This value has already been set.");
            exists = true;
            break;
        }
    }

    if (exists == false) {
        ctrlToUpdate.options[i] = new Option(firstValue + delimiter + secondValue, id + addDelim + secondValue);
        if (secondCtrl != "") {
            secondCtrl.value = "";
        }
        ctrlToUpdate.selectedIndex = 0;
    }
}

//
// selectAll - sets all the items in the control to selected state.
//
function selectAll(Ctrl) {
    var i;
    for (i = 0; i < Ctrl.length; i++) {
        Ctrl.options[i].selected = "1"
    }
}

function clearListbox(ctrlToUpdate) {
    // Added 2002-08-06 by GRS to clear all items from a listbox
    var intOptions = ctrlToUpdate.options.length;
    for (var i = 0; i <= intOptions; i++) {
        ctrlToUpdate.options[0] = null;
    }
}


