/*****************************************************************
 * 	Funções globais
 *****************************************************************/



/*
 * Função que substitui o alert por um dialog custom
 * 		
 * 		Requires: 	jquery 1.2.3+
 * 					jquery ui dialog 1.5+
 * 					jquery-ui-themeroller.css (para o theme)
 * 					img/backoffice/theme/ (imagens do theme)
 * 
 * 		Params:
 * 		- msg (STR)		: mensagem que é mostrada
 * 		- type (STR)		: tipo de icon a mostrar (error | question | warning | information) Default: information
 * 		- title (STR)	: título da caixa de diálogo. Default: "Atenção!" 
 * 
 */

/*Saber se eh um número*/
function IsNumeric(input){
	return /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test($(input).val());
}


function IsNumericValue(inputValue){
	return /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(inputValue);
}

function IsFloatValue(str) {
	return /^[-+]?[0-9]+(\.[0-9]+)?$/.test(str);
}




function alert(msg, type, title){
	 
	var title = (title == undefined) ? '<b>Aten&ccedil;&atilde;o!</b>' : title;
	var options = {
		modal:	true,
		overlay: {
			backgroundColor: "#000000",
			opacity: 0.3
		},
		resizable: false,
		stack: true,
		title: title,
		buttons: {
			Ok: function(element){$(this).dialog("close");}
		},
		minHeight: 200,
		minheight: 50
	};
	
	var typeImage = (type != undefined) ? '/img/backoffice/'+type+'-64.png' : '/img/backoffice/information-64.png';
	
	if($("div#alert").size()==0) $("BODY").append("<div id='alert-dialog'></div>");
	var alertDialog = $("#alert-dialog"); 
	alertDialog.html(msg);
	alertDialog.css({
		backgroundImage: 	"url("+typeImage+")",
		backgroundRepeat:	"no-repeat",
		backgroundPosition:	"top left",
		paddingLeft:		"74px",
		paddingTop:			"24px",
		height: 			"74px"
	});
	alertDialog.dialog(options);
	
};

/*
 * Função que substitui o confirm por um dialog custom
 * 		
 * 		Requires: 	jquery 1.2.3+
 * 					jquery ui dialog 1.5+
 * 					jquery-ui-themeroller.css (para o theme)
 * 					img/backoffice/theme/ (imagens do theme)
 * 
 * 		Params:
 * 		- msg (STR)				: mensagem que é mostrada
 * 		- callback (FUNCTION) 	: função que é chamada com parâmetro true ou false consoante o user clicou ok ou cancelar|fechar 
 * 		- title (STR) 			: título da caixa de diálogo. Default: "Atenção!"
 * 
 * 		Usage:
 * 			confirm("Do you like the color blue?",function(result){alert(result);});
 * 
 * 
 */
/*function confirm(msg, callback, title)
{
	var title = (title == undefined) ? '<b>Aten&ccedil;&atilde;o!</b>' : title;
	var returnValue = false;
	var options = {
		modal:	true,
		overlay: {
			backgroundColor: "#000000",
			opacity: 0.3
		},
		resizable: false,
		stack: true,
		title: title,
		buttons: {
			Ok: function(element){returnValue=true;$(this).dialog("close");},
			Cancelar: function(element){$(this).dialog("close");}
		},
		close: function(){callback(returnValue);},
		minHeight: 200,
		height: "auto"
	};
		
	var typeImage = '/img/backoffice/question-64.png';
	
	if($("div#confirm").size()==0) $("BODY").append("<div id='confirm-dialog'></div>");
	var confirmDialog = $("#confirm-dialog"); 
	confirmDialog.html(msg);
	confirmDialog.css({
		backgroundImage: 	"url("+typeImage+")",
		backgroundRepeat:	"no-repeat",
		backgroundPosition:	"top left",
		paddingLeft:		"74px",
		paddingTop:			"24px",
		height: 			"74px"
	});
	confirmDialog.dialog(options);
}    */

