function filterInput(filterType, evt, allowDecimal, allowCustom){
	var keyCode, Char, inputField, filter = '';
	var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_';
	var num   = '0123456789';
	// Get the Key Code of the Key pressed if possible else - allow
	if(window.event){
		keyCode = window.event.keyCode;
		evt = window.event;
	}else if (evt)keyCode = evt.which;
	else return true;
	// Setup the allowed Character Set
	if(filterType == 0) filter = alpha;
	else if(filterType == 1) filter = num;
	else if(filterType == 2) filter = alpha + num;
	if(allowCustom)filter += allowCustom;
	if(filter == '')return true;
	// Get the Element that triggered the Event
	inputField = evt.srcElement ? evt.srcElement : evt.target || evt.currentTarget;
	// If the Key Pressed is a CTRL key like Esc, Enter etc - allow
	if(inputField.value.length>9)
	return false;
	if((keyCode==null) || (keyCode==0) || (keyCode==8) || (keyCode==9)  || (keyCode==27) )return true;
	
	// Get the Pressed Character
	Char = String.fromCharCode(keyCode);
	// If the Character is a number - allow
	if((filter.indexOf(Char) > -1)) return true;
	// Else if Decimal Point is allowed and the Character is '.' - allow
	else if(filterType == 1 && allowDecimal && (Char == '.') && inputField.value.indexOf('.') == -1)return true;
	else return false;
}
function filterInput2(filterType, evt, lenn,allowDecimal, allowCustom){
	var keyCode, Char, inputField, filter = '';
	var alpha = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_';
	var num   = '0123456789';
	// Get the Key Code of the Key pressed if possible else - allow
	if(window.event){
		keyCode = window.event.keyCode;
		evt = window.event;
	}else if (evt)keyCode = evt.which;
	else return true;
	// Setup the allowed Character Set
	if(filterType == 0) filter = alpha;
	else if(filterType == 1) filter = num;
	else if(filterType == 2) filter = alpha + num;
	if(allowCustom)filter += allowCustom;
	if(filter == '')return true;
	// Get the Element that triggered the Event
	inputField = evt.srcElement ? evt.srcElement : evt.target || evt.currentTarget;
	// If the Key Pressed is a CTRL key like Esc, Enter etc - allow
	if(inputField.value.length>lenn-1)
	return false;
	if((keyCode==null) || (keyCode==0) || (keyCode==8) || (keyCode==9)  || (keyCode==27) )return true;
	
	// Get the Pressed Character
	Char = String.fromCharCode(keyCode);
	// If the Character is a number - allow
	if((filter.indexOf(Char) > -1)) return true;
	// Else if Decimal Point is allowed and the Character is '.' - allow
	else if(filterType == 1 && allowDecimal && (Char == '.') && inputField.value.indexOf('.') == -1)return true;
	else return false;
}
function check_national(id)
{
	var st=document.getElementById(id).value;
	 if ( stringEmpty ( st )==false )
	 {
	 	
	 	if(st.length != 10)
	 	show_msg_email(id,  'شماره ملی 10 رقم است' ,false);
	 	
	 	else{
	 		show_msg_email(id,' ',true);
	 		return true;
	 	}
	 }
	 else
	 {
	 	show_msg_email(id,' ',true);
	 	document.getElementById('id_'+id).style.visibility="hidden";
	 	return true;
	 }
	 return false;
}
function mailValidation ( addressField,id ) {
    if ( stringEmpty ( addressField.value )==false )
    {
    if ( noAtSign ( addressField.value ) )
         show_msg_email(id,  "پست الکترونیک دارای @ است" ,false);
    else if ( nothingBeforeAt ( addressField.value ) )
         show_msg_email(id,  "قبل از @ باید دو کارکتر باشد",false );
    else if ( noLeftBracket ( addressField.value ) )
         show_msg_email(id,  "[ براکت باز شده باید بسته شود" ,false);
    else if ( noRightBracket ( addressField.value ) )
         show_msg_email(id,  "براکت باید بسته شود']'" ,false);
    else if ( noValidPeriod ( addressField.value ) )
         show_msg_email(id, "دامنه پست اکترونیک خالی است" ,false);
    else if ( noValidSuffix ( addressField.value ) )
         show_msg_email(id,  "حداقل به دو حرف نیاز است" ,false);
    else{
    	show_msg_email(id,'',true);
        return (true);
    }
    }else{
    	show_msg_email(id,'',true);
    	document.getElementById('id_'+id).style.visibility="hidden";
    }
      return ( false );
}
function show_msg_email(id,msg,hide)
{
	var image_id='id_'+id;
	var span_id='l_'+id;
	document.getElementById(image_id).style.visibility="visible";
		if( hide==false)
		{
	document.getElementById(image_id).src="/images/bg/icon4.gif";		
	document.getElementById(span_id).innerHTML=msg;
	document.getElementById("td_"+id+"_id").className="item_not_acept";
	document.getElementById(id).focus()
	
		}else
		{
			document.getElementById(image_id).src="/images/bg/checkbullet.gif";
			document.getElementById(span_id).innerHTML="";
			document.getElementById("td_"+id+"_id").className="";
		}
}
function stringEmpty ( address ) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( address.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign ( address ) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if ( address.indexOf ( '@', 0 ) == -1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 3 ) {
        return ( true );
    } else {
        return ( false );
    }
}