function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function preparePopups() {
	if (!document.getElementsByTagName) return false;
	var lnks = document.getElementsByTagName("a");
	for (var i=0; i<lnks.length; i++)
	{
		if(lnks[i].className.indexOf("popup") != -1)
		{
			lnks[i].onclick = function() {
				popUp(this.getAttribute("href"));
				return false;
			}
		}
	}
}
/* opens a new window durrr */
function popUp(winURL) {
  window.open(winURL);
}

addLoadEvent(preparePopups);

function focusLabels()
{
	if(!document.getElementsByTagName) return false;
	var labels = document.getElementsByTagName("label");
	for(var i=0; i < labels.length; i++)
	{
		if(!labels[i].getAttribute("for")) continue;
		labels[i].onclick = function()
		{
			var id = this.getAttribute("for");
			if(!document.getElementById(id)) return false;
			var element = document.getElementById(id);
			element.focus();
		}
	}
}

function prepareForms()
{
	for(var i=0; i<document.forms.length; i++)
	{
		var thisform = document.forms[i];
		thisform.onsubmit = function()
		{
			return validateForm(this);
		}
	}
}

function isFilled(field)
{
	if(field.value.length < 1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isEmail(field)
{
	if(field.value.indexOf("@") == -1 || field.value.indexOf(".") == -1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isRadio(field)
{
		if (field.checked) {
			return true;
		}
		return false;
}


function validateForm(whichform)
{
	for(var i=0; i<whichform.elements.length; i++)
	{
		var element = whichform.elements[i];
		if(element.className.indexOf("radio") != -1)
		{
			if(!isRadio(element))
			{
				alert("Please select one "+element.id+" field.");
				return false;
			}
		}
		if(element.className.indexOf("required") != -1)
		{
			if(!isFilled(element))
			{
				alert("Please fill in the "+element.id+" field.");
				return false;
			}
		}
		if(element.className.indexOf("email") != -1)
		{
			if(!isEmail(element))
			{
				alert("The "+element.name+" field must be a valid email address");
				return false;
			}
		}
	}
	return true;
}

addLoadEvent(focusLabels);
addLoadEvent(prepareForms);
