function getObj(name)
{
  if (document.getElementById)
  {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
	this.obj = getObjNN4(document,name);
	this.style = this.obj;
  }
}

function getObjNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}

function emailCheck (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			//alert("Ths username contains invalid characters.");
			return false;
		   }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
		//alert("Ths domain name contains invalid characters.");
		return false;
	   }
	}
	
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.");
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("Destination IP address is invalid!");
				return false;
			   }
		}
		return true;
	}
	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			//alert("The domain name does not seem to be valid.");
			return false;
		   }
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		//alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}
	
	if (len<2) {
		//alert("This address is missing a hostname!");
		return false;
	}
	//alert("Good!");
	return true;
}
var getSignupThanks_ok=false;
var getSignupExtra_ok=false;

function createTr(root,id){
	var tr = document.createElement("tr");
	var tr = document.createElement("tr");
	var td = document.createElement("td");
	var div = document.createElement("div");
	div.setAttribute("display", "none");
	div.setAttribute("id", id);
	td.appendChild(div);
	tr.appendChild(td);
	o = new getObj(root);
	o.obj.appendChild(tr);
	//document.getElementById(root).appendChild(tr);
	new Effect.Fade(id);
}
function initAjax(){
	return;
	createTr("signup_table","info_thanx");
	createTr("signup_table","signup_form_error");
	createTr("signup_table","signup_thanx");
	createTr("signup_table","info_form_error");
	createTr("signup_table","info_form_tr");
	createTr("signup_table","ajax_scratch");
	
	new Ajax.Updater(
		'signup_thanx', 
		'/new_wormtown.com/mohamed/getSignupThanks.php', 
		{script:false, parameters:'', asynchronous:true,onComplete:function (request){getSignupThanks_ok=true;}}
	);
	
	new Ajax.Updater(
		'info_form_tr', 
		'/new_wormtown.com/mohamed/getSignupExtra.php', 
		{script:false, parameters:'', asynchronous:true,onComplete:function (request){getSignupExtra_ok=true;}}
	);
	
}
function showDivs(){
	new Effect.Appear('signup_form_error');
	new Effect.Appear('signup_thanx');
	new Effect.Appear('info_form_tr');
	//alert("signup_form_error"+document.getElementById("signup_form_error").innerHTML);
	//alert("signup_thanx: "+document.getElementById("signup_thanx").innerHTML);
	//alert("info_form_tr"+document.getElementById("info_form_tr").innerHTML);
}

function handleEmailResponse(request){
	var res=request.transport.responseText
	//alert("res: "+res);
	if (res.substring(0,3)=="NOK" ){
		document.getElementById("signup_form_error").innerHTML='<span class="thanks">'+document.getElementById("address").value + " is already subscribed. Thank you.</span>";
		new Effect.Appear('signup_form_error');
	}else if( res.substring(0,7)=="DBERROR" ){
		//alert(res.substring(8));
		//document.getElementById("signup_form_error").innerHTML="Database Server Problem. Please Try again later. <p>"+res.substring(8)+"</p>";
		document.getElementById("signup_form_error").innerHTML='<span class="error">Database Server Problem. Please try again later.</span>';
		new Effect.Appear('signup_form_error');
	}else if(res.substring(0,3)=="OK2"){
		document.getElementById("Email").value=document.getElementById("address").value;
		new Effect.Fade('signup_tr');
		new Effect.Appear('signup_thanx');
		new Effect.Appear('resignup_thanx');
	}else{
		document.getElementById("Email").value=document.getElementById("address").value;
		new Effect.Fade('signup_tr');
		new Effect.Appear('signup_thanx');
	}
	document.getElementById("signup_form_button").disabled = false;
}

function mreset(){
	document.getElementById("signup_form").reset();
	document.getElementById("signup_form_error").innerHTML="";
	new Effect.Fade('signup_form_error');
}
function msubmit() {
	new Effect.Fade('signup_form_error');
	document.getElementById("signup_form_button").disabled = true;
	email=document.getElementById("address").value;
	if ( !emailCheck(email) ){
		document.getElementById("signup_form_error").innerHTML="<span class=error>Invalid email address, please try again.</span>"
		new Effect.Appear('signup_form_error');
		document.getElementById("address").focus();
		document.getElementById("signup_form_button").disabled = false;
	}else{
		p='email='+email;
		new Ajax.Updater(
			'ajax_scratch', 
			'/new_wormtown.com/library/dbAdmin.php', 
			{script:false, parameters:p, asynchronous:true,onComplete:handleEmailResponse}
		);
	}
	return false;
}
function showEmailForm(){
	document.getElementById("signup_form").reset();
	new Effect.Fade('signup_form_error');
	new Effect.Fade('signup_thanx');
	new Effect.Fade('info_thanx');
	new Effect.Appear('signup_tr');
}
function handleInfoResponse(request){
	var res=request.transport.responseText
	//alert("res: "+res);
	if (res.substring(0,3)=="NOK" ){
		document.getElementById("info_form_error").innerHTML='<span class="error">Please fill in the form. Thank you.<span>';
		new Effect.Appear('info_form_error');
	}else if( res.substring(0,7)=="DBERROR" ){
		//document.getElementById("signup_form_error").innerHTML="Database Server Problem. Please Try again later. <p>"+res.substring(8)+"</p>";
		document.getElementById("info_form_error").innerHTML='<span class="error">Database Server Problem. Please try again later.</span>';
		new Effect.Appear('info_form_error');
	}else{
		new Effect.Fade('info_form_error');
		document.getElementById("info_thanx").innerHTML='<span class="thanks">Thank you '+document.getElementById("FName").value+".</span>";
		new Effect.Fade('signup_tr');
		new Effect.Fade('signup_thanx');
		new Effect.Fade('info_form');
		new Effect.Appear('info_thanx');
		setTimeout(showEmailForm, 15000);
	}
	document.getElementById("info_form_button").disabled = false;
}
function msubmitInfo(){
	new Effect.Fade('info_form_error');
	document.getElementById("info_form_button").disabled = true;
	p=""
	p+="&submitinfo=true";
	p+="&FName="+escape(document.getElementById("FName").value);
	p+="&LName="+escape(document.getElementById("LName").value);
	p+="&Address1="+escape(document.getElementById("Address1").value);
	p+="&Address2="+escape(document.getElementById("Address2").value);
	p+="&City="+escape(document.getElementById("City").value);
	p+="&State="+escape(document.getElementById("State").value);
	p+="&Zip="+escape(document.getElementById("Zip").value);
	p+="&Email="+escape(document.getElementById("Email").value);
	p+="&Phone="+escape(document.getElementById("Phone").value);
	new Ajax.Updater(
			'ajax_scratch', 
			'/new_wormtown.com/library/dbAdmin.php', 
			{script:false, parameters:p, asynchronous:true,onComplete:handleInfoResponse}
		);
}
function mresetInfo(){
	document.getElementById("info_form").reset();
	document.getElementById("Email").value=document.getElementById("address").value;
	new Effect.Fade('info_form_error');
}
