
var http = getHTTPObject();

var lkf= '';
var lk=0;
var force=false;
var valmsg = new Array();
var validationResult = true;
var allowEmpty = true;

valmsg["ct_email"] = "Please complete your email address";
valmsg["ct_subject"] = "Please complete the subject of your feedback message";
valmsg["ct_fname"] = "Please complete your first name";
valmsg["ct_lname"] = "Please complete your last name";
valmsg["ct_message"] = "Please complete your feedback message";

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 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='formlabel';
		imgObj.innerHTML='';
		expObj.innerHTML='&nbsp;';
		expObj.style.display='none';
		return true;
	}		

	    
	var valid=true;
	if (fieldObjId == 'ct_email'){
		valid = RE_email.test(fieldObj.value);
	}else{
		valid = RE_txt.test(fieldObj.value);
	}
	
	if (nothing){
		lblObj.className='formlabel';
		imgObj.innerHTML='';
		expObj.innerHTML='&nbsp;';		
	}else if (valid){
		if (lblObj.className != 'formlabel' || imgObj.innerHTML==''){
			lblObj.className='formlabel';
			imgObj.innerHTML='<img src="images/grn_check.png" border=0 width=16 height=16>';				
			expObj.innerHTML='&nbsp;';
			expObj.style.display='none';
		}
	}else{
		if (lblObj.className != 'formlabel_error'){
			lblObj.className = 'formlabel_error';
			imgObj.innerHTML = '<img src="images/red_cross.png" border=0 width=16 height=16>';
			expObj.innerHTML = valmsg[fieldObjId];
			expObj.style.display = 'block';
		}		
	}
		
	validationResult = valid;	
	return true;
}

var scrField = new Array ('ct_fname','ct_lname','ct_email','ct_subject','ct_message');

function validateForm(){
	var invalid=0;
	var firstInvalid='';
	var doValidation=true;
	allowEmpty = false;

	for(var i=0; doValidation && i < scrField.length ; i++){
		lkf = scrField[i];
		force=true;
		performValidation();
		force=false;
		if (! validationResult) {
			invalid++;
			if (invalid == 1){
				firstInvalid = lkf;
			}
		}
	}
	allowEmpty = true;
	if (invalid > 0){
		document.getElementById(firstInvalid).focus();
		return false;
	}
	return true;
}

setInterval('performValidation()',500);
