function $(s) {
  return document.getElementById(s);
}

var win = {
  panel: false,
  isOpen: false,
  isActive: false,
  // disable the popup on MAC FF because of some serious wierdness
  isEnabled: !(navigator.appVersion.indexOf("Mac") != -1 && navigator.userAgent.indexOf("Gecko") != -1),
  winbd: false,
  init: function() {
    if(win.isEnabled) {
      win.panel = new YAHOO.widget.Panel("win", 
      {
        width:"820px",
        height:"480px",
        fixedcenter: true, 
        constraintoviewport: true, 
        underlay:"shadow", 
        close:true, 
        visible:false, 
        draggable:false,
        //effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25},
        modal:true
      });
      win.panel.render(document.body);
      win.winbd = $('winbd');
    }
  },
  open: function(o) {
    if(typeof o != 'string')
      u = o.href;
    else
      u = o;
    if(win.panel) {
      win.openLoader();
      YAHOO.util.Connect.initHeader('is-ajax', 'true'); 
    	var request = YAHOO.util.Connect.asyncRequest('GET', u, win.callback);
      win.isActive = true;
      //var tabView = new YAHOO.widget.TabView('tabs');
      return false;
    }
    return true;
  },
  openLoader: function() {
    if(win.panel) {
      //h = YAHOO.util.Dom.getViewportHeight()-200;
      //loader = '<div class="hd"></div><div class="bd" style="text-align:center;padding:'+((h/2)-40)+'px 0;">Loading, please wait...<br /><img src="http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif" /></div><div class="ft"></div>';
      //win.cfg.setProperty("height", h + "px");
      //winbd.style.height = (h-66) + "px";
      loader = '<div style="text-align:center;padding:180px 0;">Loading, please wait...<br /><img src="/images/_/loading.gif" /></div>';
      win.winbd.innerHTML = loader;
      win.panel.show();
      win.isActive = true;
    }
  },
  close: function() {
    win.panel.close();
  },
  submit: function(frm) {
    if(win.isActive) {
      YAHOO.util.Connect.setForm(frm);
      YAHOO.util.Connect.initHeader('is-ajax', 'true'); 
      var cObj = YAHOO.util.Connect.asyncRequest('POST', frm.action, win.callback);
      return false;
    }
    return true;
  },
  callback: {
    //cache:false,
    success: function(o) {
      win.winbd.innerHTML = o.responseText;
      if(win.panel && $("winhd-txt")) {
        $("winhd-txt").style.display = 'none';
        ht = $("winhd-txt").innerHTML;
        win.panel.setHeader(ht);
        
        if($('prod-name')) {
          if(ht.length > 150) {
            $("prod-name").style.fontSize = '14px';
          } else if(ht.length > 110) {
            $("prod-name").style.fontSize = '18px';
          } else if(ht.length > 80) {
            $("prod-name").style.fontSize = '22px';
          }
          if($('prod-name').scrollHeight > 45)
            $('winhd').style.height = $('prod-name').scrollHeight+'px';
          else
            $('winhd').style.height = '45px';
        } else {
          $('winhd').style.height = '45px';
        }
      } 
      if($('tabs'))
        var tabView = new YAHOO.widget.TabView('tabs');
      if($('cart-quantity') && $('hdr-cart-items'))
        $('hdr-cart-items').innerHTML = $('cart-quantity').innerHTML;
    },
    failure: function(o) {
      win.winbd.innerHTML = o.status + " " + o.statusText;
    }
  }
};
YAHOO.util.Event.addListener(window, "load", win.init);

YAHOO.util.Event.addListener(window, "load", loadTabs);
function loadTabs() {
  var tabView = new YAHOO.widget.TabView('tabs');
}


function addToCart(frm) {
  els = frm.elements;
  for(i=0; i<els.length; i++) {
    if(els[i].tagName == "SELECT") {
      if(els[i].selectedIndex == 0) {
        alert('Please '+ els[i].options[0].text);
        els[i].focus();
        return false;
      }
    }
  }
  if(win.isActive) {
    win.submit(frm);
    return false;
  }
  return true;
}

var p = new Array;
function updatePrice(sel, ind, price) {
  p[ind] = sel.options[sel.selectedIndex].title;
  pAdjust = 0;
  for(i=0; i<p.length; i++) {
    if(p[i])
      pAdjust += parseFloat(p[i]);
  }
  nPrice = price + pAdjust;
  document.forms['orderForm'].price.value = nPrice;
  $('thePrice').innerHTML = formatCurrency(nPrice);
}

function formatCurrency(num) {
  num = num.toString().replace(/\$|\,/g,'');
  if(isNaN(num))
  num = "0";
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
  if(cents<10)
  cents = "0" + cents;
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  num = num.substring(0,num.length-(4*i+3))+','+
  num.substring(num.length-(4*i+3));
  return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function updateCart(frm) {
  var isGood = false;
  if(frm.cartIndex.checked) {
    isGood = true;
  } else if(frm.cartIndex.length > 0) {
    for(i=0; i<frm.cartIndex.length; i++) {
      if(frm.cartIndex[i].checked) {
        isGood = true;
        break;
      }
    }
  }
  if(!isGood) {
    alert('You must select an item to remove first');
    return false;
  } else if(confirm('Are you sure you want to remove the selected item(s)?')) {
    if(win.isActive) {
      return win.submit(frm);
    } else {
      return true;
    }
  }
  return false;
}

function editItem(u) {
  if(win)
    showWin(u);
  else
    window.location = u;
}

var signup = {
  clear: function(el) {
    t = el.title;
    if(el.value == t)
      el.value = '';
  },
  blur: function(el) {
    t = el.title;
    if(el.value == '')
      el.value = t;
  },
  validate: function(frm) {
    eml = frm.email;
    at = eml.value.indexOf('@');
    if(eml.value == eml.title || eml.value == '') {
      alert('Please enter email address');
      return false;
    } else if(at = -1 && eml.value.indexOf('.', at) <= at) {
      alert('Please enter a valid email address');
      return false;
    }
    if(win.panel) {
      win.openLoader();
      win.submit(frm);
      return false;
    }
    return true;
  }
}
