errorArray = new Array();
message = '';
warning = '';
mAbbr = new Array('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec');
mName = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
loc = new String(document.location);
isSearchForm = (loc.indexOf("earch") > -1);

/* *** This segment is needed to load menu javascript into every page.

if (navigator.appName == "Netscape" && navigator.appVersion.indexOf("4") == 0){
    document.write('<Scr' + 'ipt Language="JavaScript" Src="/popup/popupnn.js"></Scr' + 'ipt>');
    document.write('<Scr' + 'ipt Language="JavaScript" Src="/popup/mypopnn.js"></Scr' + 'ipt>');
}
if (document.all){
    document.write('<Script Language="JavaScript" Src="/js/popupie.js"></Script>');
    document.write('<Script Language="JavaScript" Src="/js/mypopie.js"></Script>');
}

window.onload=onloevha;

function onloevha(){;
    if (document.all || document.layers)
        popmcreate();
}
// *** menu segment ends */

function send(noSentMessage) {
    if (typeof checkNames != 'undefined')
        checkFields();
    var deleteWarn = "Do you really want to delete the selected record(s)?";
    if (document.forms[0].SUBMIT.value.indexOf("Delete") > -1) {
        if (confirm(deleteWarn)) {
            document.forms[0].submit();
        }
    }
    else if (message.length > 0) {
        message = "Please correct the following errors:\n" + message;
        alert(message);
        message = "";
    }
    else if (warning.length > 0) {
        warning = "Some fields contained errors and will be ignored:\n" + warning + "Do you want to continue?\n";
        if (confirm(warning)) {
            document.forms[0].submit();
            if (!isSearchForm)
                alert('Your Information has been sent. Please wait for server response.');
        }
    }
    else {
        document.forms[0].submit();
        if (!isSearchForm && !noSentMessage)
           alert('Your Information has been sent. Please wait for server response.');
    }
}

function checkFields() {
    warning = '';
    message = '';
    for(var i=0 ; i<checkNames.length ; i++) {
        fieldName = checkNames[i];
        field = document.form0[fieldName];
        if (typeof field == "undefined" || (!notNull[i] && field.value == "")) continue;
        fieldLabel = checkLabels[i];
        checkType = checkValues[i];
        reqd = notNull[i];
        if (checkType=="real")
            field.value = checkReal(fieldLabel,field.value,reqd);
        else if (checkType=="int")
            field.value = checkInt(fieldLabel,field.value);
        else if (notNull[i] && checkType.indexOf("text") == 0)
            checkText(fieldLabel,field.value,checkType);
        else if (checkType.indexOf("pwd") == 0 && fieldLabel.indexOf("Confirm") < 0) {
            //alert(dml[fieldName][0].value);
            checkPwd(fieldLabel,field,checkType);
        }
        else if (checkType=="email")
            field.value = checkEmail(fieldLabel,field.value);
        else if (checkType=="select") {
            index = field.selectedIndex;
            checkSelect(fieldLabel, index);
        }
        else if (checkType=="set") {
            index = field.selectedIndex;
            checkSet(fieldLabel, index);
        }
        else if (checkType=="tree") {
            index = document.form0.elements["level1"].selectedIndex;
            checkSelect(fieldLabel,index);
        }
        else if (checkType=="phone") {
            field.value = checkPhone(fieldLabel,field.value);
        }
        else if (checkType=="date") {
           field.value = checkDate(fieldLabel,field.value);
        }
        else if (checkType=="pcode") {
            field.value = checkPcode(fieldLabel,field.value);
        }
    }
}

