function menu_over() {}
function menu_out() {}

function doOnLoad() {



	/******************************/

	preloadImage('/assets/images/btn_wines_a.gif');
	preloadImage('/assets/images/btn_purchase_wines_a.gif');
	preloadImage('/assets/images/btn_wine_club_a.gif');
	preloadImage('/assets/images/btn_harvest_ball_a.gif');
	preloadImage('/assets/images/btn_tour_tastings_a.gif');
	preloadImage('/assets/images/btn_winery_notes_a.gif');
	preloadImage('/assets/images/btn_news_trade_a.gif');
	preloadImage('/assets/images/btn_contact_us_a.gif');
	preloadImage('/assets/images/btn_home_a.gif');

}

function pageFooterOnLoad() {

}

function get_page_name(thishref) {
	var m = thishref.match(/\/?([^\/]*)\.(s?html|pl|cgi)+.*$/i);
	if(m) return m[1];
	return '';
}

function menu_over(that) {
	if(!window.mainMenus) return;
	that.src = '/assets/images/btn_'+that.name.substr(4)+'_a.gif';
	window.mainMenus[that.name].showMenu(that);
}
function menu_out(that) {
	if(!window.mainMenus) return;
	that.src = '/assets/images/btn_'+that.name.substr(4)+'.gif';
	window.mainMenus[that.name].setTimer();
}

function preloadImage(imghref) {
	if(!window.preloadedImages) window.preloadedImages = new Array();
	var i = window.preloadedImages.length;
	window.preloadedImages[i] = new Image();
	window.preloadedImages[i].src = imghref;
}





function doPostBodyLoad() {

	mainMenuInit();
	//loadRolloverImages();
}


function loadRolloverImages() {

	var allimgs = document.getElementsByTagName('img');
	for(var i=0; i<allimgs.length; ++i) {
		if(allimgs[i].getAttribute('hoversrc')) {
			_loadRolloverImage(allimgs[i]);
		}
	}

	var allinputs = document.getElementsByTagName('input');
	for(var i=0; i<allinputs.length; ++i) {
		if(allinputs[i].getAttribute('hoversrc')) {
			_loadRolloverImage(allinputs[i]);
		}
	}

}

function _loadRolloverImage(img) {
	preloadImage(img.getAttribute('hoversrc'));

	img.onmouseover = function() {
		var src = this.getAttribute('src');
		if(src) {
			this.setAttribute('__src_orig', src);
			this.setAttribute('__filter_orig', this.style.filter);

			if(this.style.filter && navigator.userAgent.toUpperCase().indexOf('MSIE') >= 0) {
				this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.getAttribute('hoversrc')+"', sizingMethod='scale')";
			} else {
				this.setAttribute('src', this.getAttribute('hoversrc'));
			}
		}
	};
	img.onmouseout = function() {
		var src = this.getAttribute('__src_orig');
		if(src) {
			if(this.style.filter && navigator.userAgent.toUpperCase().indexOf('MSIE') >= 0) {
				this.style.filter = this.getAttribute('__filter_orig');
			} else {
				this.setAttribute('src', src);
			}
		}
	};

}

function preloadImage(href) {
	if(!window.preloadImageList) window.preloadImageList = new Array();
	var i = window.preloadImageList.length;

	window.preloadImageList[i] = new Image();
	window.preloadImageList[i].src = href;
}


function popupWin(that, w, h, options) {
	if(!w) w = 500;
	if(!h) h = 500;

	var x = (screen.availWidth - w) / 2;
	var y = (screen.availHeight - h) / 2;

	if(!options) options = '';

	var optslist = new Array();
	optslist[optslist.length] = 'width='+w;
	optslist[optslist.length] = 'height='+h;
	optslist[optslist.length] = 'scrollbars=auto';
	optslist[optslist.length] = 'resizable=yes';
	optslist[optslist.length] = 'left='+x;
	optslist[optslist.length] = 'top='+y;

	var bits = options.split(/,/);
	for(var i=0; i<bits.length; ++i) {
		var b = bits[i].split(/=/);
		optslist[optslist.length] = b[0] + '=' + b[1];
	}
	var optionstring = optslist.join(',');



	var href;
	if(that.href) href = that.href;
	else href = that;

	var win = window.open(that.href, 'popwin', optionstring);

	win.resizeTo(w, h);
	win.focus();

	return false;
}

