﻿
var ie7 = document.all;
var firefox = document.getElementById && !document.all;
var opera = window.opera ? 1 : 0;
var safari = (navigator.appVersion.toLowerCase().indexOf("safari") >= 1)
var ie6 = false/*@cc_on || @_jscript_version < 5.7@*/;
var chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

var os = "";

if (chrome) {
    os = "chrome"
} else if (safari) {
    os = "safari"
} else if (opera) {
    os = "opera";
} else if (firefox) {
    os = "firefox";
} else if (ie6) {
    os = "ie6";
} else if (ie7) {
    os = "ie7";
}


function submitform(formName) {
    var theform = document.getElementById(formName);

    theform.submit();
}

function snhButton_MouseOver(numeric) {
    document.body.style.cursor = 'pointer';
    var span = document.getElementById('snhButtonSpan' + numeric);

    var tablecell = document.getElementById('snhButtonTable' + numeric);
    var tablecellleft = document.getElementById('snhButtonTableLeft' + numeric);
    var tablecellright = document.getElementById('snhButtonTableRight' + numeric);
    
    if(span){

    }
    if (tablecellleft) {
        tablecellleft.style.background = 'transparent url(/include/images/snhbutton_left.gif) no-repeat bottom left'
    }
    if (tablecellright) {
        tablecellright.style.background = 'transparent url(/include/images/snhbutton_right.gif) no-repeat bottom left'
    }
    if (tablecell) {
        tablecell.style.background='transparent url(/include/images/snhbutton_center.gif) repeat-x bottom left'
    }
}

function snhButton_MouseOut(numeric) {
    document.body.style.cursor = 'auto';
    var span = document.getElementById('snhButtonSpan' + numeric);

    var tablecell = document.getElementById('snhButtonTable' + numeric);
    var tablecellleft = document.getElementById('snhButtonTableLeft' + numeric);
    var tablecellright = document.getElementById('snhButtonTableRight' + numeric);

    if (span) {

    }
    if (tablecellleft) {
        tablecellleft.style.background = 'transparent url(/include/images/snhbutton_left.gif) no-repeat top left'
    }
    if (tablecellright) {
        tablecellright.style.background = 'transparent url(/include/images/snhbutton_right.gif) no-repeat top left'
    }
    if (tablecell) {
        tablecell.style.background = 'transparent url(/include/images/snhbutton_center.gif) repeat-x top left'
    }
}

var clicking = false;
var currentHeight = 0;
var animationSpeed = 10;

function ExpandImage_MouseClick(img, divname) {

    if (clicking)
        return;
        

    clicking = true;

    var small = 60;

    switch (os) {
        case 'safari':
            small = 55;
            break;
    }
    
    var large = 410;

    var targetTime = 250;

    var div = document.getElementById(divname);

    switch (img.className) {
        case 'expandImg':
            img.className = 'expandImgExpanded';

            currentHeight = small;


            //setTimeout('animateSearch(\'' + divname + '\', ' + large + ', true,' + ((targetTime / (large - small)) * animationSpeed) + ')', (targetTime / (large - small)) * animationSpeed);

            div.style.height = "100%";
            clicking = false;
            break;
        case 'expandImgExpanded':
            img.className = 'expandImg';

            currentHeight = large;

            //setTimeout('animateSearch(\'' + divname + '\', ' + small + ', false,' + ((targetTime / (large - small)) * animationSpeed) + ')', (targetTime / (large - small)) * animationSpeed);

            div.style.height = small + "px";
            clicking = false;
            break;
    }

    

    
}

