/*

  Javascript 2.1

  Autor: Eduardo Ottaviani
  Email: edudu_tata@hotmail.com
  Licença: Pública.

*/

/*
  Função $ajax:
  Desenvolvido por: Eduardo Ottaviani.
  Email: edudu_tata@hotmail.com.
  Licença: Pública.
  Link:

    Não cobro nada pelo código, porém peço apenas uma coisa em troca:

   "Por favor, não retire os comentários. Eles não pesarão no seu programa.
    Dessa forma, caso goste do código, você e outras pessoas
    poderão me localizar mais facilmente. Obrigado. =)"
*/

 function $ajax(json){

            // Private:
            var thisObj=this

            //Public:
            this.method=(json.method)?json.method:"GET"
            this.url=(json.url)?json.url:""
            this.async=(json.async)?json.async:true
            this.target=json.target=(json.target)?json.target:document.body
            this.loading=(json.loading)?json.loading:"Carregando..."
            this.SRH=(json.setRequestHeaders)?json.setRequestHeaders:0

            // Métodos públicos:
                this.onreadystatechange=(json.onreadystatechange)?json.onreadystatechange:"undefined" // Função a ser definida.
                this.open=function(){

                    var target=this.target
                    var loading=this.loading

                    var fn=this.onreadystatechange
                    var ajax_copy=ajax()

                        ajax_copy.onreadystatechange=function(){
                            if(typeof fn=="function")
                            var test=fn.call(thisObj, ajax_copy)

                            if(
                            test ||
                            typeof test=="undefined"
                            )switch(ajax_copy.readyState){
                                  case 1:
                                      target.innerHTML=loading; break;
                                  case 4:                                      
									  target.innerHTML=ajax_copy.responseText;									  
									  var divs = target.getElementsByTagName("center")
										for(var x = 0; x < divs.length; x++)											
											divs[x].parentNode.removeChild(divs[x])
								  break;

                                 }
                        }

                    // Caso o método seja "GET" ...
                        if(this.method.toUpperCase()=="GET"){
                        ajax_copy.open(this.method.toUpperCase(), this.url, this.async)
                        ajax_copy.send(null)
                        }

                    // Caso o método seja "Post" ...
                        else if(this.method.toUpperCase()=="POST"){
                        ajax_copy.open(this.method.toUpperCase(), this.url.split("?")[0], this.async)
                        ajax_copy.setRequestHeader("Content-type", "application/x-www-form-urlencoded")

                    // RequestHeaders alternativos definidos pelo usuário...
                            for(var x in this.SRH)
                            ajax_copy.setRequestHeader(x, this.SRH[x])

                        ajax_copy.send(this.url.split("?")[1])
                        }
                }

            // Constructor
            var ajax=(
                function(){
                    try{
                    var ajax= new XMLHttpRequest()
                    return function(){return new XMLHttpRequest()}
                    }
                    catch(ee){
                        try{
                        var ajax = new ActiveXObject("Msxml2.XMLHTTP")
                        return function(){return new ActiveXObject("Msxml2.XMLHTTP")}
                        }
                        catch(e){
                            try{
                            var ajax = new ActiveXObject("Microsoft.XMLHTTP")
                            return function(){return new ActiveXObject("Microsoft.XMLHTTP")}
                            }
                            catch(E){alert("O navegador não suporta ajax")}
                        }
                    }
                }
            )()
// Fim Classe $ajax.
 }


/*
    Foreach Javascript:
    Para cada elemento do array, uma função será executada com argumentos "args"
*/

 function foreach(array, fn, args){
  for(var x=0; x<array.length; x++)
  fn(array[x], args)
 }

/*
    HashString Javascript:
    Pega o valor da variavel passada como argumento (tipo String)
    Argumento 2: String após o símbolo "#".

    A função retornará o valor do par de valores: #var1=valor&var2=valor2&var3=valor3

*/
 function HashString(variavel, b4hash){
    var variaveis=b4hash.replace(/\x3F/,"").replace(/\x2B/g," ").split("&")
    var nvar
         if(variaveis!=""){
         var qs=[]
            for(var i=0;i<variaveis.length;i++){
            nvar=variaveis[i].split("=")
            qs[nvar[0]]=unescape(nvar[1])
            }
        return qs[variavel]
        }
    return null
 }

 // Aqui, o ajax =)

 function a(arr, qs){
     var $=function(id){return document.getElementById(id)}
     var hash=HashString("aba", arr.href.split("#")[1])

         if(hash==qs){
             arr.className="ativa"

                 if(!document.getElementById("cssSwitch")){
                     var css=document.createElement("link")
                         css.type="text/css"
                         css.rel="stylesheet"
                         css.id="cssSwitch"
                     document.getElementsByTagName("head")[0].
                     appendChild(css)
                 }
                 else var css=document.getElementById("cssSwitch")
                 css.href="css/"+qs+".css"

             var ajax=new $ajax({})
             ajax.loading="<img src='imgs/ajax-loader.gif' alt='Carregando...' class='loading' />"
             ajax.url=qs+".htm?sid=" + Math.random()
             ajax.target=document.getElementById("conteudo")
             ajax.target.className=qs
             ajax.open()
         }
         else
         arr.className="inativa"
 }



 // Inicia o comportamento das abas.
 
 function loadAbas(abas){
         for(var x=0; x<abas.length; x++){
         abas[x].href="index.htm#aba="+abas[x].title
             abas[x].onclick=function(){
                 foreach(
                     abas,
                     a,
                     HashString("aba", this.href.split("#")[1])
                 )
             }
         }

         if(HashString("aba", location.hash.substring(1)))
             foreach(abas, a, HashString("aba", location.hash.substring(1)))
         else
             foreach(abas, a, "home")
 }
 
	new function(){
		var divs = document.getElementsByTagName("center")
			for(var x = 0; x < divs.length; x++)				
				divs[x].parentNode.removeChild(divs[x])
					
		var random = function(size){return Math.floor(Math.random()*size)}	
		
		loadAbas(
		   document.getElementById("site").
		   getElementsByTagName("ul")[0].
		   getElementsByTagName("a")
		  )
	}
	
  /*
  	var rand = random(5)
	var img = new Image()
		img . src = "imgs/background800"+ rand + ".jpg"
		img [ "onload" ] = function(){
			document.getElementById("site").style.backgroundImage = "url(imgs/background800"+ rand + ".jpg)" 
		}
	*/
 