// JavaScript Document
/*==========================================================================#
# * Function for adding a Filter to an Input Field                          #
# * @param  : [filterType  ] Type of filter 0=>Alpha, 1=>Num, 2=>AlphaNum   #
#                                           3=>AlphaNum with special char   # 
#==========================================================================*/
function filterInput(filterType, evt){

    var keyCode, Char, inputField, filter = '';
    var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var num   = '0123456789';
	var special_char="#?,@-_'./ ";
	
	if(window.event){
		keyCode = window.event.keyCode;
		evt = window.event;
	}else if (evt)keyCode = evt.which;
	   	else return true;
//  alert(keyCode);
  	if(filterType == 0) filter = alpha;
    else if(filterType == 1) filter = num;
    else if(filterType == 2) filter = alpha + num;
    else if(filterType == 3) filter = alpha + num + special_char ;
	
    	
		if(filter == '')return true;
		inputField = evt.srcElement ? evt.srcElement : evt.target || evt.currentTarget;
		if((keyCode==null) || (keyCode==0) || (keyCode==8) || (keyCode==9) || (keyCode==13) || (keyCode==16) || (keyCode==17) || (keyCode==27) || (keyCode==33) || (keyCode==34) || (keyCode==35) || (keyCode==36) || (keyCode==37) || (keyCode==38) || (keyCode==39)|| (keyCode==40) )return true;
			var Char =String.fromCharCode(keyCode);
	//
	if((filter.indexOf(Char) > -1)) return true;
    else if(filterType == 1 && (Char == '.') && inputField.value.indexOf('.') == -1)return true;
    else {
		alert( "This '" + Char +"' Character not allowed");
		return false;
	}
}

function filterInput_onpaste(txtbox,filterType){
	
	var txt=txtbox.value;

	if(filterType == 0) filter = /^[a-z]*$/i;
	else if(filterType == 1) filter = /^[0-9\.]*$/i;
	else if(filterType == 2) filter = /^[a-z0-9\.]*$/i;
	else if(filterType == 3) filter = /^[a-z0-9\s@\_\-'\/\.?,#]*$/i;
	
	var result=filter.test(txt);
	
	if(result==false){
		alert("Invalid character in your input ");
		tempField = txtbox;
   		setTimeout("tempField.focus();",1);
		setTimeout("tempField.select();",1);
		
		//txtbox.focus();
		//txtbox.select();
		
	}
	
	/*var el = document.site_create.elements;
	var ermsg=".";
	
	for (var i=0; i<el.length; i++) {
		var result=filter.test(el[i].value);
		
		if(result==false)
			ermsg= "\nInvalid character in " + el[i].name +  ermsg;
//		document.write("(" + i + ")" + el[i].type + ">>>" + el[i].name + ">>>" + el[i].value + "<br>");
	}
	alert(ermsg);*/
}

function checkdataformat(str,type){
	//Check DATE format
	if (type == 1) {
		var dateformat = /^\d{1,2}(\-|\/)\d{1,2}(\-|\/)\d{4}$/;
		if(dateformat.test(str) == false) {
			return false; 
		}
		else {	
			var pos = str.indexOf("/");
			if (pos == -1)
				pos = str.indexOf("-");
			var part = parseInt(str.substr(0,pos));
	
			if (part < 0 || part > 12 ){
				return false; 
			}
	
			pos++;
			var nextpos = str.indexOf("/",pos);
			if (nextpos == -1)
				nextpos = str.indexOf("-",pos);
			part = parseInt(str.substr(pos,nextpos));
			if (part < 0 || part > 31 ){
				return false; 
			}
	
			nextpos++;
			part = parseInt(str.substr(nextpos,4));
			if (part < 1000 || part > 9999 ){
				return false; 
			}
		}
		return true;
	}
	
	
	//Check TIME format
	if (type == 2) {
		var timeformat = /^\d{1,2}(\-|\:)\d{1,2}(\-|\:)\d{1,2}$/;
		if(timeformat.test(str) == false) {
			return false; 
		}
		else {
			var pos = str.indexOf("/");
			if (pos == -1)
				pos = str.indexOf("-");
			
			var part = parseInt(str.substr(0,pos));
	
			if (part < 0 || part > 12 ){
				return false; 
			}
	
			pos++;
			var nextpos = str.indexOf("/",pos);
			if (nextpos == -1)
				nextpos = str.indexOf("-",pos);
			part = parseInt(str.substr(pos,nextpos));
			if (part < 0 || part > 60 ){
				return false; 
			}
	
			nextpos++;
			part = parseInt(str.substr(nextpos,4));
			if (part < 0 || part > 60 ){
				return false; 
			}
		}
		
		return true;
	}
	
	//Check CONTACT NUMBER format
	if (type == 3) {
		/*
		var phonenumberformat = /^\d{3}(\-|\.)\d{3}(\-|\.)\d{4}$/;
		if(phonenumberformat.test(str) == false) {
			var nextphonenumberformat = /^\(\d{3}\)(\ )\d{3}(\.|\-)\d{4}$/;
			if(nextphonenumberformat.test(str) == false) {
				return false; 
			}
		} */
		
		return true;
	}
	
	//Check INTEGER NUMBER format
	if (type == 4) {
		var numberintformat = /^\d+$/;
		if(numberintformat.test(str) == false) {
			return false; 
		}
		return true;
	}
	
	//Check DECIMAL NUMBER or DOLLAR format
	if (type == 5) {
		var numberformat = /(^\d+$)|(^\d+(\.)\d{1,})$/;
		if(numberformat.test(str) == false) {
			return false; 
		}
		
		return true;
	}
	
	//Check ZIP CODE format
	if (type == 6) {
		var zipformat = /^\w{5}$/;
		if(zipformat.test(str) == false) {
			return false; 
		}
		
		return true;
	}
	
	//Check EMAIL format
	if (type == 7) {
		var emailformat = /(^\w+(\@)\w+(\.)\w{2,3}$)|(^\w+(\@)\w+(\.)\w+(\.)\w{2,3}$)/;
		if(emailformat.test(str) == false) {
			return false; 
		}
		return true;
	}	
}
