
        function checkInput(id,text,number,charactor,sqlinjection,phone,email,money,maxchar,ajaxUrl,URL){
		var error = "";
				try{
						if(document.getElementById(id+"_free").value=="false"){
							error = checkBlankInput(id);
						}
				}catch(err){
					error = checkBlankInput(id);
				}
                if(error==""){
                    clearHintBlock(id);
					if(document.getElementById(id).value!=""){
						if(number){
								error += checkNumberInput(id);
						}
						if(sqlinjection){
								error += checkSQLInjectionInput(id);
						}
						if(email){
								error += checkEmailInput(id);
						}
						if(maxchar!=false){
								error += checkMaxInput(id,maxchar);
						}
						if(money){
								 error += checkMoneyInput(id);
						}
						if(charactor){
								error += checkCharacterInput(id);
						}
						if(phone){
								error += checkPhoneInput(id);
						}
						if(URL){
								error += checkURLInput(id);
						}
					}
                    if(error!=""){
                            document.getElementById(id+"_validation").value="false";
                            errorBlock(id,error);
							try{
								document.getElementById(id+"_free").value="false";
							}catch(err){
							}
                            return false;
                    }else{
                            document.getElementById(id+"_validation").value="true";
                            clearErrorBlock(id);
							try{
								document.getElementById(id+"_free").value="true";
							}catch(err){
							}
                    }
					if(error==""){
                            if(ajaxUrl!=false){
                                    checkAvailableInput(id,ajaxUrl);
                            }
                    }
                }else{
                    document.getElementById(id+"_validation").value="false";
                    clearErrorBlock(id);
                    hintBlock(id,text);
					try{
						document.getElementById(id+"_free").value="true";
					}catch(err){
					}
                }
		return true;
	}
        function checkValidateInput(field){
            var checkValidation = true;
            var fieldArray = field.split(",");
            for(var i=0;i<fieldArray.length;i++){
                document.getElementById(fieldArray[i]).focus();
				try{
					if(document.getElementById(fieldArray[i]+"_free").value=="false"){
						checkValidation = false;
					}
				}catch(err){
					if(document.getElementById(fieldArray[i]+"_validation").value=="false"){
						checkValidation = false;
					}
				}
            }
		
            if(!checkValidation)
            {
                return false;
            }else{
				return true;
			}
        }

		function checkValidateInputSubmit(formID,field){
            var checkValidation = true;

            var fieldArray = field.split(",");
            for(var i=0;i<fieldArray.length;i++){
				document.getElementById(fieldArray[i]).focus();
				try{
					if(document.getElementById(fieldArray[i]+"_free").value=="false"){
						checkValidation = false;
					}
				}catch(err){
					if(document.getElementById(fieldArray[i]+"_validation").value=="false"){
						checkValidation = false;
					}
				}
            }
			 for(var i=0;i<fieldArray.length;i++){
				document.getElementById(fieldArray[i]).focus();
				try{
					if(document.getElementById(fieldArray[i]+"_free").value=="false"){
						checkValidation = false;
					}
				}catch(err){
					if(document.getElementById(fieldArray[i]+"_validation").value=="false"){
						checkValidation = false;
						break;
					}
				}
            }
            if(!checkValidation)
            {
                return false;
            }else{
				formID.submit();
			}
        }
	function checkSQLInjectionInput(id) {
		   
		   var reg_meta_characters = "/(\%27)|(\')|(_)|(\-\-)|(\%23)|(#)/ix";   
		   var reg_meta_characters2 = "/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/i";
		   var reg_sql_attack = "/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix";
		   var reg_sql_union = "/((\%27)|(\'))union/ix";
		   var reg_mssqlserver_attack = "/exec(\s|\+)+(s|x)p\w+/ix";
		   var reg_css_attack = "/((\%3C)|<)((\%2F)|\/)*[a-z0-9\%]+((\%3E)|>)/ix";
		   var reg_imgsrc_attack = "/((\%3C)|<)((\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47))[^\n]+((\%3E)|>)/I";
		   var reg_paranoid_css_attack = "/((\%3C)|<)[^\n]+((\%3E)|>)/I";

		   var v1 = new RegExp(); 
		   v1.compile(reg_meta_characters); 
		   var v2 = new RegExp(); 
		   v2.compile(reg_meta_characters2);
		   var v3 = new RegExp(); 
		   v3.compile(reg_sql_attack);
		   var v4 = new RegExp(); 
		   v4.compile(reg_sql_union);
		   //var v5 = new RegExp(); 
		   //v5.compile(reg_mssqlserver_attack);
		   var v6 = new RegExp(); 
		   v6.compile(reg_css_attack);
		   var v7 = new RegExp(); 
		   v7.compile(reg_imgsrc_attack);
		   var v8 = new RegExp(); 
		   v8.compile(reg_paranoid_css_attack);

		   var address = document.getElementById(id).value;
		   if(v1.test(address)||v2.test(address)||v3.test(address)||v4.test(address)||v6.test(address)||v7.test(address)||v8.test(address)){
				 return "Danger Input<br>";
		   }else{
				 return "";
		   }	 
	}
        function checkBlankInput(id){
                   var reg = "^$";
		   var address = document.getElementById(id).value;
                   var v1 = new RegExp(); 
		   v1.compile(reg); 
		   if(v1.test(address)) {
			  return "Please input your data.<br>";
		   }else{
			  return "";
		   }
        }
        function checkAvailableInput(id,ajaxUrl)
	{ 
		// Strat XmlHttp Object
		function ajaxObject(){
			var xmlhttp = false;
			try{  // Firefox, Opera 8.0+, Safari  
				xmlhttp=new XMLHttpRequest();  
			}catch (e){  // Internet Explorer  
				try{   
					xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");    
				}catch (e){    
					try{      
						xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");      
					}catch (e){      
						alert("Your browser does not support AJAX!");     
						return false;      
					}   
				}  
			} 
			return xmlhttp;
		}
		var ajaxHttp = ajaxObject(); 
		ajaxHttp.open("POST", ajaxUrl); 
		ajaxHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

		ajaxHttp.onreadystatechange = function()
		{
                        var ajaxResponse = "";
			if(ajaxHttp.readyState == 1){
                            hintBlock(id,'Loading...');
			}
			if(ajaxHttp.readyState == 4)
			{ 
                            clearHintBlock(id);
                            ajaxResponse = ajaxHttp.responseText;
                            if(ajaxResponse.length>5){
                                document.getElementById(id+"_validation").value="false";
                                errorBlock(id,ajaxResponse);
                            }else{
                                document.getElementById(id+"_validation").value="true";
                            }
			}
		}
		ajaxHttp.send(null);
	}
	function checkEmailInput(id) {
		   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		   var address = document.getElementById(id).value;
		   if(reg.test(address) == false) {
			  return "Invalid Email Address<br>";
		   }else{
			  return "";
		   }
	}
	function checkURLInput(id) {
		   var reg = /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/;
		   var URL = document.getElementById(id).value;
		   var v1 = new RegExp(); 
		   v1.compile(reg); 
		   if(!(v1.test(URL))){ 
			  return "Invalid URL.<br>";
		   }else{
			  return "";
		   }
	}
	function checkMaxInput(id,maxchar) {
                   maxchar = maxchar+"";
                   var maxcharArray = maxchar.split(",");
		   var inputlength = document.getElementById(id).value.length;

                   if(maxcharArray.length==2){
                       if(maxcharArray[1]==">"){
                            if(maxcharArray[0]>inputlength) {
                              return "Invalid Input Max Character > "+maxcharArray[0]+"<br>";
                            }else{
                                  return "";
                            }
                       }else if(maxcharArray[1]==">="){
                            if(maxcharArray[0]>=inputlength) {
                              return "Password length should be >= "+maxcharArray[0]+"<br>";
                            }else{
                                  return "";
                            }
                       }else if(maxcharArray[1]=="<"){
                            if(maxcharArray[0]<inputlength) {
                              return "Invalid Input Max Character < "+maxcharArray[0]+"<br>";
                            }else{
                                  return "";
                            }
                       }else if(maxcharArray[1]=="<="){
                            if(maxcharArray[0]<=inputlength) {
                              return "Invalid Input Max Character <= "+maxcharArray[0]+"<br>";
                            }else{
                                  return "";
                            }
                       }else if(maxcharArray[1]=="="){
                            if(maxcharArray[0]!=inputlength) {
                              return "Invalid Input Max Character = "+maxcharArray[0]+"<br>";
                            }else{
                                  return "";
                            }
                       }else{
                            return "Invalid Input Max Character Parameter.<br>";
                       }
                   }else{
                        return "Invalid Input Max Character Parameter.<br>";
                   }
	}
	function clearHintBlock(blockID){
		document.getElementById(blockID+'_hint').style.display='none';
	}
	function clearErrorBlock(blockID){
		document.getElementById(blockID+'_error').style.display='none';
	}
	function hintBlock(blockID,text){
		document.getElementById(blockID+'_hint').style.display='block';
		var blockStyle = "";
		blockStyle += '<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">';
		blockStyle += '<TR>';
		blockStyle += '	<TD valign="top" width="11" background="images/right_bg.gif"><img src="images/tips_corner.gif" border="0"></TD>';
		blockStyle += '	<TD>';
		blockStyle += '		<DIV class="hintBlock">';
		blockStyle += '			<DIV class="hintIcon">';
		blockStyle += '				<DIV class="hintText">';
		blockStyle += text;
		blockStyle += '				</DIV>';
		blockStyle += '			</DIV>';
		blockStyle += '		</DIV>';
		blockStyle += '	</TD>';
		blockStyle += '</TR>';
		blockStyle += '</TABLE>';
		document.getElementById(blockID+'_hint').innerHTML = blockStyle;
	}
	function errorBlock(blockID,text){
		document.getElementById(blockID+'_error').style.display='block';
		var blockStyle = "";
		blockStyle += '<TABLE width="100%" cellSpacing="0" cellPadding="0" border="0">';
		blockStyle += '<TR>';
		blockStyle += '	<TD valign="top" width="11" background="images/right_error_bg.gif"><img src="images/error_corner.gif" border="0"></TD>';
		blockStyle += '	<TD>';
		blockStyle += '		<DIV class="errorBlock">';
		blockStyle += '			<DIV class="errorIcon">';
		blockStyle += '				<DIV class="errorText">';
		blockStyle += text;
		blockStyle += '				</DIV>';
		blockStyle += '			</DIV>';
		blockStyle += '		</DIV>';
		blockStyle += '	</TD>';
		blockStyle += '</TR>';
		blockStyle += '</TABLE>';
		document.getElementById(blockID+'_error').innerHTML = blockStyle;
	}
	// test input
	function checkNumberInput(id)
{
     var reg = /^([0-9]*)$/;
     var number = document.getElementById(id).value;
    if(reg.test(number) == false) {
		return "Please input your number.<br>";
	 }else{
		return "";
	 }
}   
// end of check Number

