var ajaxObjects=new Array();
var req=new Array();


function frmVal(){
	if(document.sForm.id.value>''){
		if(login_type=='facebook'){
			req=['email','phone'];
		}else{
			req=['password','password2','email','phone'];
		}
	}else{
		req=['fname','lname','username','password','password2','email','phone'];
	}
	// required info check
	first_error='';
	for(i=0;i<req.length;i++){
		$(req[i]).className='';
		if(!$(req[i]).value){
			if(first_error=='')first_error=req[i];
			$(req[i]).className='has_error';
		}
	}
	if(first_error>''){
		errorShow('Required information missing');
		$(first_error).focus();
		return false;
	}
	
	if(login_type=='standard'){
		// check password match
		if($('password').value!=$('password2').value){
			errorShow('Password do not match');
			$('password').className='has_error';
			$('password2').className='has_error';
			$('password').focus();
			return false;
		}
	}

	// main email
	errtmp=email_check_str($('email').value);
	if(errtmp>''){
		errorShow(errtmp);
		$('email').className='has_error';
		$('email').focus();
		return false;
	}
	return true;
}

function errorShow(what){
	$('error_message').innerHTML=what;
}

function usernameCheck(what){
	$('username_status').innerHTML='';
	$('username').className='';
	var ajaxIndex=ajaxObjects.length;
	ajaxObjects[ajaxIndex]=new sack();
	with(ajaxObjects[ajaxIndex]){
		requestFile ="/tools/";
		setVar('action','username_available');
		setVar('username',$('username').value);
		onCompletion=function(){usernameCheckResponse(ajaxIndex);};
		runAJAX();
	}
}

function usernameCheckResponse(index){
	txt=ajaxObjects[index].response;
	if(txt=='0'){
		$('username_status').innerHTML='username already taken';
		$('username').className='has_error';
		$('username').focus();
	}else{
		$('username_status').innerHTML='username available';
	}
}

function email_check_str(emailStr){
	emailPat=/^(.+)@(.+)$/
	specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	validChars="\[^\\s" + specialChars + "\]"
	quotedUser="(\"[^\"]*\")"
	ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	atom=validChars + '+'
	word="(" + atom + "|" + quotedUser + ")"
	userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	matchArray=emailStr.match(emailPat)
	if(matchArray==null){
	  return("Your e-mail address seems incorrect (check @ and .'s)");
	}
	user=matchArray[1]
	domain=matchArray[2]
	if(user.match(userPat)==null){
	  return("The username doesn't seem to be valid.");
	}
	IPArray=domain.match(ipDomainPat)
	if(IPArray!=null){
	  for (i=1;i<=4;i++){
	    if (IPArray[i]>255){
	      return("Destination IP address is invalid!");
	    }
	  }
	}
	domainArray=domain.match(domainPat)
	if(domainArray==null){
	  return("Your domain name doesn't seem to be valid.");
	}
	atomPat=new RegExp(atom,"g");
	domArr=domain.match(atomPat);
	len=domArr.length;
	if(domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4){
	  return("Your e-mail address must end in a 2&ndash;4 letter domain.");
	}
	if(len<2){
	  return("Your address is missing a hostname!");
	}
	return '';
}
