﻿var sessionTime = 0;
var refreshInterval = 150;
var countdown = refreshInterval;
var appRoot = './';
var defaultLanguageId = 0;
var defaultFeed = 'Terrorism';
var startItem = [];
var endItem = [];
var activeFeeds = [];
var isAdminUser = false;
var selectedProductId = -1;
var loginMaxHeight = 175;
var rootCategories = [];
var TreeExpand = "TreeExpand";
var TreeCollapse = "TreeCollapse";

function InitNameValue(nm, val) {
    var nameValue = { name: nm, value: val }
    return nameValue;
}

Array.prototype.contains = function(test) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == test) { return true; }
    }
    return false;
}

Array.prototype.ForFeed = function(feedName) {
    for (var i = 0; i < this.length; i++) {
        if (this[i].name == feedName) { return this[i].value; }
    }
    return false;
}

Array.prototype.FromFeed = function(feedName) {
    for (var i = 0; i < this.length; i++) {
        if (this[i].name == feedName) { return this[i]; }
    }
    return false;
}

setTimeout('timerTick();', 200);

function setAppRoot(root) {
    if (typeof root == 'undefined') { root = '/'; }
    appRoot = root;
}

function makeRequest(url, parameters, callback) {
    var xmlhttp_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari, IE7...
        xmlhttp_request = new XMLHttpRequest();
        if (xmlhttp_request.overrideMimeType) {
            xmlhttp_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE6
        document.getElementById('Footer').style.position = 'relative';
        try {
            xmlhttp_request = new ActiveXObject("MSXML2.XMLHTTP.3.0");
        } catch (e) {
            try {
                xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }
    if (!xmlhttp_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    showLoading();
    xmlhttp_request.onreadystatechange = function() { callback(xmlhttp_request, parameters); }
    xmlhttp_request.open('GET', url, true);
    xmlhttp_request.send(null);
}

function sendData(url, data, callback) {
    var xmlhttp_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        xmlhttp_request = new XMLHttpRequest();
        if (xmlhttp_request.overrideMimeType) {
            xmlhttp_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        document.getElementById('Footer').style.position = 'relative';
        try {
            xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }
    if (!xmlhttp_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    showLoading();
    xmlhttp_request.onreadystatechange = function() { callback(xmlhttp_request, ''); }
    xmlhttp_request.open('POST', url, true);
    xmlhttp_request.send(data);
}

function showLoading() {
    var ajaxLoading = document.getElementById('TreeViewLoading');
    if (ajaxLoading) {
        ajaxLoading.style.display = 'block';
    } else {
        // do nothing
    }
}

function hideLoading() {
    var ajaxLoading = document.getElementById('TreeViewLoading');
    if (ajaxLoading) {
        ajaxLoading.style.display = 'none';
    } else {
        // do nothing
    }
}

function treeviewSuccess(http_request, customData) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            //alert(http_request.responseText);
            var xmldoc = http_request.responseXML;
            var treeview = false;
            if (xmldoc.getElementsByTagName("treeview").length > 0) { treeview = xmldoc.getElementsByTagName("treeview")[0]; }
            if (treeview) {
                var treeDiv = document.getElementById('TreeViewContainer');
                //process root cats
                for (var iNode = 0; iNode < treeview.childNodes.length; iNode++) {
                    var treenode = treeview.childNodes.item(iNode);
                    if (treenode.nodeName == 'category') {
                        if (!document.getElementById('TreeViewCategory' + treenode.getAttribute("id"))) {
                            var catId = treenode.getAttribute("id");
                            if ((treenode.getAttribute("hidden") == "False") || ((treenode.getAttribute("hidden") == "True") && (isAdminUser))) {
                                var categoryDiv = document.createElement("div");
                                var outerDiv = document.createElement("div");
                                var categoryEl = document.createElement("a");
                                var expandEl = document.createElement("a");

                                categoryDiv.appendChild(outerDiv);
                                categoryDiv.id = 'TreeViewCategory' + catId;

                                //category page element
                                categoryEl.id = 'CategoryLink' + catId;
                                categoryEl.innerHTML = treenode.getAttribute("name") + ((treenode.getAttribute("hidden") == "True") ? "&nbsp;<span style=\"color:#fff;\">(hidden)</span>" : "");
                                categoryEl.href = "Category.aspx?CategoryId=" + catId;
                                categoryEl.className = 'TreeViewCategoryLink';
                                categoryEl.style.marginLeft = MainMenuMode == 0 ? "2px" : "14px";

                                //expand/collapse element
                                expandEl.id = "TreeViewCategoryLink" + catId;
                                expandEl.className = TreeExpand;
                                expandEl.href = "javascript:getTreeView('" + catId + "','" + defaultLanguageId + "');";

                                outerDiv.className = ((treenode.getAttribute("hidden") == "False") ? 'TreeViewCategory' : 'TreeViewCategoryHidden');

                                //add mouse over and out events
                                outerDiv.onmouseover = function() {
                                    this.childNodes[1].style.color = "#C7222D";
                                    if (this.childNodes[1].lastChild.style) this.childNodes[1].lastChild.style.color = "#C7222D";
                                };
                                outerDiv.onmouseout = function() {
                                    this.childNodes[1].style.color = "#FFFFFF";
                                    if (this.childNodes[1].lastChild.style) this.childNodes[1].lastChild.style.color = "#FFFFFF";
                                };
                                if (MainMenuMode == 0) {
                                    outerDiv.oncontextmenu = function(e) {
                                        var cmd = this.childNodes[0].href.toString(); ;
                                        if (cmd.indexOf("getTreeView") >= 0)
                                            cmd = cmd.substring(cmd.indexOf("getTreeView"));
                                        else if (cmd.indexOf("showElements") >= 0)
                                            cmd = cmd.substring(cmd.indexOf("showElements"));
                                        else if (cmd.indexOf("hideElements") >= 0)
                                            cmd = cmd.substring(cmd.indexOf("hideElements"));
                                        cmd = cmd.replace(/%22/g, "'").replace(/%27/g, "'");
                                        this.blur(); this.childNodes[1].blur();
                                        setTimeout(cmd, 0);
                                        return false;
                                    };
                                }

                                outerDiv.appendChild(expandEl);
                                outerDiv.appendChild(categoryEl);

                                if (treenode.getAttribute("parentcategoryid") == "") {
                                    outerDiv.className = 'TreeViewRootCategory';
                                    if (!rootCategories.contains(catId)) { rootCategories.push(parseInt(catId)); }
                                    treeDiv.appendChild(categoryDiv);
                                } else {
                                    var parentCat = document.getElementById('TreeViewCategory' + treenode.getAttribute("parentcategoryid"));
                                    if (parentCat) {
                                        parentCat.appendChild(categoryDiv);
                                    }
                                }
                            }
                        } else {
                            var parentEl = document.getElementById('TreeViewCategoryLink' + treenode.getAttribute("id"));
                            if (parentEl) {
                                parentEl.href = "javascript:hideElements('TreeViewCategory" + treenode.getAttribute("id") + "');"
                                if (parentEl.className == TreeExpand) { parentEl.className = TreeCollapse; } else if (parentEl.className == TreeCollapse) { parentEl.className = TreeExpand }
                            }
                        }

                        //process subCategories
                        for (var iChild = 0; iChild < treenode.childNodes.length; iChild++) {
                            var treechild = treenode.childNodes[iChild];
                            if (treechild.nodeName == 'sub-categories') {
                                for (var iSub = 0; iSub < treechild.childNodes.length; iSub++) {
                                    var subCat = treechild.childNodes[iSub];
                                    if (subCat.nodeName == 'sub-category') {
                                        if (!document.getElementById('TreeViewCategory' + subCat.getAttribute("id"))) {
                                            var subCatId = subCat.getAttribute("id");
                                            if ((subCat.getAttribute("hidden") == "False") || ((subCat.getAttribute("hidden") == "True") && (isAdminUser))) {
                                                var parentCatId = parseInt(subCat.getAttribute("parentcategoryid"));
                                                var categoryDiv = document.createElement("div");
                                                var outerDiv = document.createElement("div");
                                                var categoryEl = document.createElement("a");
                                                var expandEl = document.createElement("a");

                                                categoryDiv.appendChild(outerDiv);
                                                categoryDiv.id = 'TreeViewCategory' + subCatId

                                                //category page element
                                                categoryEl.id = 'CategoryLink' + subCatId;
                                                categoryEl.innerHTML = subCat.getAttribute("name") + ((subCat.getAttribute("hidden") == "True") ? "&nbsp;<span style=\"color:#fff;\">(hidden)</span>" : "");
                                                categoryEl.href = "Category.aspx?CategoryId=" + subCatId;
                                                categoryEl.className = 'TreeViewCategoryLink';
                                                categoryEl.style.marginLeft = MainMenuMode == 0 ? "2px" : "14px";

                                                //expand/collapse element
                                                expandEl.id = "TreeViewCategoryLink" + subCatId;
                                                expandEl.className = TreeExpand;
                                                expandEl.href = "javascript:getTreeView('" + subCatId + "','" + defaultLanguageId + "');";

                                                // if the parent category is not a root category then we need to indent the category (set classname differently)
                                                if (rootCategories.contains(parentCatId)) { categoryDiv.className = 'TreeViewSubCategory'; } else { categoryDiv.className = 'TreeViewSubCategoryL2'; }
                                                if (subCat.getAttribute("hidden") == "False") { outerDiv.className = 'TreeViewCategory'; } else { outerDiv.className = 'TreeViewCategoryHidden'; }

                                                //add mouse over and out events
                                                outerDiv.onmouseover = function() {
                                                    this.childNodes[1].style.color = "#C7222D";
                                                    if (this.childNodes[1].lastChild.style) this.childNodes[1].lastChild.style.color = "#C7222D";
                                                };
                                                outerDiv.onmouseout = function() {
                                                    this.childNodes[1].style.color = "#FFFFFF";
                                                    if (this.childNodes[1].lastChild.style) this.childNodes[1].lastChild.style.color = "#FFFFFF";
                                                };
                                                if (MainMenuMode == 0) {
                                                    outerDiv.oncontextmenu = function(e) {
                                                        var cmd = this.childNodes[0].href.toString(); ;
                                                        if (cmd.indexOf("getTreeView") >= 0)
                                                            cmd = cmd.substring(cmd.indexOf("getTreeView"));
                                                        else if (cmd.indexOf("showElements") >= 0)
                                                            cmd = cmd.substring(cmd.indexOf("showElements"));
                                                        else if (cmd.indexOf("hideElements") >= 0)
                                                            cmd = cmd.substring(cmd.indexOf("hideElements"));
                                                        cmd = cmd.replace(/%22/g, "'").replace(/%27/g, "'");
                                                        this.blur(); this.childNodes[1].blur();
                                                        setTimeout(cmd, 0);
                                                        return false;
                                                    };
                                                }

                                                outerDiv.appendChild(expandEl);
                                                outerDiv.appendChild(categoryEl);

                                                if (document.getElementById('TreeViewCategory' + treenode.getAttribute("id")))
                                                    document.getElementById('TreeViewCategory' + treenode.getAttribute("id")).appendChild(categoryDiv);
                                            }
                                        }
                                    }
                                }
                            }
                            else if (treechild.nodeName == 'products') {
                                for (var iProd = 0; iProd < treechild.childNodes.length; iProd++) {
                                    var treeprod = treechild.childNodes[iProd];
                                    if (treeprod.nodeName == 'product') {
                                        if (!document.getElementById('TreeViewProduct' + treeprod.getAttribute("id") + '_' + treeprod.getAttribute("parentcategoryid"))) {
                                            if ((treeprod.getAttribute("hidden") == "False") || ((treeprod.getAttribute("hidden") == "True") && (isAdminUser))) {
                                                var productEl = document.createElement("A");
                                                var prodId = parseInt(treeprod.getAttribute("id"));
                                                productEl.id = 'TreeViewProduct' + treeprod.getAttribute("id") + '_' + treeprod.getAttribute("parentcategoryid");
                                                if (prodId == selectedProductId) { productEl.className = 'TreeViewProductSelected'; }
                                                else if (treeprod.getAttribute("hidden") == "False") { productEl.className = 'TreeViewProduct'; } else { productEl.className = 'TreeViewProductHidden'; }
                                                productEl.innerHTML = treeprod.getAttribute("name") + ((treeprod.getAttribute("hidden") == "True") ? "&nbsp;<span style=\"color:#A7202A;\">(hidden)</span>" : "");
                                                productEl.href = "ViewProduct.aspx?CategoryId=" + treeprod.getAttribute("parentcategoryid") + "&ProductId=" + treeprod.getAttribute("id");
                                                var parentCat = document.getElementById('TreeViewCategory' + treeprod.getAttribute("parentcategoryid"));
                                                if (parentCat) {
                                                    parentCat.appendChild(productEl);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            try {
                if (customData.length >= 1) {
                    // load the next category from the array
                    getTreeView(customData, defaultLanguageId);
                } else {
                    hideLoading();
                }
            } catch (e) {
                // obviously not an array of categories to load so exit
                hideLoading();
            }
        } else {
            alert('There was a problem with the request.');
            hideLoading();
        }
    }
}

function hideElements(elId, num, delay) {
    var el = document.getElementById(elId);
    if (el) {
        if (typeof num == "undefined") {
            hideElements(elId, 1, 33);
            return;
        } else {
            if (num < el.childNodes.length) {
                el.childNodes[num].style.display = 'none';
                num++;
                setTimeout("hideElements('" + elId + "'," + num + "," + delay + ");", delay);
                //return;
            }
        }
        if (el.childNodes[0].nodeName == "div" || el.childNodes[0].nodeName == "DIV") {
            var innerEl = el.childNodes[0].childNodes[0];
            if (innerEl.href == "javascript:hideElements('" + elId + "');") { innerEl.href = "javascript:showElements('" + elId + "');"; innerEl.className = TreeExpand; }
        } else {
            var innerEl = el.childNodes[0].childNodes[0].childNodes[0];
            if (innerEl.href == "javascript:hideElements('" + elId + "');") { innerEl.href = "javascript:showElements('" + elId + "');"; innerEl.className = TreeExpand; }
        }
    }
}

function showElements(elId, num, delay) {
    var el = document.getElementById(elId);
    var catId = parseInt(elId.replace(/TreeViewCategory/, ''));
    if (rootCategories.contains(catId)) {
        // root category so we need to hide the other root nodes
        for (var rci = 0; rci < rootCategories.length; rci++) {
            if (rootCategories[rci] != catId) {
                try {
                    hideElements('TreeViewCategory' + rootCategories[rci]);
                    //return;
                } catch (e) { }
            }
        }
    }
    if (el) {
        if (typeof num == "undefined") {
            showElements(elId, 1, 33);
            return;
        } else {
            if (num < el.childNodes.length) {
                el.childNodes[num].style.display = 'block';
                num++;
                setTimeout("showElements('" + elId + "'," + num + "," + delay + ");", delay);
                //return;
            }
        }
        if (el.childNodes[0].nodeName == "div" || el.childNodes[0].nodeName == "DIV") {
            var innerEl = el.childNodes[0].childNodes[0];
            if (innerEl.href == "javascript:showElements('" + elId + "');") { innerEl.href = "javascript:hideElements('" + elId + "');"; innerEl.className = TreeCollapse; }
        } else {
            var innerEl = el.childNodes[0].childNodes[0].childNodes[0];
            if (innerEl.href == "javascript:showElements('" + elId + "');") { innerEl.href = "javascript:hideElements('" + elId + "');"; innerEl.className = TreeCollapse; }
        }
    }
}

function getTreeView(categoryId, languageId) {
    if (MainMenuMode == null) MainMenuMode = 0;
    TreeExpand = (MainMenuMode == 0 ? "Hidden TreeExpand" : "TreeExpand");
    TreeCollapse = (MainMenuMode == 0 ? "Hidden TreeCollapse" : "TreeCollapse");

    var catId = '';
    if (typeof categoryId == 'undefined') { categoryId = ''; }
    try {
        catId = categoryId.shift();
    } catch (e) {
        catId = categoryId;
        categoryId = [];
    }
    if (typeof languageId == 'undefined') { langaugeId = defaultLanguageId; }
    defaultLanguageId = languageId;
    if (rootCategories.contains(parseInt(catId))) {
        for (var rci = 0; rci < rootCategories.length; rci++) {
            if (rootCategories[rci] != parseInt(catId)) {
                try {
                    hideElements('TreeViewCategory' + rootCategories[rci]);
                } catch (e) { }
            }
        }
    }
    makeRequest(appRoot + 'services/GetTreeView.ashx?CategoryId=' + catId + '&LanguageId=' + languageId + '&ticks=' + (new Date()).getMilliseconds(), categoryId, treeviewSuccess);
}

function newsfeedSuccess(http_request, customData) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            //alert(http_request.responseText);
            var xmldoc = http_request.responseXML;
            var newsfeed = false;
            var currentItem = 0;
            var currentFeed = '';
            var newsfeedTable = false;
            if (xmldoc.getElementsByTagName("newsfeed").length > 0) { newsfeed = xmldoc.getElementsByTagName("newsfeed")[0]; }
            if (newsfeed) {
                currentFeed = newsfeed.getAttribute("name").replace(" ", "").replace("(", "").replace(")", "");
                if (!activeFeeds.contains(currentFeed)) { activeFeeds.push(currentFeed); }
                if (!startItem.ForFeed(currentFeed)) { var SInitNV = InitNameValue(currentFeed, 1); startItem.push(SInitNV); }
                if (!endItem.ForFeed(currentFeed)) { var EInitNV = InitNameValue(currentFeed, 5); endItem.push(EInitNV); }
                newsfeedTable = document.getElementById('NewsFeedTable' + currentFeed);
                if (newsfeedTable) {
                    while (newsfeedTable.rows.length > 0) {
                        newsfeedTable.deleteRow(0);
                    }
                    var timeslots = newsfeed.childNodes;
                    for (var iSlot = 0; iSlot < timeslots.length; iSlot++) {
                        var newsitems = timeslots[iSlot].childNodes;
                        for (var iNews = 0; iNews < newsitems.length; iNews++) {
                            var newsitem = newsitems[iNews];
                            if (newsitem.nodeName == "newsitem") {
                                currentItem++;
                                if ((currentItem >= startItem.ForFeed(currentFeed)) && (currentItem <= endItem.ForFeed(currentFeed))) {
                                    var newsdata = newsitem.childNodes;
                                    var newsDate = ''; var newsUrl = ''; var newsId = ''; var newsLink1 = ''; var newsLink2 = ''; var newsSource = '';
                                    for (var iData = 0; iData < newsdata.length; iData++) {
                                        if (newsdata[iData].nodeName == 'timedate') { newsDate = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                        if (newsdata[iData].nodeName == 'url') { newsUrl = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                        if (newsdata[iData].nodeName == 'id') { newsId = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                        if (newsdata[iData].nodeName == 'newslink1') { newsLink1 = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                        if (newsdata[iData].nodeName == 'newslink2') { newsLink2 = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                        if (newsdata[iData].nodeName == 'source') { newsSource = (newsdata[iData].text ? newsdata[iData].text : newsdata[iData].textContent); }
                                    }
                                    if (newsDate.length < 8) { newsDate = 'Today ' + newsDate; }
                                    if (typeof newsLink2 == "undefined") { newsLink2 = ''; }
                                    var newsRow1 = newsfeedTable.insertRow(newsfeedTable.rows.length);
                                    var newsRow2 = newsfeedTable.insertRow(newsfeedTable.rows.length);
                                    var newsRow3 = newsfeedTable.insertRow(newsfeedTable.rows.length);
                                    var newsRow4 = newsfeedTable.insertRow(newsfeedTable.rows.length);
                                    var dateCell = newsRow1.insertCell(0);
                                    var linkCell = newsRow2.insertCell(0);
                                    var sourceCell = newsRow3.insertCell(0);
                                    var sepCell = newsRow4.insertCell(0);
                                    dateCell.innerHTML = "<span style='white-space: nowrap; color: #D00000;'>" + newsDate + "</span>";
                                    linkCell.innerHTML = "<a href='" + newsUrl + newsId + "' target='_blank' title='Go to news story'>" + newsLink1 + ' ' + newsLink2 + "</a>";
                                    sourceCell.innerHTML = "<i>" + newsSource + "</i>";
                                    sepCell.innerHTML = "<HR width='90%' />";
                                }
                            }
                        }
                    }
                    if ((currentItem <= 5) || (endItem.ForFeed(currentFeed) >= currentItem)) { document.getElementById('NewsFeedMore' + currentFeed).className = 'Hidden'; } else { document.getElementById('NewsFeedMore' + currentFeed).className = 'MoreLink'; }
                    if (startItem.ForFeed(currentFeed) > 5) { document.getElementById('NewsFeedBack' + currentFeed).className = 'MoreLink'; } else { document.getElementById('NewsFeedBack' + currentFeed).className = 'Hidden'; }
                }
                else {
                    alert('No container defined for ' + currentFeed);
                }
            }
        } else {
            alert('There was a problem with the request.');
            hideLoading();
        }
    }
}

function getNewsFeed(feedName) {
    if (typeof feedName == 'undefined') { feedName = defaultFeed; }
    makeRequest(appRoot + 'services/GetNewsFeed.ashx?feed=' + feedName, '', newsfeedSuccess);
}

function fadeAndRemove(el, opacity, timeout) {
    if (typeof document.getElementById(el).style.opacity != "undefined") { document.getElementById(el).style.opacity = parseFloat(opacity / 100); }
    if (typeof document.getElementById(el).style.MozOpacity != "undefined") { document.getElementById(el).style.MozOpacity = parseFloat(opacity / 100); } else { opacity = 0; }
    if (typeof timeout != "undefined") {
        if (opacity > 0) { setTimeout("fadeAndRemove('" + el + "', " + parseInt(opacity - 10) + ", " + timeout + ");", timeout); }
        else
        { document.getElementById(el).parentNode.removeChild(document.getElementById(el)); }
    }
}

function toggleElement(elId) {
    var el = document.getElementById(elId);
    if (el) {
        el.className = ((el.className == 'Hidden') ? '' : 'Hidden');
    }
}

function toggleHeight(elId, min, max) {
    var el = document.getElementById(elId);
    if (el) {
        if (typeof max == "undefined") { max = el.scrollHeight };
        el.className = '';
        if (parseInt(el.style.height) == max) { el.style.height = min + 'px'; } else { el.style.height = max + 'px'; }
    }
}

function showLogin(height, change) {
    var loginEl = document.getElementById('LoginContainer');
    if (typeof height == "undefined") {
        if (parseInt(loginEl.style.height) == 0) {
            setTimeout("showLogin(0,5);", 15);
        } else if (parseInt(loginEl.style.height) >= 150) {
            loginMaxHeight = parseInt(loginEl.style.height);
            setTimeout("showLogin(" + loginMaxHeight + ",-5);", 15);
        }
    } else {
        if ((height + change >= 0) && (height + change <= loginMaxHeight)) {
            loginEl.style.height = (height + change) + 'px';
            setTimeout("showLogin(" + (height + change) + "," + change + ");", 15);
            //if (parseInt(loginEl.style.height)==0) {document.getElementById('LoginArrow').src='Images/LoginDown.gif';} else if (parseInt(loginEl.style.height)==loginMaxHeight) {document.getElementById('LoginArrow').src='Images/LoginUp.gif';}           
        }
    }
}

function matchHeight(elId1, elId2) {
    var el1 = document.getElementById(elId1);
    var el2 = document.getElementById(elId2);
    if (parseInt(el1.style.height) != parseInt(el2.style.height)) { el1.style.height = el2.style.height; }
}

function timerTick() {
    sessionTime += 0.2;
    if (countdown > 0) {
        countdown--;
        setTimeout('timerTick();', 200);
    } else { countdownZero(); }
}

function countdownZero() {
    // do countdown actions
    countdown = refreshInterval;
    setTimeout('timerTick();', 200);
    for (var fds = 0; fds < activeFeeds.length; fds++) {
        getNewsFeed(activeFeeds[fds]);
    }
}

function resizeTextarea(textarea) {
    textarea.style.height = ((textarea.scrollHeight) ? textarea.scrollHeight : 17) + 'px';
    try {
        textarea.scrollIntoView();
    } catch (ex) {

    }
}

// MAIN MENU //
var shouldHideCustomerServiceMenu = 0;
var shouldHideServicesMenu = 0;
var shouldHideCareerMenu = 0;
var shouldHideMyAccountMenu = 0;
var shouldHideExhibitionsMenu = 0;
var shouldHideAboutMenu = 0;
var shouldHideCapabilitiesMenu = 0;
var HoverColor = '#fff';
var HoverBackColor = '#000';

function setMenuItemStyle(element, hover, toggle) {
    if (element) {
        if (toggle == true) {
            hover = (element.style.color == '');
        }
        if (hover == true) {
            element.style.color = HoverColor;
            element.style.backgroundColor = HoverBackColor;
        } else {
            element.style.color = '';
            element.style.backgroundColor = '';
        }
    }
}

function HideAll(mode) {
    document.getElementById(MyExhibitionsMenu).className = 'Hidden';
    document.getElementById(AboutMenu).className = 'Hidden';
    document.getElementById(MyAccountMenu).className = 'Hidden';
    document.getElementById(CustomerServiceMenu).className = 'Hidden';
    document.getElementById(ServicesMenu).className = 'Hidden';
    if (document.getElementById(CareerMenu)) { document.getElementById(CareerMenu).className = 'Hidden'; }
    setMenuItemStyle(document.getElementById(hlExhibitions), false);
    setMenuItemStyle(document.getElementById(hlAbout), false);
    setMenuItemStyle(document.getElementById(hlMyAccount), false);
    setMenuItemStyle(document.getElementById(hlProducts), false);
    setMenuItemStyle(document.getElementById(hlServices), false);
    setMenuItemStyle(document.getElementById(hlCareer), false);
    if (mode != 1) {
        document.getElementById(CapabilitiesMenu).className = 'Hidden';
        setMenuItemStyle(document.getElementById(hlCapabilities), false);
    }
}

function ShowCapabilitiesMenu() {
    document.getElementById(CapabilitiesMenu).className = '';
    //setMenuItemStyle(document.getElementById(hlCapabilities), true);
    shouldHideCapabilitiesMenu++;
}

function HideCapabilitiesMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideCapabilitiesMenu(" + shouldHideCapabilitiesMenu + ");", 1000);
    } else {
        if (key == shouldHideCapabilitiesMenu) {
            document.getElementById(CapabilitiesMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlCapabilities), false);
            HideAboutMenu();
        }
    }
}

function ShowAboutMenu() {
    HideAll(1);
    document.getElementById(AboutMenu).className = '';
    shouldHideAboutMenu++;
    setMenuItemStyle(document.getElementById(hlAbout), true);
}

function HideAboutMenu(key) {
    if (document.getElementById(CapabilitiesMenu).className != 'Hidden') return;
    if (typeof key == 'undefined') {
        setTimeout("HideAboutMenu(" + shouldHideAboutMenu + ");", 1000);
    } else {
        if (key == shouldHideAboutMenu) {
            document.getElementById(AboutMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlAbout, false));
        }
    }
}

function ShowServicesMenu() {
    HideAll(0);
    document.getElementById(ServicesMenu).className = '';
    setMenuItemStyle(document.getElementById(hlServices), true);
    shouldHideServicesMenu++;
}

function HideServicesMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideServicesMenu(" + shouldHideServicesMenu + ");", 1000);
    } else {
        if (key == shouldHideServicesMenu) {
            document.getElementById(ServicesMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlServices), false);
        }
    }
}

function ShowCareerMenu() {
    HideAll(0);
    document.getElementById(CareerMenu).className = '';
    setMenuItemStyle(document.getElementById(hlCareer), true);
    shouldHideCareerMenu++;
}

function HideCareerMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideCareerMenu(" + shouldHideCareerMenu + ");", 1000);
    } else {
        if (key == shouldHideCareerMenu) {
            document.getElementById(CareerMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlCareer), false);
        }
    }
}

function ShowCustomerServiceMenu() {
    HideAll(0);
    document.getElementById(CustomerServiceMenu).className = '';
    setMenuItemStyle(document.getElementById(hlProducts), true);
    shouldHideCustomerServiceMenu++;
}

function HideCustomerServiceMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideCustomerServiceMenu(" + shouldHideCustomerServiceMenu + ");", 1000);
    } else {
        if (key == shouldHideCustomerServiceMenu) {
            document.getElementById(CustomerServiceMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlProducts), false);
        }
    }
}

function ShowMyAccountMenu() {
    HideAll(0);
    document.getElementById(MyAccountMenu).className = '';
    setMenuItemStyle(document.getElementById(hlMyAccount), true);
    shouldHideMyAccountMenu++;
}

function HideMyAccountMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideMyAccountMenu(" + shouldHideMyAccountMenu + ");", 1000);
    } else {
        if (key == shouldHideMyAccountMenu) {
            document.getElementById(MyAccountMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlMyAccount), false);
        }
    }
}

function ShowExhibitionsMenu() {
    HideAll(0);
    document.getElementById(MyExhibitionsMenu).className = '';
    setMenuItemStyle(document.getElementById(hlExhibitions), true);
    shouldHideExhibitionsMenu++;
}

function HideExhibitionsMenu(key) {
    if (typeof key == 'undefined') {
        setTimeout("HideExhibitionsMenu(" + shouldHideExhibitionsMenu + ");", 1000);
    }
    else {
        if (key == shouldHideExhibitionsMenu) {
            document.getElementById(MyExhibitionsMenu).className = 'Hidden';
            setMenuItemStyle(document.getElementById(hlExhibitions), false);
        }
    }
}

