﻿var Validator =
{
	isAlphanumeric : function( _value )
	{
		var regx = new RegExp( /[0-9a-zA-Z]/g );
		return regx.test(  _value );
	},


	isNumeric : function( _value )
	{
		var regx = new RegExp( /[0-9]/g );
		return regx.test( _value );
	},


	maxLength : function( _value, max_size )
	{
		var validates = false;
		if( _value <= max_size )
		{
			validates = true;
		}

		return validates;
	},


	isEmpty : function( _value )
	{
		if( null == _value || "" == _value )
			return true;
		else
			return false;
	},


	isEmail : function( _value )
	{
		//! todo
		var regx = new RegExp( /[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[_0-9a-zA-Z\.-]/g );
		return regx.test( _value );
	}
};




var ErrorLog =
{
	error_list : Array(),
	fail_elements : Array(),

	clearAll : function()
	{
		var s = this.fail_elements.length;
		for( var i=0; i<s; i++ )
		{
			console.log( this.fail_elements[i] );
			$( this.fail_elements[i] ).removeClass('form_fail');
		}
		
		this.fail_elements	= new Array();
		this.error_list		= new Array();
	},
	
	addError : function( _id_failer, text )
	{
		console.log("ID:"+_id_failer);
		this.fail_elements.push( _id_failer );
		this.error_list.push( text );

		var elm = $(_id_failer);
		elm.addClass('form_fail');
	},

	
	displayErrorDescription : function( _id )
	{
		var content = $( '#'+_id );
		if( content.length==0 )
		{
			content = $().html('<div id="'+_id+'" class="error_description">ablsadbals</div>');
		}

		content.html( this.buildDescriptor() );			
		if( this.error_list.length>0 )
			content.show( 'normal' );
		else
			content.hide('normal');
	},
	
	buildDescriptor : function()
	{
		var s = this.error_list.length;
		var html = '';
		if( s>0 )
		{
			html+= '<ul>';
			for( var i=0; i<s; i++ )
			{
				html+= '<li>'+this.error_list[i]+'</li>';
			}
			html+= '</ul>';
		}
		return html;
	
	}
	
};