function checkDate(label,value) {
    var today = new Date();
    var thisyear = today.getYear();
    if (thisyear < 2000) {
        thisyear = (thisyear % 100) + 2000;
    }
    if (typeof value == 'undefined') value = "";
    value = value.replace(/^\W+|\W$/g, "");
    value = value.replace(/\W+/g,"|");
    value = value.toLowerCase();
    tempArr = value.split("|");
    var month="",day="",year="";
    // if two 2 digit numbers, then dd mm unless mm > 12, then it is mm dd
    if (tempArr.length < 2) {}
    else if (tempArr.length < 3 && tempArr[0].search(/^\d\d$|^\d$/) != -1 && tempArr[1].search(/^\d\d$|^\d$/) != -1) {
        if (tempArr[1] < 13) {
            day = tempArr[0];
            month = mName[tempArr[1]-1];
        }
        else if (tempArr[0] < 13) {
            day = tempArr[1];
            month = mName[tempArr[0]-1];
        }
    }
    // if three 2 digit numbers, then dd mm yy unless dd > 31, then it is yy mm dd
    else if (tempArr[0].search(/^\d\d$|^\d$/) != -1 && tempArr[1].search(/^\d\d$|^\d$/) != -1 && tempArr[2].search(/^\d\d$|^\d$/) != -1) {
        month = mName[tempArr[1]-1];
        if (tempArr[0] < 32) {
            day = tempArr[0];
            year = tempArr[2];
        }
        else {
            day = tempArr[2];
            year = tempArr[0];
        }
    }
    else {
        for (m=0; m<3; m++) {
            dItem = tempArr[m];
            if (typeof dItem == 'undefined') continue;
            if (month == "") {
                for (i=0; i<12; i++) {
                    if (dItem.indexOf(mAbbr[i]) != -1) {
                        month = mName[i];
                        break;
                    }
                }
                if (month != "") continue;
                else if (m == 1 && dItem < 13) month = mName[tempArr[1]-1];
            }
            if (year == "") {
                if (dItem.search(/^\d\d\d\d$/) != -1) year = dItem;
                if (dItem.search(/^\d\d$/) != -1 && (dItem > 31 || day != "")) year = dItem;
                if (year != "") continue;
            }
            if (day == "") {
                if (dItem.search(/^\d\d$|^\d$/) != -1 && dItem < 32) day = dItem;
            }
        }
    }
    if (year == "") year = thisyear;
    else if (year.search(/^\d$/) != -1) year = 200 + year;
    else if (year.search(/^\d\d$/) != -1)  year = 20 + year;
    if (year > thisyear +9) year -= 100;
    //alert("Date: " + month + " " + day + " " + year);
    parseError = (day == "" || month == "" || year == "" || day > 31 || typeof month == 'undefined');
    if (parseError) {
        if (reqd) message += label + ": Could not parse date field.\n";
        else if (value != "") warning += label + ": Could not parse date field.\n";
        return "";
    }
    else return (month + " " + day + " " + year);
}

function checkReal(label,value,reqd) {
    var mult = 1;
    rem = /m/i;
    rek = /k/i;
    if (rem.test(value)) mult = 1000000;
    else if (rek.test(value)) mult = 1000;
    newValue = value.replace(/[^\d\.]/g, "");     // eliminates everything but dots and digits
    newValue = newValue.replace(/^\.+|\.+$/,"");  // eliminate dots on both ends in case it was used for abbreviation
    valArr = newValue.split(".");                 // check if more then one dot
    if (valArr.length > 2) {
        //if more then one dot, then dot is used as separator, eliminate them.
        newValue = valArr.join("");
    }
    //alert(newValue);
    re = /^\D*(\d+\.?\d*).*$/;
    if(reqd && newValue == ""){
        message += label + ": Please enter a number containing digits 0-9 and an optional period (.).\n";
    }
    return newValue*mult;
}

function checkInt(label,value) {
    value = value.replace(/,/g, "");
    re = /^\D*(\d+).*$/;
    if (re.test(value)) {
        newValue = value.replace(re, "$1");
        return newValue;
    }
    else if (reqd){
        message += label + ": Please enter a number containing only digits 0-9.\n";
        return value;
    }
    else
        return newValue;
}

function checkText(label,value,checkType) {
    var passwdArray = value;
    var limitArray = new Array();
    if(checkType.indexOf(":") > -1) {
        limitArray = checkType.split(":");
    }
    else {
        limitArray[1] = 5;
        limitArray[2] = 250;
    }
    if (limitArray.length < 3 && value.length < limitArray[1]) {
        message += label + ": Please enter a valid text longer then " + (limitArray[1]-1) + " characters.\n";
    }
    else if (value.length < limitArray[1] || value.length > limitArray[2]) {
        message += label + ": Please valid text between " + limitArray[1] + " - " + limitArray[2] + " characters.\n";
    }
}

