var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function prepareInputsForHints() {
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
    if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
      inputs[i].onfocus = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
		var width;
		if (this.parentNode.getElementsByTagName("input")[0].offsetWidth) {
			var obj_pos = FindPosition(this.parentNode.getElementsByTagName("input")[0]); 
			var offsetLeft=obj_pos[0];
			offsetLeft+=this.parentNode.getElementsByTagName("input")[0].offsetWidth+10;
			offsetLeft+="px";
			var test=this.parentNode.getElementsByTagName("span")[0];
			this.parentNode.getElementsByTagName("span")[0].style.left=offsetLeft;
		} else {
			this.parentNode.getElementsByTagName("span")[0].style.right="-100px";
		}
      }
      inputs[i].onblur = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "none";
      }
    }
  }

  var textareas = document.getElementsByTagName("textarea");
  for (var j=0; j<textareas.length; j++){
    if (textareas[j].parentNode.getElementsByTagName("span")[0]) {
      textareas[j].onfocus = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
		var width;
		if (this.parentNode.getElementsByTagName("textarea")[0].offsetWidth) {
			var obj_pos = FindPosition(this.parentNode.getElementsByTagName("textarea")[0]); 
			var offsetLeft=obj_pos[0];
			offsetLeft+=this.parentNode.getElementsByTagName("textarea")[0].offsetWidth+10;
			offsetLeft+="px";
			var test=this.parentNode.getElementsByTagName("span")[0];
			this.parentNode.getElementsByTagName("span")[0].style.left=offsetLeft;
		} else {
			this.parentNode.getElementsByTagName("span")[0].style.right="-100px";
		}
      }
      textareas[j].onblur = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "none";
      }
    }
  }

  var selects = document.getElementsByTagName("select");
  for (var k=0; k<selects.length; k++){
    if (selects[k].parentNode.getElementsByTagName("span")[0]) {
      selects[k].onfocus = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
		var width;
		if (this.parentNode.getElementsByTagName("select")[0].offsetWidth) {
			var obj_pos = FindPosition(this.parentNode.getElementsByTagName("select")[0]); 
			var offsetLeft=obj_pos[0];
			offsetLeft+=this.parentNode.getElementsByTagName("select")[0].offsetWidth+10;
			offsetLeft+="px";
			var test=this.parentNode.getElementsByTagName("span")[0];
			this.parentNode.getElementsByTagName("span")[0].style.left=offsetLeft;
		} else {
			this.parentNode.getElementsByTagName("span")[0].style.right="-100px";
		}
      }
      selects[k].onblur = function () {
        this.parentNode.getElementsByTagName("span")[0].style.display = "none";
      }
    }
  }

}

function FindPosition(obj) {  
  
	// Assign the obj object to a temp variable  
	tmpObj = obj;  

	// Get the offsets for the current object  
	var obj_left = tmpObj.offsetLeft;  
	var obj_top = tmpObj.offsetTop;  

	// If the current object has a parent (ie contained in a table, div, etc..)  
	if (tmpObj.offsetParent) {  

		// Loop through all the parents and add up their offsets  
		// The while loop will end when no more parents exist and a null is returned  
		while (tmpObj = tmpObj.offsetParent) {  
			obj_left += tmpObj.offsetLeft;  
			obj_top += tmpObj.offsetTop;  
		}  
	}  
	return [obj_left , obj_top];  
}  

function handleEnter (field, event) {
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;
		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		return false;
	} 
	else
	return true;
}  

function checkForm(form) {
	var why="";
  why+=checkString(form.firstname.value, 'First Name');
  why+=checkString(form.lastname.value, 'Last Name');
  why+=checkEmail(form.email.value, 'Email');
  why+=checkString(form.telephone.value, 'Phone Number');
  why+=checkString(form.company.value, 'Company Name');
  why+=checkString(form.security_code.value, 'Security Code');
	if (why != "") {
		alert(why);
		return false;
	}
	return true;
}

function checkEmail(string, desc) {
	var error="";
	var emailtest=emailfilter.test(string);
	if (emailtest==false) {
		error = "You must enter a valid "+desc+".\n";
	}
	return error;
}

function checkString(string, desc) {
	var error = "";
	if (string.length == 0) {
		error = "You must enter the "+desc+".\n"
	}
	return error;
}