function animateSearch(divname, targetHeight, isGrowing, interval) {
    //alert('(\'' + divname  + '\',' + targetHeight + ',' + isGrowing + ',' + interval + ')');
    var div = document.getElementById(divname);
    //catch if the target size has been met
    //alert ('interval met');
    switch (isGrowing) {
        case true:
            //alert('growing: ' + currentHeight + ', ' + targetHeight);
            if (currentHeight + animationSpeed >= targetHeight) {
                div.style.height = targetHeight + 'px';
                clicking = false;
                return;
            } else {
                currentHeight += animationSpeed;
            }
            break;
        case false:
            //alert('shrinking: ' + currentHeight + ', ' + targetHeight);
            if (currentHeight - animationSpeed <= targetHeight) {
                div.style.height = targetHeight + 'px';
                clicking = false;
                return;
            } else {
                currentHeight -= animationSpeed;
            }
            break;
    }


    div.style.height = currentHeight + 'px';
    //RedrawControl(div);
    setTimeout('animateSearch(\'' + divname + '\',' + targetHeight + ',' + isGrowing + ',' + interval + ')', interval);
    //alert(1);

}

function RedrawControl(ctrl) {
    ctrl.style.display = 'none';
    ctrl.style.display = 'block';
}

function MenuItemChangeImage(menuItemNumeric, newstatus) {
    var menuLeft  = document.getElementById('menuitemleft'  + menuItemNumeric);
    var menuBody  = document.getElementById('menuitembody'  + menuItemNumeric);
    var menuRight = document.getElementById('menuitemright' + menuItemNumeric);

    if (menuBody) {
        menuBody.style.background = MenuItemChangeImageAlign(menuBody.style.background, newstatus);
    }

    if (menuLeft) {
        menuLeft.style.background = MenuItemChangeImageAlign(menuLeft.style.background, newstatus);
    }

    if (menuRight) {
        menuRight.style.background = MenuItemChangeImageAlign(menuRight.style.background, newstatus);
    }

    switch (newstatus) {
        case 'top':
            document.body.style.cursor = 'auto';
            break;
        case 'bottom':
            document.body.style.cursor = 'pointer';
            break;
    }

}

function MenuItemChangeImageAlign(str, newstatus) {
    var ret = "";

    //alert(str);

    var ready = false;

    for (var num = str.length+1; num >= 0; num--) {
        if (ready) {
            ret = str.substr(num, 1) + ret;
        }
        if (!ready && str.substr(num, 1) == ' ') {
            ready = true;
        }
    }

    ret = ret + ' ' + newstatus;
    return ret;
    //alert(ret);
}

function Collapsible_ForceOpen(targetCollapsible) {
    var div = document.getElementById(targetCollapsible);

    if (!div) {
        return;
    }

    switch (div.className) {
        case 'Collapsible_Open':
            div.className = 'Collapsible_Open';
            break;
        case 'Collapsible_Closed':
            div.className = 'Collapsible_Open';
            break;
        case 'Collapsible_Open_Total':
            div.className = 'Collapsible_Open_Total';
            break;
        case 'Collapsible_Closed_Total':
            div.className = 'Collapsible_Open_Total';
            break;
    }
}

function Collapsible_ForceClose(targetCollapsible) {
    var div = document.getElementById(targetCollapsible);

    if (!div) {
        return;
    }

    switch (div.className) {
        case 'Collapsible_Open':
            div.className = 'Collapsible_Closed';
            break;
        case 'Collapsible_Closed':
            div.className = 'Collapsible_Closed';
            break;
        case 'Collapsible_Open_Total':
            div.className = 'Collapsible_Closed_Total';
            break;
        case 'Collapsible_Closed_Total':
            div.className = 'Collapsible_Closed_Total';
            break;
    }
}

function Collapsible_Click(targetCollapsible) {
    var div = document.getElementById(targetCollapsible);

    if (!div) {
        return;
    }
    
    switch (div.className) {
        case 'Collapsible_Open':
            div.className = 'Collapsible_Closed';
            break;
        case 'Collapsible_Closed':
            div.className = 'Collapsible_Open';
            break;
        case 'Collapsible_Open_Total':
            div.className = 'Collapsible_Closed_Total';
            break;
        case 'Collapsible_Closed_Total':
            div.className = 'Collapsible_Open_Total';
            break;
    }
}

function Collapsible_Expand(titleDiv, bodyDiv){
   var tDiv = document.getElementById(titleDiv);
    var bDiv = document.getElementById(bodyDiv);
    
    if (tDiv){
        tDiv.style.visibility = 'visible';    
    }
    
    if(bDiv){
        bDiv.style.visibility = 'visible';
        bDiv.style.height = '100%';
    }
    
}

