
function doOnLoad() {
	mainMenuInit();
}


function tell_a_friend_link(a) {
	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 += 'title=' + escape(title);
	a.href += '&href=' + escape(document.location.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;
}



function mainMenuInit() {
	var tbl = document.getElementById('tablemainmenu');
	if(tbl) {
		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.substr(0, src.indexOf('images/')+7) + 'rollovers/' + src.substr(src.indexOf('images/')+7);
		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) + 2 ) + 'px';
			this.menudiv.style.top = ( getTop(this.img) + this.img.offsetHeight + 3 ) + '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;
						}
					}
				}
			}


//			for(var i in this.subMenuDivs) {
//				var tmp = this.subMenuDivs[i].getElementsByTagName('a');
//				for(var ii=0; ii<tmp.length; ++ii) {
//					alert(ii);
//
//					if(href_to_filename(tmp[ii].href) == href) {
//						alert(href);
//						break;
//					}
//				}
//			}
		}

		return ret;
	}

	this.init();
}

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


function addCrumb(tit, href) {
	if(!window._addedcrumbs) window._addedcrumbs = new Array();
	var i = window._addedcrumbs.length;

	window._addedcrumbs[i] = new Array();
	window._addedcrumbs[i].title = tit;
	window._addedcrumbs[i].href = href;

}

function write_breadcrumbs() {
	var div = document.getElementById('breadcrumbs');
	if(!div) return;

	var curhref = href_to_filename(document.location.href);
	var path;
	for(var i=0; i<window._menus.length; ++i) {
		path = window._menus[i]._crumbpath(curhref);
		if(path) break;
	}
	if(path) {
		p = new Array();
		p.title = 'Home';
		p.href = '/';
		path[path.length] = p;
		path = path.reverse();

		if(window._addedcrumbs) {
			for(var i=0; i<window._addedcrumbs.length; ++i) {
				path[path.length] = window._addedcrumbs[i];
			}
		}

		var buf = '';
		for(var i=0; i<path.length-1; ++i) {
			buf += '<a href="'+path[i].href+'" title="'+path[i].title+'">'+path[i].title+'</a>';
			buf += ' &raquo; ';
		}
		buf += path[path.length-1].title;
		div.innerHTML = buf;
		if(buf) {
			div.style.display = 'block';
		}
	}

}


function href_to_filename(href) {
	href = href.replace(/^https?:\/\/[^\/]*/, '');
	href = href.replace(/\?.*$/, '');

	if(href.match(/^\/shop\//)) {
		if(href.match(/category_\d+/)) {

		} else {
			href = '/shop/';
		}
	}
	return href;
}