var last_focus;

required = Array("fname", "lname", "address", "city", "postal_code", "phone", "email");
input_tags = document.getElementsByTagName('input', 'textarea');
texta_tags = document.getElementsByTagName('textarea');
select_tags= document.getElementsByTagName('select');

ignore_ids = Array("g1", "g2", "policy");

function findPosY(obj){
	var curtop = 0;
	if(obj.offsetParent)
		while(1){
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
  }

for (i=0; i<input_tags.length; i++)
	if (input_tags[i].name != ""){
		input_tags[i].onfocus = function(){assignOnFocus(this)};
		input_tags[i].onblur  = function(){assignOnBlur(this)};
		input_tags[i].onmousemove = function(){assignOnMouseMove(this)};
		input_tags[i].onclick = function(){assignOnClick(this)};
	}

for (i=0; i<texta_tags.length; i++)
	if (texta_tags[i].name != ""){
		texta_tags[i].onfocus = function(){assignOnFocus(this)};
		texta_tags[i].onblur  = function(){assignOnBlur(this)};
		texta_tags[i].onmousemove = function(){assignOnMouseMove(this)};
	}
	 
for (i=0; i<select_tags.length; i++)
	if (select_tags[i].name != "")
		select_tags[i].onchange = function(){assignOnChange(this)};
 
function assignOnFocus(obj){
	if((obj.type=="text" || obj.type == "textarea") && !obj.readOnly){
		last_focus=obj; 
		obj.style.cursor="text";
		obj.style.background="white";
		obj.style.border="1px solid #6C93B6";
	}
}

function assignOnBlur(obj){
	last_focus = null;
	
	if (obj.value && (obj.type=="text" || obj.type == "textarea") && !obj.readOnly){
		obj.style.background="none";
		obj.style.border="1px solid #EDEFF0";
		document.getElementById('lbl_'+obj.id).style.color="";
	}	
}

function assignOnMouseMove(obj){
	if (last_focus!=obj && !obj.readOnly){
		obj.style.cursor="hand";
		obj.style.cursor="pointer";
	}
}

function assignOnClick(obj){
	if (obj.type=="radio")
		document.getElementById('lbl_gender').style.color="";
}

function assignOnChange(obj){
	if (obj.id=="province")
		document.getElementById('lbl_province').style.color="";
	else if (obj.id=="month" || obj.id=="day" || obj.id=="year")
		document.getElementById('lbl_date').style.color="";
}


function checkForm(){
	next_step = true;
	obj_top = 0;

	for(i=0; i<required.length; i++)
		if(document.getElementById(required[i]).value==""){
			next_step = false;
			obj = document.getElementById("lbl_"+required[i]);
			obj.style.color="red";
		}

	if (!(document.getElementById('g1').checked || document.getElementById('g2').checked)){
		next_step = false;
		document.getElementById('lbl_gender').style.color = "red";
	}
	
	if (!(document.getElementById('month').selectedIndex && document.getElementById('day').selectedIndex && document.getElementById('year').selectedIndex)){
		next_step = false;
		document.getElementById('lbl_date').style.color = "red";
	}
	
	if (!document.getElementById('province').selectedIndex){
		next_step = false;
		document.getElementById('lbl_province').style.color = "red";
	}
	
    if (document.getElementById('convicted'))
	    if (!document.getElementById('convicted').selectedIndex){
		    next_step = false;
    		document.getElementById('lbl_convicted').style.color = "red";
	    	scroll(0,400);
		    alert('Please fill in all of the required fields');
    		return false;
	    }
    
	if(!next_step){
		if(obj_top>25) obj_top -= 25;
		scroll(0,300);
		alert('Please fill in all of the required fields');
		return false;
	}
	
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(document.getElementById('email').value) == false) {
		alert('Invalid Email Address');
		document.getElementById('lbl_email').style.color = "red";
		scroll(0,300);
		return false;
	}
	
	var stripped = document.getElementById('phone').value.replace(/[\(\)\.\-\ ]/g, '');
	if (isNaN(parseInt(stripped))) {
		alert("The phone number contains illegal characters");
		document.getElementById('lbl_phone').style.color = "red";
		scroll(0,300);
		return false;
	} else if (!(stripped.length == 10)) {
		alert("The phone number is the wrong length. Make sure you included an area code");
		document.getElementById('lbl_phone').style.color = "red";
		scroll(0,300);
		return false
	}
	
	if(!document.getElementById('agreement').checked){
		alert('You must agree with the refund policy to continue');
		return false;
	}

	if(next_step)
		document.getElementById('registration_form').submit();
}