function HideAllObjects(arr) {

    if (!arr) {
        return;
    }

    if (arr.length == 0) {
        return;
    } 

    for (num = 0; num < arr.length; num++) {
        var v = document.getElementById (arr[num]);

        if (v) {
            v.className = 'Collapsible_Hidden';
        }
    }
}

function ShowAllObjects(arr) {
    if (!arr) return;

    if (arr.length == 0) return;

    for (num = 0; num < arr.length; num++) {
        var v = document.getElementById (arr[num]);
        
        if(v){
            v.className = 'Collapsible_Open';
        }
    }
}

function totalOffset(what, offsettype) {
    var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;

    //if(os == 'opera' || os=='firefox'){
    var parentEl = what.offsetParent;

    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }

    if (os == 'firefox' && offsettype == 'top') {
        totaloffset += 16;
    }


    return totaloffset;
    //}



}

function pxToInt(px) {
    if (!px)
        return 0;
        
    if(px.length<3){
        return px;
    }

    if (px.substr(px.length - 2, 2) == 'px') {
        return px.substr(0, px.length - 2);
    } else {
        return px;
    }
}

function MaybeHideOffer(appearer) {
    var ctl = document.getElementById(appearer);


    if (ctl)
        ctl.className = 'HiddenItem';

}

function showCenteredDiv(appearer, evt,caller) {
    var ctl = document.getElementById(appearer);

    if (!ctl)
        return;

    var elem;

    //I DID use document.getElementsByName, but apparently IE8 doesn't support this...
    if (divDivNames) {
        for (var num = 0; num < divDivNames.length; num++) {
            if (divDivNames[num] != appearer) {
                elem = document.getElementById(divDivNames[num]);

                if (elem && elem.className != 'HiddenItem')
                    elem.className = 'HiddenItem';

            }
        }
    }

    /*
        //ctl.style.left = (mouseX(evt) - 20) + 'px';
        var w = (screenWidth() - (20 + ctl.offsetLeft));
        //width cannot be bigger than width of containing element - cosmetic only
        w = w <= 700 ? w : 700;
        ctl.style.width = w + 'px';
    */

    var ht = (screenHeight() - 20);
    var offsetHeight = ctl.offsetHeight;

    ctl.style.left = (mouseX(evt) - 550) + (os != "ie" ? "px" : "");
    //document.title = mouseX(evt);
    
    ctl.style.maxHeight = ht + (os != "ie" ? "px" : "");

    divMaxZindex++;
    ctl.style.zIndex = divMaxZindex;

    var h = (mouseY(evt) - (ctl.offsetHeight));

    var callerCtl = document.getElementById(caller);
    
    
    h = totalOffset(callerCtl, "top")- scrollTop();
    h -= callerCtl.parentNode.parentNode.scrollTop;
    h -= ctl.offsetHeight;
    h -= (os.substr(0,2) != "ie" ? 20 : 5);

    var tbl;
    tbl = document.getElementById("Bubble" + appearer );
    
    if (h >= 0) {
        tbl.className = 'Bubble';
    }  else if (h < 0) {
        tbl.className = 'BubbleReverse';

        h = totalOffset(callerCtl, "top") - scrollTop();
        h -= callerCtl.parentNode.parentNode.scrollTop;
        h += callerCtl.offsetHeight;
        h += (os != "firefox" ? 5 : -10);
    }
    //document.title = (h + ctl.offsetHeight) + ',' + windowHeight();
    
    if((h + ctl.offsetHeight) > windowHeight()){
        ctl.className = 'HiddenItem';
    }
    
    
    
    
    ctl.style.top = h + (os != "ie" ? "px" : "");
}

