function listenEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
	obj.addEventListener(evType, fn, false); 
	return true; 
	} else if (obj.attachEvent){ 
	var r = obj.attachEvent("on"+evType, fn); 
	return r; 
	} else {
	return false; 
	} 
}

function CheckMandatory(daField,ElNum,daFieldType,MustEqual) {
	if ( MustEqual === undefined ) {
	MustEqual='';
	}
	if(daFieldType=="string") {
		if($(daField).value=="") {
		ShowCross(ElNum);
		}
		else {
			if(MustEqual!='') {
				if($(daField).value != $(MustEqual).value) {
				ShowCross(ElNum);
				}
				else {
				ShowTick(ElNum);
				}
			}
			else {
			ShowTick(ElNum);
			}
		}
	}
	if(daFieldType=="url") {
		var RegExp = /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i;
		if(!RegExp.test($(daField).value)) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="email") {
		//if(!TestEmail($(daField).value)) {
		var RegExp=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
		if(!RegExp.test($(daField).value)) {
		ShowCross(ElNum);
		}
		else {
			if(MustEqual!='') {
				if($(daField).value != $('#'+MustEqual).val()) {
				ShowCross(ElNum);
				}
				else {
				ShowTick(ElNum);
				}
			}
			else {
			ShowTick(ElNum);
			}
		}
	}
	if(daFieldType=="number") {
		var RegExp = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
		//if(isNaN($(daField).value) || $(daField).value=="") {
		if(!RegExp.test($(daField).value)) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="time") {
		var RegExp = /^([0-9]{1,2})(:{0,1})([0-5]{0,1})([0-9]{0,1})$/;
		if(!RegExp.test($(daField).value)) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="seconds") {
		var RegExp = /^([0-6]{1})([0-9]{1})$/;
		if(isNaN($(daField).value) || $(daField).value > 60) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="minutes") {
		var RegExp = /^([0-12]{0,1})([0-2]{0,1})$/;
		//if(!RegExp.test($(daField).value)) {
		if(isNaN($(daField).value) || $(daField).value>12) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="postcode") {
		if(isNaN($(daField).value) || $(daField).value.length<3) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="phone") {
		var RegExp = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
		if(!RegExp.test($(daField).value.replace(/ /g,"")) || $(daField).value.length < 10) {
		//if(isNaN($(daField).value) || $(daField).value.length < 10) {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="mobile") {
		if($(daField).value!="") {
			var RegExp = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/;
			if(!RegExp.test($(daField).value.replace(/ /g,"")) || $(daField).value.length < 10) {
			ShowCross(ElNum);
			}
			else {
			ShowTick(ElNum);
			}
		}
		else {
		ResetField(daField);
		}
	}
	if(daFieldType=="select") {
		if($(daField).value=="") {
		ShowCross(ElNum);
		}
		else {
		ShowTick(ElNum);
		}
	}
	if(daFieldType=="radio") {
		var FieldName=$(daField).name;
		if(MM_findObj(FieldName).length>0) {
			var Missed=true;
			for(x=0;x<MM_findObj(FieldName).length;x++) {	
				if(MM_findObj(FieldName)[x].checked==true) {
				Missed=false;
				}
			}
			if(Missed==true) {
			ShowCross(ElNum);
			}
			else {
			ShowTick(ElNum);
			}
		}
	}
	if(daFieldType=="checkbox") {
		var FieldName=$(daField).name;
		var Missed=true;
		if(MM_findObj($(daField).name).length>0) {
			for(x=0;x<MM_findObj(FieldName).length;x++) {
				if(MM_findObj(FieldName)[x].checked==true) {
				Missed=false;
				}
			}
		}
		else {
			if(MM_findObj($(daField).name).checked==true) {
			Missed=false;
			}
		}
			if(Missed==true) {
			ShowCross(ElNum);
			}
			else {
			ShowTick(ElNum);
			}
	}
}

function ResetField(ElNum) {
	$('em'+ElNum).style.backgroundImage="none";
}

function ShowTick(ElNum) {
//alert(ElNum);
$('em'+ElNum).style.backgroundImage="url('images/ico_tick.gif')";
}

function ShowCross(ElNum) {
var myFx = new Fx.Tween('em'+ElNum);
myFx.set('background-image', 'url(images/ico_missing.gif)');
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function TestEmail(e) {
	if(e) {
	p = e.indexOf('@');
	s = e.indexOf(';');
	d = e.lastIndexOf('.');
		if (p<1 || p==(e.length-1) || d<p || d==(e.length-1) || s>-1) {
		return false;
		}
	return true;
	}
return false;
}

function RemoveJunk(El,DataType) {
var V = El.value;
	if(DataType=="int") {
		if (/[^0-9\.]/g.test(V)) {
		El.value = V.replace(/[^0-9\.]/g, '');
		}
	}
	else if(DataType=="string") {
		if (/[^a-zA-Z\.]/g.test(V)) {
		El.value = V.replace(/[^a-zA-Z\.]/g, '');
		}
	}
	else if(DataType=="stringint") {
		if (/[^a-zA-Z0-9]/g.test(V)) {
		El.value = V.replace(/[^a-zA-Z0-9]/g, '');
		}
	}
	else if(DataType=="username") {
		if (/[^a-zA-Z0-9_\-]/g.test(V)) {
		El.value = V.replace(/[^a-zA-Z0-9_\-]/g, '');
		}
	}
	else if(DataType=="password") {
		if (/[^a-zA-Z0-9_!\$\.]/g.test(V)) {
		El.value = V.replace(/[^a-zA-Z0-9_!\$\.]/g, '');
		}
	}
	else if(DataType=="amount") {
		if (/[^0-9\.\$]/g.test(V)) {
		El.value = V.replace(/[^0-9\.\$]/g, '');
		}
	}
	else if(DataType=="nofloat") {
		if (/[^0-9\$]/g.test(V)) {
		alert('Sorry, only whole dollar amounts are permitted.');
		El.value = V.replace(/[^0-9\$]/g, '');
		}
	}
}

function CheckIsSelected(ElName,daForm) {
	var Len=$(daForm).elements.length;
	var IsaGo=false;
	for(x=0;x<Len;x++) {
		if($(daForm).elements[x].name==ElName) {
			if($(daForm).elements[x].checked==true) {
			var IsaGo=true;
			}
		}
	}
	
	if(IsaGo==true) {
	return true;
	}
	else {
	return false;
	}
}

var CheckedStatus="off";

function doSelectAll(ElName,daForm) {
	var Len=$(daForm).elements.length;
	for(x=0;x<Len;x++) {
		if($(daForm).elements[x].name==ElName) {
			if(CheckedStatus=="off") {
				if($(daForm).elements[x].checked==false) {
				$(daForm).elements[x].checked=true;
				}			
			}
			else {
			$(daForm).elements[x].checked=false;
			}
		}
	}
	if(CheckedStatus=="off") {
	CheckedStatus="on";
	}
	else {
	CheckedStatus="off";
	}
}