function checkPwd(label,value,checkType) {
    var passwdArray = value;
    var limitArray = new Array();
    if(checkType.indexOf(":") > -1) {
        limitArray = checkType.split(":");
    }
    else {
        limitArray[1] = 5;
        limitArray[2] = 10;
    }
    value1 = passwdArray[0].value;
    if (passwdArray[0].value != passwdArray[1].value) {
        message += label + ": The two values do not match. Please try again.\n";
    }
    else if (value1.length < limitArray[1] || value1.length > limitArray[2]) {
        message += label + ": Please select a password between " + limitArray[1] +" - " + limitArray[2] + " characters.\n";
    }
    else if (!((value1.search(/\w/) > -1 && value1.search(/\d/) > -1) ||
        value1 != value1.toLowerCase() ||
            value1 != value1.toUpperCase())) {
                message += label + ": Please use alpha plus numeric or mixed case letters in your password.\n";
            }
}

function checkEmail(label,value) {
    re = /^\s*(\w[\w-\.]+\@[\w-\.]+\.\w\w+)\s*$/;
    var temp = value.replace(re, "$1");
    //alert("in checkEmail: " + temp);
    if (re.test(value)) {
        newValue = value.replace(re, "$1");
        return newValue;
    }
    else {
        message += label + ": Please enter a valid e-mail address.\n";
        return value;
    }
}

function checkPcode(label,value) {
    newValue = (value.replace(/[^\d\w]/g, "")).toUpperCase();     // eliminates spaces
    re = /^(\w\d\w)(\d\w\d)$/;
    if (re.test(newValue)) {
        newValue = newValue.replace(re, "$1 $2");
        return newValue;
    }
    else {
        message += label + ": Please enter a valid posta code.\n";
        return value;
    }
}

function checkSelect(label,value,checkType) {
    if (value <= 0) {
        message += label + ": Please make a selection.\n";
    }
}

function checkSet(label,value,checkType) {
    if (value < 0) {
        message += label + ": Please make a selection.\n";
    }
}

function checkPhone(label,value) {
    var prefix = "";
    var ext = "";
    var finalNumber="";
    if (typeof value != 'undefined') {
        var mainNumber = value.replace(/^\D*(\d.*\d)\D*x\D*(\d+)\D*/i,"$1");
        var ext = value.replace(/^\D*(\d.*\d)\D*x\D*(\d+)\D*/i,"$2");
        if (ext == value) ext = "";
        else ext = "x" + ext;
        cleanNumber = mainNumber.replace(/\D/g,"");
        numLength = cleanNumber.length;
        if (cleanNumber.charAt(0) == "1") {
            finalNumber = cleanNumber.replace(/(\d)(\d\d\d)(\d\d\d)(\d\d\d\d)/,"$1($2)$3-$4") + ext;
        }
        else if (cleanNumber.substr(0,3) == "011" || value.charAt(0) == "+" || numLength > 10) {
            finalNumber = value;
        }
        else if (cleanNumber.length == 10) {
            finalNumber = cleanNumber.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/,"($1)$2-$3") + ext;
        }
        else
            finalNumber = "";
    }
    if (finalNumber == "") {
        message += label + ": Please enter a valid phone number, minimum 10 digits.\n";
        return value;
    }
    else {
        return finalNumber;
    }
}

function SetChecked(val) {
    dml=document.form0;
    len = dml.elements.length;
    for(var i=0 ; i<len ; i++) {
        if (dml.elements[i].name=='items') {
            dml.elements[i].checked=val;
        }
    }
}

function chkAll(inp,val) {
    dml=document.form0;
    len = dml.elements.length;
    for(var i=0 ; i<len ; i++) {
        if (dml.elements[i].type.toLowerCase() == 'checkbox' && inp.indexOf(dml.elements[i].name) > -1) {
            dml.elements[i].checked=val;
        }
    }
}

