$(document).ready(init);
function init()
{
	//setup validation
	var elements = $('#EmailForm input');
	for (x=0; x<elements.length; x++)
	{
		if ($(elements.get(x)).attr("required")=="true")
		{
			if (elements.get(x).id == "")
				elements.get(x).id = elements.get(x).name;
			$(elements.get(x)).keyup(function(){checkField(this);});
			$(elements.get(x)).after('<span style="display:none;" class="alert" id="'
									 + elements.get(x).id + 'Required">'
									 + $(elements.get(x)).attr("requiredtext") + '</span>');
		}
		if ($(elements.get(x)).attr("regex")!=null)
		{
			if (elements.get(x).id == "")
				elements.get(x).id = elements.get(x).name;
			$(elements.get(x)).keyup(function(){checkField(this);});
			$(elements.get(x)).after('<span style="display:none;" class="alert" id="'
									 + elements.get(x).id + 'Regex">'
									 + $(elements.get(x)).attr("regextext") + '</span>');
		}
	}
	$('form').submit(ValidateAll);	
}

function checkField(field)
{
	var pass = true;
	if ($(field).attr("regex")!=null)
	{
		var pattern = new RegExp($(field).attr("regex"));
		if (!pattern.test($(field).val()))
		{
			$('#' + field.id + 'Regex').show();
			pass=false;
		}
		else
		{
			$('#' + field.id + 'Regex').hide();
		}
	}	
	if ($(field).attr("required")=="true")
	{
		if ($(field).val() == "")
		{
			$('#' + field.id + 'Required').show();
			pass=false;
		}
		else
		{
			$('#' + field.id + 'Required').hide();
		}
	}
	if (pass)
		$(field).removeClass('ErrorField');
	else
		$(field).addClass('ErrorField');
	return pass;
}

function ValidateAll()
{
	var pass = true;
	var elements = $('#EmailForm input');
	for (x=0; x<elements.length; x++)
	{
		if (!checkField(elements.get(x)))
			pass=false;
	}
	return pass;
}

// These apply to multipart forms
var multiX,multiY;
function findPos(obj) {
	if (obj == null)
	{
		alert("YES");
	}
	else
	{
	var curleft = curtop = 0;
	if (obj.offsetParent) {		
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	multiX=curleft;
	multiY=curtop;
	return [curleft,curtop];
	}
}

function change_page(x,w){
	var el=parseFloat(x.parentNode.id),ne;
	if (w=='n'){
		ne=el+1;
	}
	if (w=='p'){
		ne=el-1;
	}
	document.getElementById(el).style.visibility="hidden";
	with(document.getElementById(ne)){
		parentNode.style.height=offsetHeight + "px";
		style.visibility="visible";
		style.position="absolute";
		style.Left=multiX;
		style.Top=multiY;
	}
}
function setvis(){
	var xobj = document.getElementById("1");
	if (xobj == null)
	{
		
	}
	else
	{
	findPos(xobj);
		with (document.getElementById("1")){
			style.visibility="visible";
			style.position="absolute";
			style.Left=multiX;
			style.Top=multiY;
			parentNode.style.height=offsetHeight + "px";
		}
	}
}

window.onload = setvis;