function initSubnav(){
    var nav = document.getElementById('snav');
    var navas = nav.getElementsByTagName('a');
    for (var a=0; a<navas.length; a++){
        var currenthref=String(navas[a].href);
        var currentloc=String(document.location);
        if (unescape(currenthref)==unescape(currentloc)){
            navas[a].className="current"
        }
    }
}

//category droplist in side nav
function initCatSelect(){
    var cl = document.getElementById("catlist");
    var s = cl.getElementsByTagName("select")
    addAnEvent(s.item(0),'change',loadCat);
}

function loadCat(){
    document.location = "/"+this.value;
}

//category droplist in side nav
function initSort(){
    var sort = document.getElementById('sort');

    addAnEvent(sort,'mouseover',showSort);
    addAnEvent(sort,'mouseout',hideSort);
}

function showSort(){
    this.getElementsByTagName('ul')[0].className = "hover";
}

function hideSort(){
    this.getElementsByTagName('ul')[0].className = "";
}


function getBits(href){
    var q = href.split("?");
    var p = q[1].split("&");
    var n = p[0].split("=");
    n = n[1];
    var i = p[2].split("=");
    i = i[1];
    return{n:n,i:i};
}

function clearStyle(id){
    var c = document.getElementById(id);
    var cas = c.getElementsByTagName("a");
    for (var a=0; a<cas.length; a++){
        cas[a].className = "";
    }
}



//minicart functions
function initMiniCart(){
    var c = document.getElementById("cart");
    addAnEvent(c,'click',toggleMiniCart);
    var cm = document.getElementById("closeminicart");
    addAnEvent(cm,'click',toggleMiniCart);
}

function toggleMiniCart(){
    var m = document.getElementById("minicart");
    if (m.style.display == "block") {
        m.style.display = "none";
        if (document.all && document.getElementById) showFormBits();
    }
    else {
        m.style.display = "block";
        m.style.visibility = 'visible';
        setOpacity(m,0);
        fadeIn("minicart",0);
        if (document.all && document.getElementById) hideFormBits();
    }
    return false;
}

function hideFormBits(){
    var c = document.getElementById('content');
    var sel = c.getElementsByTagName("select");
    var inp = c.getElementsByTagName("input");
    for (var i = 0; i<sel.length; i++){
        sel[i].style.visibility = "hidden";
    }
    for (var i = 0; i<inp.length; i++){
        inp[i].style.visibility = "hidden";
    }
}

function showFormBits(){
    var c = document.getElementById('content');
    var sel = c.getElementsByTagName("select");
    var inp = c.getElementsByTagName("input");
    for (var i = 0; i<sel.length; i++){
        sel[i].style.visibility = "visible";
    }
    for (var i = 0; i<inp.length; i++){
        inp[i].style.visibility = "visible";
    }
}

var rows;
var oInterval="";
var iRows;
//rotating product functions
function initRotatelist(){
    rows = new Array;
    oInterval="";
    var j = 0;
    var divs = document.getElementById("rotatelist").getElementsByTagName("div");
    for (var i = 0; i<divs.length; i++){
        if (divs[i].className.indexOf("row") != -1){
            rows[j] = divs[i];
            j++;
        }
    }
    
    iRows = rows.length;
    if (iRows > 1) {
        r = rows[0];
        r.id = "row"
        r.style.visibility = "visible";
        setOpacity(r,0);
        fadeIn("row",0);
        oInterval=window.setInterval("rotate_row()",6000); 
    } else {
        r = rows[0];
        r.id = "row"
        r.style.visibility = "visible";
        setOpacity(r,0);
        fadeIn("row",0);
    }
}

function rotate_row(){  
    if ((iRows < rows.length) && (iRows >= 0)){
        fadeOut(rows[iRows].id,100);
    } else if (iRows == rows.length) {
        fadeOut(rows[0].id,100);
    }

    iRows--;
    r = rows[iRows];
    r.style.visibility = "visible";
    setOpacity(r,0);
    fadeIn(r.id,0);  

    if(iRows == 0){
    //  window.clearInterval(oInterval);
        iRows = rows.length;
        return false;
    }
}


function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function fadeIn(objId,opacity) {
  obj = document.getElementById(objId);
  if (opacity <= 100) { 
    setOpacity(obj, opacity);
    opacity += 5;
    window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 25);
  }
}

function fadeOut(objId,opacity) {
  obj = document.getElementById(objId);
  if (opacity >= 0) {
    setOpacity(obj, opacity);
    opacity -= 5;
    window.setTimeout("fadeOut('"+objId+"',"+opacity+")", 25);
  }
  if (opacity == 0){
    obj.style.visibility = "hidden";
}
}

