﻿//--------------- LOCALIZEABLE GLOBALS ---------------
var d = new Date();
var monthname = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
//Ensure correct for language. English is "January 1, 2004"
var TODAY = monthname[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
var YEAR = d.getFullYear();
//---------------   END LOCALIZEABLE   ---------------
function noenter() {
    return !(window.event && window.event.keyCode == 13);
}

function submitFormToBlank(aFormName, aURL) {
    try {
        var theForm = document.forms[aFormName];
        if (theForm) {
            var oldTarget = theForm.target;
            var oldAction = theForm.action;
            // Submit the form
            theForm.target = "_new";
            theForm.action = aURL;
            theForm.submit();
            // Form settings back to original
            theForm.target = oldTarget;
            theForm.action = oldAction;
        }
        else
            alert("no form named: " + aFormName);
    }
    catch(e) {
        alert(e);
    }
}
function ShowStatus(aTitle, aInlineId) {
    var lReturn = true;
    document.body.style.cursor = 'wait';
    var lValid = getNamedItem("mQueryText", "input");
    if (lValid) {
        lReturn = validateQueryText(lValid);
        if (lReturn) {

            if (!myLightWindow)
                lightwindowInit();
            myLightWindow.duration = 0.1;
            myLightWindow.options.dimensions.image.height = 20;
            myLightWindow.options.dimensions.image.width = 130;
            myLightWindow.options.dimensions.media.height = 20;
            myLightWindow.options.dimensions.media.width = 130;
            myLightWindow.options.dimensions.page.height = 20;
            myLightWindow.options.dimensions.page.width = 130;
            myLightWindow.options.dimensions.inline.height = 20;
            myLightWindow.options.dimensions.inline.width = 130;
            myLightWindow.options.dimensions.external.height = 20;
            myLightWindow.options.dimensions.external.width = 130;
            myLightWindow.activateWindow({ loadingAnimation: 'images/ajax-loader.gif', href: 'images/ajax-loader.gif', title: 'searching...', width: 130, height: 20 });
        }
    }
    return lReturn;
}

function validateQueryText(aElement) {
    var lReturn = false;
    if (aElement) {
        if (aElement.value.length > 0 &&
            aElement.value.indexOf("Enter Keyword(s) to search archives") == -1)
            lReturn = true;
    }
    return lReturn;
}

var gToolTipElement = null;

function PreviewPopup(aSupplierID, aKey, aType, aWidth) {
    window.open('VideoPreview.aspx?SupplierID=' + aSupplierID + '&amp;key=' + aKey.toString() + '&amp;type=' + aType + ', "fnpreview", "width=' + (aWidth+20).toString() + ',height=520,left=10,resizeable=no,status=no,titlebar=no,toolbar=no"');
}
function initScrollHandler() {
    if (window.addEventListener) // Firefox 1+, Opera 9, Safari 3+, etc.
    {
        window.addEventListener("scroll", ScrollingDetected, false);
    }
    else if (document.addEventListener) // Opera 7, Opera 8
    {
        document.addEventListener("scroll", ScrollingDetected, false);
    }
    else if ("onscroll" in self) // MSIE 6, 7 and MSIE 8
    {
        self.onscroll = ScrollingDetected;
    };
    
    document.observe('prototip:hidden', function(event) {
        var lElement = event.element();
        if (lElement) {
            var lId = lElement.id;
            if (lId.indexOf("imgVideo") >= 0) {
                lElement.prototip.remove();
                var lNewId = lId.replace("imgVideo", "mScript");
                var lScript = document.getElementById(lNewId);
                if (lScript) {
                    eval(lScript.value);
                }
            }
            else if (lId.indexOf("imgPreview") >= 0) {
                lElement.prototip.remove();
                var lNewId = lId.replace("imgPreview", "mScript");
                var lScript = document.getElementById(lNewId);
                if (lScript) {
                    eval(lScript.value);
                }
            }
            else if (lId.indexOf("mDetailPageBtn") >= 0) {
                lElement.prototip.remove();
                var lNewId = lId.replace("mDetailPageBtn", "mScript");
                var lScript = document.getElementById(lNewId);
                if (lScript) {
                    eval(lScript.value);
                }
            }
            else if (lId.indexOf("clipboardbar") >= 0) {
                lElement.prototip.remove();
                var lNewId = lId.replace("clipboardbar", "mClipboardScript");
                var lScript = document.getElementById(lNewId);
                if (lScript) {
                    eval(lScript.value);
                }
            }
            else if (lId.indexOf("imgClipboard") >= 0) {
                lElement.prototip.remove();
                var lNewId = lId.replace("imgClipboard", "mAddClipScript");
                var lScript = document.getElementById(lNewId);
                if (lScript) {
                    eval(lScript.value);
                }
            }
        }
    });

}

function ScrollingDetected(evt) {
    var lYPosition = (getScrollXY()[1] + 10) + "px";
    var lElement = document.getElementById("contentanchor");
    if (lElement) {
        lElement.style.top = lYPosition;
    }

    if (Tips && Tips.visible && Tips.visible[0]) {
        var lTarget = Tips.visible[0].element;
        if (lTarget && lTarget.id.indexOf("clipboardbar") < 0 && lTarget.id.indexOf("imgClipboard") < 0) {
            lElement = Tips.visible[0].wrapper;
            if (lElement) {
                lElement.style.top = lYPosition;
            }
        }
    }

    lYPosition = (getScrollXY()[1] + 104) + "px";
    lElement = document.getElementById("clipboardanchor");
    if (lElement) {
        lElement.style.top = lYPosition;
    }
};

/*
document.observe('prototip:shown', function(event) {
    gToolTipElement = event.element().prototip;
});        
*/
function updateContentAnchorPosition() {
    var lElement = document.getElementById("contentanchor");
    var lPositionY = getScrollXY()[1];
    if (lElement) {
        lElement.style.top = lPositionY;
    }
    if (gToolTipElement)
        gToolTipElement.style.top = lPositionY;
}

function getScrollXY() {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return [scrOfX, scrOfY];
}
function setImage(aControl, aSrc) {
    aControl.src = aSrc;
}

function setValue(aControlId, aValue) {
    var lElement = document.getElementById(aControlId);
    if (lElement)
        lElement.value = aValue;
}

function getValue(aControlId) {
    var lElement = document.getElementById(aControlId);
    if (lElement)
        return aValue;
    else
        return "";
}

function toggleInfo(aDivId, aImgControl, aShowImg, aHideImg) {
    var lDiv = document.getElementById(aDivId);
    if (lDiv) {
        if (lDiv.style.display == "none") {
            // Show it
            lDiv.style.display = "";
            if ( aImgControl != null )
                aImgControl.src = aHideImg;
        }
        else {
            // Hide it
            lDiv.style.display = "none";
            if (aImgControl != null)
                aImgControl.src = aShowImg;
        }
    }
}

function toggleDiv(aDivId) {
    var lDiv = document.getElementById(aDivId);
    if (lDiv) {
        if (lDiv.style.display == "none") {
            // Show it
            lDiv.style.display = "";
        }
        else {
            // Hide it
            lDiv.style.display = "none";
        }
    }
}
function showDiv(aToShow) {
    var lToShow = null;
    if (aToShow && aToShow.length > 0)
        lToShow = document.getElementById(aToShow);

    if (lToShow) {
        lToShow.style.display = "";
    }
}
function hideDiv(aToHide) {
    var lToHide = null;
    if (aToHide && aToHide.length > 0)
        lToHide = document.getElementById(aToHide);

    if (lToHide) {
        lToHide.style.display = "none";
    }
}

function showHideDiv(aToShow, aToHide) {
    showDiv(aToShow);
    hideDiv(aToHide);
}

function showHideNews(aControl, aToShow, aToHide, aShowBtn, aHideBtn) {
    var lParentContainer = aControl.parentNode.parentNode;
    if (lParentContainer) {
        var lToShow = null;
        var lToHide = null;
        var lChild = lParentContainer.firstChild;
        while (lChild) {
            if (lChild.id == aToShow)
                lToShow = lChild;
            if (lChild.id == aToHide)
                lToHide = lChild;
            lChild = lChild.nextSibling;
        }

        if (lToShow) {
            if (lToShow.style.display == "none") {
                lToShow.style.display = "";
                aControl.src = aShowBtn;
            }
            else
                lToShow.style.display = "none";
        }

        if (lToHide) {
            if (lToHide.style.display == "none") {
                lToHide.style.display = "";
                aControl.src = aHideBtn;
            }
            else
                lToHide.style.display = "none";
        }
    }
}

function hideAllNews(aControlToSkip, aBtnControlId, aBtnImage, aHideElement, aShowElement) {
    var lControls = document.getElementsByTagName("img");
    if (lControls) {
        for (i = 0; i < lControls.length; ++i) {
            if (lControls[i].id != aControlToSkip.id && lControls[i].id.match(aBtnControlId) != null ) {
                lControls[i].src = aBtnImage;
                var lParentContainer = lControls[i].parentNode.parentNode;
                var lToShow = null;
                var lToHide = null;
                var lChild = lParentContainer.firstChild;
                while (lChild) {
                    if (lChild.id == aShowElement)
                        lChild.style.display = "";
                    if (lChild.id == aHideElement)
                        lChild.style.display = "none";
                    lChild = lChild.nextSibling;
                }
            }
        }
    }
}

function RecordAction(aActionType, aKey, aSupplierID, aExtraInfo) {
    try {
        var lInfo = "";
        if (aKey > 0) {
            lInfo = aKey.toString();
        }
        else if (aExtraInfo != null && aExtraInfo.length > 0) {
            lInfo = aExtraInfo;
        }
        var lParams = "do=action&action=" + aActionType + "&info=" + lInfo + "&supplier=" + aSupplierID;

        var handleFailure = function(o) {
            if (o.responseText !== undefined) {
                document.body.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
                document.body.innerHTML += "<li>HTTP status: " + o.status + "</li>";
                document.body.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
            }
        };

        var args =
        {
            saveState: ''
        };

        var callback =
        {
            argument: args,
            success: returner,
            failure: handleFailure
        }


        var request = YAHOO.util.Connect.asyncRequest('POST', 'GenericCallback.aspx', callback, lParams);
    }
    catch (e) {alert(e); }
}

function RecordVideoViewed(aKey, aSupplierID) {
    if (aKey > 0) {
        try {
            var lParams = "do=videoviewed&item=" + aKey + "&supplier=" + aSupplierID;

            var handleFailure = function(o) {
                if (o.responseText !== undefined) {
                    document.body.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
                    document.body.innerHTML += "<li>HTTP status: " + o.status + "</li>";
                    document.body.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
                }
            };

            var args =
            {
                saveState: ''
            };

            var callback =
            {
                argument: args,
                success: returner,
                failure: handleFailure
            }


            var request = YAHOO.util.Connect.asyncRequest('POST', 'GenericCallback.aspx', callback, lParams);
        }
        catch (e) { alert(e); }
    }
}

function RecordResultViewed(aKey, aSupplierID) {
    if (aKey > 0) {
        try {
            var lParams = "do=resultviewed&item=" + aKey.toString() + "&supplier=" + aSupplierID;

            var handleFailure = function(o) {
            if (o.responseText !== undefined) {
                /*
                    document.body.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
                    document.body.innerHTML += "<li>HTTP status: " + o.status + "</li>";
                    document.body.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
                */
                }
            };

            var args =
            {
                saveState: ''
            };

            var callback =
            {
                argument: args,
                success: returner,
                failure: handleFailure
            }


            var request = YAHOO.util.Connect.asyncRequest('POST', 'GenericCallback.aspx', callback, lParams);
        }
        catch (e) { alert(e); }
    }
}

function ShowDetails(aKey, aName, aSupplierID, aUnderline, aUseImage) {
    var lPartner = aName.replace("ResultDetail", "ResultSummary");
    summaryElement = document.getElementById(lPartner);
    detailElement = document.getElementById(aName);
    imageElement = document.getElementById('imagebutton' + aKey);
    if (detailElement != null) {
        var divstatus = detailElement.style.display;
        if (detailElement.style.display == 'none') // Hidden - show it
        {
            if (aUseImage == 'true') {
                imageElement.src = 'images/BacktoArrows.gif';
                imageElement.alt = 'Hide Details';
            }
            detailElement.style.display = '';
            if (summaryElement != null && aUnderline == 'true') {
                //				summaryElement.style.borderBottom = '';
                if (isGecko)
                    summaryElement.forceRerendering();
            }
            RecordResultViewed(aKey, aSupplierID);
        }
        else  // visible - hide it
        {
            if (aUseImage == 'true') {
                imageElement.src = 'images/GotoArrows.gif';
                imageElement.alt = 'Show Details';
            }
            detailElement.style.display = 'none';
            if (summaryElement != null && aUnderline == 'true') {
                //				summaryElement.style.borderBottom = '1px solid #aaaaaa';
                if (isGecko)
                    summaryElement.forceRerendering();
            }
        }
    }
}

function UpdateClipboard(aItem, aValue, aCheckedColor, aUncheckedColor, aCountDisplay, aDivContainerID) {
    if (aItem && aValue) {
        try {
            var lParams = aValue;
            lParams = lParams.replace('&amp;', '&');
            lParams += '&Clipboard=';

            var lCurrentState = (aItem.src.match("btnAddClipboard.gif") != null) ? "false" : "true";
            lParams += lCurrentState;

            // Change the icon
            if (lCurrentState == "false") {
                aItem.src = "images/btnDelClipboard.gif";
                aItem.alt = "Remove item from Clipboard";
            }
            else {
                aItem.src = "images/btnAddClipboard.gif";
                aItem.alt = "Add item to Clipboard";
            }

            var handleFailure = function(o) {
                if (o.responseText !== undefined) {
                    document.body.innerHTML = "<li>Transaction id: " + o.tId + "</li>";
                    document.body.innerHTML += "<li>HTTP status: " + o.status + "</li>";
                    document.body.innerHTML += "<li>Status code message: " + o.statusText + "</li>";
                }
            };

            var args =
            {
                saveState: ''
            };

            var callback =
            {
                argument: args,
                success: returner,
                failure: handleFailure
            }


            var request = YAHOO.util.Connect.asyncRequest('POST', 'GenericCallback.aspx', callback, lParams);

            var lCount = getCountFromText(aCountDisplay);
            if (lCurrentState == "false")
                lCount = lCount + 1;
            else
                lCount = lCount - 1;

            updateCountDisplay(aCountDisplay, "My Lightbox", lCount);
        }
        catch (e) { alert(e); }
    }
}

function updateCountDisplay(aDisplay, aBaseText, aCount) {
    var lItem = getNamedItem(aDisplay, "input");
    if (lItem) {
        lItem.value = aBaseText + "(" + aCount + ")";
    }
}

function getCountFromText(aDisplay) {
    var lItem = getNamedItem(aDisplay, "input");
    if (lItem) {
        var lValue = lItem.value;
        var lStartIdx = lValue.lastIndexOf("(");
        var lEndIdx = lValue.lastIndexOf(")");
        if (lStartIdx >= 0 && lEndIdx > lStartIdx) {
            var lCount = 0;
            lCount = lValue.substr(lStartIdx + 1, lEndIdx - lStartIdx - 1);
            return Number(lCount);
        }
        else
            return 0;
    }
}

function getNamedItemWithParent(aParentElement, namedItem, tagname) {
    var lItems = document.getElementsByTagName(tagname);
    for (i = 0; i < lItems.length; ++i) {
        if (lItems[i].id.match(namedItem) != null && lItems[i].parentNode == aParentElement) {
            return lItems[i];
        }
    }
    return null;
}

function getElementFromPartialName(aPartialName, tagname) {
    var lItems = document.getElementsByTagName(tagname);
    for (i = 0; i < lItems.length; ++i) {
        if (lItems[i].id.indexOf(aPartialName) >= 0) {
            return lItems[i];
        }
    }
    return null;
}

function getNamedItem(namedItem, tagname) {
    var lItems = document.getElementsByTagName(tagname);
    for (i = 0; i < lItems.length; ++i) {
        if (lItems[i].id.match(namedItem) != null) {
            return lItems[i];
        }
    }
    return null;
}

function GetChildNamed(parent, name) {
    if (parent) {
        for (GetChildNamedi = 0; GetChildNamedi < parent.childNodes.length; GetChildNamedi++)
            if (parent.childNodes[GetChildNamedi].nodeName == name)
            return parent.childNodes[GetChildNamedi];
    }
    return null;
}

function GetChildrenNamed(parent, name) {
    var ret = new Array();

    if (parent) {
        for (GetChildrenNamedi = 0; GetChildrenNamedi < parent.childNodes.length; GetChildrenNamedi++)
            if (parent.childNodes[GetChildrenNamedi].nodeName == name)
            ret.push(parent.childNodes[GetChildrenNamedi]);
    }
    return ret;
}

function GetNodeText(node) {
    if (node == null)
        return;
    var ret = "";
    if (!isIE) {
        try {
            ret = node.childNodes[0].data;
        } catch (e) {
        }
    }
    else
        ret = node.text;
    return ret;
}

function validateInfoRequest() {
    var lReturn = true;
    var lElement = getNamedItem("RequestText", "textarea");  //document.getElementById("ctl00_ContentPlaceHolder1_RequestText");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "Type your request here *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    lElement = getNamedItem("FirstName", "input");  //document.getElementById("ctl00_ContentPlaceHolder1_FirstName");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "First name *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    lElement = getNamedItem("LastName", "input");  //document.getElementById("ctl00_ContentPlaceHolder1_LastName");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "Last name *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    lElement = getNamedItem("Company", "input");  //document.getElementById("ctl00_ContentPlaceHolder1_Company");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "Company *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    lElement = getNamedItem("Phone", "input");  //document.getElementById("ctl00_ContentPlaceHolder1_Phone");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "Phone *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    lElement = getNamedItem("InfoEmail", "input");  //document.getElementById("ctl00_ContentPlaceHolder1_Email");
    if (lElement) {
        if (lElement.value.length == 0 || lElement.value == "Email *") {
            lReturn = false;
            lElement.style.backgroundColor = "#cccccc";
        }
        else
            lElement.style.backgroundColor = "#ffffff";
    }

    return lReturn;
}

function SelectProjectFolder(aElementName, aElementType, aImageElement, aProjectName) {
/*
    lElement = getNamedItem(aElementName, aElementType);
    lImageElement = document.getElementById(aImageElement);
    if (lElement) {
        if (lElement.style.display == "none") {
            lElement.style.display = "";
            if (lImageElement)
                lImageElement.src = "images/btnShowLess.gif";
        }
        else {
            lElement.style.display = "none";
            if (lImageElement)
                lImageElement.src = "images/btnShowMore.gif";
        }
    }
    hideProjectFolders(aElementName, aElementType, aImageElement);
    //__doPostBack('mClipboardUpdatePanel', aProjectName); 
*/
    doPostBackAsync('mClipboardUpdatePanel', aProjectName); 
}

function hideProjectFolders(aIgnoreElement, aType, aImageElement) {
    var lItems = document.getElementsByTagName(aType);
    for (i = 0; i < lItems.length; ++i) {
        if (lItems[i].id != aIgnoreElement && lItems[i].id.match('mFolderItems') != null) {
            lItems[i].style.display = "none";
        }
    }
    lItems = document.getElementsByTagName('img');
    for (i = 0; i < lItems.length; ++i) {
        if (lItems[i].id != aImageElement && lItems[i].id.match('imgShowFolder') != null) {
            lItems[i].src = "images/btnShowMore.gif";
        }
    }
}

function ToggleShown(aElementName, aElementType) {
    lElement = getNamedItem(aElementName, aElementType);
    if (lElement) {
        if (lElement.style.display == "none")
            lElement.style.display = "";
        else
            lElement.style.display = "none";
    }
}

function HideItem(aElementName, aElementType) {
    lElement = getNamedItem(aElementName, aElementType);
    if (lElement) {
        lElement.style.display = "none";
    }
}


function ShowItem(aElementName, aElementType) {
    lElement = getNamedItem(aElementName, aElementType);
    if (lElement) {
        lElement.style.display = "";
    }
}

function ToggleHistoryDetail(aParentElement, aBaseElementName) {
    if (aParentElement) {
        var lId = aBaseElementName + aParentElement.id.substring(aParentElement.id.lastIndexOf("_") + 1, aParentElement.id.length);
        var lItem = document.getElementById(lId);
        if (lItem) {
            ToggleElementDisplay(lItem);
        }
    }
}

function ToggleContent(aParentElement, aToggleElementName, aTag) {
    var lElement = getNamedItemWithParent(aParentElement, aToggleElementName, aTag);
    ToggleElementDisplay(lElement);
}

function ToggleContentDisplay(d) {

    if (d.length < 1) { return false; }
    var dd = document.getElementById(d);
    ToggleElementDisplay(dd);
}

function ToggleElementDisplay(aElement) {
    if (aElement) {
        if (aElement.style.display == "none") {
            aElement.style.display = "";
            return true;
        }
        else {
            aElement.style.display = "none";
            return false;
        }
    }
}

function refreshOpener(aReferUrl) {
    if (aReferUrl.toString().length == 0) {
        if (Tips.visible)
            Tips.hideAll();
    }
}
function returner(aObj) { }
function returner_doPostback(aObj) {
    __doPostBack(null, null);
}
function returner_doPostback() {
    __doPostBack(null, null);
}

function doPostBackAsync(eventName, eventArgs) {
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    if (!Array.contains(prm._asyncPostBackControlIDs, eventName)) {
        prm._asyncPostBackControlIDs.push(eventName);
    }

    if (!Array.contains(prm._asyncPostBackControlClientIDs, eventName)) {
        prm._asyncPostBackControlClientIDs.push(eventName);
    }

    __doPostBack(eventName, eventArgs);
}
