﻿/// <reference path="jquery-1.3-vsdoc.js" />

// Detecting browser version.
// [MB]
var isFF = (navigator.userAgent.indexOf("Firefox") > 0);
var isChrome = (navigator.userAgent.indexOf("Chrome") > 0);
var isIE6 = false;
var isIE7 = false;
var isIE8 = false;
var isOpera = false;

// Matching Opera
if (window.opera) {
    isOpera = true;
}

// NoConflict-jQuery mode for sitecore.
// [MB]
var jqnc = jQuery.noConflict();


// Matching MSIE string for IE version detection.
// [MB]
if (!isFF) {
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
        var ieversion = new Number(RegExp.$1)
        if (ieversion >= 8) {
            isIE7 = true; // Use IE7 behavior for IE8 [MB]
            isIE8 = true;
        }
        else if (ieversion >= 7) {
            isIE7 = true;
        }
        else if (ieversion >= 6) {
            isIE6 = true;
        }
    }
}


function findParentOrSelfByClassName(currentItem, className) {
    var cnRegExp = new RegExp(className);

    while (currentItem) {
        if (cnRegExp.test(currentItem.className)) 
            return currentItem;
        

        currentItem = currentItem.offsetParent;
    }

    return null;
}

function Get(id, returnJQueryObj) {
    var objToReturn = jqnc("#" + id);

    return (returnJQueryObj) ? objToReturn : objToReturn.get(0);
}

// JQuery selected items - cached in an array.
// [MB]
var cachedObjects = {};
function GetItemsCached(selector) {
    if (!cachedObjects[selector]) {
        var result = jqnc(selector);

        cachedObjects[selector] = []
        for (var resNum = 0; resNum < result.length; resNum++) {
            cachedObjects[selector][cachedObjects[selector].length] = jqnc(result[resNum]);
        }
    }

    return cachedObjects[selector];
}

function setBookmark() {
    if (isFF) {
        window.sidebar.addPanel(document.title, location.href, "");
    }
    else if (isOpera) {
        var elem = document.createElement('a');
        elem.setAttribute('href', location.href);
        elem.setAttribute('title', document.title);
        elem.setAttribute('rel', 'sidebar');
        elem.click();
    }
    else if (isIE6 || isIE7 || isIE8) {
        window.external.AddFavorite(location.href, document.title);
    }
}

function Fade() {
    jqnc("#darkOverlay").get(0).style.display = 'block';
}

function Unfade()
{
    jqnc("#darkOverlay").get(0).style.display = 'none';
}

function DisplayOverlay(targetUrl) {
    Fade();

    var queryStringAppender = "?";
    if (targetUrl.indexOf("?") > 0)
        queryStringAppender = "&";
    
    var t = jqnc('#TargetFrame').get(0);
    t.src = targetUrl + queryStringAppender + "p=" + location.href;
    
    var o = jqnc('#Overlay').get(0);
    o.style.visibility = 'visible';
    o.style.display = 'block';

    if (document.documentElement.clientHeight) {
        o.style.top = ((document.documentElement.clientHeight / 2) - 200) + jqnc(document).scrollTop() + 'px';
    }
    
    if (isIE6) {
        var darkOverlay = jqnc('#darkOverlay').css("height", jqnc(document.body).height());
    }
}

function HideOverlay() {
    jqnc('#Overlay').get(0).style.visibility = 'hidden';
    jqnc('#Overlay').get(0).style.display = 'none';
    jqnc('#TargetFrame').get(0).src = '/layouts/web/overlay-loading.aspx';
    
    Unfade();
}

function ExtendedHover(source, elementIdToAttachClass, cssClass) {
    jqnc(elementIdToAttachClass).addClass(cssClass);
    HoverButton(source);
}

function ExtendedUnhover(source, elementIdToRemoveClass, cssClass) {
    jqnc(elementIdToRemoveClass).removeClass(cssClass);
    UnhoverButton(source);
}

function HoverButton(source) {
    if (source) {
        jqnc(source).addClass("ActionButtonActive");

        var iconItem = jqnc(".Icon img", source);
        var labelItem = jqnc(".Label img", source);

        if (iconItem && labelItem) {
            iconItem.get(0).src = iconItem.get(0).src.replace(/Printer\.png/, "PrinterPurple.png");
            labelItem.get(0).src = labelItem.get(0).src.replace(/PrintPage\.png/, "PrintPagePurple.png");
            iconItem.get(0).src = iconItem.get(0).src.replace(/Recommend\.png/, "RecommendPurple.png");
            labelItem.get(0).src = labelItem.get(0).src.replace(/RecommendPage\.png/, "RecommendPagePurple.png");
            iconItem.get(0).src = iconItem.get(0).src.replace(/Bookmark\.png/, "BookmarkPurple.png");
            labelItem.get(0).src = labelItem.get(0).src.replace(/BookmarkPage\.png/, "BookmarkPagePurple.png");

            iconItem.get(0).src = iconItem.get(0).src.replace(/Return\.gif/, "ReturnPurple.gif");
            labelItem.get(0).src = labelItem.get(0).src.replace(/BackToOverview\.png/, "BackToOverviewPurple.png");
            iconItem.get(0).src = iconItem.get(0).src.replace(/Letter\.png/, "LetterPurple.png");
            labelItem.get(0).src = labelItem.get(0).src.replace(/WriteAMail\.png/, "WriteAMailPurple.png");

            iconItem.get(0).src = iconItem.get(0).src.replace(/BackToOverview\.png/, "BackToOverviewPurple.png");
            labelItem.get(0).src = labelItem.get(0).src.replace(/BackToOverview\.png/, "BackToOverviewPurple.png");
        }
    }
}

function UnhoverButton(source) {
    if (source) {
        jqnc(source).removeClass("ActionButtonActive");
    
        var iconItem = jqnc(".Icon img", source);
        var labelItem = jqnc(".Label img", source);

        if (iconItem && labelItem) {
            iconItem.get(0).src = iconItem.get(0).src.replace(/Purple/, "");
            labelItem.get(0).src = labelItem.get(0).src.replace(/Purple/, "");
        }
    }
}

function Hover(source) {
    if (source) {
        jqnc(source).addClass("Hover");
    }
}

function UnHover(source) {
    if (source) {
        jqnc(source).removeClass("Hover");
    }
}