/*****************************************************************
 * 	Funções que arrancam on DOM Ready
 *****************************************************************/

 
$(function(){
	
	
	jQuery.fn.extend({
	  rel: 	function(){return this[0] && jQuery.attr(this[0], "rel");},
	  id:	function(){return this[0] && jQuery.attr(this[0], "id");}
	});


	
	/* 
	 * TODO: Remover depois de finalizado a globalização do JS.Não esquecer tb de remover JS do nav.tpl
	 */
	$(document).data("menu",true);
	
	// Construir e activar o Menu de navegação
	$('#list').clickMenu({
		arrowSrc: 'img/backoffice/arrow-right.gif'
	});
	$("#header").show();
	
		
	
	// Cache do objecto de form
	var form = $("#form_add");
	
	// Dropshadow das forms
	form.css({borderBottom: "2px solid #052E3F", borderRight: "2px solid #052E3F"})
	
	
		
	// Acção genérica de cancelar um edit
	$("INPUT[name=cancelar]",form).click(function(){
		window.location = globais.baseuri+globais.baseaction+globais.pager.page;
		
	});
	
	//Acção genérica de apagar um item de uma lista
	$("BUTTON.apagar").click(function(){
 		var itemId = $(this).rel();
			//confirm("Tem a certeza que deseja apagar este registo?", function(result){
			result = confirm("Tem a certeza que deseja apagar este registo?")
			if(result == true){
				url = globais.baseuri+globais.baseaction+"apagar/"+itemId+'/'+globais.pager.page;
			 	window.location =url;
			}
		//});
 	});
	//Acção genérica de apagar um item de uma lista (confirmando que ira apagar as encomendas)
	$("BUTTON.apagarComEncomendas").click(function(){
		var itemId = $(this).rel();
		//confirm("Tem a certeza que deseja apagar este registo?", function(result){
		result = confirm("Tem a certeza que deseja apagar este registo (ATENÇÃO: Irá também apagar as suas respectivas encomendas, note que esta operação é irreversível)?")
		if(result == true){
			url = globais.baseuri+globais.baseaction+"apagar/"+itemId+'/'+globais.pager.page;
			window.location =url;
		}
		//});
	});
	
	//Acção genérica de editar
	$("BUTTON.editar").click(function(){
 		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"editar/"+itemId+"/"+globais.pager.page;
	});
	
	//Acção genérica de mudar estado de active
	$("BUTTON.toggleactive").click(function(){
 		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"toggleactive/"+itemId+"/"+globais.pager.page;
	});
	
	$("BUTTON.togglelatest").click(function(){
		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"togglelatest/"+itemId+"/"+globais.pager.page;
		
	});
	// Ver encomendas
	$("BUTTON.encomendas").click(function() {
		var itemId = $(this).attr("rel"); 	
		//window.location = globais.baseuri+globais.baseaction+"encomendas/"+itemId+"/"+globais.pager.page;
		window.location = globais.baseuri+globais.baseaction+"encomendas/"+itemId+"/1";
	});
	// Processar encomendas
	$("BUTTON.proc_encomendas").click(function() {
		$("#processando").show();
		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"processarEncomendas/"+itemId;
	});
	$("BUTTON.imp_encomendas").click(function() {
		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"imprimirEncomendas/"+itemId;
	});
	//Acção genérica de ver detalhes
	$("BUTTON.detalhes").click(function(){
 		var itemId = $(this).attr("rel");
		window.location = globais.baseuri+globais.baseaction+"editar/"+itemId+"/"+globais.pager.page+"/1";
	});
	
	
	/*
	 *  Erro Genérico
	 */	
	
	if(globais.errorMessage){
		alert(globais.errorMessage,"error","ERRO!");
	}
	
	/*
	 * reduzir a opacidade de todos os botões disabled
	 * mudar o cursor para default
	 * e remover todos os eventos 
	 */
	$("BUTTON:disabled").css({
		opacity:	0.3,
		cursor:		"default"
	});
	
	
	/*
	 * Page Navigation  para template de encomendas
	 */
	
	$("BUTTON[rel^=enc_page-]").one("click",function(event){
		var numCampanha = $('#numCampanha').val();
		event.stopPropagation();
		event.preventDefault();
		
		url = '/backoffice/campanhas_folhetos/encomendas/'+numCampanha+'/'+globais.pager[$(this).rel().split("page-")[1]];
		window.location = url;
	});
	
	
	
	$("SELECT[name=enc_page-jump]").bind("change",function(){
		var numCampanha = $('#numCampanha').val();
		url = '/backoffice/campanhas_folhetos/encomendas/'+numCampanha+'/'+$(this).val();
		window.location = url;
	});
	/*
	 * Page Navigation  para template de encomendas
	 */

	$("BUTTON[rel^=plv_page-]").one("click",function(event){
		var numCampanha = $('#numCampanha').val();
		event.stopPropagation();
		event.preventDefault();

		url = '/backoffice/campanhas_plv/encomendas/'+numCampanha+'/'+globais.pager[$(this).rel().split("page-")[1]];
		window.location = url;
	});



	$("SELECT[name=plv_page-jump]").bind("change",function(){
		var numCampanha = $('#numCampanha').val();
		url = '/backoffice/campanhas_plv/encomendas/'+numCampanha+'/'+$(this).val();
		window.location = url;
	});
	
	
	
	/*
	 * Page Navigation
	 */
	$("BUTTON[rel^=page-]").one("click",function(event){
		event.stopPropagation();
		event.preventDefault();
		
		url = "/"+globais.baseaction+globais.pager[$(this).rel().split("page-")[1]];
		window.location = url;
	});
	
	
	
	$("SELECT[name=page-jump]").bind("change",function(){
		window.location = url = "/"+globais.baseaction+$(this).val();
	});
	
	
	
	var facebox_settings = {
		loadingImage : 'img/backoffice/facebox/loading.gif',
		closeImage   : 'img/backoffice/facebox/closelabel.gif',
		faceboxHtml  : '\
						<div id="facebox" style="display:none;"> \
							<div class="popup"> \
							<table> \
								<tbody> \
									<tr> \
									  <td class="tl"/><td class="b"/><td class="tr"/> \
									</tr> \
									<tr> \
									  <td class="b"/> \
									  <td class="body"> \
										<div class="content"> \
										</div> \
										<div class="footer"> \
										  <a href="#" class="close"> \
											<img src="img/backoffice/facebox/closelabel.gif" title="close" class="close_image" /> \
										  </a> \
										</div> \
									  </td> \
									  <td class="b"/> \
									</tr> \
									<tr> \
									  <td class="bl"/><td class="b"/><td class="br"/> \
									</tr> \
								  </tbody> \
								</table> \
								</div> \
						   </div>'
	};
	
	$('a.facebox').facebox(facebox_settings); 
	
	/*
	* 	Anexos
	*/
	
	var counterList = 0;
	$("BUTTON.addfile").bind("click",function(e){
		
		e.preventDefault();
		
		var html = '<tr >' + 
					'<td><input class="text" type="text" name="' + $(this).attr("rel") + '_title[]" value="" style="width:100px"></td>' +
					'<td><input class="text" type="text" name="' + $(this).attr("rel") + '_description[]" value="" style="width:150px"></td>' +
					'<td><input class="" type="file" name="' + $(this).attr("rel") + '[]"></td>' +
					'<td><button class="apagarficheiro'+ counterList +' img" value=""><img src="img/backoffice/page_white_delete.png"></button></td>' +
				'</tr>';
		
		$("tr:last", $(this).parents("table")).before(html);
		
		$("BUTTON.apagarficheiro"+counterList).bind("click",function(e){
			e.preventDefault();
			var item = $(this);
			confirm("Deseja apagar o anexo seleccionado?",function(result){
				if(result == true){
					$(item).parent().parent().remove();
				}
			});
		});
		counterList++;
	});
	
	/*
		FIM Anexos
	*/			
});