function getLeft(obj) {
	return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft + getLeft(obj.offsetParent));
}
function getTop(obj) {
	return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop + getTop(obj.offsetParent));
}

// error class
function Errors() {
	this.errors = new Array();

	this.add = function(msg) {
		this.errors[this.errors.length] = msg;
	}
	this.alert = function() {
		if(!this.errors.length) return false;

		var msg = 'The following error(s) have occurred:\n\n';

		for(var i=0; i<this.errors.length; ++i) {
			msg += '*  ' + this.errors[i];
			if(i < this.errors.length - 1) msg += '\n\n';
		}

		alert(msg);
		return true;
	}
}

function validate_email(email) {
	if(email.length <= 5) return false;
	if(email.indexOf('@', 0) == -1) return false;
	return true;
}

function validate_optin(f) {
	var e = new Errors();
	if(!validate_email(f.email.value)) e.add("Sorry, Invalid Email Address!");

	return e.alert() ? false : true;
}



function open_print_document(opts) {
	if(opts.print_default_href) {
		var printable_href = 'printable.php';
		printable_href += '?print_default_href='+escape(opts.print_default_href);
		printable_href += '&print_default_title='+escape(opts.print_default_title);
		printable_href += '&print_alternate_link='+escape(opts.print_alternate_link);
		printable_href += '&print_alternate_href='+escape(opts.print_alternate_href);
		printable_href += '&print_alternate_title='+escape(opts.print_alternate_title);
		printable_href += '&print_default_link='+escape(opts.print_default_link);

		var w = window.open(printable_href, '_blank').focus();
	}


}




function loadmenus() {
	return;

}

function getLeft(obj) {
	return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft + getLeft(obj.offsetParent));
}
function getTop(obj) {
	return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop + getTop(obj.offsetParent));
}

function mainMenuInit() {
	var tbl = document.getElementById('divmainmenu');

	if(tbl) {

		if(window.winemenuitems) {
			var div = document.getElementById('mainmenu[wines]');
			if(div) {
				var tbody = div.getElementsByTagName('tbody');
				tbody = tbody[0];

				var buf = '';
				for(var z =0; z<window.winemenuitems.length; ++z) {
					if(!window.winemenuitems[z] || !window.winemenuitems[z][0]) continue;
					if(!window.winemenuitems[z][1]) {
						buf += '<tr><td><a>'+window.winemenuitems[z][0]+'</a></td></tr>';
					} else {
						buf += '<tr><td><a href="'+window.winemenuitems[z][1]+'">'+window.winemenuitems[z][0]+'</a></td></tr>';
					}

				}
			}

			buf = tbody.innerHTML + buf;
			div.innerHTML = '<table cellpadding="0" cellspacing="0">' + buf + '</table>';

		}



		if(window.shop_menu_append) {
			var div = document.getElementById('mainmenu[order]');
			if(div) {
				var tbody = div.getElementsByTagName('tbody');
				tbody = tbody[0];

				var buf = '';
				for(i=0; i<window.shop_menu_append.length; ++i) {
					buf += '<tr><td><a href="'+window.shop_menu_append[i][1]+'">'+window.shop_menu_append[i][0]+'</a></td></tr>';
				}
			}

			buf = tbody.innerHTML + buf;
			div.innerHTML = '<table cellpadding="0" cellspacing="0">' + buf + '</table>';
		}




		var alist = tbl.getElementsByTagName('a');
		for(var i=0; i<alist.length; ++i) {
			new _MainMenu(alist[i]);
		}
	}

}


