﻿/***** Open all external links in a new window *****/
$(document).ready(function() {
    $("a[href^='http']").each(
        function() {
            if (this.href.indexOf(location.hostname) == -1 && this.href.indexOf("rightathome.com") == -1) {
                $(this).attr('target', '_blank');
            }
        }
    );
    
    searchBoxWaterMark();
}); 

/**** Top Navigation ****/
function toggleNav(index, imgsrc) {
    var img = document.getElementById("imgNavItem" + index);
    if (img)
        img.src = imgsrc;
}

/**** Search Box  ****/

var localizedWaterMarkSearchText;

function searchBoxWaterMark() {
    // We get the value after the page gets loaded because it NEEDS to be set as text in the page for MP to translate it
    localizedWaterMarkSearchText = $(".searchBoxWaterMark").val();
    // Then we clear it
    $(".searchBoxWaterMark").val("");
    // And we use the "watermark" plugin with the value
    $(".searchBoxWaterMark").watermark(localizedWaterMarkSearchText);
}

function handleEnter(searchBoxField, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if (keyCode == 13)
    { doSearch(searchBoxField.id); return false; }
}
function doSearch(searchBoxFieldId) {
    var searchText = document.getElementById(searchBoxFieldId).value;
    if (searchText != '' && searchText != localizedWaterMarkSearchText) {
        location.href = '/Pages/search.aspx?s=' + searchText;
    }
}

function searchfocus(searchBoxField) {
    var box = searchBoxField; 
    if (box) {
        if (box.value == "search by keyword")
            box.value = "";
    }
}
function searchblur(searchBoxField) {
    var box = searchBoxField; 
    if (box) {
        if (box.value == "")
            box.value = "search by keyword";
    }
}

