var ns4 = document.layers;
var op5 = (navigator.userAgent.indexOf("Opera 5")!=-1)||(navigator.userAgent.indexOf("Opera/5")!=-1);
var op6 = (navigator.userAgent.indexOf("Opera 6")!=-1)||(navigator.userAgent.indexOf("Opera/6")!=-1);
var agt=navigator.userAgent.toLowerCase();
var mac = (agt.indexOf("mac")!=-1);
var ie = (agt.indexOf("msie") != -1); 
var mac_ie = mac && ie;

var imageWin = null;

function getRealLeft(el) {
    xPos = el.offsetLeft;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function getRealTop(el) {
    yPos = el.offsetTop;
    tempEl = el.offsetParent;
    while(tempEl != null){
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return yPos;
}

function showHideMenuNode(node_id, image_id){
    n = document.getElementById(node_id);
    i = document.getElementById(image_id);
    if(n){
        n.style.display = n.style.display == "none" ? "block" : "none";
        if(i){
            i.src = n.style.display == "none" ? skin_images + "/menu_tree_plus.gif" : skin_images + "/menu_tree_minus.gif";
        }
    }
}


function getElementHeight(Elem) {
    if(ns4){
        var elem = document.getElementById(Elem);
        return elem.clip.height;
    } else {
        if(document.getElementById) {
            var elem = document.getElementById(Elem);
        } else if (document.all){
            var elem = document.all[Elem];
        }
        if (op5) { 
            xPos = elem.style.pixelHeight;
        } else {
            xPos = elem.offsetHeight;
        }
        return xPos;
    } 
}

function getElementWidth(Elem) {
    if (ns4) {
        var elem = document.getElementById(Elem);
        return elem.clip.width;
    } else {
        if(document.getElementById) {
            var elem = document.getElementById(Elem);
        } else if (document.all){
            var elem = document.all[Elem];
        }
        if (op5) {
            xPos = elem.style.pixelWidth;
        } else {
            xPos = elem.offsetWidth;
        }
        return xPos;
    }
}


if(document.layers){
    _browser = "nn";
}
if(document.all){
    _browser = "ie";
}
if(navigator.userAgent.toLowerCase().match("gecko")){
    _browser= "gecko";
}
function isEmail(entry){
    var rex= /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/    
    return rex.test(entry);
}

function delay(gap){ /* gap is in millisecs */
    var then, now; 
    then = new Date().getTime();
    now = then;
    while((now-then) < gap){
        now=new Date().getTime();
    }
}
/*
function showImage(image_url, image_width, image_height){
    image_width = image_width == "" ? 400 : image_width;
    image_height = image_height == "" ? 380 : image_height;

    var w = screen.width;
    var h = screen.height;
    var ww = image_width * 1 + 30;
    var wh = image_height * 1 + 45;
    var wx = (w - ww)/2;
    var wy = (h - wh)/2;
*/

//***
    /*
        if(imageWin != null){
            imageWin.close();
        }
    */
    //imageWin = null;
//***

/*
    imageWin = window.open(
        "", 
        //"ProductImageWindow",
        image_url, 
        "titlebar=yes, toolbar=no, menubar=no, status=no, directories=no, resizable=yes, scrollbars=yes, top=" + wy.toString() + ", left=" + wx.toString() + ", width=" + ww.toString() + ", height=" + wh.toString() + ""
    );
    while(imageWin==null);
    imageWin.focus();
    
    imageWin.document.body.innerHTML = "";
    imageWin.document.write('<body style="padding:5px;margin:0px">');
    imageWin.document.write('<div align="center"><img hspace="0" vspace="0" src="' + image_url + '"></div><br/>');
    imageWin.document.write('<div align="center" style="font-family:arial;font-color:black;font-size:11px;"><a href="javascript:window.close();" style="color:#0000AA;">Close Window</a></div>');
    imageWin.document.write('</body>');
    imageWin.width = ww;
    imageWin.height = wh;
}
*/

//***
function findTop(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return curtop;
}

function findLeft(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
        } while (obj = obj.offsetParent);
    }
    return curleft;
}

function showImage(image_url, image_width, image_height, pid, level, parent, img_type){
    // reposition enlarge_image div
    var top = getRealTop(document.getElementById("product_image"));
    var left = getRealLeft(document.getElementById("product_image"));
    
    xajax_processAjaxAction("enlarge_image", image_url, image_width, image_height, top, left, pid, level, parent, img_type);
}

function closeImage(tdHeight){
    xajax_processAjaxAction("close_image", tdHeight);
}
//***

function showPrinterPage(url){
    var prWin = null;
    prWin = window.open(
        url,
        "PrintVer", 
        "titlebar=yes, toolbar=no, menubar=yes, status=yes, directories=no, resizable=yes, scrollbars=yes, top=20, left=20, width=810, height=600"
    );
    while(prWin==null);
    prWin.focus();
}

