
function FormChecker(){
this.arrayNum = new Array();
this.arrayNotEmpty = new Array();
this.arrayEmail = new Array();
this.arrayEmailOrEmpty = new Array();
this.arrayEqual = new Array();
this.arrayCheckbox = new Array();
this.arrayAlphaNum = new Array();
this.arrayAlphaNumExtended = new Array();
this.arrayFileExtension = new Array();
this.arrayRadioBox = new Array();
}

FormChecker.prototype.add= function(fieldID){
	this.arrayNum[this.arrayNum.length] = fieldID;
};

FormChecker.prototype.addNum= function(fieldID){
	this.arrayNum[this.arrayNum.length] = fieldID;
};

FormChecker.prototype.addNotEmpty= function(fieldID){
	this.arrayNotEmpty[this.arrayNotEmpty.length] = fieldID;
};

FormChecker.prototype.addEmail= function(fieldID){
	this.arrayEmail[this.arrayEmail.length] = fieldID;
};
FormChecker.prototype.addEmailOrEmpty= function(fieldID){
	this.arrayEmailOrEmpty[this.arrayEmailOrEmpty.length] = fieldID;
};
FormChecker.prototype.addCheckbox= function(fieldID){
	this.arrayCheckbox[this.arrayCheckbox.length] = fieldID;
};

FormChecker.prototype.addAlphaNum= function(fieldID){
	this.arrayAlphaNum[this.arrayAlphaNum.length] = fieldID;
};

FormChecker.prototype.addAlphaNumExtended= function(fieldID){
	this.arrayAlphaNumExtended[this.arrayAlphaNumExtended.length] = fieldID;
};
FormChecker.prototype.addRadioboxName= function(name){
	this.arrayRadioBox[this.arrayRadioBox.length] = name;
};

FormChecker.prototype.addEqual= function(fieldID,extensionArray){
    var array =new Array(); 
    array[0] = fieldID;
    array[1] = extensionArray;
	this.arrayEqual[this.arrayEqual.length] = array;
};

FormChecker.prototype.addFileExtension= function(fieldID,arrayExt){
    var array =new Array(); 
    array[0] = fieldID;
    array[1] = arrayExt;
	this.arrayFileExtension.push(array);
};

FormChecker.prototype.removeFromAllUsingArray= function(array){
for(var i=0;i < array.length;i+=1){
this.removeFromAll(array[i]);
}
};

FormChecker.prototype.removeFromAll= function(fieldID){

for(var i=0;i < this.arrayNotEmpty.length;i+=1){
if(this.arrayNotEmpty[i] === fieldID ){
this.arrayNotEmpty.splice(i, 1);
}
}
for( i=0;i < this.arrayNum.length;i+=1){
if(this.arrayNum[i] === fieldID ){
this.arrayNum.splice(i, 1);
}
}

for( i=0;i< this.arrayEmail.length ;i+=1){
if(this.arrayEmail[i] === fieldID ){
this.arrayEmail.splice(i, 1);
	}
}
for( i=0;i< this.arrayEmailOrEmpty.length ;i+=1){
if(this.arrayEmailOrEmpty[i] === fieldID ){
this.arrayEmailOrEmpty.splice(i, 1);
	}
}
	for( i=0;i< this.arrayCheckbox.length ;i+=1){
if(this.arrayCheckbox[i] === fieldID ){
this.arrayCheckbox.splice(i, 1);
	}
	}
   for( i=0;i< this.arrayAlphaNum.length ;i+=1){
if(this.arrayAlphaNum[i] === fieldID ){
this.arrayAlphaNum.splice(i, 1);
	}
	}
	for( i=0;i< this.arrayAlphaNumExtended.length;i+=1){
if(this.arrayAlphaNumExtended[i] === fieldID ){
this.arrayAlphaNumExtended.splice(i, 1);
	}
	}	
for( i=0;i< this.arrayRadioBox.length;i+=1){
if(this.arrayRadioBox[i] === fieldID ){
this.arrayRadioBox.splice(i, 1);
	}
	}	
	this.removeFromEqual(fieldID);
	this.removeFromFileExtension(fieldID);
};

FormChecker.prototype.removeFromEqual= function(fieldID){
for(var  i=0;i< this.arrayEqual.length ;i+=1){
var current = this.arrayEqual[i];
if( current[0]=== fieldID ||   current[1]=== fieldID){
this.arrayEqual.splice(i, 1);
	}
 }
 };
 FormChecker.prototype.removeFromFileExtension= function(fieldID){
for(var  i=0;i< this.arrayFileExtension.length ;i+=1){
var current = this.arrayFileExtension[i];
if( current[0]=== fieldID ){
this.arrayFileExtension.splice(i, 1);
	}
 }
 };
 
FormChecker.prototype.checkOneFieldNumber= function(fieldID){
var ret = false ;
var temp = document.getElementById(fieldID);
var number= temp.value;
if (isNaN(number) === false ) {
ret = true ;
}
return ret ;
};

FormChecker.prototype.checkOneFieldNotEmpty= function(fieldID){
var ret = false ;
var temp = document.getElementById(fieldID);
var value= temp.value;
if (value !== "" ) {
ret = true ;
}
return ret ;
};

