/************************************************************************************************************
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 = true;
var jsCache = new Array();

var dynamicContent_ajaxObjects = new Array();

function ajax_showContent(divId,ajaxIndex,url,carregandoId){
	var targetObj;
	if( typeof divId == "string" ){
		targetObj = document.getElementById(divId);
	} else {
		targetObj = divId;
	}
	if(targetObj.tagName == "SELECT"){
		innerSelect(targetObj,dynamicContent_ajaxObjects[ajaxIndex].response)
	} else {
		targetObj.innerHTML = dynamicContent_ajaxObjects[ajaxIndex].response;
	}
	
	if(enableCache){
		jsCache[url] = 	dynamicContent_ajaxObjects[ajaxIndex].response;
	}
	dynamicContent_ajaxObjects[ajaxIndex] = false;
	
	ajax_parseJs(targetObj);
	
	if( typeof carregandoId != "undefined" ){
		document.getElementById(carregandoId).style.display = 'none';
	}
}
function innerSelect(sel,html){
	html = '<SELECT>'+html+'</SELECT>';
	var temp = document.createElement('div');
	temp.innerHTML = html;
	sel.innerHTML = '';
	var options = temp.getElementsByTagName('option');
	for(i=0;i<options.length;i++){
		sel.appendChild(options[i].cloneNode(true));
	}
}

function ajax_loadContent(divId,url,carregandoId){
	
	if( typeof divId == "string" ){
		divId = document.getElementById(divId);
	}
	
	if(enableCache && jsCache[url]){
		divId.innerHTML = jsCache[url];
		return;
	}
	
	var ajaxIndex = dynamicContent_ajaxObjects.length;
	
	var divCarregando = divId;
	if( typeof carregandoId != "undefined" ){
		divCarregando = document.getElementById(carregandoId);
	}
	
	if(divCarregando.style.display == 'none'){
		divCarregando.style.display = '';
	}
	divCarregando.innerHTML = "<img src='./images/carregando.gif' /> Carregando...";
	
		
	dynamicContent_ajaxObjects[ajaxIndex] = new sack();
	dynamicContent_ajaxObjects[ajaxIndex].requestFile = url;	// Specifying which file to get
	dynamicContent_ajaxObjects[ajaxIndex].onCompletion = function(){  ajax_showContent(divId,ajaxIndex,url,carregandoId); };	// 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);
}


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 );
    } 
}	
	
function ajax_parseTBody(response,targetObj){
	var tb = document.createElement('TABLE');
	tb.innerHTML = response;
	var trTags = tb.getElementsByTagName('TR');
	
	for(var i=0; i<trTags.length; i++) {
		var tr = document.createElement('TR');
		var td = document.createElement('TD');
		td.innerHTML =  trTags[i].innerHTML;
		tr.appendChild(td);
		targetObj.appendChild(tr);
		
		alert(targetObj.innerHTML);
	}
	//alert( targetObj.innerHTML );	
}










