/**

 * VisãoI Sistemas

 * visaoi@visaoi.com.br

 * 

 * Rua Marcílio Dias, 26

 * Bairro Americano - Lajeado - RS

 * (51)3011-7001 | (51)8424-4494

 * 

 * DESCRIÇÃO

 * Javascripts com funções genéricas, comuns aos módulos dos sites

 *

 * @author		Francisco Schwertner

 * @copyright   Copyright (c) 2005-2008 VisãoI Sistemas. (http://www.visaoi.com)

 */

 

$(function() {

	

	/**	

	 * cria o datepiker para os inputs do tipo data, elementos com a classe 'input_date' 

	 */

	

	$('.input_date').each(function() {

		$(this).datepicker({

			dateFormat:'dd/mm/yy',

			showOn: "both", 

		    buttonImage: iconspath+'/silk_icons/date_magnify.png', 

		    buttonImageOnly: true 

		});

	});

	

	/**	

	 * cria máscara do para inputs do tipo hora, elemetnos com a classe 'input_time' 

	 */

	$('.input_time').each(function(){$(this).mask('99:99');});

	

	/**	

	 * cria máscara do para inputs do tipo timestamp, elemetnos com a classe 'input_timestamp' 

	 */

	$('.input_timestamp').each(function(){$(this).mask('99/99/9999 99:99:99');});

	



	/**	

	 * cria máscara do para inputs do tipo fone, elementos com a classe 'input_fone' 

	 */

	$('.input_fone').each(function(){$(this).mask('(099)9999-9999');});

	

	/**	

	 * cria máscara para inputs para cpf, input comecando com 'cpf_'

	 */	

	$('.input_cpf').each(function(){$(this).mask('999.999.999-99');});

	

	/**	

	 * cria máscara para inputs para cnpj

	 */

	$('.input_cnpj').each(function(){$(this).mask('99.999.999/9999-99');});

	

	/**	

	 * cria máscara do para inputs do tipo number(somente numero, elemetnos com a classe 'input_numer' 

	 */



	

	

	/**	

	 * cria a formatação e mascaramento para campos numeric

	 */

	$('.input_numeric').each(function() {

		$(this).maskMoney({

			symbol: "",

			decimal: ",",

			precision: 2,

			thousands: ".",

			showSymbol:true

		});

	});

	

	/**

	 * cria textareahtml, para elementos com a class 'textarea_html'

	 * 

	 *

	 */

	$('.textarea_html').each(function(count) {

		var textareahtml_id = $(this).attr('id');

		tinyMCE.execCommand("mceAddControl", false, textareahtml_id);

	});

	

	/**

	 * cria máscara para inputs do tipo CPF, elementos com o atributo ID começando com "cpf"

	 *

	 */

	$('.input_cep').each(function(){$(this).mask('99999-999');});

	



	/**

	 * cria colorpicker , elementos com o atributo ID começando com "cor_"

	 *

	 */

	$('.input_color').each(function(){

		var id = $(this).attr('id');

		$(this).ColorPicker({

			color: $('#'+id+'').val(),

			onSubmit: function () {

				$("div[@id^=collorpicker]").fadeOut(500);

				return false;

			},

			onShow: function (colpkr) {

				$(colpkr).fadeIn(500);

				return false;

			},

			onHide: function (colpkr) {

				alteraTemplate(null,null,null,null);

				$(colpkr).fadeOut(500);

				return false;

			},

			onChange: function (hsb, hex, rgb) { 

				$('#'+id+'').val(hex);

				alteraTemplate(null,null,null,null);

			}

		})

		.bind('keyup', function(){

			$(this).ColorPickerSetColor(this.value);

		});

	});

	

	$('div[@id^=square_]').each(function(){

		var id = $(this).attr('id');

		var id_campo = id.substring(7);

		$(this).ColorPicker({

			color: $('#'+id_campo+'').val(),

			onSubmit: function () {

				$("div[@id^=collorpicker]").fadeOut(500);

				return false;

			},

			onShow: function (colpkr) {

				$(colpkr).fadeIn(500);

				return false;

			},

			onHide: function (colpkr) {

				$(colpkr).fadeOut(500);

				return false;

			},

			onChange: function (hsb, hex, rgb) {

				$('#'+id_campo+'').val(hex);

				alteraTemplate(null,null,null,null);

			}

		})

		.bind('keyup', function(){

			$(this).ColorPickerSetColor($('#'+id_campo+'').val());

		});

	});

	

	/*

	 *  tooltip

	 * */

	var tooltip_icon = baseurl+'/img/icons/silk_icons/help.png';

	$(".tooltip").each(function(i) {

		

		var tooltip_id = "tooltip_"+i;

		var tooltip_title = $(this).attr('title');

		$(this).attr('title', '');

		

		$(this).after("<img id='"+tooltip_id+"' src='"+tooltip_icon+"' title='"+tooltip_title+"'/>");

		

		

		$("#"+tooltip_id).tooltip(

			{

				track: true,

				delay: 0,

				showURL: false,

				showBody: " - ",

				extraClass: "pretty",

				fixPNG: true,

				opacity: 0.95,

				left: -120

			} 

		);

		

	});

	

	

	

}); // fim jquery



