function submit_form(form){
    var errorContainer = $('div.form div.error');
    if(errorContainer.length  != 0){
	   errorContainer.text('');
	   errorContainer.animate({
		  width: 0,
		  height: 0,
		  padding: 0,
		  opacity: '0',
		  margin: '0'
	   }, 400);
    }
    var form_data = form.serialize();
    form.submit();
    var url = form.attr('action');
    form_data = 'submit_form=true&ajax=true&' + form_data;
    jQuery.ajax({
	   data: form_data,
	   type: 'post',
	   url: url,
	   success: function(data){
		  //popup = window.open('', 'mywindow1', 'location=0,status=0,scrollbars=1,width=500,height=700');
		  //popup.document.body.innerHTML = '';
		  //popup.document.write(data);
		  //popup.focus();
		  var data = $.parseJSON(data);

		  if(!data){
			 return;
		  }
		  if(data.success == true){
			 if(data.message){
				var _box = $('div.form_holder');

				_box.fadeOut(400, function(){
				    _box.empty();
				    _box.html(data.message);
				}).fadeIn(400);
			 }
			 else{
				if(data.return_to != null){
				    $('body').animate({
					   opacity: '0'
				    }, 700, function(){
					   if(data.return_to){
						  window.location = data.return_to;
					   }
				    });
				}
				else{
				    window.location = BASE_URL;
				}
			 }
		  }
		  else if(data.error){
			 if(errorContainer.length  == 0){
				errorContainer = $('<div>');
				errorContainer.addClass('error');
				$('div.form div.outer_box').prepend(errorContainer);
			 }
			 errorContainer.text(data.error);
			 errorContainer.animate({
				width: '100%',
				height: '20px',
				padding: '5px 0',
				display: 'block',
				opacity: '1',
				margin: '0 auto 10px auto'
			 },	600, function(){
				});
		  }
	   }
    });
}

jQuery(document).ready(function($){
    //$('form#OrderIndexForm').submit(function(e){
    $('button#OrderIndexFormSubmit').click(function(e){
	   e.preventDefault();
	   var _form = $('form#OrderIndexForm');
	   validator = _form.validate({
		  errorElement: 'em',
		  errorPlacement: function(error, element) {
			 error.remove();
			 var element_width = element.parent().width() + 20;
			 element.parent().css('position', 'relative');
			 error.css({
				'display':'none',
				'top':'1px',
				'padding': '3px 10px 3px  10px'
			 });
			 error.insertAfter(element);
			 var error_width = error.width() + 60;
			 /*error.css({'right': '-' + error_width + 'px'});*/
			 error.fadeIn(900);
		  },
		  highlight:function(element, errorClass, validClass){
			 var error = $(element).parent().find('.error');
			 $(error).css({
				'right': '-' + (error.width() + 60) + 'px'
			 });
		  },
		  unhighlight:function(element, errorClass, validClass){
			 var error = $(element).parent().find('.error');
			 $(error).css({
				'right': '-' + (error.width() + 60) + 'px'
			 });
		  },

		  rules:{
			 'data[Order][nume]': 'required',
			 'data[Order][prenume]': 'required',
			 'data[Order][telefon]': 'required',
			 'data[Order][email]' : 'required',
			 'data[Order][adresa]' : 'required',
			 'data[Order][district]' : 'required',
			 'data[Order][localitate]' : 'required',
			 'data[Order][cod_postal]' : 'required',
			 'data[Order][delivery_method_id]' : 'required'
		  },
		  messages:{
			 'data[Order][nume]': 'Va rugam sa completati numele',
			 'data[Order][prenume]': 'Va rugam sa completati prenumele',
			 'data[Order][telefon]': 'Va rugam sa completati numarul de telefon',
			 'data[Order][email]': 'Adresa de email este invalida',
			 'data[Order][adresa]': 'Va rugam sa completati adresa',
			 'data[Order][district]': 'Va rugam sa completati judetul',
			 'data[Order][localitate]': 'Va rugam sa completati orasul',
			 'data[Order][cod_postal]' : 'Va rugam sa completati codul postal',
			 'data[Order][delivery_method_id]' : 'Va rugam sa selectati o metoda de livrare.'

		  }
	   });

	   if(!_form.valid()){
		  return;
	   }
	   else{
		  submit_form(_form);
	   }
    });

});
