
function focus_field(element) {
	jQuery('input').each(function() {
		if(jQuery(this).is('.selected')) {
			jQuery(this).removeClass('selected');
			if(jQuery(this).is('.was_optional')) {
				var value = jQuery(this).val();
				var tmp_element_id = jQuery(this).attr('id');
				var first_value = jQuery('#'+tmp_element_id+'_first_value').val();
				if(value=='' || value==first_value) {
					jQuery(this).addClass('optional').val(first_value);
				}
			}
		}
	});
	
	var element_id = jQuery(element).attr('id');
	
	
	if(!jQuery('#'+element_id+'_status_flag').length) {
		jQuery('#'+element_id).after('<input type="hidden" id="'+element_id+'_status_flag" value="1">');
	}
	jQuery(element).addClass('selected input_border');
	
	
	
	
	if(jQuery(element).is('.optional')) {
		var element_value = jQuery(element).val();
		jQuery(element).after('<input type="hidden" id="'+element_id+'_first_value" value="'+element_value+'">');
		if(!jQuery(element).is('.KeepDefaultValue')){
		    jQuery(element).removeClass('optional').addClass('was_optional').val('');
		}
		//field_val_define = 'field_val_'+element_id;
		//window.field_val_define
	}
	
	if(jQuery('#'+element_id+'_description').length && jQuery('#'+element_id+'_description').is(":hidden")) {
		//jQuery('.description').each(function() { jQuery(this).hide('slow'); });
		jQuery('#'+element_id+'_description').show(100);
	}
}

function validate_field(element, rules, show_error, javascript, force_validation, validate) {
	if(element != null){
	window.now_validating_field = 1;
	
	show_error = show_error || 'yes';
	javascript = javascript || '';
	force_validation = force_validation || 0;
	validate = validate || 'yes';
	
	//alert(show_error);
	
	if(jQuery(element).is(':checkbox')) {
		var value = (jQuery(element).is(':checked'))?1:0;
	} else {
		var value = jQuery(element).val();
		value = jQuery.trim(value);
		jQuery(element).val(value);
	}
	var element_id = jQuery(element).attr('id');
	var IDs_array = element_id.split('_');
	var uniq_id = IDs_array[0];
	var field_sub_id = IDs_array[1];
	
	var first_check = 0;
	if(!jQuery('#'+element_id+'_last_value').length) {
		jQuery('#'+element_id).after('<input type="hidden" id="'+element_id+'_last_value" value="">');
		first_check = 1;
	}
	var last_value = jQuery('#'+element_id+'_last_value').val();
	
	if((value!=last_value && (value!='' || jQuery('#'+element_id+'_touch_flag').length)) || force_validation==1) {
		
			jQuery('#'+element_id).removeClass('input_error').addClass('input_border');
			jQuery('#'+uniq_id+'_status .error').each(function() { jQuery(this).hide(); });
			jQuery('#'+uniq_id+'_error_icon').hide();
			jQuery('#'+uniq_id+'_status .success').hide();
			//start loading gif
			if(validate=='yes') {
				jQuery('#'+uniq_id+'_loading').show();
			}
		
			if(show_error=='yes') {
				jQuery('#'+element_id+'_last_value').val(value);
			}
			
			if(!jQuery('#'+element_id+'_touch_flag').length) {
				jQuery(element).after('<input type="hidden" id="'+element_id+'_touch_flag" value="1">');
			}
			
			var confirm = '';
			if(jQuery('#'+element_id+'_confirm_element').length) {
				var confirm_element_id = jQuery('#'+element_id+'_confirm_element').val();
				confirm = jQuery('#'+confirm_element_id).val();
			}
			
			jQuery.get('/common/form/ajax_form.php', {action: 'validate_field', value:value, confirm:confirm, rules:rules}, function(data) {
				
				//alert(data);
				
				if(force_validation==1) window.responses+=1;
				
				//jQuery('#'+uniq_id+'_status .error').each(function() { jQuery(this).hide(); });
				if(data=='success') {
					
					if(validate=='yes') {
						//end loading gif
						jQuery('#'+uniq_id+'_loading').hide();
							
							
							jQuery('#'+element_id).removeClass('input_error').addClass('input_border');
							jQuery('#'+uniq_id+'_status .error').each(function() { jQuery(this).hide(); });
							jQuery('#'+uniq_id+'_error_icon').hide();
							jQuery('#'+element_id+'_status_flag').val('1');
							if(window.set_error_tmp==uniq_id) window.set_error_tmp = 0;
							
								if(force_validation==0) {
									//show Success Icon
									jQuery('#'+uniq_id+'_status .success').show('fast');
									
									//fade Effect for Success Icon
									setTimeout(function() { jQuery('#'+uniq_id+'_status .success img').fadeOut(1000, function() { jQuery('#'+uniq_id+'_status .success').hide(); jQuery(this).fadeIn(); });  }, 1000);		
								}
					}
					
					if(javascript!='') eval(javascript);
					
				} else {
					if(validate=='yes') {
						jQuery('#'+uniq_id+'_status .success').hide();
						
						jQuery('#'+uniq_id+'_loading').hide();
						
						if(force_validation==1) {
							window.errors+=1;
							if(!is_array(window.all_errors[uniq_id])) window.all_errors[uniq_id] = new Array();
							window.all_errors[uniq_id][field_sub_id] = data;
						} else if(window.set_error_tmp!=uniq_id || window.set_error_tmp_sub_id == field_sub_id) {
							//alert('error');
								//end loading gif
								
							if(show_error=='yes') {
								jQuery('#'+uniq_id+'_status .error_'+field_sub_id+'_'+data).show('fast');
								jQuery('#'+uniq_id+'_error_icon').show('fast');
								jQuery('#'+element_id).removeClass('selected input_border').addClass('input_error');
							}
						}
						
						jQuery('#'+element_id+'_status_flag').val('0');
								
								window.set_error_tmp = uniq_id;
								window.set_error_tmp_sub_id = field_sub_id;
					}
					
				}
				
			});
		
	} else {
		if(jQuery(element).is('.was_optional')) {
			var value = jQuery(element).val();
			var tmp_element_id = jQuery(element).attr('id');
			var first_value = jQuery('#'+tmp_element_id+'_first_value').val();
			if(value=='' || value==first_value) {
				jQuery(element).addClass('optional').val(first_value);
			}
		}
		
		if(jQuery('#'+element_id+'_status_flag').length) {
			
			if(document.getElementById(element_id+'_status_flag').value=='0') {
				jQuery(element).removeClass('input_border').addClass('input_error');
			}
		}
		
	}
	
	window.now_validating_field = 0;
	}
}