function windowHeight() {
    var viewportheight;

    if (typeof window.innerWidth != 'undefined') {
      viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0) {
       viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else {
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }

    return viewportheight;
}

function scrollTop() {
    var ScrollTop = document.body.scrollTop;


    if (ScrollTop == 0) {
        if (window.pageYOffset)
            ScrollTop = window.pageYOffset;
        else
            ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }

    return ScrollTop;
}

function showSpecialOffer(appearer,evt) {
    var ctl = document.getElementById(appearer);

    if (!ctl)
        return;

    var elem;
    
    //I DID use document.getElementsByName, but apparently IE8 doesn't support this...
    if (offerDivNames) {
        for (var num = 0; num < offerDivNames.length; num++) {
            if (offerDivNames[num] != appearer) {
                elem = document.getElementById(offerDivNames[num]);
                
                if(elem)
                    elem.className = 'HiddenItem';

            }
        }
    }

    //ctl.style.left = (mouseX(evt) - 20) + 'px';
    var w = (screenWidth() - (20 + ctl.offsetLeft));
    //width cannot be bigger than width of containing element - cosmetic only
    w = w <= 650 ? w : 650;
    ctl.style.width = w + 'px';


    var ht = (screenHeight() - 20);
    var offsetHeight = ctl.offsetHeight;
    
    
    ctl.style.maxHeight = ht + (os != "ie" ? "px" : "");
    
    
    offerMaxZindex ++;
    ctl.style.zIndex = offerMaxZindex;
    
    var h = ((screenHeight() / 2) - (ctl.offsetHeight / 2));

    if (offsetHeight >= ht){
        ctl.style.overflowY="scroll";
    }else{
        ctl.style.overflowY="hidden";
    }

    //raising offer to same plane
    //h = h > mouseY(evt) ? mouseY(evt) - 10 : h; //
    
    //lowering offer to same plane
    //h = h + ctl.offsetHeight < mouseY(evt) ? h + (mouseY(evt) - (h + ctl.offsetHeight) + 20) : h;

    //offer can never be higher than the top of the page
    h = h < 0 ? 0 : h;

    ctl.style.top = h + 'px';


}

function updateThumbSelection(activename) {
    
    if (!thumbArr)
        return;

    var elem;

    for (var num = 0; num < thumbArr.length; num++) {

        if (thumbArr[num] != activename) {
            //alert("deselecting");
            elem = document.getElementById(thumbArr[num]);

            if (elem) {
                elem.className = "PropDevThumb3"; //deselected
            } else {
                //alert("error");
            }
        } else {
            //alert("selecting");
            elem = document.getElementById(thumbArr[num]);

            if (elem) {
                elem.className = "PropDevThumb3Selected"; //selected

            } else {
               // alert("error");
            }
        }
    }
}



function screenWidth(){
    if(window.innerWidth && window.innerWidth>0)
        return window.innerWidth;

    if (document.documentElement.clientWidth && document.documentElement.clientWidth > 0)
        return document.documentElement.clientWidth;
        
    return document.body.clientWidth;
}

function screenHeight() {
    if (window.innerHeight && window.innerHeight > 0)
        return window.innerHeight;

    if (document.documentElement.clientHeight && document.documentElement.clientHeight > 0)
        return document.documentElement.clientHeight;

    return document.body.clientHeight;
}

//relative to window
function mouseX(evt) {
    if (evt.pageX) {
        return evt.pageX - PageXOffset();
    }
    else if (evt.clientX) {
        return (evt.clientX + (document.documentElement.scrollLeft ?
                               document.documentElement.scrollLeft :
                               document.body.scrollLeft)) - PageXOffset();
    } else {
        return null;
    }
}
//relative to window
function mouseY(evt) {
    //alert(document.documentElement.scrollTop);
    //alert(document.body.scrollTop);
    //alert(PageYOffset());
    if (evt.pageY) return evt.pageY - PageYOffset();
    else if (evt.clientY)
        return (evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop)) - PageYOffset();
    else return null;
}

function PageYOffset() {
    return typeof window.pageYOffset != 'undefined' ?
        window.pageYOffset :
        document.documentElement &&
        document.documentElement.scrollTop ?
        document.documentElement.scrollTop :
        document.body.scrollTop;
}

