/*
 * 
 * Javascript incluído no template.
 * 
 */
function Morathi(){

		
	/**
	 * Método utilitário para chamadas Ajax.
	 * @param options - 
	 * {
	 * 		url:'action', 
	 * 		targets:'idDiv, atendimentoDiv',
	 * 		param: 'id=1&nome=thiago',
	 * 		formIds: 'form, formAtendimento',
	 * 		openDialog: 'idDialog',
	 * 		success:function(){}, 
	 * 		error:function(){}
	 * 	}
	 */
	this.ajax = function (options){
		var dataForm = "";
		if (options.param){
			dataForm = options.param;
		}
		if (options.formIds){
			$.each(options.formIds.split(","), function (index, value){
				dataForm += (dataForm != "" ? "&" : "") + $("#"+$.trim(value)).serialize();
			});
		}
		$.ajax({
			  type: 'POST',
			  url: options.url,
			  data: dataForm,
			  beforeSend: function(xhr){
				if (!options.beforeSend){  
					$.blockUI({message : "Aguarde"});
				} else {
					options.beforeSend(xhr);
				}
			  },
			  complete: function(xhr, status){
				  $.unblockUI();
				  if (options.complete){
					  options.complete(xhr, status);
				  }
			  },
			  success: function (data,status,xhr){
				  if (options.success){
					  options.success(data,status,xhr,options);
					  return false;
				  }
				  if (options.targets){
					  $.each(options.targets.split(","), function (index, value){
						  $("#"+$.trim(value)).html(data);
					  });
				  }
				  if (options.topics){
					  $.each(options.topics.split(","), function (index, value){
						  $.publish($.trim(value));
					  });
				  }
				  if (options.openDialog){
					  $("#"+options.openDialog).html(data);
					  $("#"+options.openDialog).dialog("open");
				  }
			  },
			  error: options.error
		});
	}
	
	/**
	 * Does not clear hidden fields
	 * @param component - idForm, idDiv, idSpan, idTable 
	 */
	this.clearForm = function (component) {

	    $(component).find(':input').each(function() {
	        switch(this.type) {
	            case 'password':
	            case 'select-multiple':
	            case 'select-one':
	            case 'text':
	            case 'textarea':
	                $(this).val('');
	                break;
	            case 'checkbox':
	            case 'radio':
	                this.checked = false;
	        }
	    });

	}

}
var Morathi = new Morathi();

function toggleClass(oldClass, newClass){
	var selection = $("."+oldClass);
	selection.css("cursor","pointer");
	selection.mouseover(function (){
		var comp =$(this); 
		comp.removeClass(oldClass).addClass(newClass);
	});
	selection.mouseout(function (){
		var comp =$(this);
		comp.removeClass(newClass).addClass(oldClass);
	});
}
function submitForm(input){
	input = $(input);
	input.closest("form").submit();
}


