	function showHints() {
		$('input.bubbleHint, select.bubbleHint, textarea.bubbleHint').focus(function(){
				hint($(this).attr('id'),true);
		});		   
		$('input.bubbleHint, select.bubbleHint, textarea.bubbleHint').blur(function(){
				hint($(this).attr('id'),false);
		});		   
	}

	showHints();

	function error(id,show)
   {
		
		
	   	if($('div#error_'+id).length) {
			if(show == true) {
				$('div#error_'+id).fadeIn();
				if($('#'+id).attr('type') != 'checkbox')
				$('#'+id).css('border','1px solid #ECA8B3');
			}
			else {
				$('div#error_'+id).fadeOut();	
				if($('#'+id).attr('type') != 'checkbox') {
					if($('#'+id).length > 0 && $('#'+id).val().length == 0) 
						$('#'+id).css('border','1px solid #2F7CC5');
					else 
						$('#'+id).css('border','1px solid #1E2578');
				}
			}
		}
		
   }    

	function hint(id,show)
   	{
	   	if(show == true) {
			$('div#fill_'+id).fadeOut();			
			
			if($('div#error_'+id).length == 0 || $('div#error_'+id).length > 0 && $('div#error_'+id).css('display') != 'block') {
				$('div#hint_'+id).fadeIn();
				if($('#'+id).attr('type') != 'checkbox')	$('#'+id).css('border','1px solid #A2A5D8');				
			}
		}
		else 
		{
			$('div#hint_'+id).fadeOut();
			if($('div#error_'+id).length == 0 || $('div#error_'+id).length > 0 && $('div#error_'+id).css('display') != 'block' && $('#'+id).attr('type') != 'checkbox') {
				if($('#'+id).length && $('#'+id).val().length == 0) 
					$('#'+id).css('border','1px solid #001B50');
				else 
					$('#'+id).css('border','1px solid #2F7CC5');
			}
		}
	}
	
	function mustFill(id,show)
	{
		if($("#"+id).attr('type') == "image") return false;
		if($('div#fill_'+id).length) {
			if(show == true) {
				$('div#error_'+id).fadeOut();
				$('div#fill_'+id).fadeIn();
				if($('#'+id).length)	
					$('#'+id).css('border','1px solid #ECA8B3');			
			} else {
				$('div#fill_'+id).fadeOut();
				if($('#'+id).length) {
				if($('#'+id).val().length == 0) 
					$('#'+id).css('border','1px solid #001B50');
				else
					$('#'+id).css('border','1px solid #2F7CC5');
				}
			}
		}
	}
	
	function emailCheck(Id)
	{
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;		
		var Val = $(Id).val();
		if(Val.length) {
			if(!filter.test(Val)) {
				error($(Id).attr('id'),true);
				return false;
			} else {
				error($(Id).attr('id'),false);
				return true;
			}
		}
	}
	
	function dateCheck(Id)
	{
		var filter  = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/;		
		var Val = $(Id).val();
		if(Val.length) {
			if(!filter.test(Val)) {
				error($(Id).attr('id'),true);
				return false;
			} else {
				error($(Id).attr('id'),false);
				return true;
			}
		}
	}
	
	function hintToggle(id)
	{
		hint($(id).attr('id'),true);
		
		$(id).blur(function(){
			 hint($(id).attr('id'),false);
			// mustFill($(id).attr('id'),false);
			 
		});		
	}
	
	function validateNumber(field)
    {
	    Val = $(field).val();
		Id = $(field).attr('id');
		if(Val.length && isNaN(Val)){
			error(Id,true);
			return false;
		} else {
			error(Id,false);
			return true;
		}
   }

	function validatePhone(field)
	{
		var filter  = /^([0-9\s])+$/;
		var Val = $(field).val();
		var Id  = $(field).attr('id');
		if(Val.length) {
			if(!filter.test(Val)) {
				error(Id,true);
				return false;
			} else {
				error(Id,false);
				return true;
			}
		} else return true;
	}
	
	function requiredField(field)
	{
		
		if($(field).val().length == 0) {
			mustFill($(field).attr('id'),true);
			return false;
		} else {
			mustFill($(field).attr('id'),false);
			return true;
		}
	}
	
	/* 
	*	Year is 3 - for previous address
	*	Year is 16 - for directors that must be older than 16
	*/
	function olderThenXYears(Id,Year)
    {
                var occupied= $(Id).val().split('/');
                var then=new Date();
                
                then.setDate(occupied[0]);
                then.setMonth(occupied[1]-1);
                then.setFullYear(occupied[2]);

//                /alert(then);
                
                
                var now=new Date();
                now.setFullYear(now.getFullYear()-Year);
                return (then<now);
     }