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;
	}
}

// SEARCH BOX
//

function searchFocus(box, text)
{
    if (box.value == text)
    {
        box.value = '';
    }
}

function searchBlur(box, text)
{
    if (box.value == '')
    {
        box.value = text;
    }
}

// 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';
}

// SCROLL BAR
//

function hScrollMove(div, pagingID, e)
{
    if (window.event)
        e = window.event;

	var input = document.forms['aspnetForm'].elements[pagingID + '_PW'];
	if (input != null)
	{
        var eventX = e.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
        getAbsolutePosition(div);
        var divL = eventX - _absX;
        var divW = getDivW(div);
        
        var l = 0;
        if (divW > 0)
            l = divL / divW;

        var w = input.value;

        var index = 1;
        if (w > 0)
            index = forceInt(l / w) + 1;

        div.title = 'Page ' + index;
    }    
}

function hScrollClick(div, pagingID, e)
{
    if (window.event)
        e = window.event;
    
    var eventX = e.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
    getAbsolutePosition(div);
    var divL = eventX - _absX;
    var divW = getDivW(div);

	var input = document.forms['aspnetForm'].elements[pagingID + '_SB'];
	if (input != null)
	{
        var sb = input.value;
        
        var i = sb.indexOf('^');
        if (i >= 0)
        {
            sb = sb.substring(0,i) + divL + ':' + divW + sb.substring(i+1);
        }
        
		eval(sb);
	}
	
    //alert('eventX:' + eventX);
    //alert('absX:' + _absX);
    //alert('divW:' + divW);
}

// 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 ShowHideDiv(divID)
{
    var div;
    
    if( document.getElementById )
        div = document.getElementById(divID);
    else if( document.all )
        div = document.all[divID];
    else if( document.layers )
        div = document.layers[divID];    
    if (!div)
        return;

    if(div.style.visibility == 'hidden')
    {
      calendarFocus(divID);
    }
    else if(div.style.visibility == 'visible')
    {
      calendarClose(divID);
    }
}

function hideDivTimeout(divID, time)
{
    setTimeout("hideDiv('" + divID + "')", time);
}

function ShowHideDivBlock(divID)
{
    var div;
    
    if( document.getElementById )
        div = document.getElementById(divID);
    else if( document.all )
        div = document.all[divID];
    else if( document.layers )
        div = document.layers[divID];    
    if (!div)
        return;

    if(div.style.display == 'none')
    {
      div.style.display = 'block'
    }
    else if(div.style.display == 'block')
    {
      div.style.display = 'none'
    }
}

// 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);
}

// Popup
function Popup(url, target, width, height, scroll, resize, toolbar)
{
	newwindow=window.open(url, target, 'height='+height+',width='+width+',resizable=' + (resize ? 'yes' : 'no') + ',menubar=no,scrollbars=' + (scroll ? 'yes' : 'no') + ',toolbar=' + (toolbar ? 'yes' : 'no') + ',status=no,directories=no,location=no');
	if (window.focus) {newwindow.focus()}
}

// Mask input
function mask(str,textbox,loc,delim)
{
  var locs = loc.split(',');

  for (var i = 0; i <= locs.length; i++){
    for (var k = 0; k <= str.length; k++){
      if (k == locs[i]){
        if (str.substring(k, k+1) != delim){
          str = str.substring(0,k) + delim + str.substring(k,str.length)
        }
      }
    }
  }
  textbox.value = str
}

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 FilterButton(webroot)
{
  var btn;
  if( document.getElementById )
      btn = document.getElementById('shopFilterButton');
  else if( document.all )
      btn = document.all['shopFilterButton'];
  else if( document.layers )
      btn = document.layers['shopFilterButton'];    
  if (!btn)
      return false;
      
  var div;
  if( document.getElementById )
      div = document.getElementById('shop_filter_popup');
  else if( document.all )
      div = document.all['shop_filter_popup'];
  else if( document.layers )
      div = document.layers['shop_filter_popup'];    
  if (!div)
      return false;
      
  if(div.style.visibility == 'hidden')
  {
    div.style.display = 'none';
    swapimg('shopFilterButton', webroot+'/Images/shop_filter_open.jpg');
  }
  else
  {
    div.style.display = 'block';
    swapimg('shopFilterButton', webroot+'/Images/shop_filter_close.jpg');
  }
}

function swapimg(img_name, img_src)
{
  var img;
  if( document.getElementById )
      img = document.getElementById(img_name);
  else if( document.all )
      img = document.all[img_name];
  else if( document.layers )
      img = document.layers[img_name];    
  if (!img)
      return false;

  img.src = img_src;
}

function swapout(div_ID, img_name, img_src)
{
    if( document.getElementById )
        div = document.getElementById(div_ID);
    else if( document.all )
        div = document.all[div_ID];
    else if( document.layers )
        div = document.layers[div_ID];    
    if (!div)
        return;
    else if(div.style.display == 'none')
        document[img_name].src = img_src;
}

function regionSelector(querystring, img_name, img_src)
{
    var qs = new Querystring()
    var id = qs.get("id")
    var ids = new Array();
    ids = querystring.split(',');
    var found = false;
    
    for(i=0; i<ids.length; i++)
    {
      var _id = ids[i];
      if(_id == id && found != true)
      {
        found = true;
      }
    }
    
    if(found != true)
    {
      var img;
      if( document.getElementById )
          img = document.getElementById(img_name);
      else if( document.all )
          img = document.all[img_name];
      else if( document.layers )
          img = document.layers[img_name];    
      if (!img)
          return false;

      img.src = img_src;
    }
}

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	// This silly looking line changes UNDEFINED to NULL
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}

function openVideoPlayerWindow(videoToPlay)

{
  var baseURL = "http://www.artisanvineyards.com/Video/";
  var videoURL = baseURL + "video.html?videoToPlay=" + videoToPlay;
  window.open(videoURL, "TWCVideoPlayer", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=343, height=325");
}

function pageScroll() {
    return;
    
    window.scrollBy(0,-50);
    var st = (document.body.scrollTop || document.documentElement.scrollTop)
    if(st > 0)
      setTimeout('pageScroll()',5); 
}