/**
* 	Seta a primeira letra pra maiúsculo
*
*/
function toTitleCase(str) {
    return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
}      
/**
* 	Formata o título da página
*
*/
function formatTitle(title) {
	var tit = (toTitleCase(title.substr(1, title.length - 2).replace(/\//g, ' / ')));
	
	if(!tit) tit = "inicial";
	
    return ' ' + tit;
}
/**
* 	Retorna o objeto xmlhttp
*
*/
function getTransport() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch(e) {
            return new ActiveXObject('Microsoft.XMLHTTP');
        }
    }
}

/**
* 	Fade de alpha nos objetos
*
*/
function appear(content, value) {
    if (typeof value == 'undefined') value = 0;
    if (value > 1) return;
    var property = content.filters ? 'filter' : 'opacity';
    content.style[property] = content.filters ? 'alpha(opacity=' + value*100 + ')' : value;
    setTimeout(function () {appear(content, value + .1)} , 50);
}

/**
* 	Inicia a controle para importação/execução dos javascripts
*
*/

var exec = "";
var js_importer = 0;
var js_loader = 0;
var js_list = new Array();

/**
* 	Executa o javascript
*
*/
function execute()
{
		eval(exec);
	
	js_loader = 0;
	js_importer = 0;	
}
/**
* 	Faz a verificação das listas de arquivos importados
*
*/
function contains (src)
{
	for(var i = 0 ; i < js_list.length; i++)
	{
		if(src == js_list)
		{
			return true;
		}
	}
	
	return false;
	
}
/**
* 	Faz o controle de carregamento
*
*/
function jsController ()
{
	js_loader++;
	
	if(js_loader >= js_importer)
	{
		execute();	
	}
}

function loadLightBox () 
{
	$(function() {
		// Use this example, or...
		$('a[@rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
	});
}


/**
* 	Controla as chamadas do ajax
*
*/



function updateChange(xhr) {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            var content = $id('content');   
			content.style.display = "block";
			content.innerHTML = xhr.responseText;	
						
			var scripts = content.getElementsByTagName("script");
			
			exec = "";
			
			for(i = 0; i < scripts.length; i++)
			{
				
				if( scripts[i].src.length > 0 )
				{
					if(!contains(scripts[i].src))
					{
						try
						{
						
							var test = document.createElement("script");
					
							test.src = scripts[i].src;
						
							test.onload = function () { jsController(); }
					
							document.body.appendChild(test);
							
	
						}
						catch(e)
						{
							
						}
						
						js_list.push(scripts[i].src);
											
						js_importer++;
					}
				}
				else
				{
					exec += scripts[i].innerHTML;
				}
			}
			
			// Gambiarra pq o IECA nao da suporte ao onload para objetos script
			
			if(js_importer > 0)
			{
				setTimeout(execute,js_importer*200);
			}
			else
			{
				execute();
			}
			
        } else {
            alert('Error: ' + xhr.status + '!');
        }
    }
}
/**
* 	Faz o controle do hash
*
*/
function handleChange(event) 
{
	var parameters = '';
	for (var p in event.parameters) {
		parameters += '&' + p + '=' + event.parameters[p];
	}
	//
	var xhr = getTransport();
	xhr.onreadystatechange = function() {
		updateChange(xhr);
		$id("preloader").style.display = "none";
		loadLightBox();
	}
	//
	xhr.open('get', 'datasource.php?swfaddress=' + event.path + parameters, true);
	xhr.send('');
	//
	$id("preloader").style.display = "block";
	$id("content").style.display = "none";	
}

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);