var http = getHTTPObject();

var lkf= '';
var lk=0;
var force=false;
var valmsg = new Array();
var validationResult = true;
var allowEmpty = true;

valmsg["firstname"] = "Please complete your first name";
valmsg["lastname"] = "Please complete your last name";
valmsg["password"] = 'Please complete your password with at least 5 letters, numbers, or any of these symbols: @#!%&=?+_.*$^-';
valmsg["password2"] = 'Please repeat the password you entered in the box above';
valmsg["city"] = "Please complete city";
valmsg["state"] = "Choose state from drop down list";
valmsg["country"] = "Choose country from drop down list";
valmsg["zip"] = "Please complete zip code";
valmsg["email"] = "Please complete your email address";
valmsg["username"] = "Please complete your username with at least 5 letters and/or numbers";
valmsg["promo_code"] = "Invalid promo code";

function enterField(fieldObj){
	//initialize things
	lkf = fieldObj.id;
	lk= new Date().getTime();
	return true;
}

function leaveField(fieldObj){
	if (fieldObj.value != '') {
		force=true;
		performValidation();
		force=false;
	}
	lkf='';
	lk=0;
	return true;
}

function typeField(fieldObj){
	lk = new Date().getTime();
	return true;
}

function performValidation(){	
	var RE_email = /^[0-9A-Za-z._-]{1,}@[0-9A-Za-z_-]{1,}\.[0-9A-Za-z_.-]{2,}$/;
    var RE_txt = /\S\S+/;
    var RE_code = /^[A-Za-z0-9]{3,20}$/;
    var RE_user = /^[A-Za-z0-9]{5,100}$/;
    var RE_pass = /^[0-9A-Za-z@#!%&=?+_.*$^-]{5,20}$/;
    var dt=new Date().getTime();
	var nothing = false;
		    
    if (!force && (lkf == '' || lk==0 || dt-lk < 1000)){
    	//window.status = 'Lk=' + lk + ' Dt='+dt+' Lkf='+lkf;
		return true;    	
    }
    
    var fieldObj = document.getElementById(lkf);
    if (! fieldObj) {
    	//window.status = 'No obj:'+lkf;
		return true;
	}

	var fieldObjId = fieldObj.id;

	var lblObj = document.getElementById("lbl_" + fieldObjId);
	var expObj = document.getElementById("exp_" + fieldObjId);
	var imgObj = document.getElementById("img_" + fieldObjId);
		
	if (fieldObj.value == '' && allowEmpty) {
		lblObj.className='formlabel2';
		imgObj.innerHTML='';
		expObj.innerHTML='&nbsp;';
		return true;
	}		

	    
	var valid=true;
	if (fieldObjId == 'state' || fieldObjId == 'country'){
		if (fieldObj.selectedIndex < 0){
			valid=false;
		}
	}else if (fieldObjId == 'password'){
		valid = RE_pass.test(fieldObj.value);
	}else if (fieldObjId == 'password2'){
		var pwd = document.getElementById("password").value;
		if (pwd.length > 0){
			valid = (pwd == fieldObj.value);
		}else{
			nothing=true;
		}
	}else if (fieldObjId == 'email'){
		valid = RE_email.test(fieldObj.value);
	}else if (fieldObjId == 'username'){
		valid = RE_user.test(fieldObj.value);
	}else if (fieldObjId == 'promo_code'){
		valid = RE_code.test(fieldObj.value);
	}else{
		valid = RE_txt.test(fieldObj.value);
	}
	
	if (nothing){
		lblObj.className='formlabel2';
		imgObj.innerHTML='';
		expObj.innerHTML='&nbsp;';		
	}else if (valid){
		if (fieldObjId == 'username'){
			checkUsernameTaken();
		}else{
			if (lblObj.className != 'formlabel2' || imgObj.innerHTML==''){
				lblObj.className='formlabel2';
				imgObj.innerHTML='<img src="images/pub/grn_check.png" border=0 width=16 height=16>';				
				expObj.innerHTML='&nbsp;';
			}
		}
	}else{
		if (lblObj.className != 'formlabel_error'){
			lblObj.className = 'formlabel_error';
			imgObj.innerHTML = '<img src="images/pub/red_cross.png" border=0 width=16 height=16>';
			expObj.innerHTML = valmsg[fieldObjId];
		}		
	}
		
	validationResult = valid;	
	return true;
}

function checkUsernameTaken(){
	var rand = new Date().getTime();
	var url  = 'x-check-untk.php';
	var params = '?rnd='+rand+'&un='+escape(document.getElementById("username").value);
	http.open("POST", url, true);
  	http.onreadystatechange = handleHttpResponseUsername;
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');				  	
  	http.send(params);
	return true;
}

function handleHttpResponseUsername(){
	if (http.readyState == 4){
		document.getElementById("exp_username").innerHTML=http.responseText;
		if (http.responseText.substr(0,5) != '<span'){
			if (document.getElementById("lbl_username").className != 'formlabel_error'){
				document.getElementById("lbl_username").className='formlabel_error';
				document.getElementById("img_username").innerHTML='<img src="images/pub/red_cross.png" border=0 width=16 height=16>';
			}
		}else{
			if (document.getElementById("lbl_username").className != 'formlabel2' || document.getElementById("img_username").innerHTML == ''){
				document.getElementById("lbl_username").className='formlabel2';
				document.getElementById("img_username").innerHTML='<img src="images/pub/grn_check.png" border=0 width=16 height=16>';				
			}
		}
	}
}
setInterval('performValidation()',500);

function validateRev(){
        var RE_txt = /\S+/;
        var RE_pass = /^[0-9A-Za-z@#!%&=?+_.*$^-]{5,20}$/;
        var RE_user = /^[A-Za-z0-9]{5,100}$/;
        var ret=true;
        var msg='Please complete\n\n';

        if (! RE_txt.test(document.forms['frmreg'].elements['firstname'].value)){
              ret=false;
              msg += '-the first name\n';
        }

        if (! RE_txt.test(document.forms['frmreg'].elements['lastname'].value)){
              ret=false;
              msg += '-the last name\n';
        }

        if (! RE_txt.test(document.forms['frmreg'].elements['email'].value)){
              ret=false;
              msg += '-the email address\n';
        }

        if (! RE_user.test(document.forms['frmreg'].elements['username'].value)){
              ret=false;
              msg += '-the username with 5 to 100 letters and/or numbers\n';
        }

        if (! RE_pass.test(document.forms['frmreg'].elements['password'].value)){
              ret=false;
              msg += '-the password using 5 to 20 letters, numbers or any of the following characters: @#!%&=?+_.*$^-\n';
        }else if (document.forms['frmreg'].elements['password'].value != document.forms['frmreg'].elements['password2'].value){
              ret=false;
              msg += '-the same password in both password boxes\n';
        }

        if(!ret)
            alert(msg);
        return ret;
}

function reloadStates(obj){
		var states = document.forms["frmreg"].elements["state"];
		if (obj.selectedIndex < 0){
			states.selectedIndex = -1;
			return true;
		}
		var selectedCountry = obj.options[obj.selectedIndex].value;
		if (currentCountry != selectedCountry){
			currentCountry = selectedCountry;
			//call Ajax Script to get list of states for this country
			var rand = new Date().getTime();
			var url  = 'get_states.php';
			var params = '?rnd='+rand+'&cty='+selectedCountry;
			http.open("POST", url, true);
		  	http.onreadystatechange = handleHttpResponseStates;
			http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');				  	
		  	http.send(params);
			return true;
		}else{
			return true;
		}               									   			
}
function handleHttpResponseStates(){
	if (http.readyState == 4){
		var states = document.forms["frmreg"].elements["state"];               		
		var parent = states.parentNode;
		states.options.length = 0;
		results = http.responseText;
		var html = '<select name=state id=state size=1>' + results + '</select>';
		parent.innerHTML = html;
	}
}

var ftt=new Array('rowcity','rowstate','rowcountry','rowzip');

function displayForm(ftype){
	var imgR = document.getElementById("btnR");
	var imgD = document.getElementById("btnD");
	var fdp  = 'none';
	var signed = document.getElementById("signed_as_rd");
	
	var gm = document.getElementById("goldm");
	var bm = document.getElementById("basicm");
	var pc = document.getElementById("rowpc");

	if (ftype == 'R'){
		signed.value = 'N';
		imgR.src = 'images/pub2/btn_restaurant.gif';
		imgD.src = 'images/pub2/btn_dietitian_off.gif';		
		
		if (currentMT == 'G'){
			gm.style.display = 'none';
			bm.style.display = 'block';
			if (isIE)
				pc.style.display = 'block';
			else
				pc.style.display = 'table-row';
		}else{
			gm.style.display = 'block';
			bm.style.display = 'none';
			pc.style.display = 'none';
		}
	}else{
		signed.value = 'Y';
		gm.style.display = 'none';
		bm.style.display = 'none';
		pc.style.display = 'none';
		
		imgR.src = 'images/pub2/btn_restaurant_off.gif';
		imgD.src = 'images/pub2/btn_dietitian.gif';
		if (isIE)
			fdp = 'block';
		else
			fdp = 'table-row';
	}
	for(var i=0; i < ftt.length; i++){
		document.getElementById(ftt[i]).style.display = fdp;
	}	
	return false;
}

var currentMT = 'B';

function switchMT(mtype){
	currentMT = mtype;
	var gm = document.getElementById("goldm");
	var bm = document.getElementById("basicm");
	var pc = document.getElementById("rowpc");
	if (mtype == 'G'){
		gm.style.display = 'none';
		bm.style.display = 'block';
		if (isIE)
			pc.style.display = 'block';
		else
			pc.style.display = 'table-row';
	}else{
		gm.style.display = 'block';
		bm.style.display = 'none';
		pc.style.display = 'none';
		document.getElementById("promo_code").value = '';
	}
	return false;
}