FormChecker.prototype.checkOneFieldNotEmptyUseName= function(fieldName){
var ret = false ;
var temp = document.getElementsByName(fieldName)[0];
var value= temp.value;
if (value !== "" ) {
ret = true ;
}
return ret ;
};

FormChecker.prototype.checkOneFieldEmailUseName= function(fieldName){
var ret = false ;
var temp = document.getElementsByName(fieldName)[0];
var value= temp.value;
ret = this.checkEmail(value);
return ret ;
};

FormChecker.prototype.checkOneFieldEmail= function(fieldID){
var ret = false ;
var temp = document.getElementById(fieldID);
if(temp){
var value= temp.value;
ret = this.checkEmail(value);
}else{
alert("Email Check error =" + fieldID);
}
return ret ;
};

FormChecker.prototype.checkEmail= function(content){
var ret = false ;
var regex = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
var modele = new RegExp(regex, "i");
var matchValue= content.match(modele);
if(content ==matchValue ) {
ret = true ;
}
return ret ;
};

FormChecker.prototype.compareEqual= function(fieldIDa,fieldIDb){
var ret = false ;
var tempa = document.getElementById(fieldIDa);
var valuea= tempa.value;
var tempb = document.getElementById(fieldIDb);
var valueb= tempb.value;
if(valuea ==  valueb){
ret = true ;
}
return ret ;
};
FormChecker.prototype.compareEqualUseName= function(fieldIDaName,fieldIDbName){
var ret = false ;
var tempa = document.getElementsByName(fieldIDaName)[0];
var valuea= tempa.value;
var tempb = document.getElementsByName(fieldIDbName)[0];
var valueb= tempb.value;
if(valuea ==  valueb){
ret = true ;
}
return ret ;
};

FormChecker.prototype.isChecked= function(fieldID){
var ret = false ;
var temp = document.getElementById(fieldID);
ret = temp.checked ;
return ret ;
};


FormChecker.prototype.isAlphaNum= function(fieldID){
var ret = true ;
var temp = document.getElementById(fieldID);
var content = temp.value;
if(content.length>0 && content.search("[^A-Z a-z0-9]") >= 0) { 
ret = false ;
}
return ret ;
};

FormChecker.prototype.isAlphaNumExtended= function(fieldID){
var ret = true ;
var temp = document.getElementById(fieldID);
var content = temp.value;
if(content.length>0 && content.search("[^A-Z a-z0-9 -_\.]") >= 0) { 
ret = false ;
}
return ret ;
};

FormChecker.prototype.convertToHTMLEntities= function(data){
var ret = data;
var array = this.createHTMLArray();
for(var i=0;i < array.length;i+=1){
var temp = array[i];
var regex =new RegExp(temp[0],"g"); 
ret = ret.replace(regex,temp[1]);
 }
 return ret ;
 };
 
FormChecker.prototype.checkExtension= function(fieldID,extArray){
var ret = false;
var temp = document.getElementById(fieldID);
var content = temp.value;
 var ext=content.slice(content.lastIndexOf(".")).toLowerCase();
 // alert( "content ="  + content + " ext ="  + ext) ;
  for (var i=0; i< extArray.length && ret ===false; i+=1)
    { if (extArray[i]===ext)
        { ret= true;
       
        }
    }
 return ret ;
 };

FormChecker.prototype.isRadioBoxSelected= function(name){
var ret = false;
var array = document.getElementsByName(name);
 for (var i=0; i< array.length && ret === false; i+=1){
ret = array[i].checked ;
}
return ret;
};

FormChecker.prototype.enabledDate= function(fieldID,enabled){
this.enabledField( fieldID +"day",enabled);
this.enabledField(fieldID +"month",enabled);
this.enabledField(fieldID +"year",enabled);
this.enabledField(fieldID +"hour",enabled);
this.enabledField(fieldID +"minute",enabled);
}; 
FormChecker.prototype.enabledField= function(fieldID,enabled){
var el =document.getElementById(fieldID);
//alert("fieldID =" + fieldID + " enabled =" + enabled);
if(el !==null){
//alert("el find");
if(enabled===false){
global_DOMUtil.addAttribute(el,"disabled",true);
}
else{
//alert("removeAttribute for  fieldID =" + fieldID);
el.removeAttribute("disabled");
}
}
};           

FormChecker.prototype.createInputLine= function(fieldID,label){
var ret = null;
var idDIV=  fieldID+ ".divID";
var div = document.createElement("div");
global_DOMUtil.addAttribute(div,"id",idDIV);
global_DOMUtil.addAttribute(div,"name",idDIV);
var span1 = document.createElement("span");
var idtitle= fieldID+ ".FieldtitleID";
global_DOMUtil.addAttribute(span1,"class",idtitle);
global_DOMUtil.addAttribute(span1,"id",idtitle);
global_DOMUtil.addAttribute(span1,"name",idtitle);
var txt= document.createTextNode(label);
span1.appendChild(txt);
var span2 = document.createElement("span");
var input = document.createElement("input");
global_DOMUtil.addAttribute(input,"id",fieldID);
global_DOMUtil.addAttribute(input,"name",idtitle);
span2.appendChild(input);
div.appendChild(span1);	
div.appendChild(span2);	
ret = div;
return ret;
};
