﻿// JScript File

function is(sTest) {
    return $('html').hasClassName(sTest);
    }
function setWidths() {
    var iW = document.viewport.getWidth();
    var iH = document.viewport.getHeight();
    var iHeader = 144;
    var iFooter = 93;
    var iMinHeight = 507; //The Height of the side Images.
    var iMain = $('main').getHeight();
    if (iMain < iMinHeight) {
        iMain = iMinHeight;
        var sMain = iMain + 'px';
        $('main').setStyle({height:sMain});
    }
    //alert(iMain);
    var sW = iW+'px';
    var sH = (iH-iHeader-iFooter)+'px';
    var iP = Math.round((iW-800)/2);
    var sP = iP+'px';
    $('body').setStyle({width:sW});
    $('header').setStyle({width:sW});
    $('main').setStyle({width:sW});
    if ((iHeader+iMain+iFooter)<iH) {
        $('main').setStyle({height:sH});
        }
    $('footer').setStyle({width:sW});
    $('body').setStyle({backgroundPosition:(sP+' 0px')});
    $('header-inner').setStyle({marginLeft:sP});
    $('main-inner').setStyle({marginLeft:sP});
    $('footer-inner').setStyle({marginLeft:sP});
    }
function clearHorizontalULs() {
    $$('ul.horizontal').invoke('insert', {after: '<div class="clear-only"></div>'} ); 
    }
    
var aNav = new Array();
    aNav[1] = ('nav1');
    aNav[2] = ('nav2');
    aNav[3] = ('nav3');
    aNav[4] = ('nav4');
    aNav[5] = ('nav5');
 
function setPrimaryNavigation() {
    for (i = 1; i <= 5; i++) {
        hideSubNav(aNav[i]);
        }
    }

function clearSubNavsExcept(myId) {
    for (i = 1; i <= 5; i++) {
        if (aNav[i] != myId) {
            hideSubNav(aNav[i]);
            }
        }
    }

var sCurrentNavId = '';

function showSubNav(myId) {
    clearSubNavsExcept(myId);
    var sMySelector = '#' + myId + ' a.prinav';
    $$(sMySelector).invoke('addClassName', 'hover');
    $$('#'+myId+' ul.subnav').invoke('show');
    sCurrentNavId = myId;
    }
function testSubNav(myId) {
    sCurrentNavId = '';
    setTimeout("hideSubNav('"+myId+"');",200);
    }
function hideSubNav(myId) {
    if (sCurrentNavId != myId) {
        var sMySelector = '#' + myId + ' a.prinav';
        $$(sMySelector).invoke('removeClassName', 'hover');
        $$('#'+myId+' ul.subnav').invoke('hide');
        }
    }
function toggleSubNav(myId) {
    $$('#'+myId+' ul.subnav').invoke('toggle');
    }

function sizeModalOverlay() {
    var sMyH = document.viewport.getHeight() + 'px';
    $('modal-overlay-container').setStyle({ height: sMyH });
    $('modal-overlay-background').setStyle({ height: sMyH });
    }

function loadPage(bResize) {
    //document.body.style.visibility = 'hidden';
    checkSmithAndWesson()
    hideModalWindow();
    document.body.style.visibility = 'visible';
    setWidths();
    //clearHorizontalULs();
    setPrimaryNavigation();
    $$('*.img').invoke('insert', {top: '<span>', bottom: '</span>'});
    if ($('home-page-image') && (bResize != true)) {
        randomHomePageImage();
    }
    if ($('channel-page-image') && (bResize != true)) {
        randomChannelPageImage();
    }
    //if ($('feature')&&(bResize!=true)) {
    //    randomizeFeature();
    //}
    //document.body.style.visibility = 'visible';
    sizeModalOverlay();
    }

window.onscroll = scrollEvent;
function scrollEvent() {
    if (document.all) {
        var sMyTop = $('body').cumulativeScrollOffset()[1]+'px';
        $('modal-overlay-container').setStyle({ top: sMyTop });
        }
    }

var aRememberImages = new Array();
var iRememberImages = 0;
function setImage(sImageID, sImageURL) {
    iRememberImages++;
    aRememberImages[iRememberImages][0] = sImageID;
    aRememberImages[iRememberImages][1] = sImageURL;
    }

function rememberImage(sImageID) {
    var i = 1;
    while (i <= aRememberImages.length) {
        if (sImageID == aRememberImages[i][0]) {
            return aRememberImages[i][1];
            }    
        i++;
        }
    }

function setFeaturedImage(sFeaturedImageID, sFeaturedSmallImageURL, sFeaturedLargeImageURL) {
    swapImage(sFeaturedImageID, sFeaturedSmallImageURL)
    $(sFeaturedImageID).onclick = function() { showModalImage(sFeaturedLargeImageURL); }
} 

function swapImage(sImageID, sImageURL) {
    $(sImageID).src = sImageURL;
}
function showModalWindow() {
    $('modal-overlay-container').show();
}
function hideModalWindow() {
    $('modal-overlay-large-image').hide();
    $('modal-overlay-container').hide();
    $('modal-overlay-large-image').src = 'images/LoadingImage.gif';
    $('modal-video-div').innerHTML = '';
    $('modal-image').hide();
    $('modal-video').hide();
    $('modal-html').hide();
}

