
function validateEngine(myform){
	
	// remove all error div
	$('.divFormError').remove();
	$('.FormErrorArrow').remove();
	
	// get all inputs 
	var allInputs = $(myform + ' :input');
	var inputs = new Array();
	var j = 0;
	// remove button and submit
	for(i = 0; i < allInputs.length; i++) {
		var type = $(allInputs[i]).attr('type');
		if(type != 'button' && type != 'submit' && type != 'file' && type != 'hidden') {
			var id = allInputs[i].id;
			// check if attribute exists
			if($('#'+id).attr('validate')) {
				inputs[j] = $(allInputs[i]).attr('id');
				j++;
			}
		}
	}
	
	// check for validation 
	var error = 1;
	for(i = 0; i < inputs.length; i++) {
		var error_msg = new Array();
		var id = inputs[i];
		
		var validate = $('#'+id).attr('validate');
		var types = validate.split('|');
		
		for(k = 0; k < types.length; k++) {
			switch(types[k]) {
		    	case 'empty':
		    		var message = 'Acest camp este obligatoriu.';
		    		var validate_val = $.trim($('#'+id).val());
		    		var key = error_msg.length;
		    		if(validate_val == '') error_msg[key] = message;        		
		    	break;
		    	case 'email':
		    		var message = 'Adresa de e-mail invalida.';
		    		var validate_val = $.trim($('#'+id).val());
		    		var key = error_msg.length;
		    		if(!validateEmail(validate_val)) {
		    			error_msg[key] = message;
		    		}		    		
		    	break;
		    	case 'checked':
		    		
		    	break;
		    	case 'radio_checked':
		    		
		    	break;
		    }
		}
		
		if(error_msg.length > 0) {
			error = 2;
			var error_message = '';
	        for(j = 0; j < error_msg.length; j++) {
	        	if(error_msg[j] != 'undefined') {
	        		//alert(error_msg[j]);
	        		error_message += '* ' + error_msg[j] + '<br>';
	        	}
	        }
	        createErrorDiv(error_message, id, types.length);
		}
	}
	if(error == 1) {
		$(myform).submit();
	} else {
		return false;
	}
	
}

function validateEmail(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function validateMaxlength(id) {
	// remove labels 
	$('.label_nr').remove();
	// remove all error div
	$('.divFormError').remove();
	$('.FormErrorArrow').remove();
	$('#'+id).css('border-color', '');
	
	var val = $('#'+id).val();
	var maxlength = $('#'+id).attr('maxlength');
	var label = document.createElement('label');
	var char_nr = maxlength - val.length; 
	var type= $('#'+id).attr('type');
	
	$(label).addClass('label_nr');
	$(label).insertAfter('#'+id);
	$(label).append(char_nr);
	if(maxlength == val.length || maxlength < val.length) {
		if(type == 'textarea') {
			substr_val = $('#'+id).val().substring(0, maxlength);
			$('#'+id).val(substr_val);
		}
		createErrorDiv('*Numar maxim ' + maxlength, id, 1);
	}
}

function validatePassword(id, confirm_id) {	
	// remove labels 
	$('.label_nr').remove();
	// remove all error div
	$('.divFormError').remove();
	$('.FormErrorArrow').remove();
	$('#'+id).css('border-color', '');
	
	var thisVal = $('#'+id).val();
	var confirmVal = $('#'+confirm_id).val();
	if(thisVal != confirmVal) {
		createErrorDiv('*Parola incorect confirmata', id, 1);
	}
}

function createErrorDiv(message, id, rows) {
	
	if(rows == 1) {
		var add_y = 0;
		var add_y2 = 1;
	} else {
		var add_y = rows - 15;
		var add_y2 = rows + 12;
	}	
	var field = $('#'+id);
	var divFormError = document.createElement('div');
	$(divFormError).addClass('divFormError');
	var position = $(field).offset();
	position['top'] = position['top'] + add_y; 
	
	$(field).before(divFormError);
	$(divFormError).css(position);
	$(divFormError).append(message);
	$(field).css('border-color', '#ff0000');
	
	if($.browser.mozilla) { 
		var arrow = document.createElement('div');
		$(arrow).addClass('formErrorArrow');
		$(divFormError).after(arrow);
		
		position['top'] = position['top'] + add_y2;
		$(arrow).css(position);
		$(arrow).html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
	}
}

 
 