//Character checking 
function checkCharacterInput(id)
{
    var reg = /\W/;
    var number = document.getElementById(id).value;
    if(reg.test(number)) {
		return "Please input your Character.<br>";
	 }else{
		return "";
	 }
   


}
// end of character checking 

//phone checking 
function checkPhoneInput(id){
        var reg = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;//^\+?[\d\s]+\(?[\d\s]{10,}$/;
	var address = document.getElementById(id).value;
	if(reg.test(address) == false) {
		return "Please input telephone number .<br>";
	}else{
		return "";
	}
}

//end phone checking 

//money checking
function checkMoneyInput(id) {
        var reg = /^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/ ;
        var number = document.getElementById(id).value;
        var v1 = new RegExp(); 
	 v1.compile(reg); 
	 if(!v1.test(number)){
		return "Please input your Money.<br>";
	 }else{
		return "";
	 }
}
//end of check money
//check color hex
function checkColorInput(id){
      var reg = /^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$/ ;
      var color = document.getElementById(id).value;
      var v1 = new RegExp(); 
	 v1.compile(reg); 
	 if(!(v1.test(color))){ 
		return "Please input your color.<br>";
	 }else{
		return "";
	 }
 }  
//end of check color hex
//check confirm password 
function checkConfirmPassword(id1,id2,hindText,errorText){
    var password = document.getElementById(id1).value;
    var password2 = document.getElementById(id2).value;
	if(password2!=""){
		if(password != password2){
			clearHintBlock(id2);
			errorBlock(id2,errorText);
			document.getElementById(id2+"_validation").value="false";
		}else{
			clearHintBlock(id2);
			clearErrorBlock(id2);
			document.getElementById(id2+"_validation").value="true";
		}
	}else{
		checkInput(id2,hindText,false,true,true,false,false,false,false,false,false);
	}
}
var ajaxResponse;
function ajaxCheck(ajaxMethod, ajaxUrl)
{ 
	function ajaxObject()
	{ 
		if (document.all && !window.opera)
		{ 
			obj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else
		{ 
			obj = new XMLHttpRequest();
		}
	return obj;
	}
	var ajaxHttp = ajaxObject(); 
	ajaxHttp.open(ajaxMethod, ajaxUrl); 
	ajaxHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

	ajaxHttp.onreadystatechange = function()
	{ 
		if(ajaxHttp.readyState == 1){
		}
		if(ajaxHttp.readyState == 4)
		{ 
			ajaxResponse = ajaxHttp.responseText;
		}
	}
	ajaxHttp.send(null);
}

function checkCapcha(url,id){
	ajaxCheck("POST", url+"checkSessionCapcha.php");
    var num = document.getElementById(id).value;
	if(num!=""){
		if(num != ajaxResponse){
			errorBlock(id,'Invalid Secure Number');
			document.getElementById(id+"_validation").value="false";
		}else{
			clearErrorBlock(id);
			document.getElementById(id+"_validation").value="true";
			checkInput(id,'Please input your Secure Number',false,true,true,false,false,false,false,false,false);
		}
	}else{
		document.getElementById(id+"_validation").value="false";
	}
}
//end of check confirm password