//adds borders to photos :)
function initBorders(){
    var w = document.getElementById('wrapper');
    var divs = w.getElementsByTagName('div');
    for (var i=0; i<divs.length; i++){
        if (divs[i].className.indexOf("phborder") != -1){
            var html = divs[i].innerHTML;
            divs[i].innerHTML = "<div class=\"border-br\"><div class=\"border-tr\"><div class=\"border-bl\">" + html + "</div></div></div>"
        }
    }
}

//tracking and receipt pop ups
function initLinks(){
    var c = document.getElementById('content');
    var as = c.getElementsByTagName('a');
    for (var i=0; i<as.length; i++){
        if (as[i].className.indexOf("tracking") != -1){
            addAnEvent(as.item(i),'click',trackWin);
        }
        if (as[i].className.indexOf("receipt") != -1){
            addAnEvent(as.item(i),'click',receiptWin);
        }
        if (as[i].className.indexOf("popup") != -1){
            addAnEvent(as.item(i),'click',popupWin);
        }
        if (as[i].className.indexOf("popupshort") != -1){
            addAnEvent(as.item(i),'click',shortpopupWin);
        }
        
    }
}

function trackWin(){
    appWindow = window.open (this.href,"appWindow","width=600,height=400,toolbar=0,resizable=1,scrollbars=1");
    appWindow.focus ();
    return false;
}

function receiptWin(){
    appWindow = window.open (this.href,"appWindow","width=600,height=400,toolbar=0,resizable=1,scrollbars=1");
    appWindow.focus ();
    return false;
}

function popupWin(){
    appWindow = window.open (this.href,"appWindow","width=400,height=560,toolbar=0,resizable=1,scrollbars=1");
    appWindow.focus ();
    return false;
}

function shortpopupWin(){
    appWindow = window.open (this.href,"appWindow","width=400,height=260,toolbar=0,resizable=1,scrollbars=1");
    appWindow.focus ();
    return false;
}

function initPhotoshow(){
    var t = document.getElementById("thumbwrap");
    var th = t.getElementsByTagName("a");
    
    for (var i=0; i<th.length; i++){
        addAnEvent(th.item(i),'click',swapPh);
    }
}

function swapPh(){
    document.getElementById("largewrap").style.backgroundImage = "url("+this.href+")";
    document.getElementById("large").style.visibility = "hidden";
    return false
}

function copy_billing_address_to_shipping(checkbox_name){
    var field_names = new Array('first_name','last_name','address1','address2','city','state','zip','phone');

    if(checkbox_ref= document.getElementById(checkbox_name)){
        if(! checkbox_ref.checked){
           return false;
       }
    }

    for(i = 0; i < field_names.length; i++){
        ship_ref = document.getElementById('ship_' + field_names[i]);
        bill_ref = document.getElementById(field_names[i]);
        bill_ref.value = ship_ref.value;
    }
}

function sfTarget () {
    var sfEls=document.getElementsByTagName("div");
    var aEls = document.getElementsByTagName("a");
    document.lastTarget = null;
    for (var i=0; i<sfEls.length; i++) {
        if (sfEls[i].id) {
            if (location.hash==("#" + sfEls[i].id)) {
                sfEls[i].className+=" sftarget";
                document.lastTarget=sfEls[i];
            }
            for (var j=0; j<aEls.length; j++) {
                if (aEls[j].hash==("#" + sfEls[i].id)) aEls[j].targetEl = sfEls[i]; aEls[j].onclick = function() {
                    if (document.lastTarget) document.lastTarget.className = document.lastTarget.className.replace(new RegExp(" sftarget\\b"), "");
                    if (this.targetEl) this.targetEl.className+=" sftarget"; document.lastTarget=this.targetEl;
                    return true;
                }
            }
        }
    }
}

function initialize(){
    if ( document.getElementById ){
        if (document.all && !document.getElementById("chromeless")) sfTarget();
        if (document.getElementById("snav")) initSubnav();
        if (document.getElementById("catlist")) initCatSelect();
        if (document.getElementById("sort")) initSort();
        if (document.getElementById("cart") && document.getElementById("minicart")) initMiniCart();
        if (document.getElementById("rotatelist")) initRotatelist();
        initBorders();
        initLinks();
        if (document.getElementById("largewrap") && document.getElementById("thumbwrap")) initPhotoshow();
    }
}

function addAnEvent( target, eventName, functionName){
   eval('target.on'+eventName+'=functionName');
}

window.onload=initialize;