$(document).ready( function(){
	/***
	*	:: Centralizar Objeto ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Função para centralizar verticalmente ou horizontalmente.
	*	ex:
	*		$("#container").centro(); -> Centraliza Vertical e Horizontal;
	*		$("#footer").centroV(); -> Centraliza Verticalmente;
	*		$("#menu").centroH(); -> Centraliza Horizontalmente;
	*
	*	OBS: Nescessário plugin Dimension.
	***/
	jQuery.fn.extend({
		centroH: function(){
			var dmObj = $(this).parent().is("body") ? $(window) : $(this).parent();
			if($(dmObj).width() > $(this).width()) // Só aplica o alinhamento se o elemento pai for maior que o objeto alvo;
				$(this).css({marginLeft: Math.round((parseInt($(dmObj).width())-parseInt($(this).width()))/2)+"px"});
			return this;
		},
		centroV: function(){
			var dmObj = $(this).parent().is("body") ? $(window) : $(this).parent().css({overflow:"hidden"});
			if($(dmObj).height() > $(this).height()) // Só aplica o alinhamento se o elemento pai for maior que o objeto alvo;
				$(this).css({marginTop: Math.round((parseInt($(dmObj).height())-parseInt($(this).height()))/2)+"px"});
			return this;
		},
		centro: function(){
			$(this).centroH().centroV();
			return this;
		}
	});
	
	/***
	*	:: Log para Debug ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*	ex:
	*		l("testando");
	*
	*	OBS: Funciona apenas no Firefox com o plugin Firebug.
	***/
	//l = function(x){ if(window.console) console.log(x); }
	dmConsoleIe = false;
	l = function(x){
		if(window.console){
			console.log(x);
		}else if(dmConsoleIe){
			if(!$("#dmDebug").is("div")){
				$("body").append("<div id=\"dmDebug\" style=\"width:"+($(window).width()-50+"px")+"; border:1px solid #000; position:absolute; bottom:0; left:0; height:150px; overflow:auto; filter:alpha(opacity=80); font-size:12px; padding:5px; font-family:Tahoma, Arial, Helvetica, sans-serif; background:#fff; z-index:99999;\"></div>");
			}
			$("#dmDebug").append("<p style=\"margin:0; border-bottom:1px dashed #000; color: #000; font-weight: bold;\">"+x+"</p>");
		}
	}
	
	/***
	*	:: Exibe div de bloqueio ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Função que abre uma div cobrindo toda a tela bloqueando o site. Caso não seja passado o id da div ele procura com padrão pelo id #bloqueio. com função de callback.
	*	ex:
	*		bloqueia("div_de_bloqueio", function(){ alert('tá bloqueado'); });
	*		bloqueia("div_de_bloqueio", function(){ alert('finalizando bloqueio'); },"fim");
	*
	*	OBS: Nescessário plugin Dimension.
	***/
	bloqueia = function(a,b,c){
		a = a == undefined || a == "" ? "bloqueio" : a;
		b = b == undefined || b == "" ? function(){} : eval(b);
		d = $(document).height() > $(window).height() ? $(document).height() : $(window).height();
		if(c != "fim"){
			$("#"+a).css({background:"#fff",height:d,left:"0",opacity:"0.5",position:"absolute",top:"0",width:"100%",zIndex:"10"}).fadeIn("normal", function(){ b(); });
			$(window).resize(function(){
				d = $(document).height() > $(window).height() ? $(document).height() : $(window).height();
				$("#"+a).css({height:d});
			});
		}else{
			$("#"+a).fadeOut("normal", function(){ b(); });
		}
	}
	
	/***
	*	:: Redimencionar por classe ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Redimenciona um elemente setando uma classe para ele.
	*	ex:
	*		<div class="width150">teste</div>
	*		<div class="height5050">teste</div>
	***/
	$("*[class*=width]").each(function(){
		dmClasses = $(this).attr("class").split(" ");
		$.each(dmClasses, function(i,n){
			if(n.indexOf("width") != -1){ dmTamanho = dmClasses[i].replace("width",""); }
		});
		$(this).css("width",dmTamanho+"px");
	});
	$("*[class*=height]").each(function(){
		dmClasses = $(this).attr("class").split(" ");
		$.each(dmClasses, function(i,n){
			if(n.indexOf("height") != -1){ dmTamanho = dmClasses[i].replace("height",""); }
		});
		$(this).css("height",dmTamanho+"px");
	});

	/***
	*	:: Paginação em Lista ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Cria uma paginação em uma lista.
	*	Basta acresentar na lista a classe "paginarLista".
	*	O padrão de ítens por página é de 10 ítens, caso queira alterar
	*	basta colocar a classe "ItensPorPaginaN", onde N é o total de itens por página.
	*	ex:
	*		<ol class="paginarLista ItensPorPagina10">
	***/
	var dmPgItensPorPagina = 10;
	// Função para mudar de página
	dmPgMudaPagina = function(dmPg, dmPgObj){
		var dmPgCont = 0;
		$(dmPgObj).attr("start",((dmPg-1)*dmPgItensPorPagina)+1).children().css({display: "none"});
		$(dmPgObj).children().each( function(i){
			if(i % dmPgItensPorPagina == 0){ dmPgCont++; }
			if(dmPgCont == dmPg){ $(this).css({display: ""}); }
		});
		$(dmPgObj).next().children().each( function(i){
			i++;
			if(dmPg == i){
				dmPgContent = $(this).text()
				$(this).addClass("selecionado").html(dmPgContent);
			}else{
				dmPgContent = "<a href=\"javascript:void(0);\" title=\""+$(this).text()+"\" class=\"mudaPagina\">"+$(this).text()+"</a>";
				$(this).removeClass("selecionado").html(dmPgContent);
			}
		});
		// Evento para mudar a página qdo clicar no link
		$(".mudaPagina").click( function(){
			dmPgMudaPagina($(this).attr("title"), $(this).parent().parent().prev());
		});
	}
	// Gera a Paginação
	$(".paginarLista").each( function(){
		// Pegar itens por pagina
		dmPgPegaItens = $(this).attr("class");
		if(dmPgPegaItens.indexOf("ItensPorPagina") != -1){
			dmPgPegaItens = dmPgPegaItens.split(" ");
			$.each(dmPgPegaItens, function(i,n){
				if(n.indexOf("ItensPorPagina") != -1){
					dmPgItensPorPagina = dmPgPegaItens[i].replace("ItensPorPagina","");;
				}
			});
		}
		// Calcula o total de páginas
		var dmPgTotal = 0;
		$(".paginarLista").children().each( function(i){
			if(i % dmPgItensPorPagina == 0){ dmPgTotal++; }
		});
		if(dmPgTotal > 1){
			// Monta o navegador
			dmPgContent  = "<ul class=\"paginacao\">";
			for(i=1; i<=dmPgTotal; i++){
				if(i == 1){
					dmPgContent += "	<li class=\"selecionado\">1</li>";
				}else{
					dmPgContent += "	<li><a href=\"javascript:void(0);\" title=\""+i+"\" class=\"mudaPagina\">"+i+"</a></li>";
				}
			}
			dmPgContent += "</ul>";
			$(this).after(dmPgContent);
			// Seta página inicial
			dmPgMudaPagina(1, this);
		}
	});
	
	/***
	*	:: Página Atual ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Gera caminho para redirecionamento
	*	ex:
	*		pgAtual()
	*		pgAtual("?teste=ok")
	***/
	pgAtual = function(dmQuery){
		dmPagina = window.location+"";
		dmPagina = dmPagina.split("/").pop().split("?");
		if(dmPagina[1] == "undefined" || dmPagina[1] == null || dmPagina[1] == ""){
			dmPagina[1] = "&";
		}else{
			if(dmQuery.indexOf("!") != -1){
				dmQuery = dmQuery.replace(/^[&?]/,"").split("&");
				dmQueryAtual = dmPagina[1].split("&");
				for(i=0;i<dmQueryAtual.length;i++){
					for(i2=0;i2<dmQuery.length;i2++){
						if(dmQuery[i2].indexOf("!") != -1){
							if(dmQueryAtual[i] != null && dmQuery[i2].replace("!","") == dmQueryAtual[i].split("=")[0]){
								dmQueryAtual[i] = null;
							}
						}
					}
				}
				for(i=0;i<dmQuery.length;i++){
					if(dmQuery[i].indexOf("!") != -1){
						dmQuery[i] = null;
					}
				}
				dmPagina[1] = dmQueryAtual.join("&").replace(/[&]{2,}/,"&").replace("?&","?").replace(/&$/,"");
				dmQuery = dmQuery.join("&").replace(/[&]{2,}/,"&").replace("?&","?").replace(/&$/,"");
			}
		}
		if(dmQuery != "undefined" && dmQuery != null && dmQuery != ""){ // Verifica se foi definido o dmQuery
			if(dmQuery.indexOf("?") == -1){ // Verifica se é para forçar a substituição da QueryString
				dmQuery = dmQuery.replace(/^[&?]/,"").split("&");
				dmQueryAtual = dmPagina[1].split("&");
				dmMudou = false;
				for(i=0;i<dmQueryAtual.length;i++){
					for(i2=0;i2<dmQuery.length;i2++){
						if(dmQueryAtual[i].split("=")[0] == dmQuery[i2].split("=")[0]){
							dmQueryAtual[i] = dmQuery[i2];
							dmQuery[i2] = "";
							dmMudou = true;
						}
					}
				}
				dmPagina[1] = dmQueryAtual.join("&");
				dmPagina[1] += "&"+dmQuery.join("&");
				dmPagina = dmPagina.join("?");
				dmPagina = dmPagina.replace("&&","&").replace("?&","?").replace(/&$/,"");
			}else{ // Se for para forçar a QueryString, ele substitui a queryString
				dmPagina = dmPagina[0]+dmQuery;
			}
		}else{ // Se não foi definido o dmQuery, retorna a url atual
			dmPagina = dmPagina.join("?");
		}
		return dmPagina;
	}
	
	/***
	*	:: Ler Variável GET ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Lê uma variável GET da barra de endereço
	*	ex:
	*		pagina = get("pagina");
	***/
	get = function(dmGet){
		var dmGetRetorno = null;
		dmEndereco = String(window.location).split("?")[1].split("&");
		for(i=0;i<dmEndereco.length;i++){
			if(dmGet == dmEndereco[i].split("=")[0])
				dmGetRetorno = dmEndereco[i].split("=")[1];
		}
		return dmGetRetorno;
	}
	
	/***
	*	:: Link Ativo ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Adiciona a classe "ativo" para o link que tiver o destino (href) identico à pagina aberta
	***/
	dmPaginaAtivo = window.location+"";
	dmPaginaAtivo = dmPaginaAtivo.split("/").pop();
	if(dmPaginaAtivo != "")
		$("a[href="+dmPaginaAtivo+"]").addClass("ativo");
		
	/***
	*	:: Blank ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Abre um link em uma nova janela.
	*	ex:
	*		<a href="http://www.agenciadmk.com.br/" title="Agencia DMK" class="blank">Agência DMK</a>
	***/
	$(".blank").click(function(){
		window.open($(this).attr("href"));
		return false;
	});
	
	/***
	*	:: Preload automático de imagens ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Acessa o DOM, o código HTML e o CSS em busca de imagens e faz o pré-carregamento.
	***/
	dmPreLoadImg = function(dmLog){
		dmImgPreLoad = new Array();
		dmTotalCSSok = 0;

		// Pega dados do dom
		$("img").each(function(){
			dmRepetido = false;
			dmSrc = $(this).attr("src");
			$.each(dmImgPreLoad,function(pos,valor){
				dmRepetido = dmRepetido == true || dmSrc == valor ? true : false;
			});
			if(!dmRepetido) dmImgPreLoad.push(dmSrc);
		});
		
		// Pega dados do html
		dmHtml = $("body").html();
		dmHtml = dmHtml.split(/[()'"<>]/);
		$.each(dmHtml,function(pos,valor){
			if(valor.indexOf("jpg") != -1 || valor.indexOf("jpeg") != -1 || valor.indexOf("gif") != -1 || valor.indexOf("png") != -1){
				dmRepetido = false;
				dmExtencao = valor.replace(/\s+/g," ");
				dmExtencao = dmExtencao.replace(/^ /,"");
				dmExtencao = dmExtencao.replace(/ $/,"");
				dmExtencao = dmExtencao.slice(dmExtencao.length-4).replace(".","");
				if(dmExtencao == "jpg" || dmExtencao == "jpeg" || dmExtencao == "gif" || dmExtencao == "png"){
					$.each(dmImgPreLoad,function(pos2,valor2){
						dmRepetido = dmRepetido == true || valor == valor2 ? true : false;
					});
					if(!dmRepetido) dmImgPreLoad.push(valor);
				}
			}
		});

		// Pega dados dos css
		dmTotalCSS = $("link").length;
		$("link").each(function(){
			caminhoCSS = $(this).attr("href");
			dmCaminho = "";
			dmNiveis = caminhoCSS.split("/");
			dmNiveis = dmNiveis.length > 1 ? dmNiveis.length - 1 : 0;
			if(dmNiveis > 0){
				for(i=0;i<dmNiveis;i++){
					dmCaminho += "../";
				}
			}
			$.ajax({
				url:caminhoCSS,
				success: function(retorno){
					retorno = retorno.split(/[()'"]/);
					$.each(retorno,function(pos,valor){
						if(valor.indexOf("jpg") != -1 || valor.indexOf("jpeg") != -1 || valor.indexOf("gif") != -1 || valor.indexOf("png") != -1){
							dmRepetido = false;
							dmExtencao = valor.replace(/\s+/g," ");
							dmExtencao = dmExtencao.replace(/^ /,"");
							dmExtencao = dmExtencao.replace(/ $/,"");
							dmExtencao = dmExtencao.slice(dmExtencao.length-4).replace(".","");
							if(dmExtencao == "jpg" || dmExtencao == "jpeg" || dmExtencao == "gif" || dmExtencao == "png"){
								$.each(dmImgPreLoad,function(pos2,valor2){
									dmRepetido = dmRepetido == true || valor.replace(dmCaminho,"") == valor2 ? true : false;
								});
								if(!dmRepetido) dmImgPreLoad.push(valor.replace(dmCaminho,""));
							}
						}
					});
					dmTotalCSSok++;
					dmCarregarImgs();
				}
			});
		});

		// Carregar Imagens
		dmCarregarImgs = function(){
			if(dmTotalCSSok == dmTotalCSS){
				//if(window.console && dmLog) console.log("PreLoad Images - Desenvolvido por Agência DMK\n09/01/2008 - Agência DMK - http://www.agenciadmk.com.br/\nTotal de imagens: "+dmImgPreLoad.length);
				dmLoadImage = new Array();
				dmTotalCarregado = 0;
				dmTotalErro = 0;
				if(dmImgPreLoad.length > 0){
					dmFinalizaPreload = function(){
						if(dmImgPreLoad.length == (dmTotalCarregado + dmTotalErro)){
							//if(window.console && dmLog) console.log("PreLoad Concluído!\nTotal de imagens carregadas: "+dmTotalCarregado+"\nTotal de erros: "+dmTotalErro);
						}
					}
					for(i=0;i<dmImgPreLoad.length;i++){
						dmLoadImage[i] = new Image();
						dmLoadImage[i].onload = function(){
							dmTotalCarregado++;
							//if(window.console && dmLog) console.log("Imagem: "+this.src+" - OK!");
							dmFinalizaPreload();
						}
						dmLoadImage[i].onerror = function(){
							dmTotalErro++;
							//if(window.console && dmLog) console.log("ERRO AO CARREGAR IMAGEM: "+this.src+" !!!");
							dmFinalizaPreload();
						}
						dmLoadImage[i].src = dmImgPreLoad[i];
					}
				}
			}
		}
	}
	dmPreLoadImg(true);
	
	/***
	*	:: Classe Voltar ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Adiciona um evento em um objeto que volta no histórico no navegador
	*	Ex.: <a href="javascript:void(0);" title="voltar" class="voltar">voltar</a>
	***/
	$(".voltar").click(function(){
		window.history.go(-1);
		return false;
	});
	
	/***
	*	:: Reset de formulário ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2007 ::
	*
	*	Reseta um formulário
	*	Ex.: $("#contato").resetForm();
	***/
	$.fn.resetForm = function() {
		return this.each(function() {
			dmRfName = $(this).attr("name") + "";
			dmRfName = dmRfName == "undefined" || dmRfName == "" ? "dmRfName" : dmRfName;
			$(this).attr("name",dmRfName);
			eval("document."+dmRfName+".reset()");
		});
	};
	
	/***
	*	:: Tira bordas do Flash no IE ::
	*	:: Agência DMK - Agência DMK ::
	*	:: 2008 ::
	*
	*	Retira as bordas pontilhadas do flash no Internet Explorer
	*	Ex.: 	$("#flash").addFlash({
	*				src: "swf/banner2.swf",
	*				width: 584,
	*				height: 201,
	*				title: "Agência DMK"
	*			});
	***/
	$.extend({
		addFlash: {
			version: 1.1,
			autor: "Agência DMK - Agência DMK",
			defaults: {
				src: "",
				width: 100,
				height: 50,
				title: "",
				quality: "high",
				menu: "false",
				wmode: "transparent"
			}
		}
	});
	$.fn.extend({
		addFlash: function(options){
			options = $.extend({}, $.addFlash.defaults, options);
			return this.each(function(){
				if(options.src != ""){
					var flash = '<object type="application/x-shockwave-flash" data="'+options.src+'?clicktag=./" width="'+options.width+'" height="'+options.height+'" tabindex="0" title="'+options.title+'">'
					flash += '<param name="movie" value="'+options.src+'?clicktag=./" />'
					flash += '<param name="quality" value="'+options.quality+'" />'
					flash += '<param name="menu" value="'+options.allowFullScreen+'" />'
					flash += '<param name="wmode" value="'+options.wmode+'" />'
					flash += '<p>Para visualizar este conteúdo corretamente, é necessário ter o <a title="Clique para instalar o flash player" href="http://www.macromedia.com/shockwave/download/alternates/" rel="nofollow">Flash Player</a> instalado.</p>'
					flash += '</object>'
					var id = $(this).attr("id");
					var conteudo = document.getElementById(id)
					conteudo.innerHTML = flash
				}
			});
		}
	});
});