$(document).ready(function() {

	function checkValid(input_id) {
		var error = false;
			input = $('#'+input_id);
			value = $.trim(input.val());
		if(!value.length) {
			error = true;
			input.val(value); // the need for this line is unclear since value.length is '0'
		}
		var valid = !Boolean(error);
		if(!valid) {
			var leftPos = input.parent().css('width');
			var topPos = Number(input.parent().css('height').split('px')[0]) - Number(input.css('height').split('px')[0])/2;
			topPos = "-"+ String(topPos) + 'px';
			var css = { 'font-size':'11px',
						'background-image': 'url(/_media/ui/pop3.gif)',
						'width':'213px',
						'height':'30px',
						'position':'relative',
						'left':leftPos,
						'top':topPos
					}
			input.parent().append('<div id="error"></div>');
			input.next().css(css);
			input.keydown(function(e) {
				$(this).next().remove();					   
			});
		}
		return valid;
	}
	
	//Returns a function that validates the fields that are passed. If the validator function returns false the form does not submit
	function createValidatorFunction(field_names, checkExtraFields) {
		return function() {
			if(checkExtraFields) {
				field_names = createInputArray(field_names);
			}
			var success = true;
			for(var index in field_names) {
				if(!checkValid(field_names[index])) {
					success = false;
				}
			}
			return success
		}
	}
	
	//Add the extra input fields if they are visible
	function createInputArray (fields) {
		if($('#extra_fields_catalog').css('display') == 'block') {
		     fields = fields.concat(['cat','course',]);	
		} 
		
		if($('#extra_fields_jobs').css('display') == 'block') {
		     fields = fields.concat(['job']);	
		} 
		return fields;
	}
	
	$('#cb').submit(createValidatorFunction(['nm', 'ph'], false));
	$('#ct').submit(createValidatorFunction(['nameCt', 'email', 'msg'], true));
});
