/* drop down menu */
function f_initMenu() {
	$$('#nav td').each(function (e_cell) {
		var a_anchors = e_cell.getElementsByTagName('a');
		if (!a_anchors.length)
			return;
		e_cell.observe('mouseover', function () { f_showSubmenu(this); });
		e_cell.observe('mouseout', function () { window.e_menuTimer = setTimeout('f_showSubmenu()', 250); 	});
	});
}

function f_showSubmenu (e_trigger) {
	if (window.e_menuTimer) {
		clearTimeout(e_menuTimer);
		e_menuTimer = null;
	}
	if (window.e_activeTrigger) {
		e_activeTrigger.removeClassName('over');
		e_activeTrigger = null;
	}
	if (window.e_activeSubmenu) {
		e_activeSubmenu.style.visibility = '';
		e_activeSubmenu = null;
	}
	if (e_trigger) {
		e_trigger.addClassName('over');
		window.e_activeTrigger = e_trigger;
		var a_submenu = e_trigger.getElementsByTagName('ul');
		if (!a_submenu.length) return;
		window.e_activeSubmenu = e_submenu = a_submenu.item(0);
		e_submenu.style.visibility = 'visible';
	}
}
document.observe("dom:loaded", f_initMenu);

function f_validateSignup(e_form) {
	if (!e_form) return;
	var s_email = e_form.elements['email_address'].value;
	if (s_email == '' || s_email == 'Enter Email') {
		alert('Email is required field');
		return false;
	}
	var s_name = e_form.elements['first_name'].value;
	if (s_name == '' || s_name == 'Enter Name') {
		alert('Name is required field');
		return false;
	}
	if (!s_email.match(/^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/)) {
		alert('Invalid format of email address');
		return false;
	}
	return true;
}

function f_showBaskMessage (n_step) {
	var e_elem = $('cartMessage');
	var n_width = 310;

	if (n_step == 0) {
		e_elem.style.width = n_width + 'px';
		window.e_baskTimer = window.setTimeout('f_hideBaskMessage()', 1e4);
		return;
	}

	if (!n_step) {
		n_step = Math.ceil(Math.sqrt(n_width));
		e_elem.style.width = (n_width - Math.pow(n_step, 2)) + 'px';
		e_elem.style.display = 'block';
	}
	else
		e_elem.style.width = (n_width - Math.pow(n_step, 2)) + 'px';

	window.setTimeout('f_showBaskMessage(' + (n_step - 1) + ')', 20);
}
function f_hideBaskMessage(n_step) {
	var e_elem = $('cartMessage');
	var n_width = 310;

	if (!n_step)
		n_step = 1;

	var n_clippedWidth = n_width - Math.pow(n_step, 2);
	if (n_clippedWidth <= 0) {
		e_elem.style.width = 0 + 'px';
		e_elem.style.display = 'none';
		return;
	}
	e_elem.style.width = n_clippedWidth + 'px';
	window.setTimeout('f_hideBaskMessage(' + (n_step + 1) + ')', 20);
}
function f_keepBaskMessage() {
	if (!window.e_baskTimer) return;
	window.clearTimeout(window.e_baskTimer);
	window.e_baskTimer = null;
}
function f_formatMoney (n_value) {
	// validate input
	if (isNaN(Number(n_value)))
		return 'ERROR';

	// save the sign
	var b_negative = Boolean(n_value < 0);
	n_value = Math.abs(n_value);

	// round to 1/100 precision, add ending zeroes if needed
	var n_frac = Math.round(n_value * 1e2) % 1e2;
	var s_result = String((n_frac < 10 ? '0' : '') + n_frac + '00').substring(0, 2);
	
	// separate all orders
	var b_first = true;
	var s_subresult;
	while (n_value >= 1) {
		s_subresult = (n_value >= 1e3 ? '00' : '') + Math.floor(n_value % 1e3);
		s_result = s_subresult.slice(-3) + (b_first ? '.' : ',') +  s_result;
		b_first = false;
		n_value = n_value / 1e3;
	}
	// add at least one integer digit
	if (b_first)
		s_result = '0.' +  s_result;

	// apply formatting and return
	return b_negative
		? '($' + s_result + ')'
		: '$' + s_result;
}