function HtmlDecode(s) {
    var out = ""; if (s == null) return; var l = s.length; for (var i = 0; i < l; i++) {
        var ch = s.charAt(i); if (ch == '&') {
            var semicolonIndex = s.indexOf(';', i + 1); if (semicolonIndex > 0) {
                var entity = s.substring(i + 1, semicolonIndex); if (entity.length > 1 && entity.charAt(0) == '#') {
                    if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')
                        ch = String.fromCharCode(eval('0' + entity.substring(1))); else
                        ch = String.fromCharCode(eval(entity.substring(1)));
                }
                else {
                    switch (entity)
                    { case 'quot': ch = String.fromCharCode(0x0022); break; case 'amp': ch = String.fromCharCode(0x0026); break; case 'lt': ch = String.fromCharCode(0x003c); break; case 'gt': ch = String.fromCharCode(0x003e); break; case 'nbsp': ch = String.fromCharCode(0x00a0); break; case 'iexcl': ch = String.fromCharCode(0x00a1); break; case 'cent': ch = String.fromCharCode(0x00a2); break; case 'pound': ch = String.fromCharCode(0x00a3); break; case 'curren': ch = String.fromCharCode(0x00a4); break; case 'yen': ch = String.fromCharCode(0x00a5); break; case 'brvbar': ch = String.fromCharCode(0x00a6); break; case 'sect': ch = String.fromCharCode(0x00a7); break; case 'uml': ch = String.fromCharCode(0x00a8); break; case 'copy': ch = String.fromCharCode(0x00a9); break; case 'ordf': ch = String.fromCharCode(0x00aa); break; case 'laquo': ch = String.fromCharCode(0x00ab); break; case 'not': ch = String.fromCharCode(0x00ac); break; case 'shy': ch = String.fromCharCode(0x00ad); break; case 'reg': ch = String.fromCharCode(0x00ae); break; case 'macr': ch = String.fromCharCode(0x00af); break; case 'deg': ch = String.fromCharCode(0x00b0); break; case 'plusmn': ch = String.fromCharCode(0x00b1); break; case 'sup2': ch = String.fromCharCode(0x00b2); break; case 'sup3': ch = String.fromCharCode(0x00b3); break; case 'acute': ch = String.fromCharCode(0x00b4); break; case 'micro': ch = String.fromCharCode(0x00b5); break; case 'para': ch = String.fromCharCode(0x00b6); break; case 'middot': ch = String.fromCharCode(0x00b7); break; case 'cedil': ch = String.fromCharCode(0x00b8); break; case 'sup1': ch = String.fromCharCode(0x00b9); break; case 'ordm': ch = String.fromCharCode(0x00ba); break; case 'raquo': ch = String.fromCharCode(0x00bb); break; case 'frac14': ch = String.fromCharCode(0x00bc); break; case 'frac12': ch = String.fromCharCode(0x00bd); break; case 'frac34': ch = String.fromCharCode(0x00be); break; case 'iquest': ch = String.fromCharCode(0x00bf); break; case 'Agrave': ch = String.fromCharCode(0x00c0); break; case 'Aacute': ch = String.fromCharCode(0x00c1); break; case 'Acirc': ch = String.fromCharCode(0x00c2); break; case 'Atilde': ch = String.fromCharCode(0x00c3); break; case 'Auml': ch = String.fromCharCode(0x00c4); break; case 'Aring': ch = String.fromCharCode(0x00c5); break; case 'AElig': ch = String.fromCharCode(0x00c6); break; case 'Ccedil': ch = String.fromCharCode(0x00c7); break; case 'Egrave': ch = String.fromCharCode(0x00c8); break; case 'Eacute': ch = String.fromCharCode(0x00c9); break; case 'Ecirc': ch = String.fromCharCode(0x00ca); break; case 'Euml': ch = String.fromCharCode(0x00cb); break; case 'Igrave': ch = String.fromCharCode(0x00cc); break; case 'Iacute': ch = String.fromCharCode(0x00cd); break; case 'Icirc': ch = String.fromCharCode(0x00ce); break; case 'Iuml': ch = String.fromCharCode(0x00cf); break; case 'ETH': ch = String.fromCharCode(0x00d0); break; case 'Ntilde': ch = String.fromCharCode(0x00d1); break; case 'Ograve': ch = String.fromCharCode(0x00d2); break; case 'Oacute': ch = String.fromCharCode(0x00d3); break; case 'Ocirc': ch = String.fromCharCode(0x00d4); break; case 'Otilde': ch = String.fromCharCode(0x00d5); break; case 'Ouml': ch = String.fromCharCode(0x00d6); break; case 'times': ch = String.fromCharCode(0x00d7); break; case 'Oslash': ch = String.fromCharCode(0x00d8); break; case 'Ugrave': ch = String.fromCharCode(0x00d9); break; case 'Uacute': ch = String.fromCharCode(0x00da); break; case 'Ucirc': ch = String.fromCharCode(0x00db); break; case 'Uuml': ch = String.fromCharCode(0x00dc); break; case 'Yacute': ch = String.fromCharCode(0x00dd); break; case 'THORN': ch = String.fromCharCode(0x00de); break; case 'szlig': ch = String.fromCharCode(0x00df); break; case 'agrave': ch = String.fromCharCode(0x00e0); break; case 'aacute': ch = String.fromCharCode(0x00e1); break; case 'acirc': ch = String.fromCharCode(0x00e2); break; case 'atilde': ch = String.fromCharCode(0x00e3); break; case 'auml': ch = String.fromCharCode(0x00e4); break; case 'aring': ch = String.fromCharCode(0x00e5); break; case 'aelig': ch = String.fromCharCode(0x00e6); break; case 'ccedil': ch = String.fromCharCode(0x00e7); break; case 'egrave': ch = String.fromCharCode(0x00e8); break; case 'eacute': ch = String.fromCharCode(0x00e9); break; case 'ecirc': ch = String.fromCharCode(0x00ea); break; case 'euml': ch = String.fromCharCode(0x00eb); break; case 'igrave': ch = String.fromCharCode(0x00ec); break; case 'iacute': ch = String.fromCharCode(0x00ed); break; case 'icirc': ch = String.fromCharCode(0x00ee); break; case 'iuml': ch = String.fromCharCode(0x00ef); break; case 'eth': ch = String.fromCharCode(0x00f0); break; case 'ntilde': ch = String.fromCharCode(0x00f1); break; case 'ograve': ch = String.fromCharCode(0x00f2); break; case 'oacute': ch = String.fromCharCode(0x00f3); break; case 'ocirc': ch = String.fromCharCode(0x00f4); break; case 'otilde': ch = String.fromCharCode(0x00f5); break; case 'ouml': ch = String.fromCharCode(0x00f6); break; case 'divide': ch = String.fromCharCode(0x00f7); break; case 'oslash': ch = String.fromCharCode(0x00f8); break; case 'ugrave': ch = String.fromCharCode(0x00f9); break; case 'uacute': ch = String.fromCharCode(0x00fa); break; case 'ucirc': ch = String.fromCharCode(0x00fb); break; case 'uuml': ch = String.fromCharCode(0x00fc); break; case 'yacute': ch = String.fromCharCode(0x00fd); break; case 'thorn': ch = String.fromCharCode(0x00fe); break; case 'yuml': ch = String.fromCharCode(0x00ff); break; case 'OElig': ch = String.fromCharCode(0x0152); break; case 'oelig': ch = String.fromCharCode(0x0153); break; case 'Scaron': ch = String.fromCharCode(0x0160); break; case 'scaron': ch = String.fromCharCode(0x0161); break; case 'Yuml': ch = String.fromCharCode(0x0178); break; case 'fnof': ch = String.fromCharCode(0x0192); break; case 'circ': ch = String.fromCharCode(0x02c6); break; case 'tilde': ch = String.fromCharCode(0x02dc); break; case 'Alpha': ch = String.fromCharCode(0x0391); break; case 'Beta': ch = String.fromCharCode(0x0392); break; case 'Gamma': ch = String.fromCharCode(0x0393); break; case 'Delta': ch = String.fromCharCode(0x0394); break; case 'Epsilon': ch = String.fromCharCode(0x0395); break; case 'Zeta': ch = String.fromCharCode(0x0396); break; case 'Eta': ch = String.fromCharCode(0x0397); break; case 'Theta': ch = String.fromCharCode(0x0398); break; case 'Iota': ch = String.fromCharCode(0x0399); break; case 'Kappa': ch = String.fromCharCode(0x039a); break; case 'Lambda': ch = String.fromCharCode(0x039b); break; case 'Mu': ch = String.fromCharCode(0x039c); break; case 'Nu': ch = String.fromCharCode(0x039d); break; case 'Xi': ch = String.fromCharCode(0x039e); break; case 'Omicron': ch = String.fromCharCode(0x039f); break; case 'Pi': ch = String.fromCharCode(0x03a0); break; case ' Rho ': ch = String.fromCharCode(0x03a1); break; case 'Sigma': ch = String.fromCharCode(0x03a3); break; case 'Tau': ch = String.fromCharCode(0x03a4); break; case 'Upsilon': ch = String.fromCharCode(0x03a5); break; case 'Phi': ch = String.fromCharCode(0x03a6); break; case 'Chi': ch = String.fromCharCode(0x03a7); break; case 'Psi': ch = String.fromCharCode(0x03a8); break; case 'Omega': ch = String.fromCharCode(0x03a9); break; case 'alpha': ch = String.fromCharCode(0x03b1); break; case 'beta': ch = String.fromCharCode(0x03b2); break; case 'gamma': ch = String.fromCharCode(0x03b3); break; case 'delta': ch = String.fromCharCode(0x03b4); break; case 'epsilon': ch = String.fromCharCode(0x03b5); break; case 'zeta': ch = String.fromCharCode(0x03b6); break; case 'eta': ch = String.fromCharCode(0x03b7); break; case 'theta': ch = String.fromCharCode(0x03b8); break; case 'iota': ch = String.fromCharCode(0x03b9); break; case 'kappa': ch = String.fromCharCode(0x03ba); break; case 'lambda': ch = String.fromCharCode(0x03bb); break; case 'mu': ch = String.fromCharCode(0x03bc); break; case 'nu': ch = String.fromCharCode(0x03bd); break; case 'xi': ch = String.fromCharCode(0x03be); break; case 'omicron': ch = String.fromCharCode(0x03bf); break; case 'pi': ch = String.fromCharCode(0x03c0); break; case 'rho': ch = String.fromCharCode(0x03c1); break; case 'sigmaf': ch = String.fromCharCode(0x03c2); break; case 'sigma': ch = String.fromCharCode(0x03c3); break; case 'tau': ch = String.fromCharCode(0x03c4); break; case 'upsilon': ch = String.fromCharCode(0x03c5); break; case 'phi': ch = String.fromCharCode(0x03c6); break; case 'chi': ch = String.fromCharCode(0x03c7); break; case 'psi': ch = String.fromCharCode(0x03c8); break; case 'omega': ch = String.fromCharCode(0x03c9); break; case 'thetasym': ch = String.fromCharCode(0x03d1); break; case 'upsih': ch = String.fromCharCode(0x03d2); break; case 'piv': ch = String.fromCharCode(0x03d6); break; case 'ensp': ch = String.fromCharCode(0x2002); break; case 'emsp': ch = String.fromCharCode(0x2003); break; case 'thinsp': ch = String.fromCharCode(0x2009); break; case 'zwnj': ch = String.fromCharCode(0x200c); break; case 'zwj': ch = String.fromCharCode(0x200d); break; case 'lrm': ch = String.fromCharCode(0x200e); break; case 'rlm': ch = String.fromCharCode(0x200f); break; case 'ndash': ch = String.fromCharCode(0x2013); break; case 'mdash': ch = String.fromCharCode(0x2014); break; case 'lsquo': ch = String.fromCharCode(0x2018); break; case 'rsquo': ch = String.fromCharCode(0x2019); break; case 'sbquo': ch = String.fromCharCode(0x201a); break; case 'ldquo': ch = String.fromCharCode(0x201c); break; case 'rdquo': ch = String.fromCharCode(0x201d); break; case 'bdquo': ch = String.fromCharCode(0x201e); break; case 'dagger': ch = String.fromCharCode(0x2020); break; case 'Dagger': ch = String.fromCharCode(0x2021); break; case 'bull': ch = String.fromCharCode(0x2022); break; case 'hellip': ch = String.fromCharCode(0x2026); break; case 'permil': ch = String.fromCharCode(0x2030); break; case 'prime': ch = String.fromCharCode(0x2032); break; case 'Prime': ch = String.fromCharCode(0x2033); break; case 'lsaquo': ch = String.fromCharCode(0x2039); break; case 'rsaquo': ch = String.fromCharCode(0x203a); break; case 'oline': ch = String.fromCharCode(0x203e); break; case 'frasl': ch = String.fromCharCode(0x2044); break; case 'euro': ch = String.fromCharCode(0x20ac); break; case 'image': ch = String.fromCharCode(0x2111); break; case 'weierp': ch = String.fromCharCode(0x2118); break; case 'real': ch = String.fromCharCode(0x211c); break; case 'trade': ch = String.fromCharCode(0x2122); break; case 'alefsym': ch = String.fromCharCode(0x2135); break; case 'larr': ch = String.fromCharCode(0x2190); break; case 'uarr': ch = String.fromCharCode(0x2191); break; case 'rarr': ch = String.fromCharCode(0x2192); break; case 'darr': ch = String.fromCharCode(0x2193); break; case 'harr': ch = String.fromCharCode(0x2194); break; case 'crarr': ch = String.fromCharCode(0x21b5); break; case 'lArr': ch = String.fromCharCode(0x21d0); break; case 'uArr': ch = String.fromCharCode(0x21d1); break; case 'rArr': ch = String.fromCharCode(0x21d2); break; case 'dArr': ch = String.fromCharCode(0x21d3); break; case 'hArr': ch = String.fromCharCode(0x21d4); break; case 'forall': ch = String.fromCharCode(0x2200); break; case 'part': ch = String.fromCharCode(0x2202); break; case 'exist': ch = String.fromCharCode(0x2203); break; case 'empty': ch = String.fromCharCode(0x2205); break; case 'nabla': ch = String.fromCharCode(0x2207); break; case 'isin': ch = String.fromCharCode(0x2208); break; case 'notin': ch = String.fromCharCode(0x2209); break; case 'ni': ch = String.fromCharCode(0x220b); break; case 'prod': ch = String.fromCharCode(0x220f); break; case 'sum': ch = String.fromCharCode(0x2211); break; case 'minus': ch = String.fromCharCode(0x2212); break; case 'lowast': ch = String.fromCharCode(0x2217); break; case 'radic': ch = String.fromCharCode(0x221a); break; case 'prop': ch = String.fromCharCode(0x221d); break; case 'infin': ch = String.fromCharCode(0x221e); break; case 'ang': ch = String.fromCharCode(0x2220); break; case 'and': ch = String.fromCharCode(0x2227); break; case 'or': ch = String.fromCharCode(0x2228); break; case 'cap': ch = String.fromCharCode(0x2229); break; case 'cup': ch = String.fromCharCode(0x222a); break; case 'int': ch = String.fromCharCode(0x222b); break; case 'there4': ch = String.fromCharCode(0x2234); break; case 'sim': ch = String.fromCharCode(0x223c); break; case 'cong': ch = String.fromCharCode(0x2245); break; case 'asymp': ch = String.fromCharCode(0x2248); break; case 'ne': ch = String.fromCharCode(0x2260); break; case 'equiv': ch = String.fromCharCode(0x2261); break; case 'le': ch = String.fromCharCode(0x2264); break; case 'ge': ch = String.fromCharCode(0x2265); break; case 'sub': ch = String.fromCharCode(0x2282); break; case 'sup': ch = String.fromCharCode(0x2283); break; case 'nsub': ch = String.fromCharCode(0x2284); break; case 'sube': ch = String.fromCharCode(0x2286); break; case 'supe': ch = String.fromCharCode(0x2287); break; case 'oplus': ch = String.fromCharCode(0x2295); break; case 'otimes': ch = String.fromCharCode(0x2297); break; case 'perp': ch = String.fromCharCode(0x22a5); break; case 'sdot': ch = String.fromCharCode(0x22c5); break; case 'lceil': ch = String.fromCharCode(0x2308); break; case 'rceil': ch = String.fromCharCode(0x2309); break; case 'lfloor': ch = String.fromCharCode(0x230a); break; case 'rfloor': ch = String.fromCharCode(0x230b); break; case 'lang': ch = String.fromCharCode(0x2329); break; case 'rang': ch = String.fromCharCode(0x232a); break; case 'loz': ch = String.fromCharCode(0x25ca); break; case 'spades': ch = String.fromCharCode(0x2660); break; case 'clubs': ch = String.fromCharCode(0x2663); break; case 'hearts': ch = String.fromCharCode(0x2665); break; case 'diams': ch = String.fromCharCode(0x2666); break; default: ch = ''; break; }
                }
                i = semicolonIndex;
            }
        }
        out += ch;
    }
    return out;
}


