
//Contains the global javascript functions for ordercentral
String.prototype.endsWith = function(str)
{ return (this.match(str + "$") == str) }

String.prototype.startsWith = function(str)
{ return (this.match("^" + str) == str) }

String.prototype.trim = function() {
    return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""));
}



function removeBadNumbers(inNumber) {
    tmpNumber = "";

    for (i = 0; i < inNumber.length; i++) {
        tmpStr = inNumber.substring(i, i + 1)
        if (tmpStr == "-" || isNaN(tmpStr) || tmpStr == " ") {

        }
        else {
            tmpNumber = tmpNumber + inNumber.substring(i, i + 1);
        }
    }

    return tmpNumber;
}

function doQuickSearch() {
    var searchString = '';

    try {
        searchString = document.getElementById('tSearchString').value;
    } catch (e) { }

    if (searchString != '') {
        window.location = 'search.aspx?actionType=QUICKSEARCH&posting=TRUE&searchString=' + escape(searchString) + '&from=QUICKSEARCH';
    }
    else {
        alert('You must enter in a search term!');
    }
}

function checkQuickSearch(myevent) {
    //if they hit the enter key
    if (myevent.keyCode == 13) {
        myevent.cancelBubble = true;
        myevent.returnValue = false;
        doQuickSearch();
        myevent.keyCode = 8;

        return false;
    }
    else {
        return true;
    }

    return false;
}




function MM_openBrWindow(theURL, winName, features) { //v2.0
    try {
        var imageWindow = window.open(theURL, winName, features);
        imageWindow.focus();
    } catch (exception) { }
}

