/*******************************************************************************
 * Ajax dynamic content Copyright (C) 2006 DTHMLGoodies.com, Alf Magne Kalleland
 * 
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 * 
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 * 
 * Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
 * written by Alf Magne Kalleland.
 * 
 * Alf Magne Kalleland, 2006 Owner of DHTMLgoodies.com
 * 
 * 
 ******************************************************************************/

var enableCache = false;
var jsCache = new Array();
var dynamicContent_url = new Array();

var dynamicContent_ajaxObjects = new Array();

function ajax_showContent(divId, ajaxIndex, url) {
	var targetObj = document.getElementById(divId);
	if (dynamicContent_ajaxObjects[ajaxIndex].response.indexOf("_TELA_LOGIN_") >= 0) {
		window.location = "login.jsp?expire=true";
	} else {
		if (dynamicContent_ajaxObjects[ajaxIndex].response.indexOf('<div id="warn" title="_erro_de_seguranca_acesso_">') >= 0) {
			var mostrarErroSeguranca = function(msg) {
				alert(msg);
				displayMessage(dynamicContent_url[divId], messageObj.width, messageObj.height);
			}
			segurancaAjax.getCurrentError(mostrarErroSeguranca);
		} else {
			targetObj.innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;
			//document.getElementById("teste").value = dynamicContent_ajaxObjects[ajaxIndex].response;
			if (enableCache) {
				jsCache[url] = dynamicContent_ajaxObjects[ajaxIndex].response;
			}
			dynamicContent_url[divId] = url;
			dynamicContent_ajaxObjects[ajaxIndex] = false;

			ajax_parseJs(targetObj)
		}
	}
}

function ajax_loadContent(divId, url, method) {
	if (enableCache && jsCache[url]) {
		document.getElementById(divId).innerHTML = jsCache[url];
		return;
	}
	
	if (!method) {
		method = "GET";
	}

	var ajaxIndex = dynamicContent_ajaxObjects.length;
	document.getElementById(divId).innerHTML = 'Carregando...';
	dynamicContent_ajaxObjects[ajaxIndex] = new sack();
	dynamicContent_ajaxObjects[ajaxIndex].method = method;
	dynamicContent_ajaxObjects[ajaxIndex].requestFile = url; // Specifying
																// which file to
																// get
	dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function() {
		ajax_showContent(divId, ajaxIndex, url);
	}; // Specify function that will be executed after file has been found
	dynamicContent_ajaxObjects[ajaxIndex].runAJAX(); // Execute AJAX function

}

function ajax_parseJs(obj) {
	var scriptTags = obj.getElementsByTagName('SCRIPT');
	var string = '';
	var jsCode = '';

	for ( var no = 0; no < scriptTags.length; no++) {
		if (scriptTags[no].src) {
			var head = document.getElementsByTagName("head")[0];
			var scriptObj = document.createElement("script");

			scriptObj.setAttribute("type", "text/javascript");
			scriptObj.setAttribute("src", scriptTags[no].src);
		} else {
			if (navigator.userAgent.indexOf('Opera') >= 0) {
				jsCode = jsCode + scriptTags[no].text + '\n';
			} else
				jsCode = jsCode + scriptTags[no].innerHTML;
		}

	}

	if (jsCode) {
		ajax_installScript(jsCode);
	} else {
		window.setTimeout(fnProxy, 10);
	}
}

function ajax_installScript(script) {
	if (!script)
		return;
	if (window.execScript) {
		window.execScript(script)
	} else if (window.jQuery && jQuery.browser.safari) { // safari detection
															// in jQuery
		window.setTimeout(script, 0);
	} else {
		window.setTimeout(script, 0);
	}
	window.setTimeout(fnProxy, 10);
}
