function linkInputs(){
  var listElem= getElementsByClassName(document.body,"input","INTEGER");
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressInteger;
    listElem[i].onblur=changeInteger;
  }

  listElem= getElementsByClassName(document.body,"input","FLOAT");  
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressFloat;
    listElem[i].onblur=changeFloat;
  }
  
  var listElem= getElementsByClassName(document.body,"input","SINTEGER");
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressInteger;
    listElem[i].onblur=changeSignedInteger;
  }

  listElem= getElementsByClassName(document.body,"input","SFLOAT");  
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressFloat;
    listElem[i].onblur=changeSignedFloat;
  }  
  
  listElem= getElementsByClassName(document.body,"input","DATE");  
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressDate;
    listElem[i].onblur=changeDate;		  
  }
  
  listElem= getElementsByClassName(document.body,"input","TIME");  
  for (var i=0;i<listElem.length;i++){
    listElem[i].onkeypress=keypressTime;
    listElem[i].onblur=changeTime;
  }  
  
  listElem= getElementsByClassName(document.body,"input","EMAIL");  
  for (var i=0;i<listElem.length;i++)
    listElem[i].onblur=ChangeEmail;
    
  listElem= getElementsByClassName(document.body,"input","NZERO");  
  for (var i=0;i<listElem.length;i++)
    listElem[i].attachEvent("onblur",changeNoZero);  
}

function ContainerValidation(container){
  var resp=true;
  var i; 
  var elemToValidateList=container.getElementsByTagName("input");
  for ( i=0;i<elemToValidateList.length;i++){
	 if (elemToValidateList[i].className.indexOf("ErrorField")!=-1){
		var tempelm=elemToValidateList[i];
		while (container.id!=tempelm.id){			
			tempelm =tempelm.parentNode;
			if (tempelm.nodeName.toLocaleLowerCase()=="body")
			  break;
		}
		if (container.id==tempelm.id)
		  resp = false;
	 }	    	    
		
	 if (!resp)  break;
  }
  if (resp)  
    return null
  else
    return elemToValidateList[i];
}

//cross plataform method to get char from keypress event------------------------------------------
function xgetkeypressChar(kc,cc,defaultc){
  var isIE = (navigator.userAgent.indexOf("MSIE") > -1);
  if (isIE)
  {return String.fromCharCode(kc);}
  else
  {	if (kc==0)  return String.fromCharCode(cc)
	else return defaultc;
  }
}

function keypressInteger(evt){
  if (evt==null) evt=event;  
  var keychar= xgetkeypressChar(evt.keyCode,evt.charCode,"-");

  if (keychar=="-")
    {return true;}
  else
    {return isDigit(keychar);}
}

function changeInteger(){
  var inputStr= this.value;
  var resf =isNonnegativeInteger(inputStr);
  if (!resf) {	  
	SetErrorField(this,"Invalid number","popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
  };//else
//    SetstdField(this);
	
  return resf;
}

function changeSignedInteger(){
  var inputStr= this.value;
  var resf =isSignedInteger(inputStr);
  if (!resf) {	  
	SetErrorField(this,"Invalid number","popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
  };//else
//    SetstdField(this);
	
  return resf;
}

function changeFloat(){
  var inputStr= this.value;
  var resf =isFloat(inputStr);
  if (!resf) {
	SetErrorField(this,"Invalid number","popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
  };//else
//    SetstdField(this);
	
  return resf;
}

function changeSignedFloat(){
  var inputStr= this.value;
  var resf =isSignedFloat(inputStr);
  if (!resf) {
	SetErrorField(this,"Invalid number","popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
  }else {
  	if (this.value.length > 0) {
  		var intLen = parseInt(this.getAttribute("maxintlen"));
  		var decLen = parseInt(this.getAttribute("maxdeclen"));  
  		var nbr = parseFloat(this.value);
  		var strIntPart = getIntPartInFloat(nbr);
  		var strDecPart = getDecPartInFloat(nbr);
  		var invalidMsg = "Invalid number.\nThe number range should be:\n";
  		var	strRange = buildInvalidMessageRange(intLen, decLen);
  		if (strDecPart) {
	 	  	if ((strIntPart.length > intLen) || (strDecPart.length > decLen) ){
	 	  		invalidMsg += "-" + strRange + " to " + strRange + "."
					SetErrorField(this,invalidMsg,"popup");
					setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);  		
		  	} 		
	  	}else {
				if (strIntPart.length > intLen)	{
	 	  		invalidMsg += "-" + strRange + " to " + strRange + "."
					SetErrorField(this,invalidMsg,"popup");
					setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);  							
				}
	  	}
	
	 	}
	} 
  //;else
	//SetstdField(this);	
  return resf;
}

function changeNoZero(){
	var elz =window.event.srcElement;
	var inputStr= elz.value;

    if (parseFloat(inputStr)==0){
	  SetErrorField(elz,"Can't be Zero (0)","popup");
 	  setTimeout("try{document.getElementById('"+elz.id+"').focus();}catch(e){};",0);
	  return false;
	}else{
     // SetstdField(elz);
	  return true;
	}
}

function keypressFloat(evt){
  if (evt==null) evt=event;  
  var keychar= xgetkeypressChar(evt.keyCode,evt.charCode,"-");
  
  if ((keychar=="-")||(keychar=="."))
    {return true;}
  else
    {return isDigit(keychar);} 
}  

function changeDate(){
  var inputStr= this.value; 
  var resf =isValidDate(inputStr);
  if (resf!=""){
//    alert(resf);
	SetErrorField(this,resf,"popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
	return false;
  }else{
//    SetstdField(this);
    return true;}	
}

function keypressDate(evt){
  if (evt==null) evt=event;    
  var keychar= xgetkeypressChar(evt.keyCode,evt.charCode,"/");
  
  if ((keychar=="/"))
    {return true;}
  else
    {return isDigit(keychar);} 
}  

function changeTime(){
  var inputStr= this.value; 
  var resf =isValidTime(inputStr);
  if (resf!=""){
    SetErrorField(this,resf,"popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
	return false;
  }else{
//    SetstdField(this);
    return true;}	
}

function keypressTime(evt){
  if (evt==null) evt=event;  
  var keychar= xgetkeypressChar(evt.keyCode,evt.charCode,":");
  
  if ((keychar==":"))
    {return true;}
  else
    {return isDigit(keychar);} 
}  

function ChangeEmail(){
  var inputStr= this.value; 
  var resf =isEmail(inputStr);
  if (!resf){
    SetErrorField(this,"Invalid E-mail format","popup");
	setTimeout("try{document.getElementById('"+this.id+"').focus();}catch(e){};",0);
	return false;
  }else{
//    SetstdField(this);
    return true;}		
}