/***** Slideshow Feature *****/
function galleryNavigate(galleryId, forward, galIndex, galItems) {
    var curImg = document.getElementById(galItems[galIndex][0]);
    var curImgExpand = document.getElementById(galItems[galIndex][4]);

    if (curImg) {
        curImg.style.display = "none";
        curImgExpand.style.display = "none";
    }

    if (forward) {
        if (galItems.length > galIndex + 1)
            galIndex++;
        else
            galIndex = 0;
    }
    else {
        if (galIndex != 0)
            galIndex--;
        else
            galIndex = galItems.length - 1;
    }

    var newImg = document.getElementById(galItems[galIndex][0]);
    var newImgExpand = document.getElementById(galItems[galIndex][4]);

    if (newImg) {
        newImg.style.display = "block";
        var clickevent = "omniFeatureClickRAH('" + galItems[galIndex][2] + "');";
        newImg.onclick = clickevent;
        setGalleryText(galleryId, galItems[galIndex][2], galItems[galIndex][3]);
        newImgExpand.style.display = "block";
    }

    return galIndex;
}

function setGalleryText(galleryId, newCaption, captionLink) {
    var caption = document.getElementById("galCaption" + galleryId);

    if (caption && captionLink != null)
        caption.innerHTML = "<a onclick=\"omniFeatureClickRAH('" + newCaption.replace("'", "") + "');\" href=\"" + captionLink + "\">" + HtmlDecode(newCaption) + "</a>";
    else
        caption.innerHTML = HtmlDecode(newCaption);
}