function showModalImage(sImageURL) {
    $('modal-video').hide();
    $('modal-html').hide();
    $('modal-image').show();
    $('modal-overlay-large-image').src = sImageURL;
    $('modal-overlay-large-image').show();
    
    showModalWindow();
}

function launchVideo(sYouTubeID) {
    //alert('videos are currently disabled');
    $('modal-image').hide();
    $('modal-html').hide();
    $('modal-video').show();
    showModalWindow();
    var sEmbedHTML = '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/' + sYouTubeID + '&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' + sYouTubeID + '&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>';
    $('modal-video-div').innerHTML = sEmbedHTML;
}

function showModalHTML() {
    $('modal-image').hide();
    $('modal-video').hide();
    $('modal-html').show();
    showModalWindow();
}

function search() {
    //alert(URLEncode($('search-string').value))
    window.location = 'http://www.google.com/search?q=site%3Awww.truckvault.com+' + URLEncode($('search-string').value);
    //window.location = 'http://www.google.com/search?q=site%3Adev.truckvault.com+' + URLEncode($('search-string').value);
}

function URLEncode(clearString) {
    var output = '';
    var x = 0;
    clearString = clearString.toString();
    var regex = /(^[a-zA-Z0-9_.]*)/;
    while (x < clearString.length) {
        var match = regex.exec(clearString.substr(x));
        if (match != null && match.length > 1 && match[1] != '') {
            output += match[1];
            x += match[1].length;
        } else {
            if (clearString[x] == ' ')
                output += '+';
            else {
                var charCode = clearString.charCodeAt(x);
                var hexVal = charCode.toString(16);
                output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase();
            }
            x++;
        }
    }
    return output;
}
function URLDecode(encodedString) {
    var output = encodedString;
    var binVal, thisString;
    var myregexp = /(%[^%]{2})/;
    while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
        binVal = parseInt(match[1].substr(1), 16);
        thisString = String.fromCharCode(binVal);
        output = output.replace(match[1], thisString);
    }
    return output;
}
function checkEnter(e) {
    var keynum;
    if(window.event) { keynum = e.keyCode; } // IE
    else if(e.which) { keynum = e.which; } // Netscape/Firefox/Opera
    if (keynum == 13) { search(); }
    return (keynum != 13);
}
function randomizeFeature() {
    var iQTY = 2; //This represents the number of images with id's of "f[n]", where "[n]" represents the zero-based index.
    var x = Math.floor(Math.random() * iQTY)
    $$('.feature-randomizer').invoke('hide');
    $('f' + x).show();
    //setTimeout('nextFeature(' + x + ', ' + iQTY + ');', 5000);
}
function nextFeature(iCurrent, iMax) {
    var iNew = iCurrent + 1;
    if (iNew >= iMax) { iNew = 0; }
    $('f' + iCurrent).hide();
    $('f' + iNew).show();
    setTimeout('nextFeature(' + iNew + ', ' + iMax + ');', 5000);
}
function checkSmithAndWesson() {
    if ($('snw-top-image')) {
        $$('.default-super-primary-navigation').invoke('hide');
        $('logo').hide();
        $('tag-line').hide();
        $$('.snw-super-primary-navigation').invoke('show');
        $('smithandwesson-logo').show();
    }
}
function toggleQG() {
    $('quote-gen').toggle();
}

function togglePopup() {
    // retrieve required dimensions
    var eltDims     = $('popup_window').getDimensions();
    var browserDims = document.body.getDimensions();
    
    $('popup_window').toggle();
    $('popup_window').css("top", (browserDims.height - eltDims.height) / 2 + "px");
	$('popup_window').css("left", (browserDims.width - eltDims.width) / 2 + 75+"px");
	
}

function redirect(url) {
    window.location = url;
}

function showQG(fromElem) {
    $('quote-gen').style.top = (document.viewport.getScrollOffsets().top + 100) + "px";
    $('quote-gen').style.left = ((document.viewport.getWidth() / 2) - ($('quote-gen').getWidth()/2)) + "px";
    toggleQG();
    //alert($(fromElem).cumulativeOffset());
    //alert(document.viewport.getScrollOffsets().top);
}

function closePopup() {
    togglePopup();
    //parent.document.getElementById("quote-gen").style.display="none"
}
        

function showPopup(fromElem) {
   
   $('popup_window').style.top = (document.viewport.getScrollOffsets().top + 100) + "px";
   //$('popup_window').style.left = (document.viewport.getWidth() / 2) + "px";
    //$('popup_window').center();
    //centerWindow('popup_window');
    togglePopup();
    //alert($(fromElem).cumulativeOffset());
    //alert(document.viewport.getScrollOffsets().top);
}

function centerWindow(element) {
     if($(element) != null) {
          if(typeof window.innerHeight != 'undefined') {
               $(element).style.top = 
                    Math.round(document.viewport.getScrollOffsets().top + 
                    ((window.innerHeight - $(element).getHeight()))/2)+'px';
               $(element).style.left = 
                    Math.round(document.viewport.getScrollOffsets().left + 
                    ((window.innerWidth - $(element).getWidth()))/2)+'px';
          } else {
               $(element).style.top = 
                    Math.round(document.body.scrollTop + 
                    (($$('body')[0].clientHeight - $(element).getHeight()))/2)+'px';
               $(element).style.left = 
                    Math.round(document.body.scrollLeft + 
                    (($$('body')[0].clientWidth - $(element).getWidth()))/2)+'px';
          }
     }
}
