var SITE_URL = 'http://bramexinstal.ro/';

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':
		    		var check = $('#'+id).attr('checked');
		    		var message = 'Acest camp trebuie bifat.';
		    		var key = error_msg.length;
		    		if(check == false) {
		    			error_msg[key] = message;
		    		}
		    	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 createErrorDiv2() {
	
}

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>');
	}
}

function validateEngine2(myform) {
	
	$('.error_div2').remove();
	
	// get all inputs 
	var allInputs = $(myform + ' :input');
	var inputs = new Array();
	var j = 0;
	
	// remove button, hidden, file 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 id exists
			if(id) {
				// check if attribute exists
				if($('#'+id).attr('validate')) {
					inputs[j] = $(allInputs[i]).attr('id');
					j++;
				}
			}
		}
	}
	
	var error = '';
	for(i = 0; i < inputs.length; i++) {
		var id = inputs[i];
		var type = $('#'+id).attr('validate');
		
		switch(type) {
			case 'empty':
	    		var message = $('#'+id).attr('message');
	    		var validate_val = $.trim($('#'+id).val());
	    		if(validate_val == '') error += message + '<br>';
	    	break;
	    	case 'email':
	    		var message = $('#'+id).attr('message');
	    		if(!validateEmail(validate_val)) {
	    			error += message + '<br>';
	    		}		    		
	    	break;
	    	case 'checked':
	    		var check = $('#'+id).attr('checked');
	    		var message = $('#'+id).attr('message');
	    		if(check == false) {
		    		if(validate_val == '') error += message + '<br>';
	    		}
	    	break;
	    	case 'select':
	    		var select_val = $('#'+id).val();
	    		var message = $('#'+id).attr('message');
	    		if(select_val == 0) {
	    			error += message + '<br>';
	    		}
	    	break;
		}
	}
	
	if(error != '') {
		createErrorDiv2(error);
	} else {
		SaveData('form_edit', $(window).width(), $(window).height());
		//$(myform).submit();
	}
	
}

function createErrorDiv2(message) {
	
	var msg = '<div class="error_msg">' + message + '</div>';
	
	var errorDiv = document.createElement('div');
	$(errorDiv).addClass('error_div2');
	$(errorDiv).append(msg);
	
	var position = $('.menu_bg').offset();
	
	$(errorDiv).css(position);
	$('body').append(errorDiv);
	$(errorDiv).fadeIn('normal');
	
	$('html, body').animate(
		{scrollTop: position['top']}
	, 1000);
	
	$('.error_div2').animate({
		opacity: 0
	}, 15000, function() {
		$('.error_div2').remove();
	});
}

function SaveData(form, windowWidth, windowHeight) {

	var saveDiv = document.createElement('div');
	$(saveDiv).addClass('save_div');
	$(saveDiv).css('display', 'none');
	
	var position = new Array();
	
	var wHalf = windowWidth / 2;
	var divWHalf = 200 / 2;
	var divHHalf = 70 / 2;
	
	position['left'] = wHalf - divWHalf;
	position['top'] = windowHeight - divHHalf;
	
	$(saveDiv).css(position);
	$('body').append(saveDiv);
	$(saveDiv).fadeIn('normal');
	
	var blockDiv = document.createElement('div');
	$(blockDiv).addClass('div_block');
	$(blockDiv).css('background-color', '#ffffff');
	$(saveDiv).before(blockDiv);
	$(blockDiv).css('display', 'block');
	$(blockDiv).css('height', $(document).height());
	$(blockDiv).fadeIn('normal');
	
	var msg = '<div style="width: 95%;height: auto;margin: 25px; auto 0px auto;">';
			msg += '<div class="text_5" style="width: 100px;float: left;">Saving...</div>';
			msg += '<div style="float: left;">';
				msg += '<img src="'+SITE_URL+'source/img/admin/saving.gif">';
			msg += '</div>';
		msg += '</div>';
	
	$(saveDiv).append(msg);
	
	setTimeout(function() {
		$('#'+form).submit();
	}, 4000);
}

 
 