function PageXOffset() {
    return typeof window.pageXOffset != 'undefined' ?
        window.pageXOffset :
        document.documentElement &&
        document.documentElement.scrollLeft ?
        document.documentElement.scrollLeft :
        document.body.scrollLeft;
}

//relative to document
function mouseXdoc(evt) {
    //alert(evt.pageX);
    //alert(evt.clientX);
    //alert(evt);
    if (evt.pageX) {
        return evt.pageX;
    }
    else if (evt.clientX) {
        return evt.clientX + (document.documentElement.scrollLeft ?
                               document.documentElement.scrollLeft :
                               document.body.scrollLeft);
    } else {
        return null;
    }
}
//relative to document
function mouseYdoc(evt) {
    if (evt.pageY) return evt.pageY;
    else if (evt.clientY)
        return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
    else return null;
}

function showDropDown(anchor, appearer) {


    return;
    var lnk = document.getElementById(anchor);
    var ddl = document.getElementById(appearer);

    //alert(ddl.style.display);

    //if (ddl.style.display == 'hidden') {
    //change the positioning depending on browser
    var tries = 10;

    while (ddl.style.left == 0 && ddl.style.top == 0 && tries > 0) {

        tries--;

        //alert(os);
        //alert(lnk.offsetLeft);
        //alert(totalOffset(lnk, "left"));

        switch (os) {
            case 'ie6':
            case 'ie7':
                ddl.style.left = totalOffset(lnk, "left"); //lnk.offsetLeft;
                ddl.style.top = lnk.offsetTop + lnk.offsetHeight;
                break;
            case 'firefox':
                ddl.style.left = totalOffset(lnk, "left") + 'px'; //lnk.offsetLeft + 'px';
                ddl.style.top = (totalOffset(lnk, "top") + (lnk.offsetHeight/2)) + 'px'; //(totalOffset(lnk, "top") + lnk.offsetHeight) + 'px';
                //ddl.style.width = lnk.offsetWidth + 'px';
                break;
            /*case 'opera':
                ddl.style.left = lnk.offsetLeft;
                ddl.style.top = (totalOffset(lnk, "top")) + lnk.offsetHeight;
                break;*/
            default: //follow (almost) the firefox rules if the browser is unknown...
                ddl.style.left = totalOffset(lnk, "left") + 'px'; //lnk.offsetLeft + 'px';
                ddl.style.top = (totalOffset(lnk, "top") + (lnk.offsetHeight)) + 'px'; //(totalOffset(lnk, "top") + lnk.offsetHeight) + 'px';
                //ddl.style.width = lnk.offsetWidth + 'px';
                break;
        }


        /*
        if (os == 'safari') {//safari doesn't support the dropdowns...
        ddl.style.zorder = -1;
        ddl.style.visibility = 'hidden';
        } else {
        ddl.style.zorder = -1;
        ddl.style.visibility = 'visible';
        }
        */
    }
    //}
    //changeallobjectvisibilities();

}

function getHttp(url) {
    try {
        var pg;

        if (!pg) {
            if (window.XMLHttpRequest) {
                pg = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
            pg = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } else {
            pg.abort();
        }

        var xmlPath = url;

        pg.open("GET", url, true); //
        pg.send(null);
    } catch (e) { ; }
}

function showHideFlash(visible) {
    var e = [];

    e = document.getElementsByTagName("object");

    if (!e)
        return;

    if (e.length < 1)
        return;

    for (var num = 0; num < e.length; num++) {
        e[num].style.display = visible ? "" : "none";
    }
}

function switchCheck(checkName) {
    var chk = document.getElementById(checkName);

    if (!chk)
        return;

    chk.checked = !chk.checked;
}

function ShowItemHover(elementName,evt,caller) {
    var ctl = document.getElementById(elementName);
    if (!ctl) return;


    if (ctl.className == 'ShownItem') {

    } else {
        ctl.className = 'ShownItem';
        showCenteredDiv(elementName, evt,caller);
    }
    
}

function HideItemHover(elementName) {
    var ctl = document.getElementById(elementName);
    if (!ctl) return;

    
    ctl.className = 'HiddenItem';
}