function _MainMenu(a) {
	this.a = a;
	this.timer;
	this.subMenuDivs = new Array();


	this.init = function() {
		var a = this.a;

		if(!window._menus) window._menus = new Array();
		this.index = window._menus.length;
		window._menus[this.index] = this;

		var img = a.childNodes[0];
		this.img = img;

		var src = this.img.getAttribute('src');
		this.img.setAttribute('offSrc', src);
	
		src = src.replace('.gif', '_a.gif');
		this.img.setAttribute('onSrc', src);

		a.setAttribute('menu_index', this.index);


		a.onmouseover = function() {
			window._menus[this.getAttribute('menu_index')].On();
		}

		a.onmouseout = function() {
			window._menus[this.getAttribute('menu_index')].startTimer();
		}



		this.showmenu = a.getAttribute('showmenu');
		this.menudiv = null;

		if(this.showmenu) {
			this.menudiv = document.getElementById('mainmenu['+this.showmenu+']');
		}
		if(!this.menudiv) {
			this.menudiv = null;
			this.showmenu = null;
		}

		var submenunames = new Array();
		if(this.menudiv) {
			this.menudiv.setAttribute('menu_index', this.index);
			var tdlist = this.menudiv.getElementsByTagName('td');
			for(var i=0; i<tdlist.length; ++i) {
				this._initTD(tdlist[i]);

				var submenukey = tdlist[i].childNodes[0].getAttribute('showsubmenu');
				if(submenukey) {
					var submenudiv = this.getSubMenuDiv(submenukey);
					if(submenudiv) {
						var subtdlist = submenudiv.getElementsByTagName('td');
						for(var ii=0; ii<subtdlist.length; ++ii) {
							this._initTD(subtdlist[ii]);
						}
					}
				}


			}
			
		}
	}

	this._initTD = function(td) {
		td.setAttribute('menu_index', this.index);

		if(td.childNodes[0].getAttribute('showsubmenu')) {
			var img;
			with(img = document.createElement('img')) {
				setAttribute('src', '/assets/images/menu-arrow.png');
				style.width = '9px';
				style.height = '9px';
				style.float = 'right';
			}
			td.appendChild(img);

			
		}

		td.onmouseover = function() {
			this.className = 'hover';

			var img = this.getElementsByTagName('img');
			if(img[0]) img[0].src = '/assets/images/menu-arrow-over.png';

			var mindex = this.getAttribute('menu_index');
			window._menus[mindex].subMenusOff(this.parentNode.parentNode.parentNode.parentNode);
			window._menus[mindex].clearTimer();
			window._menus[mindex].showSubMenu(this);
		}

		td.onmouseout = function() {
			this.className = '';

			var img = this.getElementsByTagName('img');
			if(img[0]) img[0].src = '/assets/images/menu-arrow.png';

			var mindex = this.getAttribute('menu_index');
			window._menus[mindex].startTimer();
		}
	}

	this.On = function() {
		_hideAllMenus();

		this.img.src = this.img.getAttribute('onSrc');

		if(this.menudiv) {
			this.menudiv.style.left = ( getLeft(this.img) + 0 ) + 'px';
			this.menudiv.style.top = ( getTop(this.img) + this.img.offsetHeight -1 ) + 'px';
			this.menudiv.style.display = 'block';
		}
	}

	this.Off = function() {
		this.clearTimer();

		this.img.src = this.img.getAttribute('offSrc');

		if(this.menudiv) {
			this.menudiv.style.display = 'none';
		}

		this.subMenusOff();
	}

	this.subMenusOff = function(that) {
		/*
		for(var i in this.subMenuDivs) {
			if(that && that.id == this.subMenuDivs[i].id) continue; // don't hide the submenu that triggered this
			this.subMenuDivs[i].style.display = 'none';
		}
		*/
	}

	this.clearTimer = function() {
		clearTimeout(this.timer);
	}

	this.startTimer = function() {
		this.clearTimer();
		this.timer = setTimeout('window._menus['+this.index+'].Off();', 1000);
	}

	this.getSubMenuDiv = function(k) {
		if(!this.subMenuDivs[k]) {
			this.subMenuDivs[k] = document.getElementById('submenu['+k+']');
		}
		return (this.subMenuDivs[k]) ? this.subMenuDivs[k] : null;
	}


	this.showSubMenu = function(that) {
		var k = that.childNodes[0].getAttribute('showsubmenu');

		if(!k) return;
		var div = this.getSubMenuDiv(k);
		if(div) {
			div.style.left = ( getLeft(that) + that.offsetWidth -5 ) + 'px';
			div.style.top = ( getTop(that) + 5 ) + 'px';
			div.style.display = 'block';
		}
	}

	this._crumbpath = function(href) {
		var ret = null;

		var crumb1 = new Object();
		crumb1.title = this.a.childNodes[0].getAttribute('alt');
		crumb1.href = this.a.href;

		if(href_to_filename(this.a.href) == href) {
			ret = new Array(crumb1);

		}
		else if(this.menudiv) {
			var alist = this.menudiv.getElementsByTagName('a');
			one: for(var i=0; i<alist.length; ++i) {
				if(href_to_filename(alist[i].href) == href) {
					var crumb2 = new Object();
					crumb2.title = alist[i].innerHTML;
					crumb2.href = alist[i].href;
					ret = new Array(crumb2, crumb1);
					break one;
				}
				else if(alist[i].getAttribute('showsubmenu')) {
					var alist2 = this.subMenuDivs[alist[i].getAttribute('showsubmenu')].getElementsByTagName('a');
					for(var ii=0; ii<alist2.length; ++ii) {
						if(href_to_filename(alist2[ii].href) == href) {
							var crumb2 = new Object();
							crumb2.title = alist[i].innerHTML;
							crumb2.href = alist[i].href;

							var crumb3 = new Object();
							crumb3.title = alist2[ii].innerHTML;
							crumb3.href = alist2[ii].href;

							ret = new Array(crumb3, crumb2, crumb1);
							break one;
						}
					}
				}
			}


		}

		return ret;
	}

	this.init();
}