function chkProv(chgFld) {
    prov = document.form0.prov.options[document.forms[0].prov.options.selectedIndex].text;
    state = document.form0.state.options[document.forms[0].state.selectedIndex].text;
    country = document.forms[0].countries.options[document.forms[0].countries.selectedIndex].text;
    countryVal = document.forms[0].countries.options[document.forms[0].countries.selectedIndex].value;
    if (chgFld == 'pr') {
        if (prov == 'Select Province') prov = '';
        else document.form0.state[0].selected = "1";
        document.form0.stateprov.value = prov;
        document.form0.country.value = 'Canada';
    }
    if (chgFld == 'st') {
        if (state == 'Select State') state = '';
        else document.form0.prov[0].selected = "1";
        document.form0.stateprov.value = state;
        document.form0.country.value = 'United States';
    }
    if (chgFld == 'ctr') {
        if (country == 'Select Country') country = '';
        else if (countryVal > 3) {
            document.form0.state[0].selected = "1";
            document.form0.prov[0].selected = "1";
            document.form0.stateprov.value = '';
        }
        document.forms[0].country.value = country;
    }
}

function popLink(val) {
    var url = "/addLink.html?" + val;
    linkWindow=open(url,"linkWindow","status,alwaysRaised,dependent,height=300,width=500,scrollbar=yes");
}

function countChars(fieldName, limits) {
    //valArray = limits.split(":");
    //var maxChars = valArray[2];
    var currText = document.form0[fieldName].value;
    if (fieldName.indexOf(".") > 0) fieldName = fieldName.substring(fieldName.indexOf(".")+1);
    //alert(fieldName);
    var counterName = fieldName + "Counter";
    document.form0[counterName].value = " " + (currText.length + 1) + " ";
}

function warnDel(url) {
    return confirm("Do you really want to delete the selected record(s)?");
}

function popUpLoad(fieldName, dir) {
    if (typeof upLoadWindow != 'undefined')
        upLoadWindow.close();
    var url = "/UpLoad.jsp?fn=" + fieldName + "&dr=" + dir;
    upLoadWindow=window.open(url,'',"scrollbars=yes,status,height=150,width=350");
    upLoadWindow.name = "upwin";
}

function popAttach(tblName, keyValue, dir) {
    if (typeof attachWindow != 'undefined')
        attachWindow.close();
    var url = "/servlet/add?ft=attach&attach.tbl_name=" + tblName + "&attach.key_value=" + keyValue + "&dr=" + dir;
    attachWindow=window.open(url,'',"scrollbars=yes,status,height=350,width=450");
    attachWindow.name = "atwin";
}

function popAdd(tblName, extra, h, w) {
    if (h == null || h == "") h = 500;
    if (w == null || w == "") w = 600;
    if (typeof addWindow != 'undefined')
        addWindow.close();
    var url = "/servlet/add?ft=" + tblName + extra;
    //alert(url);
    addWindow=window.open(url,'',"scrollbars=yes,status,height=" + h +",width=" + w);
    addWindow.name = "atwin";
}

function popCal(val) {
    if (typeof calWindow != 'undefined')
        calWindow.close();
    var url = "/cal1.html?" + val;
    calWindow=open(url,"calWindow","alwaysRaised,dependent,height=180,width=230,scrollbar=no");
}

function updateField (element, value) {
    var field = eval("document.form0.elements['" + element + "']");
    field.value = value;
}

function scroll(obj) {
    //var ifr = getParentContainer();
    //var y = getTop(ifr);
    parent.window.scrollTo(0,50);
}

function getParentContainer() {
    var ifr;
    if (typeof window.parent == 'undefined') return null;
    var iframes = window.parent.document.getElementsByTagName('iframe');
alert("test");
    if (iframes.length == 0) return null;
    for (i=0; i<iframes.length; i++) {
        ifr = iframes[i];
        if (ifr.src == window.document.referrer || window.document.referrer.indexOf(ifr.src) > 0) return ifr;
    }
}

function getTop( obj ) {
    var y = 0;
    for (var e = obj; e; e = e.offsetParent)
       y += e.offsetTop;
    return y;
}

function loadCheck() {
      document.getElementById("vimg").src="/servlet/verify?" + Date();
}

