var scripts = document.getElementsByTagName('script');
var myScript = scripts[ scripts.length - 1 ];

var queryString = myScript.src.replace(/^[^\?]+\??/,'');

var params = parseQuery( queryString );

function parseQuery ( query ) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) continue;
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere
function caricaDati(nomeFile, idElemento) {

    var ajax = null;
    
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    elemento = document.getElementById(idElemento);
	
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;


    // impostazione richiesta asincrona in GET
    // del file specificato
	
    ajax.open("get", nomeFile, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
	//$(document.body).startWaiting('bigWaiting');

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		      
		// verifica dello stato
		if(ajax.readyState === readyState.COMPLETATO) {
			// verifica della risposta da parte del server
			if(ajax.status == "200") {
				
				// operazione avvenuta con successo
				if (elemento) {
					var Testo = ajax.responseText;
					select_innerHTML(elemento,Testo);
					//elemento.innerHTML += Testo;
				}
				//$(document.body).stopWaiting.bind(document.body);
			}
		} 
    }


    // invio richiesta
    ajax.send(null);
  }
  return (usaLink);
}



function PostDati(nomeFile) {

    var ajax = null;
    
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
	
    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;
    

    // impostazione richiesta asincrona in GET
    // del file specificato
    
    ajax.open("get", nomeFile, true);

    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
	//$(document.body).startWaiting('bigWaiting');

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		      
		// verifica dello stato
		if(ajax.readyState === readyState.COMPLETATO) {
			// verifica della risposta da parte del server
			if(ajax.status == "200") {
				//Operazione eseguita
				var TestoAjax = ajax.responseText;
			}
		} 
    }

    // invio richiesta
    ajax.send(null);
  }
  return (usaLink);
}


// funzione di caricamento testo,
// accetta una stringa contenente
// il nome di un file da leggere

var inAttesa = false;
var htmlCode = "0";
function RecuperoDati(nomeFile) {

    var ajax = null;
    
    
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    

    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;


    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", nomeFile, true);
	
    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
	//$(document.body).startWaiting('bigWaiting');

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		      
		// verifica dello stato
		if(ajax.readyState === readyState.COMPLETATO) {
			// verifica della risposta da parte del server
			if(ajax.status == 200) {
				// operazione avvenuta con successo
				htmlCode = ajax.responseText;
				inAttesa = false;
				
				//$(document.body).stopWaiting.bind(document.body);
			}
		} 
    }


    // invio richiesta
    ajax.send(null);
    inAttesa = true;
  }
  return (htmlCode);
}


function RecuperoDatiHTML(nomeFile) {

    var ajax = null;
    
    
    // assegnazione oggetto XMLHttpRequest
    ajax = assegnaXMLHttpRequest(),
    // assegnazione elemento del documento
    

    // risultato booleano di funzione
    usaLink = true;
  
  // se l'oggetto XMLHttpRequest non è nullo
  if(ajax) {
    // il link al file non deve essere usato
    usaLink = false;


    // impostazione richiesta asincrona in GET
    // del file specificato
    ajax.open("get", nomeFile, true);
	
    // rimozione dell'header "connection" come "keep alive"
    ajax.setRequestHeader("connection", "close");
	//$(document.body).startWaiting('bigWaiting');

    // impostazione controllo e stato della richiesta
    ajax.onreadystatechange = function() {
		      
		// verifica dello stato
		if(ajax.readyState === readyState.COMPLETATO) {
			// verifica della risposta da parte del server
			if(statusText[ajax.status] === "OK") {
			
				// operazione avvenuta con successo
				htmlCode = ajax.responseText;
			
				//$(document.body).stopWaiting.bind(document.body);
			}
		} 
    }


    // invio richiesta
    ajax.send(null);
  }
  return (htmlCode);
}


function RecuperaListe(tipoLista, idElemento) {
	
	caricaDati("getLista.php?id="+tipoLista, idElemento);
	
}

function replaceHtml(el, html) {
	var oldEl = typeof el === "string" ? document.getElementById(el) : el;
	/*@cc_on // Pure innerHTML is slightly faster in IE
		oldEl.innerHTML = html;
		return oldEl;
	@*/
	var newEl = oldEl.cloneNode(false);
	newEl.innerHTML = html;
	oldEl.parentNode.replaceChild(newEl, oldEl);
	/* Since we just removed the old element from the DOM, return a reference
	to the new element, which can be used to restore variable references. */
	return newEl;
};



function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versão: 2.1 - 04/09/2007
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
		objeto.innerHTML = innerHTML;
    } else {
	    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
	    selTemp.innerHTML = innerHTML
	      
	    
	    for(var i=0;i<selTemp.childNodes.length;i++){
			var spantemp = selTemp.childNodes[i];
	  
	        if(spantemp.tagName){     
	            opt = document.createElement("OPTION")
	    
			if(document.all){ //IE
				objeto.add(opt)
			}else{
				objeto.appendChild(opt)
			}       
	    
		   //getting attributes
		   for(var j=0; j<spantemp.attributes.length ; j++){
		    var attrName = spantemp.attributes[j].nodeName;
		    var attrVal = spantemp.attributes[j].nodeValue;
		    if(attrVal){
		     try{
		      opt.setAttribute(attrName,attrVal);
		      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
		     }catch(e){}
		    }
		   }
		   //getting styles
		   if(spantemp.style){
		    for(var y in spantemp.style){
		     try{opt.style[y] = spantemp.style[y];}catch(e){}
		    }
		   }
		   //value and text
		   opt.value = spantemp.getAttribute("value")
		   opt.text = spantemp.innerHTML
		   //IE
		   opt.selected = spantemp.getAttribute('selected');
		   opt.className = spantemp.className;
			} 
		}    
		document.body.removeChild(selTemp)
		selTemp = null
	}
}


function StartLoading(id){
	
	var objOberlayLoading = document.getElementById(id);
	if(objOberlayLoading)
	{
		objOberlayLoading.style.display = "block";
	}	
	
}

function StopLoading(id){
	var objOberlayLoading = document.getElementById(id);		
	if(objOberlayLoading)
	{
		objOberlayLoading.style.display = "none";
	}		
}