function OnButton(bt){
    document.images[bt].src = skin_images + bt + "_on.gif";
    
}
function OffButton(bt){
    document.images[bt].src = skin_images + bt + "_off.gif";
}

function OnMenu(cid){
    document.images["menul_" + cid].src = skin_images + "catl_bg_on.gif";
    document.all["menur_" + cid].background = skin_images + "catr_bg_on.gif";
}
function OffMenu(cid){
    document.images["menul_" + cid].src = skin_images + "catl_bg_off.gif";
    document.all["menur_" + cid].background = skin_images + "catr_bg_off.gif";
}
var RecentTimeOut, CartTimeOut;

function ShowCart(){
    window.clearTimeout(CartTimeOut);
    if(_browser == "ie"){
        cartDiv.style.visibility = 
            cartDiv.style.visibility == "hidden"?"visible":"hidden";
            document.images["cartImage"].src =
                cartDiv.style.visibility == "hidden"?
                (skin_images + "ic_expand.gif"):
                (skin_images + "ic_collapse.gif");
    }
    else if(_browser == "gecko"){
        document.getElementById('cartDiv').style.visibility = 
            document.getElementById('cartDiv').style.visibility == "hidden"?"visible":"hidden";
        document.images["cartImage"].src =
            document.getElementById('cartDiv').style.visibility == "hidden"?
            (skin_images + "ic_expand.gif"):
            (skin_images + "ic_collapse.gif");
    }
    else{
        document.cartDiv.visibility = document.cartDiv.visibility  == "hidden"?"visible":"hidden";
    }
}


function ShowRecent(){
    window.clearTimeout(RecentTimeOut);
    if(_browser == "ie"){
        recentDiv.style.visibility = 
            recentDiv.style.visibility == "hidden"?"visible":"hidden";
        document.images["recentImage"].src =
            recentDiv.style.visibility == "hidden"?
            (skin_images + "ic_expand.gif"):
            (skin_images + "ic_collapse.gif");
    }
    else if(_browser == "gecko"){
        document.getElementById('recentDiv').style.visibility = 
            document.getElementById('recentDiv').style.visibility == "hidden"?"visible":"hidden";
        document.images["recentImage"].src =
            document.getElementById('recentDiv').style.visibility == "hidden"?
            (skin_images + "ic_expand.gif"):
            (skin_images + "ic_collapse.gif");
    }
    else{
        document.recentDiv.visibility = document.recentDiv.visibility  == "hidden"?"visible":"hidden";
    }
}

function PopUpCart(){
    CartTimeOut = window.setTimeout('ShowCart();', 1000);
}

function PopUpRecent(){
    RecentTimeOut = window.setTimeout('ShowRecent();', 1000);
}

function OnMenu(img){
    document.images[img].src = skin_images + "menu_arrow_on.gif";
}
function OffMenu(img){
    document.images[img].src = skin_images + "menu_arrow.gif";
}

function ShowPopup(src){
    var bWin = null;
    bWin = window.open(
        src, 
        "PopupWind", 
        "titlebar=no, toolbar=no, menubar=no, status=no, directories=no, resizable=no, scrollbars=no, top=20, left=20, width=320, height=240"
    );
    while(bWin==null);
    bWin.focus();
}

function PopUpImage(image_source, image_width, image_height){
    var bWin = null;
    bWin = window.open(
        image_source, 
        "ImageWind", 
        "titlebar=no, toolbar=no, menubar=no, status=no, directories=no, resizable=no, scrollbars=no, top=20, left=20, width=" + (image_width + 20) + ", height=" + (image_height + 20)
    );
    while(bWin==null);
    bWin.focus();
}

function ConfirmLogout(){
    if(orderItemsCount > 0){
        if(confirm("You have items in your cart. Logging out will empty your cart\nAre you sure want to continue?")){
            document.location = urlLogout;
        }
    }
    else{
        if(confirm("Do you really want to logout?")){
            document.location = urlLogout;
        }
    }
}

function CartConfirmDeleteItem(ocid){
    if(confirm(msg_confirm_delete_item)){
        document.location = CartDeleteItemUrl + '&ocid=' + ocid;
    }
}
function CartConfirmEmpty(){
    if(confirm(msg_confirm_empty_cart)){
        document.location = CartEmptyUrl;
    }
}

