/*
 * Class: Utils
 * @autor: Christian Benseler
 * @created: 01/06/2007
 * @requires: prototype.js
 * 
 */

var Utils = Class.create();

Utils.prototype = {
	/*
	 * construtor padrão;
	 */
	initialize: function() {
		this.allowScriptsAfterSubmit = false;
	},
	
	openUrl: function(thisObject) {
		//verifica se tem popup
		if(thisObject.hasPopup) {
			var divPopup = new Popup(thisObject.popup);
			divPopup.createCloseButton(thisObject.popupClose);
			divPopup.createMessageArea(thisObject.messageArea, thisObject.popup);
		}
	
		var url = thisObject.formUrl;
		var pars = "rnd=" + Math.random()*4;
		
		if(thisObject.getLoadingMessageId())
			$(thisObject.messageArea).innerHTML += thisObject.loadingMessage;

		var myAjax = new Ajax.Updater( 

			{}, 
			url, 
			{ 
				method: 'get',
				parameters: pars, 
				onSuccess: function(request) {
					//se tiver loadingMessageId, retira a mensagem
					if(thisObject.getLoadingMessageId())
						$(thisObject.getMessageArea()).removeChild($(thisObject.getLoadingMessageId())); //remove mensagem de aguarde...
					
					$(thisObject.messageArea).innerHTML = request.responseText;
					
					//verifica se deve mostrar alguma área que estava escondida
					
					if(thisObject.areaToShow!="")
						$(thisObject.areaToShow).style.display = "block";
					
					/*
					 * se for para mostrar em uma popup, abre a mesma...
					 */
					if(thisObject.hasPopup)
						divPopup.open();
					
					
				}, 
				onFailure: function(request) {
					if(thisObject.getLoadingMessageId())
						$(thisObject.getMessageArea()).removeChild($(thisObject.getLoadingMessageId())); //remove mensagem de aguarde...
					if(request.responseText.indexOf("<body>")>0)
						$(thisObject.getMessageArea()).innerHTML += request.responseText.substring(request.responseText.indexOf("<body>") + 6, request.responseText.indexOf("</body>"));
					else
						$(thisObject.getMessageArea()).innerHTML += request.responseText;
					/*
					 * se for para mostrar em uma popup, abre a mesma...
					 */
					if(thisObject.hasPopup)
						divPopup.open();
				}
			}
		);
	},
	
	submitAction:function (url, pars, messageArea, divPopup, height, thisObject) {
		var thisUtils = this;
		var myAjax = new Ajax.Updater( 
			{}, 
			url, 
			{ 
				method: 'post',
				parameters: pars, 
				onSuccess: function(request) {
					$(messageArea).innerHTML = request.responseText;
					if(thisObject.callAfterSend!=null) {
						var str = thisObject.callAfterSend;
						eval(thisObject.callAfterSend + "()");
					}
					/*
					 * verifica se tem popup
					 */
					if(thisObject.hasPopup)
						divPopup.open();						
					else
						/*
						 * seta altura auto, caso tenha sido setada antes fixa
						 */
						$(messageArea).style.height = "auto";
				},
				evalScripts:thisUtils.allowScriptsAfterSubmit
			}
		);	
	},
	
	setAllowScriptsAfterSubmit: function(status) {
		this.allowScriptsAfterSubmit = status;
	}
}