/**

 * abre uma janela popUp 

 * para abrie a pop up no centro da tela os parâmetros top e left devem ser 0 

 *

 * @param string url : endereço

 * @param string name : nome da janela

 * @param int width : largura da janela

 * @param int height : altura da janela

 * @param int top : posição em relação ao topo 

 * @param int left : posição em relação a esquerda

 */

// TODO terminar esta função

function abrePopUp(url, name, width, height, top, left) {

	var winl = 100;

	var wint = 100;



	if((top == 0)&&(left == 0)) {

		window.open(url,null,"height="+height+",width="+width+",top="+wint+",left="+winl+",status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes");	

	} else {

		window.open(url,null,"height="+height+",width="+width+",top="+wint+",left="+winl+",status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes");

	}

}



function abrePopTelaInteira(url, name) { 

	

	var width = window.screen.width;

	var height = window.screen.height;

	

	window.open(url,name,'status=no,resizable=yes,scrollbars=no,menubar=no,width='+width+',height='+height+',left=15,top=20') ;

}



/**

 * faz um POST na ação 'excluir' do controller 'arquivo'

 * id = id do registro arquivo

 * tabela = tabela que referencia este registro do arquivo

 * tip_arquivo_atual_id = id elemento dom que mostrara o mensagem de OK

 * @author Francisco

 */

function excluirArquivo(id, tabela, tip_arquivo_atual_id) {

	

	var elemento = $('#'+tip_arquivo_atual_id);

	$(elemento).html("<img src='"+baseurl+"/img/carregando.gif' />");

	$.post(baseurl+'/'+module+'/arquivo/excluir/',

		{

			id: id,

			tabela: tabela

		},

		function(data){

			$(elemento).html("arquivo excluído com sucesso.");

		}

	);

}







/**

 * Plugin para limitar o numero caracteres de um input, textarea

 * @author Francisco

 */

jQuery.fn.counter = function(maxlength) {

  $(this).each(function() {

    var max = maxlength;

    var val = $(this).attr('value');

    var cur = 0;

    if(val) //value="", or no value at all will cause an error

    cur = val.length;

    var left = max - cur;

    $(this).after("<div class='counter'>" + left.toString() + " caracteres restantes" + "</div>");



    $(this).keyup(function(i) {

      var val = $(this).attr('value');

      var cur = 0;

      if(val)

      cur = val.length;

      var left = max - cur;

      $(this).next(".counter").text(left.toString() + " caracteres restantes");

	    if(left <= 3){

			$('.counter').css('color', '#ff0000');

		} else {

			$('.counter').css('color', '#666666');

		}

		

		// impede os usuario de digitar mais caracteres

		if(left <= 0) {

			$(this).next(".counter").text(0 + " caracteres restantes");

			$(this).attr('value', val.substr(0, max));

			return false;

		}

		

      return this;

    });

  });

  return this;

}


/*
 tipo = success ou error
 mensagem = mensagem para exibição
 duração = duração tem em ms que tela ficara com o bloqueada, padrao 2000
 redirecionamento = url para redirecionamento
 */
 function mensagemBlockUI(tipo, mensagem, duracao, redirecionamento) {

 	$("body").append("<div id='mensagem-blockUI' class='"+tipo+"'>"+mensagem+"</div>");


 	jQuery.blockUI({ 
     	message: jQuery('#mensagem-blockUI'),
     	overlayCSS: { backgroundColor: '#000' },
     	css: {
     		border: 'none'
 		} 
 	});
 	
 	// após o limite definido pela variavel time a mensagem desaparece
 	// redireciona para a url definada após exibir a mensagem
     setTimeout(function() { 
         jQuery.unblockUI({ 
             onUnblock: function(){ 
             	$('#mensagem-blockUI').remove();
             	if(redirecionamento != '') {
 					window.location = redirecionamento;
 				}
 			} 
         }); 
     }, duracao);

 } 
