function forceInt(x, y)
{
	return isNaN(y = parseInt(x))? 0 : y;
}

function getDivW(el)
{
	return forceInt(
		el ? (el.offsetWidth || el.style.pixelWidth || el.style.width || 0)
		: 0
	);
}

function getDivH(el)
{
	return forceInt(
		el ? (el.offsetHeight || el.style.pixelHeight || el.style.height || 0)
		: 0
	);
}

function getAbsolutePosition(el)
{
	_absX = 0;
	_absY = 0;
	
	while (el)
	{
		_absX += forceInt(el.offsetLeft);
		_absX -= forceInt(el.scrollLeft);

		_absY += forceInt(el.offsetTop);
		_absY -= forceInt(el.scrollTop);
		
		el = el.offsetParent || null;
	}
}

function getOffsetPosition(el)
{
	_absX = 0;
	_absY = 0;
	
	while (el)
	{
		_absX += forceInt(el.offsetLeft);
		_absY += forceInt(el.offsetTop);
		
		el = el.offsetParent || null;
	}
}

function toggleDiv(id)
{
    var div = document.getElementById(id);
    if (!div)
        return;
        
    div.style.display = (div.style.display == 'none') ? '' : 'none';
}

// CALENDAR
//

function calendarFocus(divID)
{
    // Mark as focused
    eval('window.focus_' + divID + ' = true;');

    // Show popup
    showDiv(divID);
}

function calendarBlur(divID)
{
    // Mark as blurred
    eval('window.focus_' + divID + ' = false;');

    // If not moused over, hide popup
    eval('var over = window.over_' + divID + ';');
    if (!over)
        hideDiv(divID);
}

function calendarOver(divID)
{
    // Mark as moused over
    eval('window.over_' + divID + ' = true;');
}

function calendarOut(divID, e)
{
    if (window.event)
        e = window.event;
        
    var div = document.getElementById(divID);
    if (!div)
        return;

    var eventX = e.clientX + document.body.scrollLeft;
    var eventY = e.clientY + document.body.scrollTop;
    getAbsolutePosition(div);
    var divW = getDivW(div);
    var divH = getDivH(div);

    // Ignore this event if the cursor is inside the div
    if (eventX > _absX && eventX < _absX + divW && eventY > _absY && eventY < _absY + divH)
        return;
    
    // Mark as moused out
    eval('window.over_' + divID + ' = false;');

    // If not focused, hide popup
    eval('var focus = window.focus_' + divID + ';');
    if (!focus)
        hideDiv(divID);
}

function calendarClose(divID)
{
  // Mark as blurred
    eval('window.focus_' + divID + ' = false;');
  
  // Close popup  
  hideDiv(divID);
}

// HOVER
//

function hoverOver(o)
{
    _hoverColor = o.style.backgroundColor;
    o.style.backgroundColor = '#CCCCCC';
}

function hoverOut(o)
{
    o.style.backgroundColor = _hoverColor;
}

function hoverClick(o)
{
    _hoverColor = '#EEEEEE';
}

// SHOW/HIDE

function showDiv(divID)
{
    var div = document.getElementById(divID);
    if (!div)
        return;

    div.style.visibility = 'visible';
}

function hideDiv(divID)
{
    var div = document.getElementById(divID);
    if (!div)
        return;

    div.style.visibility = 'hidden';
}

function hideDivTimeout(divID, time)
{
    setTimeout("hideDiv('" + divID + "')", time);
}

// UPLOAD
//

function preUpload(id)
{
    var form = document.forms['aspnetForm'];
    var action = form.elements[id + '_Action'];
    var target = form.target;

    // Set values
    action.value = 'upload';    
    form.target = id + '_Target';
    
    // Submit form
    form.submit();

    // Restore values
    action.value = '';
    form.target = target;
}

function postUpload(id, filename)
{
    var hidden = document.getElementById(id + '_SlickBack');
    var slickback = hidden.value.replace("__FILE__", filename);

    eval(slickback);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; 
  
  if((p=n.indexOf("?"))>0&&parent.frames.length) 
  {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }
  if(!(x=d[n])&&d.all) x=d.all[n]; 
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  if ((obj=MM_findObj(args[i]))!=null) 
  { 
    v=args[i+2];
    if (obj.style) 
    { 
        obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
    }
    obj.visibility=v; 
  }
}

function show_hide()
{
    MM_showHideLayers('cart','','show');
    MM_showHideLayers('cartCompressed','','hide');
}

function openDesignWall()
{
    _avWindow = popup('../DesignWall/Default.aspx', 700, 500, 'dw', false);
}

function popup(url, width, height, winId, scroll)
{
    if (winId == null) {
        time = new Date();
        winId = time.getTime().toString();
    }
    if (!winId.substr(0, 3) == 'tn_')
        winId = 'tn_' + winId;

    var wtop = (screen.height - height) / 2 - 75;
    var wleft = (screen.width - width) / 2;
    var ref = window.open(url,winId,'width='+width+',height='+height+',top='+wtop+',left='+wleft+',resizable=yes,scrollbars=' + (scroll ? 'yes' : 'no') + ',toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no');
    ref.focus();

    return ref;
}

function searchFocus(f)
{
    if (f.value == f.title)
    {
        f.value = '';
        f.className = 'inputBlack';
    }
}

function searchBlur(f)
{
    if (f.value == '')
    {
        f.value = f.title;
        f.className = 'input';
    }
}

function setCartBackground(webroot)
{
    var el = document.getElementById('cartCompressed');
    el.style.backgroundImage = "url('"+webroot+"/Images/backityBack.jpg')";
}

function saveFocus(id)
{
  _focusID = id;
}

function setFocus()
{
  setTimeout('setFocus2()', 500);
}

function setFocus2()
{
  var el = document.getElementById(_focusID);
  if (el)
    el.focus();
}
function disableButton(btn_ID)
{
  var btn;
  if( document.getElementById )
      btn = document.getElementById(btn_ID);
  else if( document.all )
      btn = document.all[btn_ID];
  else if( document.layers )
      btn = document.layers[btn_ID];    
  if (!btn)
      return false;

  if(btn.disabled == true)
  {
    return false;
  }
  else
  {
    //btn.value = 'Processing';
    setTimeout("DelayedDisableControl('" + btn_ID + "')",5);
    return true;
  }
}

function DelayedDisableControl(btn_ID)
{
  var btn;
  if( document.getElementById )
      btn = document.getElementById(btn_ID);
  else if( document.all )
      btn = document.all[btn_ID];
  else if( document.layers )
      btn = document.layers[btn_ID];    
  if (!btn)
      return false;
      
  btn.disabled = true;
}

function TrackPaymentEvent(category, action, creditID, paypalID, googleID, invoiceID, phoneID)
{
    var value;
    if (document.getElementById(creditID).checked)
        value = 'Credit Card';
    else if (document.getElementById(paypalID).checked)
        value = 'PayPal';
    else if(document.getElementById(googleID).checked)
        value = 'Google';
    else if(document.getElementById(invoiceID).checked)
        value = 'Invoice';
    else if(document.getElementById(phoneID).checked)
        value = 'Telephone';

    pageTracker._trackEvent(category, action, value);
}
 
