var getElementsByClassName = function(className, tag, elm) {
	if(document.getElementsByClassName) {
		getElementsByClassName = function(className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className), nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null, returnElements = [], current;
			for(var i = 0, il = elements.length; i < il; i += 1) {
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	} else if(document.evaluate) {
		getElementsByClassName = function(className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "), classesToCheck = "", xhtmlNamespace = "http://www.w3.org/1999/xhtml", namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace : null, returnElements = [], elements, node;
			for(var j = 0, jl = classes.length; j < jl; j += 1) {
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			} catch(e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while(( node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	} else {
		getElementsByClassName = function(className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "), classesToCheck = [], elements = (tag === "*" && elm.all) ? elm.all : elm.getElementsByTagName(tag), current, returnElements = [], match;
			for(var k = 0, kl = classes.length; k < kl; k += 1) {
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l = 0, ll = elements.length; l < ll; l += 1) {
				current = elements[l];
				match = false;
				for(var m = 0, ml = classesToCheck.length; m < ml; m += 1) {
					match = classesToCheck[m].test(current.className);
					if(!match) {
						break;
					}
				}
				if(match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};
var alturaMaxima = 255;
var larguraMaxima = 936;

var alturaMinima = 96;
var larguraMinima = 296;

var velocidade = 12;

var borda = 20;
var bordaDif = 11;

var duration = 500;
var steps = 5;
var delay = 2000;

function ampliar(obj) {
	if(obj == null) {
		quadroExterno = document.getElementById("quadroExterno").value;
		quadroInterno = quadroExterno.replace("quadroExterno-", "");
	} else {
		objId = obj.getAttribute("id");
		if(objId.indexOf("quadroExterno") == -1)
			objId = "quadroExterno-" + objId;

		document.getElementById("quadroExterno").value = objId;
		quadroInterno = objId.replace("quadroExterno-", "");
	}

	if(document.getElementById("travaAmpliacao").value != "1") {
		document.getElementById("acao").value = "ampliar";
		conteudo = document.getElementById(quadroInterno);

		document.getElementById("travaAmpliacao").value = "1";
		document.getElementById("travaReducao").value = "1";

		for( i = 0; i <= 1; i += (1 / steps)) {
			timeout = setTimeout("maisOpacity(" + (1 - i) + ")", i * duration);
		}
		timeout = setTimeout("posiciona()", 750);
	}
}

function reduzir() {
	if(document.getElementById("travaReducao").value != "1") {
		if(parseInt(document.getElementById("largura").value) == larguraMaxima) {
			document.getElementById("acao").value = "reduzir"
			document.getElementById("travaAmpliacao").value = "1";
			document.getElementById("travaReducao").value = "1";
			maisOut();
			timeout = setTimeout("textoOut()", 750);
		}
	}
}

function tamanho() {
	acao = document.getElementById("acao").value;
	w = document.getElementById("quadroExterno").value;
	quadroExterno = document.getElementById(w);
	quadroInterno = w.replace("quadroExterno-", "");
	conteudo = document.getElementById(quadroInterno);
	texto = document.getElementById("texto-" + quadroInterno);
	largura = document.getElementById("largura").value;
	altura = document.getElementById("altura").value;

	if(acao == "ampliar") {
		conteudos = getElementsByClassName("conteudos", "div", document.getElementById("vectar"))
		for(var i = 0; i < conteudos.length; i++) {
			conteudos[i].setAttribute("onmouseover", "");
		}
		largura = parseInt(largura) + velocidade;
		altura = parseInt(altura) + velocidade;

		if(altura <= alturaMaxima) {
			quadroExterno.style.height = altura + "px";
			conteudo.style.height = (altura - borda) + "px";
			document.getElementById("vectar").style.height = altura + "px";
			document.getElementById("altura").value = altura;
		}

		if(largura <= larguraMaxima) {
			quadroExterno.style.width = largura + "px";
			conteudo.style.width = (largura - borda) + "px";
			document.getElementById("largura").value = largura;
			timeout = setTimeout("tamanho()", 1);
		} else {
			quadroExterno.style.width = larguraMaxima + "px";
			quadroExterno.style.height = alturaMaxima + "px";

			document.getElementById("largura").value = larguraMaxima;
			document.getElementById("vectar").style.height = alturaMaxima + "px";

			conteudo.style.height = (alturaMaxima - borda) + "px";
			conteudo.style.width = (larguraMaxima - borda) + "px";
			textoIn();
		}
	}

	if(acao == "reduzir") {
		velocidade = velocidade * 2;
		largura = parseInt(largura) - velocidade;
		altura = parseInt(altura) - velocidade;

		if(quadroInterno != "clientes")
			timeout = setTimeout("maisInLast()", 500);

		if(altura >= alturaMinima) {
			quadroExterno.style.height = altura + "px";
			conteudo.style.height = (altura - borda) + "px";
			document.getElementById("vectar").style.height = altura + "px";
			document.getElementById("altura").value = altura;
		}

		if(largura >= larguraMinima) {
			quadroExterno.style.width = largura + "px";
			conteudo.style.width = (largura - borda) + "px";
			document.getElementById("largura").value = largura;
			timeout = setTimeout("tamanho()", 1);
		} else {
			quadroExterno.style.width = larguraMinima + "px";
			quadroExterno.style.height = alturaMinima + "px";

			conteudo.style.height = (alturaMinima - borda) + "px";
			conteudo.style.width = (larguraMinima - borda) + "px";

			document.getElementById("largura").value = larguraMinima;
			document.getElementById("vectar").style.height = alturaMinima + "px";

			texto.style.display = "none";
			quadroExterno.style.background = "url(../imagens/caixa-vectar.png) no-repeat";
			quadroExterno.style.textAlign = "left";

			posiciona();
		}
	}
}

function posiciona() {
	acao = document.getElementById("acao").value;
	w = document.getElementById("quadroExterno").value;
	quadroExterno = document.getElementById(w);
	quadroInterno = w.replace("quadroExterno-", "");
	conteudo = document.getElementById(quadroInterno);
	mais = document.getElementById("mais-" + quadroInterno);

	if(quadroInterno != "quem-somos") {
		if(quadroInterno == "nossos-servicos") {
			document.getElementById("posInicial").value = "320";
		}
		if(quadroInterno == "clientes") {
			document.getElementById("posInicial").value = "640";
		}
		posicaoInicial = parseInt(document.getElementById("posInicial").value);

		if(acao == "ampliar") {
			quadroExterno.style.background = "url(../imagens/caixa-vectar-ampliada.png) no-repeat";
			conteudo.style.background = "url(../imagens/caixa-vectar-ampliada-interna.png) no-repeat";
			conteudo.style.textAlign = "justify";

			if(quadroInterno != "clientes")
				maisOutLast();

			if(document.getElementById("posicao").value == "0")
				document.getElementById("posicao").value = posicaoInicial;
			posicao = document.getElementById("posicao").value;

			resetaIndices();
			quadroExterno.style.zIndex = "20";
			conteudo.style.zIndex = "21";
			mais.style.zIndex = "22";
			posicao = parseInt(posicao) - velocidade;
			document.getElementById("posicao").value = posicao;

			if(posicao > 0) {
				quadroExterno.style.marginLeft = posicao + "px";
				conteudo.style.marginLeft = posicao + (borda - bordaDif) + "px";
				timeout = setTimeout("posiciona()", 1);
			} else {
				quadroExterno.style.marginLeft = 0 + "px";
				conteudo.style.marginLeft = (borda - bordaDif) + "px";
				document.getElementById("posicao").value = "0";

				tamanho();
			}
		}

		if(acao == "reduzir") {
			posicao = parseInt(posicao) + velocidade;
			document.getElementById("posicao").value = posicao;

			conteudo.style.background = "url(../imagens/caixa-vectar-interna.png) no-repeat";

			if(posicao <= posicaoInicial) {
				quadroExterno.style.marginLeft = posicao + "px";
				conteudo.style.marginLeft = posicao + "px";
				timeout = setTimeout("posiciona()", 1);
			} else {
				resetaIndices();

				quadroExterno.style.marginLeft = posicaoInicial + "px";
				conteudo.style.marginLeft = posicaoInicial + (borda - bordaDif) + "px";

				document.getElementById("posInicial").value = "";
				document.getElementById("posicao").value = "0";

				finaliza();

			}
		}
	} else {
		if(acao == "ampliar") {
			quadroExterno.style.background = "url(../imagens/caixa-vectar-ampliada.png) no-repeat";
			conteudo.style.background = "url(../imagens/caixa-vectar-ampliada-interna.png) no-repeat";
			conteudo.style.textAlign = "justify";

			resetaIndices();
			quadroExterno.style.zIndex = "20";
			conteudo.style.zIndex = "21";
			mais.style.zIndex = "22";

			if(quadroInterno != "clientes")
				maisOutLast();

			tamanho();
		}
		if(acao == "reduzir") {
			conteudo.style.background = "url(../imagens/caixa-vectar-interna.png) no-repeat";
			resetaIndices();
			finaliza();
		}
	}
}

function resetaIndices() {
	arrquadroExternos = getElementsByClassName("caixa-vectar", "div", document.getElementById("vectar"))
	for(var i = 0; i < arrquadroExternos.length; i++) {
		arrquadroExternos[i].style.zIndex = "10";
	}
	arrConteudos = getElementsByClassName("conteudos", "div", document.getElementById("vectar"))
	for(var i = 0; i < arrConteudos.length; i++) {
		arrConteudos[i].style.zIndex = "12";
	}
	arrMais = getElementsByClassName("veja-mais", "div", document.getElementById("vectar"))
	for(var i = 0; i < arrMais.length; i++) {
		arrMais[i].style.zIndex = "14";
	}
}

function finaliza() {
	document.getElementById("travaAmpliacao").value = "";
	conteudos = getElementsByClassName("conteudos", "div", document.getElementById("vectar"))
	for(var i = 0; i < conteudos.length; i++) {
		conteudos[i].style.display = "block";
		conteudos[i].setAttribute("onmouseover", "ampliar()");
	}

	maisPasseMouse();
}

function textoIn() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("textoOpacity(" + i + ")", i * duration);
	}
	maisOriginal();

	document.getElementById("travaReducao").value = "";
}

function textoOut() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("textoOpacity(" + (1 - i) + ")", i * duration);
	}
	timeout = setTimeout("tamanho()", 250);
}

function maisOriginal() {
	w = document.getElementById("quadroExterno").value;
	quadroExterno = document.getElementById(w);
	quadroInterno = w.replace("quadroExterno-", "");
	mais = document.getElementById("mais-" + quadroInterno);
	mais.style.marginTop = "200px";
	arrMais = document.getElementById("backup").value.split("|");

	if(quadroInterno == "quem-somos") {
		mais.style.width = "936px";
		mais.getElementsByTagName("p").item(0).innerHTML = arrMais[0];
		mais.getElementsByTagName("p").item(0).style.paddingLeft = "765px";
	}
	if(quadroInterno == "nossos-servicos") {
		mais.style.width = "616px";
		mais.getElementsByTagName("p").item(0).innerHTML = arrMais[1];
		mais.getElementsByTagName("p").item(0).style.paddingLeft = "445px";
	}
	if(quadroInterno == "clientes") {
		mais.style.width = "296px";
		mais.getElementsByTagName("p").item(0).innerHTML = arrMais[2];
		mais.getElementsByTagName("p").item(0).style.paddingLeft = "125px";
	}
	timeout = setTimeout("maisIn()", 250);
}

function maisPasseMouse() {
	acao = document.getElementById("acao").value;
	w = document.getElementById("quadroExterno").value;
	quadroExterno = document.getElementById(w);
	quadroInterno = w.replace("quadroExterno-", "");
	mais = document.getElementById("mais-" + quadroInterno);
	mais.style.width = "296px";
	mais.style.marginTop = "48px";
	mais.getElementsByTagName("p").item(0).style.paddingLeft = "95px";
	mais.getElementsByTagName("p").item(0).innerHTML = "passe o mouse e descubra";
	timeout = setTimeout("maisIn()", 250);
}

function maisIn() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("maisOpacity(" + i + ")", i * duration);
	}
}

function maisOut() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("maisOpacity(" + (1 - i) + ")", i * duration);
	}
}

function maisInLast() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("maisOpacityLast(" + i + ")", i * duration);
	}
}