//***
    var menuTimer = 0; 
    
    function menuon(){
        clearTimeout(menuTimer);    
    }
    
    function menuoff(){
        menuTimer = setTimeout("closedisplay()", 500);   
    }
    
    function displaynav(div, body){
        var closediv="about_us_nav";
        document.getElementById(closediv).style.display = "none";
        
        var closediv="category_nav";
        document.getElementById(closediv).style.display = "none";
        
        var closediv="instore_category_nav";
        document.getElementById(closediv).style.display = "none";
        
        var top = getRealTop(document.getElementById("catnav"));
        var left = getRealLeft(document.getElementById("catnav"));
        
        document.getElementById(div).style.display = "block";
        document.getElementById(div).style.top = (top+10)+"px";
        
        if(body == "home.html"){
            if(div == "about_us_nav"){
                document.getElementById(div).style.left = (left+27)+"px";
            }else if(div == "instore_category_nav"){
                document.getElementById(div).style.left = (left+90)+"px";
            }else if(div == "category_nav"){
                document.getElementById(div).style.left = (left+165)+"px";
            }
        }else{
            if(div == "about_us_nav"){
                document.getElementById(div).style.left = (left+72)+"px";
            }else if(div == "instore_category_nav"){
                document.getElementById(div).style.left = (left+133)+"px";
            }else if(div == "category_nav"){
                document.getElementById(div).style.left = (left+210)+"px";
            }
        }
    }
    
    function closedisplay(){
        var div="about_us_nav";
        document.getElementById(div).style.display = "none";
        
        var div="category_nav";
        document.getElementById(div).style.display = "none";
        
        var div="instore_category_nav";
        document.getElementById(div).style.display = "none";
    }
    
    // COUNTDOWN CLOCK
    // year, month-1, day, hour, minute, second
    dateFuture = new Date(2010,1,4,12,01,01);
    function GetCount(){

        dateNow = new Date();                                    //grab current date
        amount = dateFuture.getTime() - dateNow.getTime();        //calc milliseconds between dates
        delete dateNow;

        // time is already past
        if(amount < 0){
            document.getElementById('countbox').innerHTML="New Sale available soon.";
        }
        // date is still good
        else{
            days=0;hours=0;mins=0;secs=0;out="";

            amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

            days=Math.floor(amount/86400);//days
            amount=amount%86400;

            hours=Math.floor(amount/3600);//hours
            hours = days*24+hours;
            amount=amount%3600;

            mins=Math.floor(amount/60);//minutes
            amount=amount%60;

            secs=Math.floor(amount);//seconds

            //if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";}
            if(days != 0 || hours != 0){out += hours +" hour"+((hours!=1)?"s":"")+", ";}
            if(days != 0 || hours != 0 || mins != 0){out += mins +" minute"+((mins!=1)?"s":"")+", ";}
            if(days != 0 || hours != 0 || mins != 0 || secs !=0){out += secs +" seconds";}
            if(days == 0 && hours == 0 && mins == 0 && secs ==0){out = "New Sale available soon.";}
            document.getElementById('countbox').innerHTML=out;

            setTimeout("GetCount()", 1000);
        }
    }
    window.onload=GetCount;//call when everything has loaded
    
    
    // flash versioning
    var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
    var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
    var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
    function ControlVersion()
    {
        var version;
        var axo;
        var e;
        // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
        try {
            // version will be set for 7.X or greater players
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
        if (!version)
        {
            try {
                // version will be set for 6.X players only
                axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
                
                // installed player is some revision of 6.0
                // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
                // so we have to be careful. 
                
                // default to the first public version
                version = "WIN 6,0,21,0";
                // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
                axo.AllowScriptAccess = "always";
                // safe to call for 6.0r47 or greater
                version = axo.GetVariable("$version");
            } catch (e) {
            }
        }
        if (!version)
        {
            try {
                // version will be set for 4.X or 5.X player
                axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
                version = axo.GetVariable("$version");
            } catch (e) {
            }
        }
        if (!version)
        {
            try {
                // version will be set for 3.X player
                axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
                version = "WIN 3,0,18,0";
            } catch (e) {
            }
        }
        if (!version)
        {
            try {
                // version will be set for 2.X player
                axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                version = "WIN 2,0,0,11";
            } catch (e) {
                version = -1;
            }
        }
        
        return version;
    }
    // JavaScript helper required to detect Flash Player PlugIn version information
    function GetSwfVer(){
        // NS/Opera version >= 3 check for Flash plugin in plugin array
        var flashVer = -1;
        
        if (navigator.plugins != null && navigator.plugins.length > 0) {
            if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
                var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
                var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
                var descArray = flashDescription.split(" ");
                var tempArrayMajor = descArray[2].split(".");            
                var versionMajor = tempArrayMajor[0];
                var versionMinor = tempArrayMajor[1];
                var versionRevision = descArray[3];
                if (versionRevision == "") {
                    versionRevision = descArray[4];
                }
                if (versionRevision[0] == "d") {
                    versionRevision = versionRevision.substring(1);
                } else if (versionRevision[0] == "r") {
                    versionRevision = versionRevision.substring(1);
                    if (versionRevision.indexOf("d") > 0) {
                        versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                    }
                }
                var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
            }
        }
        // MSN/WebTV 2.6 supports Flash 4
        else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
        // WebTV 2.5 supports Flash 3
        else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
        // older WebTV supports Flash 2
        else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
        else if ( isIE && isWin && !isOpera ) {
            flashVer = ControlVersion();
        }    
        return flashVer;
    }
    // When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
    function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
    {
        versionStr = GetSwfVer();
        if (versionStr == -1 ) {
            return false;
        } else if (versionStr != 0) {
            if(isIE && isWin && !isOpera) {
                // Given "WIN 2,0,0,11"
                tempArray         = versionStr.split(" ");     // ["WIN", "2,0,0,11"]
                tempString        = tempArray[1];            // "2,0,0,11"
                versionArray      = tempString.split(",");    // ['2', '0', '0', '11']
            } else {
                versionArray      = versionStr.split(".");
            }
            var versionMajor      = versionArray[0];
            var versionMinor      = versionArray[1];
            var versionRevision   = versionArray[2];
                // is the major.revision >= requested major.revision AND the minor version >= requested minor
            if (versionMajor > parseFloat(reqMajorVer)) {
                return true;
            } else if (versionMajor == parseFloat(reqMajorVer)) {
                if (versionMinor > parseFloat(reqMinorVer))
                    return true;
                else if (versionMinor == parseFloat(reqMinorVer)) {
                    if (versionRevision >= parseFloat(reqRevision))
                        return true;
                }
            }
            return false;
        }
    }
    function AC_AddExtension(src, ext)
    {
      if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext+'?'); 
      else
        return src + ext;
    }
    function AC_Generateobj(objAttrs, params, embedAttrs) 
    { 
      var str = '';
      if (isIE && isWin && !isOpera)
      {
        str += '<object ';
        for (var i in objAttrs)
        {
          str += i + '="' + objAttrs[i] + '" ';
        }
        str += '>';
        for (var i in params)
        {
          str += '<param name="' + i + '" value="' + params[i] + '" /> ';
        }
        str += '</object>';
      }
      else
      {
        str += '<embed ';
        for (var i in embedAttrs)
        {
          str += i + '="' + embedAttrs[i] + '" ';
        }
        str += '> </embed>';
      }
      document.write(str);
    }
    function AC_FL_RunContent(){
      var ret = 
        AC_GetArgs
        (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
         , "application/x-shockwave-flash"
        );
      AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
    }
    function AC_SW_RunContent(){
      var ret = 
        AC_GetArgs
        (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
         , null
        );
      AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
    }
    function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
      var ret = new Object();
      ret.embedAttrs = new Object();
      ret.params = new Object();
      ret.objAttrs = new Object();
      for (var i=0; i < args.length; i=i+2){
        var currArg = args[i].toLowerCase();    
        switch (currArg){    
          case "classid":
            break;
          case "pluginspage":
            ret.embedAttrs[args[i]] = args[i+1];
            break;
          case "src":
          case "movie":    
            args[i+1] = AC_AddExtension(args[i+1], ext);
            ret.embedAttrs["src"] = args[i+1];
            ret.params[srcParamName] = args[i+1];
            break;
          case "onafterupdate":
          case "onbeforeupdate":
          case "onblur":
          case "oncellchange":
          case "onclick":
          case "ondblclick":
          case "ondrag":
          case "ondragend":
          case "ondragenter":
          case "ondragleave":
          case "ondragover":
          case "ondrop":
          case "onfinish":
          case "onfocus":
          case "onhelp":
          case "onmousedown":
          case "onmouseup":
          case "onmouseover":
          case "onmousemove":
          case "onmouseout":
          case "onkeypress":
          case "onkeydown":
          case "onkeyup":
          case "onload":
          case "onlosecapture":
          case "onpropertychange":
          case "onreadystatechange":
          case "onrowsdelete":
          case "onrowenter":
          case "onrowexit":
          case "onrowsinserted":
          case "onstart":
          case "onscroll":
          case "onbeforeeditfocus":
          case "onactivate":
          case "onbeforedeactivate":
          case "ondeactivate":
          case "type":
          case "codebase":
          case "id":
            ret.objAttrs[args[i]] = args[i+1];
            break;
          case "width":
          case "height":
          case "align":
          case "vspace": 
          case "hspace":
          case "class":
          case "title":
          case "accesskey":
          case "name":
          case "tabindex":
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
            break;
          default:
            ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
        }
      }
      ret.objAttrs["classid"] = classid;
      if (mimeType) ret.embedAttrs["type"] = mimeType;
      return ret;
    }
//***