//janela.js
var messageStack = new Array();
var messageObj;
var messageMaster;

if (messageObj == null) {
   messageObj = getMessage("messageMaster");
   messageMaster = messageObj;
}

messageObj.setShadowOffset(0);

function getMessage(name) {
   tmp = messageStack[name];
   if (tmp == null) {
      tmp = new DHTML_modalMessage(name);
      messageStack[name] = tmp;
   }
   return tmp;
}

function displayMessage(url, width, height) {
	disableTags();
	disableButtons();
	masterOpen = true;
	messageObj.setSource(url);
	messageObj.setCssClassMessageBox(false);
	messageObj.setSize(width, height);
	messageObj.setShadowDivVisible(false);
	messageObj.display();
	messageObj.setCount(0);
	messageObj.divs_content.focus();
}

function displayChildMessage(url, width, height) {
	messageObj = getMessage("messageChild");
	messageObj.setCount(1000);
	displayMessage(url, width, height);
}

function displayChildStaticMessage(messageTitle, messageContent, buttons, width, height, isError) {
	messageObj = getMessage("staticMessageChild");
	messageObj.setCount(2000);
	displayStaticMessage(messageTitle, messageContent, buttons, width, height, isError);
}

function displayStaticMessage(messageTitle, messageContent, buttons, width, height, isError) {
	if (isError) {
		style = "_error";
	} else {
		style = "";
	}
	
	disableTags();
	messageObj.setHtmlContent(
	'<div id="janela">' +
	   '<div id="j_top' + style + '">' + messageTitle + '</div>' +
	   '<div id="j_content">' + messageContent + '</div>' +
	   '<div id="j_bot' + style + '">' +
	      '<div align="right">' + buttons + '</div>' +
	   '</div>' +
	'</div>');
	
	messageObj.setSize(width, height);
	messageObj.setSource(false);
	messageObj.setShadowDivVisible(false);
	messageObj.display();
	
	messageObj.divs_content.focus();
}

function closeMessage() {
   if(messageObj.divs_content != null) {
		messageObj.divs_content.onblur = function() {};
		messageObj.close();
	
		if (messageObj.window_name != "messageMaster") {
			messageObj = messageStack["messageMaster"];
		}
		
		enableTags();
		enableButtons();
   }
}

var tagsValues = new Array();
function disableTags() {
	var tags = document.getElementsByTagName("select");
	for (var i = 0; i < tags.length; i ++) {
		if (tagsValues[tags[i].name] == null) {
			tagsValues[tags[i].name] = tags[i].disabled;
		}
		tags[i].disabled = true;
	}
}

function enableTags() {
	var tags = document.getElementsByTagName("select");
	for (var i = 0; i < tags.length; i ++) {
		if(tags[i].name) {
			tags[i].disabled = !tagsValues[tags[i].name] ? "" : "disabled";
		}
	}
}

function getButton(title, action) {
   return '<input type="button" value="' + title + '" onClick="' + action + '" class="bt05">';
}

var buttonsDisabled = new Array();
function disableButtons() {
   var args = disableButtons.arguments;
   if (args.length > 0) {
      for (i = 0; i < args.length; i ++) {
         var parentObj = $(args[i]);
         executeDisableButtons(parentObj);
      }
   } else {
      executeDisableButtons(document)
   }
}
function executeDisableButtons(parentObj) {
   var buttons = parentObj.getElementsByTagName("input");
   for (j = 0; j < buttons.length; j ++) {
      if((buttons[j].type == 'button' || buttons[j].type == 'submit' || buttons[j].type == 'reset') && !buttons[j].disabled) {
         buttons[j].disabled = true;
         buttonsDisabled.push(buttons[j]);
      }
   }
}

function enableButtons() {
   for (i = 0; i < buttonsDisabled.length; i ++) {
      buttonsDisabled[i].disabled = false;
   }
}

function buildParams(form) {
   var params = "";
   var elements = form.elements;
   var separador = "";
   for (i = 0; i < elements.length; i ++) {
      if (elements[i].name != "") {

         var valor = getElementValue(elements[i]);

         if (valor != null) {
            params = params + separador + elements[i].name + "=" + escape(valor);
         }

         if (separador == "") {
            separador = "&"
         }
      }
   }
   return params;
}

function getElementValue(element) {
   var val = null;
   if (element.type == "checkbox") {
      val = getCheckboxValue(element);
   } else if (element.type == "radio") {
      val = getRadioValue(element);
   } else {
      val = element.value;
   }

   return val;
}

function getCheckboxValue(element) {
   var val = null;
   if (element.type == "checkbox" && element.checked) {
      val = element.value;
   }
   return val;
}

function getRadioValue(element) {
   var val = null;
   if (element.length > 1) {
      for (i = 0; i < element.length; i ++) {
         if (element[i].checked) {
            val = element[i].value;
            break;
         }
      }
   } else {
      val = element.checked ? element.value : null;
   }
   return val;
}
