// library.js - helper functions

/* addEvent( element [object], type [string], function_to_call [function], capture_event [bool] ) */
function addEvent(elem, evType, func, useCapture) {
	if(typeof elem.addEventListener != 'undefined') {
		elem.addEventListener(evType, func, useCapture);
		return true;
	} else if( typeof elem.attachEvent != 'undefined' ) {
		var r = elem.attachEvent("on" + evType, func);
		return r;
	} else {
		var onEvt = "on" + evType;
		var elOldEvFuncs = elem[onEvt];
		if( typeof elem[onEvt] != 'function' ) {
			elem[onEvt] = func;
		} else {
			elem[onEvt] = function() { elOldEvFuncs(); func(); }
		}
	}
}

/* browser-agnostic adding of onload events */
function addLoadEvent(x) {
	var y = window;
	if(typeof document.addEventListener != 'undefined' && window.addEventListener == 'undefined') {
		// this bit is for old Opera browsers who treat window and document differently */
		y = document;
	}
	addEvent(y,"load",x,false);
}

/**
 * X-browser DOM object retrieval
 *
 * @param identifier 	the identifier of the object being requested
 */
function getObj(identifier)
{
	if (document.getElementById)
	{
		return document.getElementById(identifier);
	}
	else if (document.all)
	{
		return document.all[identifier];
	}
	else if (document.layers)
	{
		return document.layers[identifier];
	}
}

function checkAll(checkAll)
{
	theCheckAll = getObj(checkAll.id);
	theForm = getObj(theCheckAll.form.id);

	for (var i = 0; i < theForm.elements.length; i++)
	{
		if (theForm.elements[i].type == 'checkbox')
		{
			if (theCheckAll.checked == true)
				theForm.elements[i].checked = true;
			else
				theForm.elements[i].checked = false;
		}
	}
}

function testEmail(bo, testPassword)
{
	if (!validEmail(bo))
	{
		alert("Please make sure your email address is valid");
		return false;
	}

	if (testPassword && getObj('loginPass').value == "")
	{
		alert("Please provide your password");
		return false;
	}
	return true;
}

function comparePasswords()
{
	var pass1 = getObj('password1').value;
	var pass2 = getObj('password2').value;

	if (pass1 != pass2)
	{
		alert("Please make sure your passwords match");
		return false;
	}
	else
		return true;
}

function validateDeliveryOption()
{
	var i;
	var checked = false;
	var delivery_options = document.getElementsByName('delivery_option');

	for (i = 0; i < delivery_options.length; i++)
	{
		if (delivery_options[i].checked == true)
		{
			checked = true;
			break;
		}
	}

	if (checked == false)
		alert('Please select a delivery option!');

	return checked;
}

function getParameterValue(ParameterName)
{
	if (location.href.indexOf('?') != -1)
	{
		var queryString = location.href.substr(location.href.indexOf('?') + 1);

		var locationArray = queryString.split('&');

		for (var i = 0; i < locationArray.length; i++)
		{
			var parameterArray = locationArray[i].split('=');
			var key = parameterArray[0];
			var value = parameterArray[1];

			if (key == ParameterName)
			{
				return value;
			}
		}
	}

	return false;
}