var abreProdutoForm;
var Site = {
	_init: function(){
		try{
			this._util();
		}catch(e){
			alert(
				'Arquivo   : ' + e.fileName + ' \n ' +
				'Linha     : ' + e.lineNumber + ' \n ' +
				'Nome      : ' + e.name + ' \n ' +
				'Descrição : ' + e.message + ' \n '
			);
		};
	},

	_util: function(){
		$.ajaxSetup({ cache:false });
	
		var isIE = false, isIE6 = false, isIE7 = false, nav = navigator.userAgent;
		if (nav.indexOf('MSIE') > -1) isIE = true;
		if (nav.indexOf('MSIE 6') > -1) isIE6 = true;
		if (nav.indexOf('MSIE 7') > -1) isIE7 = true;
	
		/* IE6 PNG Fix */
		if (isIE6) DD_belatedPNG.fix('.pngfix');
		
		//Cufon
		Cufon.set('fontFamily', 'AvantGarde Bk BT');
		Cufon.replace('a.ma, #small ul li, section h1, section h2, p.subtitle, p.txtdestaque, .dptrio h2, h2.sec, #produtos div.pd h3, #produtos div.pd p, #produtos div.pd a, #produtos div.mais h3, #navbottom h2, .txtbody, aside.more div h2, .call, .blackcall, .subtit, .subtit2 span, #pg-produtos article, .vantagens h3, #pg-dptrio strong.destaque, .trio-prods div h3, .trio-prods div p.sub, h2.tit-conheca, .train h2, .train .thead p, div.prods ul li span, .suporte-tabs .tabs li a, .suporte-tabs div h3, aside.assistencia p, aside.assistencia h2, aside.options h2, aside.options h3, .fold p strong, section.como-podemos div h2, section.vagas ul li h2, aside.main h2, .formmail h1, aside.minhaconta h2, .mais .bottom h4, ul.combos li .combodesc, ul.combos p.comprar span.valdesc');
		
		//Menu
		if (!isIE) {
			$('li.hassub').each(function(){
				var li = $(this);
				var bt = li.find('button');
				var submenu = li.find('.submenu').add(li.find('span span'));
				var speed = 100;
				
				//Seta abre/fecha submenu
				bt.click(function(){
					if(submenu.is(':visible')){
						submenu.stop(true,true).fadeOut(speed*2);
					} else {
						submenu.stop(true,true).fadeIn(speed);
					}
				});
				
				//Fechar ao clica fora do submenu
				$(document).mousedown(function(e){
					if ($(e.target).parents('li.hassub').length === 0){
						submenu.stop(true,true).fadeOut(speed*2);
					}
				});
			});
		}
		//Menu Hover IE
		if (isIE) {
			$('li.hassub').each(function(){
				var li = $(this);
				var bt = li.find('button');
				var submenu = li.find('.submenu').add(li.find('span span'));
				var checkElement = li.find('div.submenu');
				
				//Seta abre/fecha submenu
				bt.click(function(){
					if(checkElement.is(':visible')){
						submenu.hide();
					} else {
						submenu.show();
					}
				});
				
				//Fechar ao clica fora do submenu
				$(document).mousedown(function(e){
					if ($(e.target).parents('li.hassub').length === 0){
						submenu.hide();
					}
				});
			});
		}
		
		
		//Rotativo na Home
		$('.dptrio').each(function(){
			var active = 1, next, timer = '';
			var slides = $('ul.slides',this);
			var nav = $('ul.nav',this);
			var count = slides.find('li').length;
			var delay = 6000;
			var animDur = (isIE6 || isIE7) ? 100 : 600;
			
			//Mostra o Primeiro
			slides.find('li:eq(0)').show();
			
			//Intervalo de troca
			function startTimer(){
				timer = setInterval(function(){
					if (active < count) { next = active + 1; }
					else { next = 1; }
					changeSlide(next);
				},delay);
			}
			startTimer();
			
			//Animacao de troca
			var changeSlide = function(prox){
				active = prox;
				slides.find('li:visible').fadeOut(animDur, function(){
					nav.find('button').removeClass('active');
					slides.find('li:nth-child('+prox+')').fadeIn(animDur);
					nav.find('li:nth-child('+prox+') button').addClass('active');
				});
			};
			
			//Trocar Manualmente
			$('.dptrio ul.nav li').click(function(){
				clearInterval(timer);
				var ordem = $(this).index() + 1;
				active = ordem;
				changeSlideNow(ordem);
				startTimer();
			});
			
			//Animacao da Troca Manual
			var changeSlideNow = function(proximo){
				slides.find('li').stop(true,true).hide();
				slides.find('li:nth-child('+proximo+')').fadeIn(animDur);
				nav.find('button').removeClass('active');
				nav.find('li:nth-child('+proximo+') button').addClass('active');
			}
		});
		
		
		//Carrossel
		$('#carroussel').each(function(){
			var car = $(this);
			var toleft = car.find('.toleft');
			var toright = car.find('.toright');
			var ul = car.find('ul');
			var liWidth = car.find('li').width();
			var liCount = car.find('li').length;
			var atual = 1;
			var size = 7;
			
			//Start
			if(size > liCount){ toleft.hide(); toright.hide(); }
			if(atual == 1) toleft.addClass('disabled');
			
			var mover = function(position, direct){
				direct ? duration = 10 : duration = 600;
				ul.stop(true,false).animate({left:(position-1)*liWidth*-1}, duration, function(){
					//Desativa os botões
					if(atual == 1) { toleft.addClass('disabled'); }
					else { toleft.removeClass('disabled'); }
					if(atual > (liCount - size)) { toright.addClass('disabled'); }
					else { toright.removeClass('disabled'); }
				});
			}
			
			toleft.click(function(){
				next = atual - size;
				if(next < 1) next = 1;
				mover(next);
				atual = next;
			});
			toright.click(function(){
				next = atual + size;
				if(next + size > liCount) next = liCount - size +1;
				mover(next);
				atual = next;
			});
			
			if(typeof prodAtual != "undefined"){
				
				if(prodAtual < 1) prodAtual = 1;
				if(prodAtual + size > liCount) prodAtual = liCount - size +1;
				
				mover(prodAtual, true);
				atual = prodAtual;
			}
		});
		
		
		//Pagina de Produtos
		$('#pg-produtos').each(function(){
			var art = $(this).find('article');
			art.hide().eq(0).show();
			var nav = $(this).find('ul.nav');
			nav.find('button').click(function(){
				var bt = $(this);
				var index = bt.parent().index();
				nav.find('button').removeClass('active');
				bt.addClass('active');
				isIE ? art.hide().eq(index).show() : art.fadeOut(100).eq(index).fadeIn(300);
			});
		});
		
		
		//Treinamentos
		//Monta o HTML
		$('.treinamentos').each(function(){
			var oldTable = $(this);
			var newTable = $('<div class="train"><h2>Agenda de Treinamentos</h2><div class="table"><div class="thead"><p class="col-modl">Módulo</p></div><div class="tbody"></div></div></div>');
			oldTable.before(newTable);
			oldTable.find('tbody tr').each(function(){
				var tds = $(this).find('td');
				tds.eq(2).find('a').addClass('agendar').appendTo(tds.eq(0));//Move bt.agendar para o 1º TD
				newTable.find('.tbody').append('<div class="tr"><del></del><div class="inner"><div class="col-modl">'+tds.eq(0).html()+'</div><div class="col-wday"><button class="saibamais">Saiba mais</button></div><div class="col-hora"><button class="fechar"></button></div><p class="clear"></p></div></div>');//Transfere o conteúdo para um novo HTML
			});
			oldTable.remove();
		});
		//Faz funcionar
		$('.train .tr').each(function(){
			var tr = $(this);
			var others = tr.siblings().not(tr);
			if (!tr.hasClass('open')) {
				tr.find('.agendar, ul, .fechar, del').hide();
			}
			tr.find('.saibamais').click(function(){
				tr.addClass('open');
				$(this).fadeOut();
				tr.find('ul').slideDown();
				tr.find('.fechar').fadeIn();
				tr.find('.agendar').fadeIn(1200);
				isIE6 ? tr.addClass('ie6lines') : tr.find('del').fadeIn();
				
				//Esconder o botão Saiba Mais
				$(this).fadeOut();
				
				//Fechar outros
				others.removeClass('open');
				others.find('.saibamais').fadeIn();
				others.find('ul').slideUp();
				others.find('.fechar').fadeOut();
				others.find('.agendar').stop(true,true).fadeOut(200);
				isIE6 ? others.removeClass('ie6lines') : others.find('del').fadeOut();
			});
			tr.find('.fechar').click(function(){
				tr.removeClass('open');
				tr.find('.saibamais').fadeIn();
				tr.find('ul').slideUp();
				$(this).fadeOut();
				tr.find('.agendar').stop(true,true).fadeOut(200);
				isIE6 ? tr.removeClass('ie6lines') : tr.find('del').fadeOut();
			});
		});
		
		
		//Suporte
		$('.suporte-tabs:not(.nolink)').each(function(){
			var elem = $(this);
			var content = elem.find('.content');
			elem.find('.content > div:not(:eq(0))').hide();
			$('> ul li a', elem).click(function(e){
				//e.preventDefault();
				var ord = $(this).parent().index();
				elem.find('.content > div').hide().eq(ord).show();
				elem.find('.tabs a').removeClass('active').eq(ord).addClass('active');
				Cufon.refresh();
			});
		});
		$('.versoes').click(function(){
			var elem = $('.suporte-tabs');
			var ord = 2;
			elem.find('.content > div').hide().eq(ord).show();
			elem.find('.tabs a').removeClass('active').eq(ord).addClass('active');
			Cufon.refresh();
		});
		
		//Carregar Vídeo
		$(".videos ul li a").fancybox({
			//'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
			'title' : this.title,
			'transitionIn' : 'elastic',
			'transitionOut' : 'elastic',
			'type' : 'swf',
			'swf' : {'wmode':'transparent','allowfullscreen':'true'}
		});	
		
		//Slider dos Vídeos
		$('div.tab-videos .videos').each(function(){
			var tab = $(this);
			var bts = tab.find('ul.nav button');
			var toleft = tab.find('.toleft');
			var toright = tab.find('.toright');
			var ul = tab.find('div ul');
			var counter = ul.find('li').length;
			var liWidth = 160;
			var size = 5;
			var atual = 1;
			var last = Math.ceil(counter / size);
			
			if(tab.hasClass('int')) var size = 4;//Página interna de Suporte
			
			//Setas
			toright.add(toleft).hide();
			tab.mouseover(function(){
				toright.add(toleft).stop(true,true).fadeIn();
			}).mouseleave(function(){
				toright.add(toleft).stop(true,true).fadeOut();
			});
			
			//Botões diretos
			bts.click(function(){
				atual = $(this).parent().index() + 1;
				ul.animate({left: liWidth * size * (atual-1) * -1},600);
				bts.removeClass('active').eq(atual-1).addClass('active');
			});
			
			toleft.click(function(){
				atual = atual - 1;
				if(atual < 1){ atual = 1; }
				else {
					ul.animate({left: liWidth * size * (atual-1) * -1},600);
					bts.removeClass('active').eq(atual-1).addClass('active');
				}
			});
			toright.click(function(){
				atual = atual + 1;
				if(atual > last){ atual = last; }
				else {
					ul.animate({left: liWidth * size * (atual-1) * -1},600);
					bts.removeClass('active').eq(atual-1).addClass('active');
				}
			});
		});
		
		//Vídeos Tutoriais
		$('aside.main .videos').each(function(){
			var container = $(this);
			var bts = container.find('ul.nav button');
			var ul = container.find('div ul');
			var counter = ul.find('li').length;
			var liWidth = 152;
			var size = 3;
			var atual = 1;
			var last = Math.ceil(counter / size);
			
			//Botões diretos
			bts.click(function(){
				atual = $(this).parent().index() + 1;
				ul.animate({left: liWidth * size * (atual-1) * -1},600);
				bts.removeClass('active').eq(atual-1).addClass('active');
			});
		});
		
		
		//Anexar Curriculo
		$('.inputfile input').change(function(){
			var filename = $(this).val();
			$(this).parent().parent().find('.showtxt span').html(removePath(filename));
		});
		var removePath = function(path){
			var lastSlash = path.lastIndexOf("\\");
			path = path.substring(lastSlash+1);
			return path;
		}
		
		//Formulários de Treinamentos/Serviços
		/*$('.agendar').fancybox({
			type:'iframe',
			width:501,
			height: 380,
			scrolling:'no'
		});*/
		$('.solicitar-servico').fancybox({
			type:'iframe',
			width:501,
			height: 380,
			scrolling:'no'
		});
		

		//Validação do Formulário
		$.tools.validator.localize('pt', {
			'*'  			: 'Preencha corretamente o campo.',
			':email'  		: 'O endereço de e-mail deve ser válido.',
			':number' 		: 'O valor deve ser numérico.',
			':url'	 		: 'O link deve ser válido.',
			'[max]'	 		: 'Número deve ser menor que $1.',
			'[min]'	 		: 'Número deve ser maior que $1.',
			'[required]' 	: 'Campo obrigatório.'
		});
		$.tools.validator.conf.errorInputEvent='blur';
		$("form").bind("onFail", function(e, els)  {
			els[0].input.focus();
		});
		//Validacao de confirmacao de dados
		$.tools.validator.fn("[data-equals]", { pt: 'Valores devem ser iguais.' }, function(input) {
			var name = input.attr("data-equals"),
			field = this.getInputs().filter("[name=" + name + "]"); 
			return input.val() == field.val() ? true : [name]; 
		});
		//Validacao de quantidade minima de characteres
		$.tools.validator.fn("[minlength]", function(input, value) {
			var min = input.attr("minlength");
			return (value.length>=min || value.length==0) ? true : {     
				pt: "Insira pelo menos " +min+ " caracter" + (min > 1 ? "es." : ".")
			};
		});
		//Valida CPF
		jQuery.tools.validator.fn('[name=dem_cpf],[type=cpf]', { pt: 'CPF deve ser válido.' }, function(element, cpf) {
			cpf = jQuery.trim(cpf);
			cpf = cpf.replace('/','').replace('.','').replace('.','').replace('-','');
			if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false;
			add = 0;
			for (i = 0; i < 9; i++)
			add += parseInt(cpf.charAt(i)) * (10 - i);
			rev = 11 - (add % 11);
			if (rev == 10 || rev == 11) rev = 0;
			if (rev != parseInt(cpf.charAt(9))) return false;
			add = 0;
			for (i = 0; i < 10; i++)
			add += parseInt(cpf.charAt(i)) * (11 - i);
			rev = 11 - (add % 11);
			if (rev == 10 || rev == 11) rev = 0;
			if (rev != parseInt(cpf.charAt(10))) return false;
			return true;
		});
		//Valida CNPJ
		jQuery.tools.validator.fn('[name=dem_cnpj],[type=cnpj]', { pt: 'CNPJ deve ser válido.' }, function(element, cnpj) {
			cnpj = jQuery.trim(cnpj);
			cnpj = cnpj.replace('/','').replace('.','').replace('.','').replace('-','');
			var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
			digitos_iguais = 1;
			if (cnpj.length < 14 && cnpj.length < 15) return false;
			for (i = 0; i < cnpj.length - 1; i++){
				if (cnpj.charAt(i) != cnpj.charAt(i + 1)){ digitos_iguais = 0; break; }
			}
			if (!digitos_iguais){
				tamanho = cnpj.length - 2
				numeros = cnpj.substring(0,tamanho);
				digitos = cnpj.substring(tamanho);
				soma = 0;
				pos = tamanho - 7;
				for (i = tamanho; i >= 1; i--){
					soma += numeros.charAt(tamanho - i) * pos--;
					if (pos < 2) pos = 9;
				}
				resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
				if (resultado != digitos.charAt(0)) return false;
				tamanho = tamanho + 1;
				numeros = cnpj.substring(0,tamanho);
				soma = 0;
				pos = tamanho - 7;
				for (i = tamanho; i >= 1; i--){
					soma += numeros.charAt(tamanho - i) * pos--;
					if (pos < 2) pos = 9;
				}
				resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
				if (resultado != digitos.charAt(1)) return false;
				return true;
			} else return false;
		});
		
		//Página do Produto
		$('.form-teste').each(function(){
			var elem = $(this);
			var call = elem.parent().find('a.teste-agora');
			var h2 = elem.parent().find('h2.tit-teste-por-30-dias');
			var inner = elem.find('.inner');
			var form = elem.find('form');
			var fechar = elem.find('.fechar');
			
			//Abre o Form
			call.click(function(e){
				e.preventDefault();
				call.slideUp();
				h2.slideDown();
				inner.slideDown();
			});
			//Fecha o Form
			fechar.click(function(e){
				$('.error').hide();
				e.preventDefault();
				call.slideDown();
				h2.slideUp();
				inner.slideUp();
			});
			
			//Troca o tipo de pessoa
			form.find('#tipo-fisica').click(function(){
				$('.error').hide();
				form.find('#p-cnpj').hide().find('input').val('').removeAttr('required').attr('disabled','disabled');
				form.find('#p-cpf').show().find('input').removeAttr('disabled').attr('required','required');
			});
			form.find('#tipo-juridica').click(function(){
				$('.error').hide();
				form.find('#p-cnpj').show().find('input').removeAttr('disabled').attr('required','required');
				form.find('#p-cpf').hide().find('input').val('').removeAttr('required').attr('disabled','disabled');
			});
			
			//Organiza Atributos
			form.find('input:not(:radio)').attr({'required':'required'});
			form.find('[name=dem_cnpj]').removeAttr('required').attr({'disabled':'disabled'});
			//Telefone
			form.find('[name=dem_telefone]').mask('99 9999-9999',{placeholder:" "});
			//CPF
			form.find('[name=dem_cpf]').mask('999.999.999-99',{placeholder:" "});
			//CNPJ
			form.find('[name=dem_cnpj]').mask('99.999.999/9999-99',{placeholder:" "});
			//Chama o Validator
			form.validator({lang: 'pt'});
			
			//Submit
			form.submit(function(e){
				if (!e.isDefaultPrevented()){
					if(form.find('[name=dem_cpf]').val()){ var doc = form.find('[name=dem_cpf]').val() } else { var doc = form.find('[name=dem_cnpj]').val() }
					var postdata = 'dem_pessoa_tipo='+form.find('[name=dem_pessoa_tipo]:checked').val();
					var postdata = postdata + '&dem_nome='+form.find('[name=dem_nome]').val();
					var postdata = postdata + '&dem_email='+form.find('[name=dem_email]').val();
					var postdata = postdata + '&dem_telefone='+form.find('[name=dem_telefone]').val();
					var postdata = postdata + '&acao=i_cli_demo&dem_ProdutoID='+form.find('[name=dem_ProdutoID]').val();
					var postdata = postdata + '&dem_cpf_cnpj='+doc;
					$.ajax({
						type: 'POST',
						url: '/',
						data: postdata,
						success: function(data) {
							if(data == 2) {
								function funcRedirLogin(v,m,f){
									if(v != undefined)
									location.href="/painel/login";
								}				
								$.prompt('Você já possui cadastro em nosso sistema.\nRedirecionando para login...',{ callback: funcRedirLogin, buttons: { Ok: true }});
							} else if(data == 3) {
								function funcDataTres(v,m,f){
									if(v != undefined)
									return false;
								}				
								$.prompt('Esse programa já existe na sua lista de sistemas.',{ callback: funcDataTres, buttons: { Ok: true }});									

							} else if(data == 4) {
								function funcRedirFaleConosco(v,m,f){
									if(v != undefined)
									location.href = '/fale-conosco';
								}				
								$.prompt('Você já possui cadastro na DPComp.<br>Por favor entre em contato!',{ callback: funcRedirFaleConosco, buttons: { Ok: true }});
							} else if(data == 5) {
								function funcRedirFaleConosco2(v,m,f){
									if(v != undefined)
									location.href = '/fale-conosco';
								}				
								$.prompt('Esse programa já existe na sua lista de sistemas.<br>Por favor entre em contato!',{ callback: funcRedirFaleConosco2, buttons: { Ok: true }});
							} else {	
								form.find('input:not(:hidden)').val('');
								window.location = data;
							}	
						}
					});
					e.preventDefault();
				}
			});
		});
		
		//Página do Produto
		abreProdutoForm = function(){
			$('.form-teste').each(function(){
				var elem = $(this);
				var call = elem.parent().find('a.teste-agora');
				var h2 = elem.parent().find('h2.tit-teste-por-30-dias');
				var inner = elem.find('.inner');
				var form = elem.find('form');
				var fechar = elem.find('.fechar');
				
				//Abre o Form
				call.click(function(e){
					e.preventDefault();
					call.slideUp();
					h2.slideDown();
					inner.slideDown();
				});
				
			});
		}
		
		//Botão comprar das páginas de produtos
		$('aside.more a[href="/comprar"]').click(function(e){
			e.preventDefault();
			var form = $('<form action="/comprar" method="post"><input type="hidden" name="comprar" value="'+window.location.pathname+'" /></form>');
			$('body').append(form);
			form.submit();
		});
		
		jQuery.fn.slideFadeToggle = function(speed, easing, callback) {
			return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback);  
		};
		
	}//End _util
};
$(document).ready(function() {
	Site._init();
});