function maisOutLast() {
	for( i = 0; i <= 1; i += (1 / steps)) {
		timeout = setTimeout("maisOpacityLast(" + (1 - i) + ")", i * duration);
	}
}

function textoOpacity(level) {
	if(parseInt(document.getElementById("largura").value) > 296) {
		w = document.getElementById("quadroExterno").value;
		quadroExterno = document.getElementById(w);
		quadroInterno = w.replace("quadroExterno-", "");
		texto = document.getElementById("texto-" + quadroInterno);
		texto.style.display = "block";

		texto.style.opacity = level;
		texto.style.MozOpacity = level;
		texto.style.KhtmlOpacity = level;
		texto.style.filter = "alpha(opacity=" + (level * 100) + ");";
	}
}

function maisOpacity(level) {
	w = document.getElementById("quadroExterno").value;
	quadroExterno = document.getElementById(w);
	quadroInterno = w.replace("quadroExterno-", "");
	mais = document.getElementById("mais-" + quadroInterno);

	mais.style.opacity = level;
	mais.style.MozOpacity = level;
	mais.style.KhtmlOpacity = level;
	mais.style.filter = "alpha(opacity=" + (level * 100) + ");";
}

function maisOpacityLast(level) {
	mais = document.getElementById("mais-clientes");

	mais.style.opacity = level;
	mais.style.MozOpacity = level;
	mais.style.KhtmlOpacity = level;
	mais.style.filter = "alpha(opacity=" + (level * 100) + ");";
}


$(window).load(function() {
	//banner
	if($("#slider").length)
		$('#slider').nivoSlider();

	$(".caixa-vectar,.conteudos").live('mouseover', function(e) {
		e.preventDefault
		this.blur();
		return ampliar(this);
	});

	$(".caixa-vectar,#banner,#resultados,#resultados-topo").live('mouseout', function(e) {
		e.preventDefault
		this.blur();
		return reduzir();
	});
	//portfolio
	$(function() {
		if($("#galeria").length) {
			$("#galeria").jCarouselLite({
				btnNext : ".next",
				btnPrev : ".prev",
				visible : 3
			});
		}
	});
});

