
window.addEvent('domready', function(){
	doOnDomReady();
});
window.addEvent('load', function(){
	doOnLoad();
});


function doOnLoad() {


}

function doOnDomReady() {


	loadRolloverImages();
	
	initMenu();
}


function hasFlash() {
	window.bHasFlash = false;

	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if ( plugin ) window.bHasFlash = true;
	else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) {
		document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
		document.write('on error resume next\nwindow.bHasFlash = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & 6)))\n');
		document.write('</SCR' + 'IPT\> \n');
	}

	return window.bHasFlash;
}

/********** tell a friend *************/

function tell_a_friend_link(a) {
	a = $(a);

	OptinFormCancel();
	var f = document.forms['tellafriend'];
	var d = $('divFriend');

	if(d.style.display != 'none') {
		FriendFormCancel();
		return false;
	}


	d.style.overflow = 'hidden';
	d.style.height = '1px';
	d.style.top = ( a.getTop() + a.offsetHeight - 30) + 'px';

	d.style.display = '';
	d.style.left = ( a.getLeft() ) + 'px';

	//var tow = d.scrollWidth;
	var toh = d.scrollHeight;
	var totop = (a.getTop() + a.offsetHeight) - toh - 30;

	new Fx.Styles(d, {
			duration: 300,
			transition: Fx.Transitions.linear,
			onComplete: function() {
				document.forms['tellafriend'].sender_name.focus();
			}
		}
	).start(
		{
	    		height: toh,
	    		top: totop
		}
	);


	return false;
}

