// Funções JQuery a serem executadas após o ready da página
function init(){

	/**
	* Funções Gerais
	* Usadas em todas as páginas
	*
	*/



	// Verifica se foi passado algum parametro por URL
	if(window.location.href.indexOf("#") !== -1){
		//$("#conteudo").attr("src", window.location.href.replace("#", ""))
	}

	/*
	// Tab com o Enter
	$("input, select")
	.keyup(function(e){
	if (e.keyCode == 13){
	index = parseInt($(this).attr("tabindex")) + 1;
	if($(this).nextAll("*[@tabindex=" + index + "]").get(0))
	$(this).nextAll("*[@tabindex=" + index + "]").get(0).focus();
	}
	});
	*/

	/**
	* Funções usadas nas listagens.
	*
	*/

	// Inicia ordenação de tabelas
	$("table.tablesorter").tablesorter({
		// Linhas trocam de cor
		widgets: ['zebra'],
		// Desabilita primeira coluna (checkbox)
		headers: {0 : {sorter : false}}
	});

	// Marcar todos os checkbox das tabelas
	$("input#master").click(function(){
		$(this).parents("table")
		.find("input:checkbox").not("#master").each(function(){
			$(this).attr("checked", $("input#master").attr("checked")? true : false);
		});
	});


	$("a#edit")
	.click(function(){
		selId = "";

		$("input:checkbox").not("#master").each(function(){
			if($(this).attr("checked")){
				selId = $(this).attr("id");
				return true;
			}
		});

		if(selId == ""){
			alert("Marque um registro para editar.");
			return false;
		}

		window.location = $(this).attr("href") + "/id/" + selId;
		return false;
	});

	$("a#delete")
	.click(function(){
		selId = "";

		$("input:checkbox").not("#master")
		.each(function(){
			if($(this).attr("checked")){
				selId += (selId == "")? $(this).attr("id") : "," + $(this).attr("id");
			}
		});

		if(selId == ""){
			alert("Marque um registro para deletar.");
			return false;
		}
		if(confirm("Confirma a exclusão do(s) registro(s) selecionado(s)?"))
		$(this).attr("href", $(this).attr("href") + "/id/" + selId)
		else
		return false;
	});

	/**
	* Funções ligadas aos cadastros e edições
	*
	*/

	// Busca uma descrição apartir do ID
	$("input.find").keyup(function(e){
		if(! isNaN($(this).val())){
			if($(this).val() != "")
			findById($(this).attr("table"), $(this).val(), $(this).attr("field"), $(this).attr("target"));
		}
	});

	$('#caixa_dados_forma_pagamento').tabs({ fxFade: true, fxSpeed: 'fast' });

	var destino = null;
	var Combo   = null;

	$("input.findCombo").livequery('click', function(e){
		if($(this).attr('checked')){

			var options = {
				url :     $(this).attr('url'),
				destino : $(this).attr('target'),
				success:       showResponsefindCombo,
				beforeSubmit:  findComboPreSubmit,
				clearForm: false,
				resetForm: false,
				dataType: 'json',
				formulario: $(this).parents('form')
			};			
			processFindCombo(options);
		}
	});

	$("select.findCombo").livequery('change' , function(){

		Combo = $(this);
		
		var teste = Combo.val();
		
		if(document.getElementById('carregando'))
		{
			document.getElementById('carregando').style.visibility = 'visible';			
		}

		$("#objetoclicado").val(Combo.val());

		var target = Combo.attr('target').split(",");

		var options = {
			url     : Combo.attr('url'),
			destino : Combo.attr('target'),
			success:       showResponsefindCombo,
			beforeSubmit:  findComboPreSubmit,
			clearForm: false,
			resetForm: false,
			dataType: 'json',
			formulario: Combo.parents('form')
		};		
		processFindCombo(options);

	});


	function processFindCombo(options)
	{
		options.formulario.ajaxSubmit(options);
		
		
	}


	function findComboPreSubmit(a, b, c)
	{
		var queryString = $.param(a);
		destino = c['destino'];
		return true;
	}

	function showResponsefindCombo(txt)
	{
		//var cidades = txt.getElementsByTagName('elemento');
		
		//alert(teste[0].getElementsByTagName('codigo')[0].getAttribute('codigo'));
		
		var sel      = false;
		Combo.parents('div').find('select[@id='+Combo.attr('target')+']').each(function(e)
		{
			if(sel  == false)
			{
				if($(this).attr('id') == Combo.attr('target'))
				{
					sel  = $(this);
				}
			}
		});
		sel.empty();
		sel.addOption(txt, false);		
		
		/*if(sel.attr('url'))
		{

			var options = {
				url :     sel.attr('url'),
				destino : sel.attr('target'),
				success:       showResponsefindCombo,
				beforeSubmit:  findComboPreSubmit,
				clearForm: false,
				resetForm: false,
				dataType: 'xml',
				formulario: sel.parents('form')
			};


		}*/
		if(document.getElementById('carregando'))
		{
			document.getElementById('carregando').style.visibility = 'hidden';
		}
	}


	/* Abre popUp de ampliar imagem */
	$("#ampliar_imagem").click(function(e){

		var urlImg = $("#ampliar_imagem").attr("title");

		/*pos     = jQuery.iUtil.getPosition($(this).get(0));*/
		pUrl    = "/"+urlImg;
		pWidth  = 200;
		pHeight = 400;
		pWindow = "teste";
		pLeft   = 200;
		pTop    = 200;

		pOpt    = "width=" + pWidth + ", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

		window.open(pUrl, pWindow, pOpt);
	});

	/**
	* @ Abre popUp de impressão de pedidos pelo button
	*/
	$("#imprimirPedido").click(function(e){

		var idpedido = $("#idpedido").val();

		var url = window.location.href;

		/*pos     = jQuery.iUtil.getPosition($(this).get(0));*/
		pUrl    = url+"/imprimir/"+idpedido;
		pWidth  = 710;
		pHeight = 900;
		pWindow = "teste";
		pLeft   = 100;
		pTop    = 100;

		pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=yes, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

		window.open(pUrl, pWindow, pOpt);
	});
	
	
	/**
	*@ Abre popUp de impressão de pedidos pelo LINK 
	*/
	$(".imprimirPedidoLink").click(function(e)
	{
		var status = $(this).attr('target');
		
		switch (status)
		{
			case 'Incluido no sistema':
				status = 'incluidonosistema';
				break;
			case 'Aguardando Pagamento':
				status = 'aguardandopagamento';
				break;
			case 'Separando':
				status = 'separando';
				break;
			case 'Aguardando Entrega':
				status = 'aguardandoentrega';
				break;
			case 'Despachado':
				status = 'despachado';
				break;
			case 'Finalizados':
				status = 'finalizados';
				break;
			case 'Cancelados':
				status = 'cancelados';
				break;
			default:
				break;
		}

		var url = window.location.hostname+window.location.pathname;

		if(url.indexOf('todos') > -1)
		{
			var url = url.substr(0, url.indexOf('todos'));
			var url = url+status;
		} else if (url.indexOf('index') > -1)
		{
			var url = url.substr(0, url.indexOf('index') - 1);
			var url = url;
		} else {
			var url = url;	
		}
	
		var idpedidoimp = $(this).attr('id');
		
		pUrl    = "http://"+url+"/edit/id/"+idpedidoimp+"/imprimir/"+idpedidoimp;
		pWidth  = 710;
		pHeight = 900;
		pWindow = "teste";
		pLeft   = 100;
		pTop    = 100;
		pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=yes, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";
		window.open(pUrl, pWindow, pOpt);
	});
	

	/* Abre popUp para visualização dos dados de cartão de crédito */
	$("#visualizaDadosCartao").click(function(e){

		var idpedido = $("#idpedido").val();
		var url = window.location.href;
		var url = url.split('/edit')
						
		/*pos     = jQuery.iUtil.getPosition($(this).get(0));*/
		pUrl    = url[0]+"/exibedadoscartao/id/"+idpedido;
		pWidth  = 400;
		pHeight = 400;
		pWindow = "teste";
		pLeft   = 100;
		pTop    = 100;

		pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

		window.open(pUrl, pWindow, pOpt);
	});
	
	/* Abre popUp para visualização da etiqueta */
	$("#imprimirEtiqueta").click(function(e){

		var idpedido = $("#idpedido").val();
		var url = window.location.href;
				
		/*pos     = jQuery.iUtil.getPosition($(this).get(0));*/
		pUrl    = url+"/imprimiretiqueta/id/"+idpedido;
		pWidth  = 450;
		pHeight = 400;
		pWindow = "teste";
		pLeft   = 100;
		pTop    = 100;

		pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=yes, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

		window.open(pUrl, pWindow, pOpt);
	});

	/* Abre popUp versão para impressão */
	$("#versao_impressao").click(function(e){

		var idpedido = $("#versao_impressao").val();
		
		/*pos   = jQuery.iUtil.getPosition($(this).get(0));*/
		pUrl    = "/impressao/detalhes/pedido/"+idpedido;
				

		pWidth  = 710;
		pHeight = 900;
		pWindow = "teste";
		pLeft   = 100;
		pTop    = 100;

		pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=yes, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

		window.open(pUrl, pWindow, pOpt);
	});

	/* Envia formulário de newsletter */
	$("#bt_cadastra_news").click(function(){
		$("#form_news").validate({
			rules: {
				nome_news: "required",
				email_news:  {
					required: true,
					email: true
				}
			},
			messages: {
				nome_news: "Obrigatório",
				email_news: "Obrigatório"
			}
		});
	});

	/* Envia formulário de contato */
	$("#bt_form_contato").click(function(){
		$("#form_contato").validate({
			rules: {
				nome_contato: "required",
				email_contato:  {
					required: true,
					email: true
				},
				assunto_contato: "required",
				telefone_contato: "required",
				mensagem_contato: "required"
			},
			messages: {
				nome_contato: "Obrigatório",
				email_contato: "Obrigatório",
				assunto_contato: "Obrigatório",
				telefone_contato: "Obrigatório",
				mensagem_contato: "Obrigatório"
			}
		});
	});

	$("form").submit(function(){
		data = $(this).formToArray();
		//validate(data);
	});

	$("input.clone").livequery('click', cloneDiv);

	$("img.collapse").livequery('click', function(event){
		event.preventDefault();
		if($(this).attr('src') == 'public/images/collapse_tcat_collapsed.gif')
		{
			$(this).attr('src','public/images/collapse_tcat.gif');
			$(this).parents('div.collapse').find('div.collapsefilho').each(function(e){
				$(this).slideToggle('slow');
			});
		}
		else
		{
			$(this).attr('src','public/images/collapse_tcat_collapsed.gif');
			$(this).parents('div.collapse').find('div.collapsefilho').each(function(event){
				$(this).slideUp();
			});
		}
		return false;
	});

};

