Event.observe(window, 'load', function () {
//	app_values.nav_item_img_ids.each(function (key) {
//		new MouseOver(key, '/images/'+key+'_over.png');
//	});
	if ($('email_form_link')) {
		$('email_form_link').observe('click', function (evt) {
			$('email_form').toggle();
		});
	}
	if ($('login_form_link')) {
		$('login_form_link').observe('click', function (evt) {
			$('login_form').toggle();
		});
	}
	var original_elem = $$('#nav li.active')[0];
	$$('#nav li').each(function (elem) {
		elem.observe('mouseover', function (evt) {
			$$('#nav li').each(function (elem2) {
				if (elem != elem2) {
					elem2.removeClassName('active');
				}
			});
			elem.addClassName('active');
		});
	});
	$$('#nav li, #nav a, #nav img').each(function (elem) {
		elem.observe('mouseover', function (evt) {
			out = false;
		});
	});
	$$('#nav')[0].observe('mouseout', function (evt) {
		out = true;
	});
	var out = true;
	function maybeRevert() {
		if (out == true) {
			$$('#nav li').each(function (elem2) {
				if (!original_elem || original_elem != elem2) {
					elem2.removeClassName('active');
				}
			});
			if (original_elem) {
				original_elem.addClassName('active');
			}
		}
	}
	new PeriodicalExecuter(maybeRevert, .3);
	if ($('feedback_items')) {

		// If it's just a single "message" with no links, hide it after a bit
		if ($$('#feedback_items p').length == 1 && $$('#feedback_items p.page_message').length == 1 && $$('#feedback_items p a').length == 0) {
			setTimeout('hideFeedbackItems()', 3000);
		}
		$$('#feedback_items p').each(function (elem) {
		});
	}

	var default_values = new Array();
	default_values['name'] = 'Full name';
	default_values['email'] = 'E-mail address';
	default_values['message'] = 'Message';
	var default_class_name = 'default_form_field';
	['name', 'email', 'message'].each(function (key) {
			var elem = $('email_form_'+key);
			if (!elem.present()) {
				elem.value = default_values[key];
				elem.addClassName(default_class_name);
			}
		Event.observe('email_form_'+key, 'blur', function () {
			var elem = $('email_form_'+key);
			if (!elem.present()) {
				elem.value = default_values[key];
				elem.addClassName(default_class_name);
			}
		});
		Event.observe('email_form_'+key, 'focus', function () {
			var elem = $('email_form_'+key);
			if (elem.hasClassName(default_class_name)) {
				elem.value = '';
				elem.removeClassName(default_class_name);
			}
		});
	});

	if (app_values.flash_cart_link) {
		Effect.Pulsate('cartlink', { pulses: 3, duration: 1.5, from: 0.2 });
	}
	if (app_values.flash_feedback && !app_values.flash_cart_link) {
		Effect.Pulsate('feedback_items', { pulses: 1, duration: 1, from: 0.5 });
	}

	$$('img').each(function (elem) {
		if (elem.readAttribute('hspace') != null) {
			elem.setStyle({
				marginLeft: elem.readAttribute('hspace')+'px',
				marginRight: elem.readAttribute('hspace')+'px'
			});
			elem.writeAttribute('hspace', '0');
		}
		if (elem.readAttribute('vspace') != null) {
			elem.setStyle({
				marginTop: elem.readAttribute('vspace')+'px',
				marginBottom: elem.readAttribute('vspace')+'px'
			});
			elem.writeAttribute('vspace', '0');
		}
	});



});

function hideFeedbackItems() {
	Effect.SlideUp('feedback_items', { duration: .5 });
}

function submitForm(form) {
	$(form).submit();
}

function toggle_blind(elem, duration) {
	elem = $(elem);
	if (elem.style.display === 'none') {
		Effect.BlindDown(elem, { duration: duration });
	} else {
		Effect.BlindUp(elem, { duration: duration });
	}
}

function toggle_slide(elem, duration) {
	elem = $(elem);
	if (elem.style.display === 'none') {
		Effect.SlideDown(elem, { duration: duration });
	} else {
		Effect.SlideUp(elem, { duration: duration });
	}
}

function extract_integer(string) {

	// Trim
	string = string.replace(/^\s+|\s+$/g, '');

	// Drop a period and everything after it
	string = string.split('.')[0];

	// Is it a negative number?
	var sign = string.substr(0, 1) === '-'? '-' : '';

	// Take out everything except numbers
	string = string.replace(/[^0-9]/g, '');

	// Trim zeros off of the beginning of the string
	string = string.replace(/^0+/g, '');

	// Return
	return parseInt(sign+string);
}

function extract_float(string) {

	// Remove everything but the needed parts
	string = string.replace(/[^0-9-.]/g, '');

	// Is it a negative number?
	var sign = string.substr(0, 1) === '-'? '-' : '';

	// Remove minus signs
	string = string.replace(/-/g, '');

	// Remove duplicate periods
	string = string.replace(/\.+/g, '.');

	// Trim periods
	string = string.replace(/^\.+|\.+$/g, '');

	// Only one period
	string = string.split('.')[0]+'.'+string.split('.')[1];

	// Trim zeros off of the beginning of the string
	string = string.replace(/^0+/g, '');

	// Return
	return parseFloat(sign+string);
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '');
};
String.prototype.rtrim = function() {
	return this.replace(/^|\s+$/g, '');
};
String.prototype.ltrim = function() {
	return this.replace(/^\s+|$/g, '');
};