function rollOverButton(img_name1, img_src1) {
    document.getElementById(img_name1).src = img_src1;
}


function hideProgress() {
    var prog = document.getElementById('progress'); if (prog)
        prog.className = 'normal';
}

function showProgress() {
    var arrayPageSize = getPageSize();
    var arrayPageScroll = getPageScroll();
    var top = arrayPageScroll[1] + (arrayPageSize[3] / 3);
    var prog = document.getElementById('progress');
    if (prog) {
        prog.className = 'progress';
        prog.style.position = "absolute";
        var DivOffSet;
        var browserName = navigator.appName;
        if (browserName == "Microsoft Internet Explorer") {
            if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
                var ieversion = new Number(RegExp.$1) // capture x.x portion and store as a number
                if (ieversion < 7) {
                    //alert(top);
                    DivOffSet = 60;
                    if (top < 460) {
                        prog.style.top = top - DivOffSet + 'px';
                    } else {
                        prog.style.top = top - 120 + 'px';
                    }
                } else {
                    DivOffSet = 100;
                    prog.style.top = top + DivOffSet + "px";
                }
            }

        } else {
            // other browsers
            DivOffSet = 90;
            //alert(top);
            prog.style.top = top + DivOffSet + "px";
        }



    }
}


function getPageScroll() {
    var yScroll;
    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
    } else
        if (document.documentElement && document.documentElement.scrollTop) {
        yScroll = document.documentElement.scrollTop;
    }
    else if (document.body) {
        yScroll = document.body.scrollTop;
    }
    arrayPageScroll = new Array('', yScroll)
    return arrayPageScroll;
}

function getPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight;
    } else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }
    var windowWidth, windowHeight;
    if (self.innerHeight) {
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight;
    } else if (document.body) {
        windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight;
    }
    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }
    if (xScroll < windowWidth) {
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }
    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)
    return arrayPageSize;
}

function MoveProgress() {

    var ScrollTop = document.body.scrollTop;
    var nAgt = navigator.userAgent;
    var verOffset;
    var DivOffSet;
    if ((verOffset = nAgt.indexOf("MSIE")) != -1) {

        var fullVersion = nAgt.substring(verOffset + 5);
    }


    var browserName = navigator.appName;
    if (browserName == "Microsoft Internet Explorer") {
        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
            var ieversion = new Number(RegExp.$1) // capture x.x portion and store as a number
            if (ieversion < 7) {
                DivOffSet = 20;
            } else {
                DivOffSet = 260;
            }
        }

    } else {
        // other browsers
        DivOffSet = 200;

    }



    if (ScrollTop == 0) {
        if (window.pageYOffset)
            ScrollTop = window.pageYOffset;
        else
            ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }

    var element = document.getElementById('progress');
    //alert(ScrollTop);
    //alert(DivOffSet);
    if (ScrollTop < 460) {
        element.style.top = 460 + 'px';
    } else {
        // every where else on the page, the 260 px offset is baed on current production site
        element.style.top = ScrollTop + DivOffSet + 'px';
    }
}