var cloneDiv = function(e)
{
	if (window.event) {
		target = window.event.srcElement;
	} else if (e) {
		target = e.target;
	} else return;
	e.preventDefault();

	if(target.value == '+')
	{

		for(i=0; i<target.parentNode.parentNode.childNodes.length; i++)
		{
			elem = target.parentNode.parentNode.childNodes[i];
			if(elem.tagName == 'DIV')
			{
				if(elem.className == 'collapsefilhoClone')
				{
					var divClone = elem.cloneNode(true);
					divClone.className = 'collapsefilho';
					divClone.style.display = "";
					divClone.style.visibility = 'visible';
					target.parentNode.parentNode.appendChild(divClone);
					$("input.clone").livequery('click', cloneDiv);
					return;
				}
			}
		}
	}
	else if(target.value == '-')
	{


		var filho = target;
		while(filho.parentNode.className != 'collapsefilho')
		filho = filho.parentNode;

		pai = filho;
		while(pai.parentNode.className != 'collapse')
		pai = pai.parentNode;

		pai.parentNode.removeChild(filho.parentNode);
	}
}

function cloneCampoImagem()
{
	var campoImagem = document.getElementById('imagem');

	var objCampoImagem = campoImagem.cloneNode(true);

	var destino = document.getElementById('campos_img');

	destino.appendChild(objCampoImagem);
}



