    Core.charsFilter=function(value,validChars,size)
    {
        var out=""
        var i=0;
        var n=value.length;
        if (size)
        {
            if (size<n) n=size;
        }
        for(i=0;i<n;i++) 
        {
    	    var ch=value.charAt(i)
        	if (validChars.indexOf(ch)!=-1) out+=ch;
    	}
        return out;    
    }

    Core.genericValidate=function (obj,msg)
    {
		var id=obj.id+"";
        if (id.indexOf("-1")>-1){
            return 0;                    
        }
		//alert(obj+":"+obj.id+":"+obj.value);
        if (obj.value.length==0){
    		FormManager.setLastErrorString(obj,msg);
        	return -1;
        }
    	return 0;	
    }
    
    Core.textFilter=function(obj, max)
	{
    	var validChars=" ";
        validChars+="`1234567890";
        validChars+="-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+ASDFGHJKL:\"QWERTYUIOP{|}ZXCVBNM<>?\n\r";
    	//obj.className = "";
        var value=obj.value;
        var text=""
        for(i=0;i<value.length;i++) 
		  if (validChars.indexOf(value.charAt(i))!=-1) text+=value.charAt(i);
		
		
		if(text.length>max)
		{
		 	obj.value = text.substr(0,max);   
//		 	obj.className =obj.className+" objError";  
		}
//		else
//			obj.className ="objInput";	
			
	}
	Core.telNumberFilter=function(obj)
	{
    	var m="0123456789,.-/ ";
    	obj.value=Core.charsFilter(obj.value,m);
    }
    
	Core.numberFilter=function(obj)
	{
    	var m="0123456789,.";
    	obj.value=Core.charsFilter(obj.value,m);
	}
	
	
	Core.CNPFilter=function(obj)
	{
    	var m="0123456789";
    	obj.value=Core.charsFilter(obj.value,m,13);
    }
	
	Core.CNPIsValid=function(obj)
	{
		var cnp = obj.value;
		var exceptions = new Array();
		exceptions[0]="14508050056";
		exceptions[1]="14905220206";
		exceptions[2]="0981808427175";
        for(index in  exceptions)
    	    if ((exceptions[index]==cnp)) 
    			return true;

        if (cnp=="") return false;	    
		var mask="279146358279";
		var n=13;
		var l=cnp.substr(n-1,1);
		var total=0;
		for ( i=0; i < n-1; i++ )
		{
		    var x = cnp.substr(i,1);
		    var y = mask.substr(i,1)
			total=total+x*y;
		}
		var r=total%11;
		if (r==10) 
		{
			r=1;
			if(l==r)
				return true;
			else
				return false;
		}
		if( r<10 && r==l)
		return true;
		else return false;
	}
    	
    Core.CNPValidate=function(obj,msg)
	{
        if (!Core.CNPIsValid(obj))
        {
    		FormManager.setLastErrorString(this,msg);
    		return -1;
   		 }
    	return 0;	
    }
    
	Core.emailValidate=function(obj)
	{
		 var str=obj.value;
 		 var filter=/^.+@.+\..{2,4}$/;
   		 if (!filter.test(str))
   		 {
    		FormManager.setLastErrorString(this,"Va rugam sa introduceti o adresa de email valida!");
    		return -1;
   		 }
    	return 0;	
	}
	
	Core.LastValidator=function()
	{
	        var obj=this.value;
	        if (obj == "")
	        {
	    		FormManager.setLastErrorString(this,"dfgfdgfdgfd");
	    		return -1;
	    	}
	    	return 0;
	}
	Core.RadioValidator=function()
	{
	    
	   if(this.checked == false)
	   {
	   		FormManager.setLastErrorString(this,"Va rugam introduceti titlul");
			   return -1;}
			   return 0;
	}

    
    Core.CFIsValid = function(obj)
	 {
        //exceptii
  	    var cui=obj.value;
  	    if (cui=="") return false;
      	if (cui=="6207904") return true;
  		
        var nr = cui.length, total = 0
  		if (nr < 2 || nr > 10) {return false}
  		pondere = "7532175321".substr(10-nr,nr)
  		for (x=0; x < nr -1 ; ++x) 
		{
		      total += cui.charAt(x) * pondere.charAt(x)
		}

  		return (cui.substr(nr-1,1) == ((total * 10) % 11 ) % 10 )
	}

	Core.CFValidate= function (obj)
	{
        if (!Core.CFIsValid(obj))
        {
    		FormManager.setLastErrorString(this,"Va rugam sa introduceti un CF/CUI valid!");
    		return -1;
   		 }
    	return 0;	
    }

	