function openImageWindow(imageURL) {
    MM_openBrWindow(imageURL, 'enlargedImage', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no'); //width=602,height=401

    /*	//var MyArgs= new Array(ParmA, ParmB, ParmC);
    var WinSettings = "status=1,toolbar=0,location=1,menubar=0,resizable=1,scrollbars=1,height=480,width=640,directories=0"
	
	try
    {
    var imageWindow = window.open(imageURL, "LargeImage", WinSettings, true);
    imageWindow.focus();
    }
    catch(exception){}
    */

}


function openPopupWindow(windowURL) {
    //var MyArgs= new Array(ParmA, ParmB, ParmC);
    var WinSettings = "status=1,toolbar=1,location=0,menubar=1,resizable=1,scrollbars=1,height=550,width=680,directories=0"

    try {
        var popupWindow = window.open(windowURL, "Popup", WinSettings, true);
        popupWindow.focus();
    }
    catch (exception) { }
}

function getTextBlockPopup(textType, textName) {
    openPopupWindow('textBlock.aspx?textType=' + escape(textType) + '&textName=' + escape(textName));
}

function isDate(DateToCheck) {
    if (DateToCheck == "") { return true; }
    var m_strDate = FormatDate(DateToCheck);
    if (m_strDate == "") {
        return false;
    }
    var m_arrDate = m_strDate.split("/");
    var m_DAY = m_arrDate[0];
    var m_MONTH = m_arrDate[1];
    var m_YEAR = m_arrDate[2];
    if (m_YEAR.length > 4) { return false; }

    m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
    var testDate = new Date(m_strDate);

    if (testDate.getMonth() + 1 == m_MONTH) {
        return true;
    }
    else {
        return false;
    }
} //end function



function FormatDate(DateToFormat, FormatAs) {
    if (DateToFormat == "") { return ""; }
    if (!FormatAs) { FormatAs = "dd/mm/yyyy"; }

    var strReturnDate;
    FormatAs = FormatAs.toLowerCase();
    DateToFormat = DateToFormat.toLowerCase();
    var arrDate
    var arrMonths = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    var strMONTH;
    var Separator;

    while (DateToFormat.indexOf("st") > -1) {
        DateToFormat = DateToFormat.replace("st", "");
    }

    while (DateToFormat.indexOf("nd") > -1) {
        DateToFormat = DateToFormat.replace("nd", "");
    }

    while (DateToFormat.indexOf("rd") > -1) {
        DateToFormat = DateToFormat.replace("rd", "");
    }

    while (DateToFormat.indexOf("th") > -1) {
        DateToFormat = DateToFormat.replace("th", "");
    }

    if (DateToFormat.indexOf(".") > -1) {
        Separator = ".";
    }

    if (DateToFormat.indexOf("-") > -1) {
        Separator = "-";
    }


    if (DateToFormat.indexOf("/") > -1) {
        Separator = "/";
    }

    if (DateToFormat.indexOf(" ") > -1) {
        Separator = " ";
    }

    arrDate = DateToFormat.split(Separator);
    DateToFormat = "";
    for (var iSD = 0; iSD < arrDate.length; iSD++) {
        if (arrDate[iSD] != "") {
            DateToFormat += arrDate[iSD] + Separator;
        }
    }
    DateToFormat = DateToFormat.substring(0, DateToFormat.length - 1);
    arrDate = DateToFormat.split(Separator);

    if (arrDate.length < 3) {
        return "";
    }

    var DAY = arrDate[0];
    var MONTH = arrDate[1];
    var YEAR = arrDate[2];




    if (parseFloat(arrDate[1]) > 12) {
        DAY = arrDate[1];
        MONTH = arrDate[0];
    }

    if (parseFloat(DAY) && DAY.toString().length == 4) {
        YEAR = arrDate[0];
        DAY = arrDate[2];
        MONTH = arrDate[1];
    }


    for (var iSD = 0; iSD < arrMonths.length; iSD++) {
        var ShortMonth = arrMonths[iSD].substring(0, 3).toLowerCase();
        var MonthPosition = DateToFormat.indexOf(ShortMonth);
        if (MonthPosition > -1) {
            MONTH = iSD + 1;
            if (MonthPosition == 0) {
                DAY = arrDate[1];
                YEAR = arrDate[2];
            }
            break;
        }
    }

    var strTemp = YEAR.toString();
    if (strTemp.length == 2) {

        if (parseFloat(YEAR) > 40) {
            YEAR = "19" + YEAR;
        }
        else {
            YEAR = "20" + YEAR;
        }

    }


    if (parseInt(MONTH) < 10 && MONTH.toString().length < 2) {
        MONTH = "0" + MONTH;
    }
    if (parseInt(DAY) < 10 && DAY.toString().length < 2) {
        DAY = "0" + DAY;
    }
    switch (FormatAs) {
        case "dd/mm/yyyy":
            return DAY + "/" + MONTH + "/" + YEAR;
        case "mm/dd/yyyy":
            return MONTH + "/" + DAY + "/" + YEAR;
        case "dd/mmm/yyyy":
            return DAY + " " + arrMonths[MONTH - 1].substring(0, 3) + " " + YEAR;
        case "mmm/dd/yyyy":
            return arrMonths[MONTH - 1].substring(0, 3) + " " + DAY + " " + YEAR;
        case "dd/mmmm/yyyy":
            return DAY + " " + arrMonths[MONTH - 1] + " " + YEAR;
        case "mmmm/dd/yyyy":
            return arrMonths[MONTH - 1] + " " + DAY + " " + YEAR;
    }

    return DAY + "/" + strMONTH + "/" + YEAR; ;

} //End Function



function isValidZipCode(value) {
    var re = /^\d+([\-]\d+)?$/;

    return true;
    //return (re.test(value));
}

function isValidUsZipCode(value) {
    var re = /^\d{5}([\-]\d{4})?$/;
    return (re.test(value));
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}


function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1, c.length);
            if (c.indexOf(nameEQ) == 0) {
                return c.substring(nameEQ.length, c.length);
            }
        }
    }
    return '';
}

function formatCurrency(num) {

    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
		num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);

}


function paymentChange(theValue, fieldNo) {


}

