

window.valid_header_images = [
	'napa-valley',
	'bordeaux',
	'special-offers',
	'reserve',
	'about-us',
	'contact-us',
	'duras-dordogne'
];

function doOnLoad() {

	// tell a friend link
	tell_a_friend_link();

	// load hover images
	loadRolloverImages();

	// preload images


}

function tell_a_friend_link() {
	var a = document.getElementById('tell_a_friend_link');
	if(!a) return;

	//var title = document.title.substr(0, document.title.indexOf(' - '));
	var title = document.title;

	if(a.href.indexOf('?') > -1) a.href += '&';
	else a.href += '?';
	a.href += 'page_title=' + escape(title);
}

function doPostBodyLoad() {
	if(window.titlegraphic == '(none)' || window.titlegraphic == '') window.titlegraphic = '';

	// load menus
	window.menus = new Array();
	var d = document.getElementsByTagName('div');
	for(var i=0; i<d.length; ++i) {
		if(d[i].className == 'submenu' && d[i].id.substr(0,7) == 'submenu') {
			window.menus[d[i].id] = new MainMenu(d[i]);
			window.menus[d[i].id].init();
		}
	}

	var f = href_to_filename(document.location.href);
	var currentmenu = getcurrentmenu(f);
	var tit = document.getElementById('innermenutitle');
	var itm = document.getElementById('innermenuitems');

	if(currentmenu && tit) {

		var t = '';
		if(window.titlegraphic) t = window.titlegraphic;
		else t = 'nav-'+currentmenu.name+'.gif';

		tit.innerHTML = '<img src="/assets/images/'+t+'" width="257" height="29">';

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

		for(var i=0; i<currentmenu.menuitems.length; ++i) {
			buf += '<tr><td nowrap onmouseover="this.className=\'over\';" onmouseout="this.className=\'\';" onclick="document.location=\''+currentmenu.menuitems[i].href+'\';">' + currentmenu.menuitems[i].title + '</td></tr>';
		}

		buf += '</table>';

		if(itm) itm.innerHTML = buf;
	} else if(tit) {
		var p = f.replace(/\/([^\.]*)\..*$/, '$1');
		var t = '';
		if(window.titlegraphic) t = window.titlegraphic;
		else {
			for(var i=0; i<window.valid_header_images.length; ++i) {
				if(window.valid_header_images[i] == p) {
					t = p;
					break;
				}
			}
			if(t == '') {
				if(document.location.href.indexOf('/members/') > -1) {
					t = 'nav-partners.gif';
				}
				else t = 'xparent.gif';

			}
			else t = 'nav-' + t + '.gif';
		}

		tit.innerHTML = '<img src="/assets/images/'+t+'" width="257" height="29">';
	}

	// load breadcrumbs
	load_breadcrumbs();
}

function load_breadcrumbs() {
	var div = document.getElementById('breadcrumbs');


	var bits = new Array();
	bits[bits.length] = '<a href="/">Home</a>';

	var f = href_to_filename(document.location.href);
	var currentmenu = getcurrentmenu(f);

	if(currentmenu) {
		bits[bits.length] = '<a href="'+currentmenu.href+'">' +currentmenu.title+ '</a>';

		var currentitem = currentmenu.getcurrentitem(f);

		if(currentitem) {
			bits[bits.length] = '<a href="'+currentitem.href+'">' +currentitem.title+ '</a>';
		}
	} else {
		var pagetitle = document.title.substr(0, document.title.indexOf('-'));

		if(document.location.href.indexOf('/members/') > -1) {
			//var qs = document.location.href.substr(document.location.href.indexOf('?'));
			if(document.location.href.indexOf('request=welcome') == -1) {
				bits[bits.length] = '<a href="/members/">Partners</a>';
			}
		}

		switch(f) {
			case '':

				break;


			default:
				bits[bits.length] = '<a href="'+f+'">'+pagetitle+'</a>';
				break;
		}
	}


	var buf = bits.join(' &nbsp;/&nbsp; ');
	if(div) div.innerHTML = buf;
}

function getcurrentmenu(f) {
	for(var m in window.menus) {
		if(window.menus[m].findfile) {
			var itm = window.menus[m].findfile(f);
			if(itm) return itm;
		}
	}
}

function hideallmenus() {
	for(var m in window.menus) {
		if(window.menus[m].hidemenu) window.menus[m].hidemenu();
	}
}


function MainMenu(div) {
	this.div = div;
	this.id = this.div.id;
	this.name = this.id.substr(8);
	this.title = this.div.getAttribute('title');

	this.menuitems = new Array();

	this.init = function() {
		var trigger = document.getElementById('mainmenu-' + this.name)
		this.href = trigger.getAttribute('href');
		this.filename = href_to_filename(this.href);

		trigger.setAttribute('menuid', this.id);
		trigger.onmouseover = function() {
			window.menus[this.getAttribute('menuid')].showmenu(this);
		}
		trigger.onmouseout = function() {
			window.menus[this.getAttribute('menuid')].starthide(this);
		}


		var a = this.div.getElementsByTagName('a');
		for(var i=0; i<a.length; ++i) {
			this.menuitems[this.menuitems.length] = new this.MenuItem(this, a[i]);
		}

		var t = this.div.getElementsByTagName('td');
		for(var i=0; i<t.length; ++i) {
			t[i].setAttribute('menuid', this.id);
			t[i].onmouseover = function() {
				window.menus[this.getAttribute('menuid')].stophide();
				this.className = 'over';
			}
			t[i].onmouseout = function() {
				window.menus[this.getAttribute('menuid')].starthide();
				this.className = '';
			}
		}
	}

	this.findfile = function(filename) {
		if(this.filename == filename) return this;
		for(var i=0; i<this.menuitems.length; ++i) {
			if(this.menuitems[i].filename == filename) {
				return this;
			}
		}
	}

	this.getcurrentitem = function(filename) {
		for(var i=0; i<this.menuitems.length; ++i) {
			if(this.menuitems[i].filename == filename) {
				return this.menuitems[i];
			}
		}
		return false;
	}

	this.getcurrentitemtitle = function(filename) {
		var that = tis.getcurrentitem(filename);
		if(that) {
			return that.title;
		} else {
			return this.title;
		}
	}

	this.showmenu = function(that) {
		hideallmenus();

		var top = getTop(that) + 15;
		var left = getLeft(that);

		this.div.style.top = top + 'px';
		this.div.style.left = left + 'px';
		this.div.style.visibility = 'visible';

	}

	this.starthide = function() {
		this.stophide();
		this.timer = setTimeout('window.menus[\''+this.id+'\'].hidemenu();', 1000);
	}

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

	this.hidemenu = function() {
		this.stophide();
		this.div.style.visibility = 'hidden';
	}

	this.MenuItem = function(parent, a) {
		this.parent = parent;
		this.a = a;
		this.title = this.a.innerHTML;
		this.href = this.a.getAttribute('href');
		this.filename = href_to_filename(this.href);
	}
}



function href_to_filename(href) {
	href = href.replace(/^https?:\/\/[^\/]*/, '');
	if(href.match(/^\/shop\//)) {
		if(href.match(/category_\d+/)) {

		} else {
			href = '/shop/';
		}
	}
	else if(href.indexOf('?') > -1) {
		href = href.substr(0, href.indexOf('?'));

	}
	return href;
}



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;
}








