var field_notes = new Array();
field_notes["title_prompt"] = "Please enter your personal title eg Mr";
field_notes["title_warn"] = "Mandatory field";
field_notes["forename_prompt"] = "Please enter a Forename";
field_notes["surname_prompt"] = "Please enter a Surname";
field_notes["jobtitle_prompt"] = "Please enter a Jobtitle";
/*field_notes["jobtitle_warn"] = "Mandatory field";*/
field_notes["company_prompt"] = "Please enter a Company";
field_notes["add1_prompt"] = "Please enter the first line of your address";
field_notes["add1_warn"] = "Mandatory field";
field_notes["add2_prompt"] = "Please enter the second line of your address (if available)";
field_notes["add2_warn"] = "";
field_notes["add3_prompt"] = "Please enter the third line of your address (if available)";
field_notes["add4_prompt"] = "Please enter a Town";
field_notes["add5_prompt"] = "Please enter a County";
field_notes["telephone_prompt"] = "Please enter a Telephone number";
field_notes["mobile_prompt"] = "Please enter a Mobile number";
field_notes["email_prompt"] = "Please enter your email address";
field_notes["email_warn"] = "Valid email address required";

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
    // see if there is a lable I can stuff things in
  	label_name = "label_" + inputs[i].name;
    elem = document.getElementById(label_name);
    if (elem==null){
    	continue;
    }
		if (field_notes[inputs[i].name +"_prompt"]){
      elem.innerHTML = '</div><div style="display:inline-table;width:150px;">' + elem.innerHTML + '</div><div id=hint_' + inputs[i].name + ' class="myhint"><div class=myhint-top><div class=myhint-top-left><div class=myhint-top-right></div></div></div><div class=myhint-left><span>' + field_notes[inputs[i].name +"_prompt"] + '</span></div><div class=myhint-base><div class=myhint-base-left><div class=myhint-base-right></div></div></div></div><div id=warn_' + inputs[i].name + ' class="warn">';
		} else {
      elem.innerHTML = '</div><div style="display:inline-table;width:150px;">' + elem.innerHTML + '</div><div id=hint_' + inputs[i].name + ' class="myhint"><div class=myhint-top><div class=myhint-top-left><div class=myhint-top-right></div></div></div><div class=myhint-left><span>Enter a ' + inputs[i].name + '</span></div><div class=myhint-base><div class=myhint-base-left><div class=myhint-base-right></div></div></div></div><div id=warn_' + inputs[i].name + ' class="warn">';
		}
		
		// test to see if the hint span exists first
		if (document.getElementById("hint_" + inputs[i].name)) {
			// the span exists!  on focus, show the hint and hide the warning
			inputs[i].onfocus = function () {
				document.getElementById("warn_" + this.name).style.display = "none";
				document.getElementById("hint_" + this.name).style.display = "inline";
			  this.style.backgroundColor="#ffffff";
			}
			// when the cursor moves away from the field, hide the hint, check if there is a validation option set - if so show the warning and change the field background
			inputs[i].onblur = function () {
				if (!this.value){
					if (this.validationset){
						if (field_notes[this.name +"_warn"]){
					    document.getElementById("warn_" + this.name).innerHTML = "<span>" + field_notes[this.name +"_warn"] + "</span>";
						} else {
					    document.getElementById("warn_" + this.name).innerHTML = "<span>" + this.validationset.validate() + "</span>";
					  }
  				  this.style.backgroundColor="#ffe0cc";
					} else {
					  document.getElementById("warn_" + this.name).innerHTML = "";
					}
				  document.getElementById("warn_" + this.name).style.display = "inline";
				}
				document.getElementById("hint_" + this.name).style.display = "none";
			}
		}
	}
	// maybe we need to repeat the same tests as above for selects - BT don't seem to
	//var selects = document.getElementsByTagName("select");
}

function MattAlert(sometext){
  alert('Matt' + sometext);
}
function checkSubmit() {
	var inputs = document.getElementsByTagName("input");
	retval = true;
	firstfield = 0;
	for (var i=0; i<inputs.length; i++){
		if (inputs[i].validationset){
      if (!inputs[i].value){
      	if (firstfield==0){
      		firstfield=i;
      	}
      	retval = false;
        if (field_notes[inputs[i].name +"_warn"]){
           document.getElementById("warn_" + inputs[i].name).innerHTML = "<span>" + field_notes[inputs[i].name +"_warn"] + "</span>";
        } else {
           document.getElementById("warn_" + inputs[i].name).innerHTML = "<span>" + inputs[i].validationset.validate() + "</span>";
        }
        document.getElementById("warn_" + inputs[i].name).style.display = "inline";
        inputs[i].style.backgroundColor="#ffe0cc";
      }
    }
  }
  inputs[firstfield].focus();
  return retval;    
}	
function MattValidator(frmname)
{
	//alert('here');
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  //showDialog('Error',"BUG: couldnot get Form object "+frmname,'error',4);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=checkSubmit; //form_submit_handler;
}

addLoadEvent(prepareInputsForHints);