// sorts all the combo select boxes
function sortBoxes(){
	$('select.left, select.right').find('option').selso({
		type: 'alpha',
		extract: function(o){ return $(o).text(); }
	});

	// clear all highlighted items
	//$('select.left, select.right').find('option:selected').removeAttr('selected');
}

function adiciona(id)
{

	var expr = /add\w/;

	var teste = expr.exec(id);

	if(teste)
	{
		var iddireita = id.replace(teste, '');
	}

	var left = $('select.left option:selected');

	var right = $('select.'+iddireita);

	var left = left.clone(true);

	var checkaOpt = true;
	var optionVerifica = false;

	right.find('option').each(function(){

		optionVerifica = $(this);

		if($(this).attr('value') == left.attr('value'))
		{
			checkaOpt = false;
		}
	}
	);

	if(checkaOpt)
	{
		right.append(left);

	} else {
		alert("Você já adicionou o produto: "+left.html());

	}

}

function remove(id)
{

	var expr = /del\w/;

	var teste = expr.exec(id);

	if(teste)
	{
		var iddireita = id.replace(teste, '');
	}

	$('select.'+iddireita+' option:selected').remove();

	//sortBoxes();
}


$(function(){

	$('#cadastrar_recomendacao').click(function(){

		var produtos = document.getElementById( "produto" );
		for( var i = 0; i < produtos.getElementsByTagName( "option" ).length; i++ )
		{
			produtos.getElementsByTagName( "option" )[i].selected = "selected";
		}

		var recomendacoes = document.getElementById( "recomendacao" );
		for( var i = 0; i < recomendacoes.getElementsByTagName( "option" ).length; i++ )
		{
			recomendacoes.getElementsByTagName( "option" )[i].selected = "selected";
		}

	});

	$('#cadastrar_acessorio').click(function(){

		var produtos = document.getElementById( "produto" );
		for( var i = 0; i < produtos.getElementsByTagName( "option" ).length; i++ )
		{
			produtos.getElementsByTagName( "option" )[i].selected = "selected";
		}

		var acessorios = document.getElementById( "acessorio" );
		for( var i = 0; i < acessorios.getElementsByTagName( "option" ).length; i++ )
		{
			acessorios.getElementsByTagName( "option" )[i].selected = "selected";
		}

	});

	$('#cadastrar_promocao').click(function(){

		var produtos = document.getElementById( "produto" );
		for( var i = 0; i < produtos.getElementsByTagName( "option" ).length; i++ )
		{
			produtos.getElementsByTagName( "option" )[i].selected = "selected";
		}
	});

	jQuery('#listamenu').accordion({
		active: false,
		header: '.menuheader',
		navigation: true,
		event: 'click',
		fillSpace: false,
		animated: 'slide',
		autoheight: false
	});
});


function enviarAmigo(url)
{
	pUrl    = "/envieamigo/index/url/" + url;
	pWidth  = 500;
	pHeight = 270;
	pWindow = "EnviarParaAmigo";
	pLeft   = 100;
	pTop    = 100;

	pOpt    = "width=" + pWidth +", height=" + pHeight + ", left=" + pLeft + ", top=" + pTop + ", location=no, menubar=no, scrollbars=yes, toolbar=no, resizable=no, status=no, titlebar";

	window.open(pUrl, pWindow, pOpt);
}


// Assim posso chamar o método novamente
$(document).ready(init);

function mostra(div)
{
	document.getElementById(div).style.display = 'block';
}

function esconde(div)
{
	document.getElementById(div).style.display = 'none';
}