function _hideAllMenus() {
	for(var i=0; i<window._menus.length; ++i) {
		window._menus[i].Off();
	}
}


function sideMenuInit() {
	var container = document.getElementById('exp_menu_div');
	if(!container) return;

	var divmainmenu = document.getElementById('divmainmenu');
	var menus = new Array();

	//var curpage = document.location.href.replace(/.*\/([^\/]*?)(\?.*)?$/, '$1');
	//curpage = curpage.replace(/\.[^\.]+$/, '');

	var curpage = document.location.href.replace(/.*\/([^\/]*?)$/, '$1');


	var alist = divmainmenu.getElementsByTagName('a');
	for(var i=0; i<alist.length; ++i) {
		var m = new Object();
		m.title = alist[i].getAttribute('title');
		m.href = alist[i].href;
		m.showmenu = alist[i].getAttribute('showmenu');
		m.submenus = new Array();
		m.expanded = false;


		if(m.showmenu) {
			var sm = document.getElementById('mainmenu['+m.showmenu+']');
			if(sm) {
				var subalist = sm.getElementsByTagName('a');
				for(var n=0; n<subalist.length; ++n) {
					var sub = new Object();
					sub.title = subalist[n].innerHTML;
					sub.href = subalist[n].href;
					m.submenus.push(sub);
				}
			}
		}

		if(m.href.indexOf(curpage) > -1) {
			m.expanded = true;
			m.isCurPage = true;
		} else {
			for( var n=0; n<m.submenus.length; ++n) {
				if(m.submenus[n].href.indexOf(curpage) > -1) {
					m.submenus[n].isCurPage = true;
					m.expanded = true;
					break;
				}
			}
		}


		menus.push(m);
	}


	var buf = '<table  width="100%" cellpadding="0" cellspacing="0">';

	for(var i=0; i<menus.length; ++i) {
		if(!menus[i].expanded || !menus[i].submenus.length) continue;

		buf += '<tr><td style="font-weight:bold; white-space:nowrap;"><a href="'+menus[i].href+'">'+menus[i].title+'</a></td></tr>';

//		if(menus[i].expanded && menus[i].submenus.length) {
//			for(var n=0; n<menus[i].submenus.length; ++n) {
//				var style = (menus[i].submenus[n].isCurPage) ? 'text-decoration:underline;' : '';
//				buf += '<tr><td style="padding-left:6px; white-space:wrap; font-size:11px;">&middot; <a style="font-weight:normal;'+style+'" href="'+menus[i].submenus[n].href+'">'+menus[i].submenus[n].title+'</a></td></tr>';
//			}
//		}

		if(menus[i].expanded && menus[i].submenus.length) {
			buf += '<tr><td style="font-size:11px;"><ul style="padding:0px; margin:0px; list-style-type:none;">';

			for(var n=0; n<menus[i].submenus.length; ++n) {
				var style = (menus[i].submenus[n].isCurPage) ? 'text-decoration:underline;' : '';

				if(menus[i].submenus[n].href) buf += '<li style="margin-left:8px;">&middot; <a style="font-weight:normal;'+style+'" href="'+menus[i].submenus[n].href+'">'+menus[i].submenus[n].title+'</a></li>';
				else buf += '<li><br><b>'+menus[i].submenus[n].title+'</b></li>';
			}

			buf += '</ul></td></tr>';


		}

	}



	buf += '</table>';


	container.innerHTML = buf;
}



