// JavaScript Document
var form_err = false;
onsubmitform = function(form_id, required_fields){
	$(form_id)
	.attr({'action':'tools/formsubmit.php'})
	.submit(function(){
		form_err = false;
		$.each(required_fields, function(name, attr){			
			$.each(attr, function(type, verify){
				switch(type){
					case 'text':
						var el = $('input[name=' + name + ']');
						form_check_input(el, verify);
						break;
	
					case 'option':
						var el = $('input[name=' + name + ']');
						form_check_option(el);
						break;
					
					case 'textarea':
						var el = $('textarea[name=' + name + ']');
						form_check_textarea(el);
						break;
	
					case 'file':
						var el = $('input[name=' + name + ']');
						form_check_file(el);
						break;					
						
					case 'select':
						var el = $('select[name=' + name + ']');
						form_check_select(el);
						break;
						
					case 'mcheckbox':
						var el = $("input[name*=" + name + "]");
						var _count_checked = 0;
						$.each(el, function(i){
							if(($(this).attr('checked') == true) && ($(this).attr('type') == 'checkbox')) {
								_count_checked++;								
							}
						});
						
						if(_count_checked <= 0){
							$('span[title=' + name + ']').addClass('formErr2');
						}
						else $('span[title=' + name + ']').removeClass('formErr2');
						
						break;
						
					case 'street':
						var el_street = $('input[name=' + name + '_street]');
						var el_house = $('input[name=' + name + '_hnum]');
						
						form_check_input(el_street);
						form_check_input(el_house);
						break;
	
					case 'date':
						var el_year = $('select[name=' + name + '_year]');
						var el_month = $('select[name=' + name + '_month]');
						var el_day = $('select[name=' + name + '_day]');
						
						form_check_select(el_year);
						form_check_select(el_month);
						form_check_select(el_day);
						break;
	
					default:
						
						break;
				
				}
			});/**/
		});
		
		if(form_err) return false;
		else return true;
	});
}

form_check_input = function(el, verify){
	switch(verify){
		case 'email':
			if(!form_check_email(el)){
				indicate_err(el);
				form_err = true;
			}
			else undicate_err(el);
			break;
		default:
			var val = $.trim(el.val());
			if(val.length == ''){				
				indicate_err(el)
				form_err = true;
			}
			else undicate_err(el);
			break;
	}	
}

form_check_textarea = function(el){
	var val = $.trim(el.val());
	if(val.length == ''){				
		indicate_err(el)
		form_err = true;
	}
	else undicate_err(el);
}

form_check_file = function(el){
	var val = $.trim(el.val());
	if(val.length == ''){				
		$('span[title='+ el.attr('name') +']').addClass('formErr2');
		form_err = true;
	}
	else $('span[title='+ el.attr('name') +']').removeClass('formErr2');
}

form_check_select = function(el){
	var val = $.trim(el.val());
	if(val.length == ''){				
		indicate_err(el)
		form_err = true;
	}
	else undicate_err(el);
}

form_check_option = function(el){
	var checked = false;
	var title = '';
	
	el.each(function(){
		if($(this).attr('checked') == true) checked = true;
		title = $(this).attr('name');
	});
	
	if(checked == false) {
		$('span[title='+ title +']').addClass('formErr2');
		form_err = true;
	}
	else $('span[title='+ title +']').removeClass('formErr2');
}

form_check_email = function(el) {
	var matchArray = el.val().match(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
	if (matchArray == null) {
		return false;
	} else {
		return true;
	}
}

indicate_err = function(el){
	el.addClass('formErr');
}

undicate_err = function(el){
	el.removeClass('formErr');
}