function getAjaxObject() {
    var returnValue = false;
    try {
        returnValue = new XMLHttpRequest();
    }
    catch (trymicrosoft) {
        try {
            returnValue = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (othermicrosoft) {
            try {
                returnValue = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (failed) {
                alert(failed.message);
                returnValue = false;
            }
        }
    }
    return returnValue;
}

function getXMLDataSetTableCount(dsName, xmlString) {
    var returnValue = -1;
    var datasetStartIndex = xmlString.toLowerCase().indexOf("<" + dsName.toLowerCase() + ">");
    var datasetEndIndex = xmlString.toLowerCase().indexOf("</" + dsName.toLowerCase() + ">");
    var fieldStartIndex = -1;
    var fieldEndIndex = -1;
    if ((datasetStartIndex > -1) && (datasetEndIndex > -1)) {
        fieldStartIndex = xmlString.toLowerCase().indexOf("<totalTables>".toLowerCase(), datasetStartIndex);
        if ((fieldStartIndex > -1) && (fieldStartIndex < datasetEndIndex)) {
            fieldStartIndex = fieldStartIndex + "<totalTables>".toLowerCase().length;
            fieldEndIndex = xmlString.toLowerCase().indexOf("</totalTables>".toLowerCase(), fieldStartIndex);
            if ((fieldEndIndex > -1) && (fieldEndIndex < datasetEndIndex)) {
                returnValue = parseInt(xmlString.substring(fieldStartIndex, fieldEndIndex));
            }
        }
    }

    return returnValue;
}

function getXMLDataTableRowCount(dsName, dtIndex, xmlString) {
    var returnValue = -1;
    var datasetStartIndex = xmlString.toLowerCase().indexOf("<" + dsName.toLowerCase() + ">");
    var datasetEndIndex = xmlString.toLowerCase().indexOf("</" + dsName.toLowerCase() + ">");
    var fieldStartIndex = -1;
    var fieldEndIndex = -1;
    if ((datasetStartIndex > -1) && (datasetEndIndex > -1)) {//<t0TotalRows>1</t0TotalRows>
        fieldStartIndex = xmlString.toLowerCase().indexOf(("<t" + dtIndex + "TotalRows>").toLowerCase(), datasetStartIndex);
        if ((fieldStartIndex > -1) && (fieldStartIndex < datasetEndIndex)) {
            fieldStartIndex = fieldStartIndex + ("<t" + dtIndex + "TotalRows>").toLowerCase().length;
            fieldEndIndex = xmlString.toLowerCase().indexOf(("</t" + dtIndex + "TotalRows>").toLowerCase(), fieldStartIndex);
            if ((fieldEndIndex > -1) && (fieldEndIndex < datasetEndIndex)) {
                returnValue = parseInt(xmlString.substring(fieldStartIndex, fieldEndIndex));
            }
        }
    }

    return returnValue;
}

function getXMLDataFieldValue(dsName, dtIndex, rowIndex, fieldName, xmlString) {
    var returnValue = "";
    var datasetStartIndex = xmlString.toLowerCase().indexOf("<" + dsName.toLowerCase() + ">");
    var datasetEndIndex = xmlString.toLowerCase().indexOf("</" + dsName.toLowerCase() + ">");
    var fieldStartIndex = -1;
    var fieldEndIndex = -1;
    //alert("dsStart: " + datasetStartIndex);
    //alert("dsEnd: " + datasetEndIndex);
    if ((datasetStartIndex > -1) && (datasetEndIndex > -1)) {
        fieldStartIndex = xmlString.toLowerCase().indexOf(("<t" + dtIndex + "r" + rowIndex + fieldName + ">").toLowerCase(), datasetStartIndex);
        //alert(("<t" + dtIndex + "r" + rowIndex + fieldName + ">").toLowerCase());
        //alert("fsi:" + fieldStartIndex);
        if ((fieldStartIndex > -1) && (fieldStartIndex < datasetEndIndex)) {
            fieldStartIndex = fieldStartIndex + ("<t" + dtIndex + "r" + rowIndex + fieldName + ">").toLowerCase().length;
            //alert("fsi (adjusted):" + fieldStartIndex);
            fieldEndIndex = xmlString.toLowerCase().indexOf(("</t" + dtIndex + "r" + rowIndex + fieldName + ">").toLowerCase(), fieldStartIndex);
            if ((fieldEndIndex > -1) && (fieldEndIndex < datasetEndIndex)) {
                returnValue = xmlString.substring(fieldStartIndex, fieldEndIndex);
            }
        }
    }

    return returnValue;
}

