try {
	jQuery.noConflict();
	$j = jQuery;
}catch(e) {
	alert("jQuery não está disponível");
}

var loadCss = function(href, callback){
	var link = document.createElement("link");
	$j(link).attr("rel","stylesheet");
	$j(link).attr("type","text/css");
	$j(link).attr("href",href);
	
	if(callback){
		link.onload = callback;
	}
	
	document.getElementsByTagName("head")[0].appendChild(link)
}

var loadJs = function(src, callback){
	var script = document.createElement("script");
	$j(script).attr("type","text/javascript");
	$j(script).attr("src",src);
	
	if(callback){
		script.onload = callback;
	}
	
	document.getElementsByTagName("head")[0].appendChild(script)
}

var growContentMenu = function(){
	var content_menu = $j("div.content").find("div.menu ul");
	
	if(content_menu.length>0){
		
		var content_height = $j("div.content").height();
		
		if(content_menu.height() < content_height){
			content_menu.height(content_height);
		}
	}
}


var externalLinksBehavior = function(){
	
	$j("a.external").each(
		function(){
			this.onclick = function(){
				window.open(this.href,this.href);
				return false;
			}
		}
	);

}


var diagramaSolucaoCompleta = function(){
	
	$j("ul.diagrama-solucao > li").each(function(){
		$j(this).vAlign();
	});
	
}

var blockquoteRightQuotes = function(){
	
	$j("blockquote").each(function(){
		
		if($j(this).find(">div:first").length <= 0){
			var text = $j(this).find(">p:first").text();
			var words = text.split(" ");
			var last_word = words[(words.length-1)];
			var left = text.substring(0,text.lastIndexOf(last_word));
			
			var right = document.createElement("span");
			$j(right).append(last_word);
			
			$j(this).find(">p:first").html(left);
			$j(this).find(">p:first").append(right);	
		}
		
	});
	
}

var clientesDisplay = function(){
	
	var clientes_display = document.createElement("ul");
	$j(clientes_display).addClass("display");
	
	$j("div.clientes > ul > li").each(function(){
		$j(this).html("- " + $j(this).text());
	});
	
	for(i=0; i<$j("div.clientes ul").length;i++){
		
		var ul = $j($j("div.clientes ul")[i]);
		var meta = ul.metadata();
		ul.addClass(meta.tipo);
		var cliente = document.createElement("a");
		$j(cliente).addClass(meta.tipo);
		$j(cliente).text(meta.name);
		$j(cliente)[0].onclick = function(){
			var className = $j.trim(this.className.replace("active","").replace("last",""));
			
			$j("div.clientes ul.display li:not(." + className + ")").removeClass("active");
			$j("div.clientes ul:not(.display,." + className +")").hide();
			$j("div.clientes ul." + className).fadeIn();
			$j(this).parent().addClass("active");
			
			return false;
		}
		
		
		
		var cliente_container = document.createElement("li");
		if(i == ($j("div.clientes ul").length - 1)){
			$j(cliente_container).addClass("last");
		}
		
		$j(cliente_container).append(cliente);
		$j(clientes_display).append(cliente_container);
	}
	
	$j("div.clientes ul:first").before(clientes_display);
	$j("div.clientes ul.display li:first a").trigger("click");
	
	growContentMenu();
}


var presencaGlobalLista = function(){

	$j("div.columns > ul > li").each(function(){
		$j(this).html("- " + $j(this).text());
	});
}

var stripedList = function(){
	$j(".striped > li").each(function(i){
		if(i%2)
			$j(this).addClass("even");
	})

}

$j(document).ready(function(){

	growContentMenu();
	
	externalLinksBehavior();
	
	try{
		diagramaSolucaoCompleta();
	}catch(e){}
	
	try{
		clientesDisplay();
	}catch(e){}
	
	try{
		blockquoteRightQuotes();
	}catch(e){}
	
	try{
		stripedList();
	}catch(e){}
	
	presencaGlobalLista();
	
	try{
		if($j.browser.safari){
			loadCss("css/main-safari.css");
		}
	}catch(e){}
	
});


(function ($j) {
	$j.fn.vAlign = function(container) {
		return this.each(function(i){
			if(container == null) {
				container = 'div';
			}
			$j(this).html("<" + container + ">" + $j(this).html() + "</" + container + ">");
			var el = $j(this).children(container + ":first");
			var elh = $j(el).height(); //new element height
			var ph = $j(this).height(); //parent height
			var nh = (ph - elh) / 2; //new height to apply
			$j(el).css('margin-top', nh);
		});
	};
})(jQuery);

/*DHTML*/
function addOnLoadEvent(onloadToAdd){
	var prevOnLoad = window.onload;
	if(typeof window.load != 'function'){
		window.onload = onloadToAdd;
	} else {
		window.onload = function(){
			if(prevOnLoad){
				prevOnLoad();
			}
			onloadToAdd();
		}
	}
}

var getNewRndNumber = function(){
	return Math.round(Math.random()*99999999999);
}

function getViewportDimensions() {
    var intH = 0, intW = 0;
    
    if(self.innerHeight) {
       intH = window.innerHeight;
       intW = window.innerWidth;
    } 
    else {
        if(document.documentElement && document.documentElement.clientHeight) {
            intH = document.documentElement.clientHeight;
            intW = document.documentElement.clientWidth;
        }
        else {
            if(document.body) {
                intH = document.body.clientHeight;
                intW = document.body.clientWidth;
            }
        }
    }

    return {
        height: parseInt(intH, 10),
        width: parseInt(intW, 10)
    };
}


var CreateFloatingLayer = function(html,width,height){
	
	var layer = document.createElement("div");
	layer.className = "pop-layer";
	layer.setAttribute("id","__" + getNewRndNumber());
	layer.style.visibility = "hidden";
	layer.style.width = (width || 200) + "px";
	layer.style.height = (height || 200) + "px";
	
	
	
	var close = document.createElement("a");
	close.className = "pop-layer-close";
	close.href="#";
	close.innerHTML = "fechar";
	
	
	close.onclick = function(){
		var layer = document.getElementById(this.parentNode.id);
		document.getElementsByTagName("body")[0].removeChild(layer);
	}
	
	layer.appendChild(close);
	
	var content = document.createElement("div");
	content.className = "pop-layer-content";
	content.innerHTML = html;
	content.style.height = ((height || 200) - (close.offsetHeight)) + "px";
	
	layer.appendChild(content);
	document.getElementsByTagName("body")[0].appendChild(layer);
	
	var viewport = getViewportDimensions();
    var left = (viewport.width == 0) ? 50 : (viewport.width - layer.offsetWidth) / 2;
    var top = (viewport.height == 0) ? 50 : (viewport.height - layer.offsetHeight) / 2;

    layer.style.left = left + 'px';
    layer.style.top = top + 'px';
	layer.style.visibility = "visible";
	
} 


var addLayer = function(html,width,height){
		addOnLoadEvent(function(){
			return CreateFloatingLayer(html,width,height);
		}
	);
}