function validate_forward_to_a_friend(f) {
	var e = new Errors();

	if(!f.sender_name.value) e.add('Please enter your name.');
	if(!validate_email(f.sender_email.value)) e.add('Please enter your email.');

	if(!f.recipient_name.value) e.add('Please enter your friend\\\'s name.');
	if(!validate_email(f.recipient_email.value)) e.add('Please enter your friend\\\'s email.');


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

function frmFriendSubmit(f) {
	f = document.forms['tellafriend'];

	if(!validate_forward_to_a_friend(f)) return false;

	//var furl = f.getAttribute('action');
	var furl = '/site/~forms/friend';

	var fparams = {
		action: 'tell',
		ajax: 1,
		contact_subscribed: f.contact_subscribed.checked ? 1 : 0,
		title: document.title,
		href: document.location.href,
		sender_name: f.sender_name.value,
		sender_email: f.sender_email.value,
		recipient_name: f.recipient_name.value,
		recipient_email: f.recipient_email.value,
		message: f.message.value

	}

	var ajax = new Ajax(furl,
		{
			method: 'get',
			data: fparams,
			onComplete: frmFriendSaveStep1AjaxResponse
		}
	).request();


	return false;
}

function frmFriendSaveStep1AjaxResponse(response) {
	var f = document.forms['tellafriend'];

	response = parseInt(response);
	var msg = $('divFriendMessage');
	if(response > 0) {
		f.recipient_name.value = '';
		f.recipient_email.value = '';
		msg.innerHTML = '<i>Message sent, you may send another message or press cancel to quit.</i>';
	}
	else {
		msg.innerHTML = '<i style="color:red;">Error sending message. Please try again.</i>';
	}
}


function FriendFormCancel() {
	var divFriend = $('divFriend');
	if(divFriend) divFriend.style.display = 'none';
}
/*********************************/



/************ subscribe ***************/
var OptinGoStep2 = false;

function frmOptinSubmit(f) {
	FriendFormCancel();

	var e = new Errors();
	if(!validate_email(f.email.value)) e.add("Sorry, Invalid Email Address!");
	if(e.alert()) {
		return false;
	}
	if(OptinGoStep2) {
		OptinGoStep2 = false;
		frmOptinSaveStep1(f);
		return false;
	}


	return true;
}

function frmOptinSaveStep1(f) {
	//var furl = f.getAttribute('action');
	var furl = '/site/~forms/insert';

	var fparams = {
		action: 'insert',
		ajax: 1,
		db: f.db.value,
		contact_subscribed: 1,
		recordid: f.recordid.value,
		email: f.email.value
	}


	var ajax = new Ajax(furl,
		{
			method: 'get',
			data: fparams,
			onComplete: frmOptinSaveStep1AjaxResponse
		}
	).request();
}

function frmOptinSaveStep1AjaxResponse(response) {
	response = parseInt(response);
	document.forms['frmOptin'].recordid.value = response;
	OptinShowStep2();
}

function OptinShowStep2() {
	var d = $('divOptinStep2');
	var dinner = $('divOptinStep2inner');
	var sbutton = $('btnOptinStep1Submit');

	d.style.overflow = 'hidden';
	d.style.height = '1px';
	d.style.top = ( sbutton.getTop() + sbutton.offsetHeight - 25) + 'px';

	d.style.display = '';
	d.style.left = ( sbutton.getLeft() + sbutton.offsetWidth - d.offsetWidth ) + 'px';

	//var tow = d.scrollWidth;
	var toh = d.scrollHeight;
	var totop = (sbutton.getTop() + sbutton.offsetHeight) - toh - 25;

	new Fx.Styles(d, {
			duration: 300,
			transition: Fx.Transitions.linear,
			onComplete: function() {

			}
		}
	).start(
		{
	    		height: toh,
	    		top: totop
		}
	);

}

function OptinFormCancel() {
	OptinGoStep2=false;
	$('divOptinStep2').style.display='none';
	document.forms['frmOptin'].recordid.value = 0;
	document.forms['frmOptin'].email.value = 'Enter your email here';
}


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


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(!f.firstname.value) e.add("Sorry, Invalid First Name!");
	if(!f.lastname.value) e.add("Sorry, Invalid Last Name!");
	if(!validate_email(f.email.value)) e.add("Sorry, Invalid Email Address!");

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


function validate_contact(f) {
	var e = new Errors();
	if(!f.firstname.value) e.add("Please enter your first name.");
	if(!f.lastname.value) e.add("Please enter your last name.");
	if(!validate_email(f.email.value)) e.add("Sorry, Invalid Email Address!");
	//if(!f.address.value) e.add("Please enter your address.");
	//if(!f.city.value) e.add("Please enter your city.");
	//if(f.state.selectedIndex <= 0) e.add("Please select your state.");
	//if(!f.zip.value) e.add("Please enter your zip.");
	//if(f.country.selectedIndex <= 0) e.add("Please select your country.");
	//if(!f.comments.value) e.add("Please enter your comments.");

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













var _mainmenutimer = null;

function initMenu() {

	var tblmainmenu = $('mainmenu');
	if(!tblmainmenu) return;
	var lst = tblmainmenu.getElementsByTagName('td');
	for(var i=0; i<lst.length; ++i) {
		var menuname = lst[i].id.substr(9);
		lst[i].setAttribute('menuname', menuname);


		lst[i].onmouseover = function() {
			clearHideSubMenusTimer();
			showSubMenu(this.getAttribute('menuname'));
		}

		lst[i].onmouseout = function() {
			startHideSubMenus();
		}


		var sdiv = $('submenu-'+menuname);
		if(sdiv) {

			sdiv.onmouseover = function() {
				clearHideSubMenusTimer();
			}
			sdiv.onmouseout = function() {
				startHideSubMenus();
			}


			var items = sdiv.getElementsByTagName('td');
			for(var z=0; z<items.length; ++z) {
				items[z].onmouseover = function() {
					this.className = 'hover';
				}
				items[z].onmouseout = function() {
					this.className = '';
				}

				try {
					items[z].childNodes[0].onclick = function() {
						return false;
					}
				} catch(e) {}
				
				items[z].onclick = function() {
					try {
						var t = ( this.childNodes[0].getAttribute('target') ) ? this.childNodes[0].getAttribute('target') : '_self';
						window.open(this.childNodes[0].getAttribute('href'), t);
					} catch(e) {}
				}
			}
		}
	}
}

function showSubMenu(menuname) {
	hideAllSubMenus();

	var m = $('mainmenu-'+menuname);
	if(!m) return;

	var sub = $('submenu-'+menuname);
	if(sub) {

		var o = (navigator.appName.indexOf('Microsoft') != -1) ? 7 : 4;

		sub.style.top = ( m.getTop() + m.offsetHeight ) + 'px';
		sub.style.left = ( m.getLeft() ) + 'px';
		sub.style.display = 'block';
		//sub.style.top = ( m.getTop()  - sub.offsetHeight - o ) + 'px';
	}

}


function hideAllSubMenus() {
	clearHideSubMenusTimer();

	var tblmainmenu = $('mainmenu');

	var lst = tblmainmenu.getElementsByTagName('td');
	for(var i=0; i<lst.length; ++i) {
		doHideSubMenu( lst[i].id.substr(9) );
	}

}


function startHideSubMenus() {
	clearHideSubMenusTimer();
	window._mainmenutimer = setTimeout('hideAllSubMenus();', 1000);
}


function clearHideSubMenusTimer() {
	clearTimeout(window._mainmenutimer);
}

function doHideSubMenu(menuname) {
	var s = $('submenu-'+menuname);
	if(s) s.style.display = 'none';
}



