$(document).ready( function(){
	/***
	*	:: Tira bordas do Flash no IE ::
	*	:: 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.2,
			autor: "Diego Marques - 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>'
					$(this).html(flash);
				}
			});
		}
	});
	
	/***
	*	:: Centralizar Objeto ::
	*	:: 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 ::
	*	:: 2007 ::
	*	ex:
	*		l("testando");
	*
	*	OBS: Funciona apenas no Firefox com o plugin Firebug.
	***/
	//l = function(x){ if(window.console) console.log(x); }
	dmConsoleIe = true;
	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()-500+"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>");
		}
	}
	
	/***
	*	:: Redimencionar por classe ::
	*	:: 2007 ::
	*
	*	Redimenciona um elemente setando uma classe para ele.
	*	ex:
	*		<div class="width150">teste</div>
	*		<div class="height5050">teste</div>
	***/
	$("*[@class*=width]").livequery(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]").livequery(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");
	});

	/***
	*	:: Link Ativo ::
	*	:: 2007 ::
	*
	*	Adiciona a classe "ativo" para o link que tiver o destino (href) identico à pagina aberta
	***/
	dmPaginaAtivo = window.location+"";
	dmPaginaAtivo = dmPaginaAtivo.split("/").pop();
	dmPaginaAtivo = dmPaginaAtivo.split("?");
	if(dmPaginaAtivo[0] != "")
		$("a[@href*="+(dmPaginaAtivo[0])+"]").addClass("ativo");
		//alert(dmPaginaAtivo)
		
	/***
	*	:: Blank ::
	*	:: 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(){
		var href = $(this).attr("href");
		if(href.indexOf("javascript:") == -1){
			window.open(href);
		}
		return false;
	});

	/***
	*	:: Classe Voltar ::
	*	:: 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 ::
	*	:: 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()");
		});
	};

	/***
	*	:: Scroll Pages - Rolar Vertical/Horizontal ::
	*	:: 2008 ::
	*
	*	Cria a animação para linhas ou colunas com conteúdo rolável
	*	ex.: $(".rolagemHorizontal").scrollPages({elementSize:50, elements:3,direction:"left"});
	***/
	$.extend({
		scrollPages: {
			autor: "Diego Marques - Agência DMK",
			version: 2.5,
			defaults: {
				elementSize: 50,
				elements: 3,
				speed: "slow",
				direction: "up"
			}
		}
	});
	$.fn.extend({
		scrollPages: function(options){
			options = $.extend({}, $.scrollPages.defaults, options);
			return this.each(function(){
				
				// Definições de variáveis
				var total = $(".scrollMask li",this).length;
				var mask = options.elementSize * options.elements;
				var area = options.elementSize * total;
				var animation = false;
				var obj = this;
				var dimension = options.direction == "left" ? "width" : "height";
				var side = new Array();
				side[0] = options.direction;
				side[1] = options.direction == "up" ? "down" : "right";
				
				$(".scrollButtom",this).css("visibility","visible");
				if(options.elements >= total){
					$(".scrollButtom",this).css("visibility","hidden");
					mask = area;
				}else{
					$(".scrollButtom[rel*='"+options.direction+"']",obj).css("visibility","hidden");
				}
				
				// Aplicação de estilos
				$(".scrollMask",this).css({dimension: mask + "px", overflow: "hidden"}); // Máscara
				$(".scrollMask ul",this).css({dimension: area + "px", marginTop: 0}); // UL
				$(".scrollMask li",this).css({dimension: options.elementSize + "px", display: "block"}); // LI

				// Função que execulta a rolagem
				var rolagem = function(direction){

					// Variáveis
					var margem = -parseInt($(".scrollMask ul",obj).css("margin-"+(options.direction == "up" ? "top" : "left")));

					var intervalo = direction == side[1]
						? ( margem + ( mask * 2 ) ) < area
							? mask
							: area - (margem + mask)
						: ( margem - mask ) < 0
							? margem
							: mask
					;
					direction = direction == side[1]
						? -margem - intervalo
						: -margem + intervalo
					;
					
					$(".scrollButtom",obj).css("visibility","visible");
					var rel = -direction == 0 ? side[0] : (-direction + mask) == area ? side[1] : null;
					if(rel != null) $(".scrollButtom[rel*='"+rel+"']",obj).css("visibility","hidden");
					
					// Animação
					animation = true;
					if(options.direction == "up"){
						$(".scrollMask ul",obj).animate({marginTop: direction + "px"},options.speed,function(){ animation = false; });
					}else{
						$(".scrollMask ul",obj).animate({marginLeft: direction + "px"},options.speed,function(){ animation = false; });
					}
				}
				
				// Aplicação de eventos
				$(".scrollButtom",this).unbind("click").click(function(){
					if(!animation){
						var direction = $(this).attr("rel");
						rolagem(direction);
					}
				});
			});
		}
	});
	
//////////////
// No Label //
//////////////
noLabel = {
	init: function(){
		$(".noLabel").each(function(){
			$(this).addClass("vazio");
			noLabel.buffer[$(this).attr("id")] = $(this).val();
			$(this).unbind('focus',noLabel.foco).unbind('blur',noLabel.desfoco).bind('focus',noLabel.foco).bind('blur',noLabel.desfoco);
		}).parents("form:eq(0)").unbind('submit',noLabel.formulario).bind('submit',noLabel.formulario);
	},
	
	buffer: {},
	
	foco: function(obj){
		obj = typeof($(obj).attr("id")) == "undefined" ? this : obj;
		if($(obj).hasClass("vazio")){
			if($(obj).is("textarea")){
				$(obj).html("");
			}else{
				$(obj).val("");
			}
			$(obj).removeClass("vazio");
		}
	},
	
	desfoco: function(){
		if($.trim($(this).val()) == ""){
			if($(this).is("textarea")){
				$(this).html(noLabel.buffer[$(this).attr("id")]);
			}else{
				$(this).val(noLabel.buffer[$(this).attr("id")]);
			}
			$(this).addClass("vazio");
		}
	},
	
	formulario: function(){
		$(".vazio",this).each(function(){
			noLabel.foco(this);
		});
		return true;
	}
}

});