var accionNew	= "new";
var accionEdit	= "edit";
var accionDel	= "del";
var accionAsign	= "asign";
var accionList	= "list";
var accionForm	= "formulario";

var startX = 0 //set x offset of bar in pixels
var startY = 0 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

$(document).ready(function(){
	$("#lateral").html('<img src="img/btn_lateral_close.gif" id="showAyuda" border="0" />' + $("#lateral").html());

	if (getCookie("showAyuda") == "0") {
		if($("#showAyuda").length>0){
		$("#showAyuda").attr('src',$("#showAyuda").attr('src').replace("close","open"));
		}
		$("#lateral_contenido").fadeOut(10,function () {

			$("#contenido").animate({marginRight:'34px'},10);
			$("#ruta").animate({marginRight:'34px'},10);

			$("#lateral").animate({'width':'14px'},10);
			if ($.browser.msie) {
				$("body").css({'background-position-x': '150%'});
			} else {
				$("body").animate({backgroundPosition: '(150% top)'},10);
			}
		});
	}

	inicializarControles();
	staticbar();

	$.preloadImages("img/bg_button_left_hover.gif","img/bg_button_right_hover.gif");

});

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function staticbar(){
	barheight=$("#avisos").height();
	var ns = ($.browser.mozilla) || ($.browser.opera);
	var d = document;

	function ml(id){
		var el=$('#'+id);
		//el.css({'visibility':'visible'});
		el.css({'width':$('body').width()+parseInt($('body').css('margin-left'),10)+parseInt($('body').css('margin-right'),10)+'px'});
		//alert($("body").width())
		if(d.layers)el.style=el;
			el.sP = function (x,y) {
				$(this).css({
					//'magin-right' : '30px',
					'right' : x+'px',
					'top':y+'px'
				});
			};
			el.x = startX;
		if (verticalpos=="fromtop")
			el.y = startY;
		else{
			el.y = $(window).height();
			el.y -= startY;
		}
		return el;
	}

	window.stayTopLeft=function() {
		//if (ftlObj.css("display")!='none') {
			if (verticalpos=="fromtop"){
				var pY = ns ? pageYOffset : iecompattest().scrollTop;
				ftlObj.y += (pY + startY - ftlObj.y)/8;
			} else{
				var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
				ftlObj.y += (pY - startY - ftlObj.y)/8;
			}
			ftlObj.sP(ftlObj.x, ftlObj.y);
		//}
		setTimeout("stayTopLeft()", 1);
	}

	ftlObj = ml("avisos");
	stayTopLeft();
}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

function inicializarControles () {
	controlarMenu ();
	controlarClipito();
	controlarRollover();
	controlarInputs();
	controlarTablas();
}


function controlarMenu () {
	$("#menu ul:first").aycomenu({showLoading: true, selectorLoading: "#tapa"});

	/*

	tabs.buildmenu("menu", arrowimages);

	$(".tabs ul li a.disabled").click(function () {
		var txt = 'Debe seleccionar una entidad para acceder a este menu.';
		var tit = 'Informacion';
		$.prompt(txt,tit,{
			buttons:{Aceptar:true},
			focus: 1,
			callback: function(v,m){
				if(v){

				}	else {

				}
			}
		});

		return false;
	});*/
}

function controlarImg () {
	$("#div_img a[rel]").fancybox({
		'zoomSpeedIn'		: 500,
		'zoomSpeedOut'		: 500,
		'overlayShow'		: true,
		'easingIn'			: 'easeOutBack',
		'easingOut'			: 'easeInBack',
		'overlayOpacity'	: 0.70,
		'centerOnScroll'	: true
	});
}

function matarControles () {
	$("*").unbind();
}

function efectosRuta () {
	$("#ruta *").removeShadow();
	$("#ruta *").dropShadow({ left: 2, top: 1, color: "black", blur: 1 });
}


function controlarRollover() {
	$(".rollover").unbind();
	$(".rollover").hover(
		function(){
			if($(this).attr("src").indexOf("_on") == -1) {
				var newSrc = $(this).attr("src").replace("_off.gif","_on.gif#hover");
				$(this).attr("src",newSrc);
			}
		},
		function(){
			if($(this).attr("src").indexOf("_on.gif#hover") != -1) {
				var oldSrc = $(this).attr("src").replace("_on.gif#hover","_off.gif");
				$(this).attr("src",oldSrc);
			}
		}
	);
}

function controlarClipito() {
	var validez = 30;
	var caduca = new Date();
	caduca.setTime(caduca.getTime() + (validez*24*60*60*1000));

	$("#showAyuda").click(function () {
		var src = $(this).attr("src");
		if (src.indexOf("_open") == -1) {
			$(this).attr("src",src.replace("_close","_open"));
			$("#lateral_contenido").fadeOut(200,function () {
				if ($.browser.msie) {
					$("body").css({'background-position-x': '150%'});
				}

				$("#contenido").animate({marginRight:'34px'},200);
				$("#ruta").animate({marginRight:'34px'},200);

				$("#lateral").animate({'width':'14px'},200);

				if ($.browser.msie) {
					$("body").css({'background-position-x': '150%'});
				} else {
					$("body").animate({backgroundPosition: '(150% top)'},200);
				}
			});
			setCookie("showAyuda","0",caduca);
		} else {
			$(this).attr("src",src.replace("_open","_close"));
			$("#contenido").animate({marginRight:'304px'},200);
			$("#ruta").animate({marginRight:'304px'},200);
			if (!$.browser.msie) {
				$("body").animate({backgroundPosition: '(right top)'},200);
			}
			$("#lateral").animate({'width':'274px'}, 200, '', function () {
				$("#lateral_contenido").fadeIn(200);

				if ($.browser.msie) {
					$("body").css({'background-position-x': 'right'});
				}
			});
			setCookie("showAyuda","1",caduca);
		}
		return false;
	});

}

function controlarInputs() {
	$("select,input[type=text],input[type=password],textarea").focus(function () {
		$(this).animate({
			backgroundColor: "#FDFFCD"
		},'slow');
	});
	$("select,input[type=text],input[type=password],textarea").blur(function () {
		$(this).animate({
			backgroundColor: "#FFFFFF"
		},'slow')
	});
}

function controlarTablas() {

	$('.listado tr').not($('.listado tr.detalle')).map(function () {
		$(this).children('th td').unbind();
		$(this).children('th:first').addClass('first');
		$(this).children('th:last').addClass('last');
		$(this).children('td:first').addClass('first');
		$(this).children('td:last').addClass('last');
		$(this).children('td:last').width(80);
	});

}

function controlarNotas() {

	$('.textoNotas').map(function () {
		if ($('span',$(this)).height()>40) {
			$(this).append("<div class='expandirNota'><a href='javascript:;'><img src='img/ico_ampliar_off.gif' alt='Ver más texto' /></a></div>");
		} else {
			$(this).height($('span',$(this)).height());
		}
	});

	$(".expandirNota img").click(function () {
		if($(this).attr("src").indexOf("_encoger") == -1) {
			var newSrc = $(this).attr("src").replace("_ampliar","_encoger");
			$(this).attr("src",newSrc);
			$(this).attr("alt","Ver menos texto");
			$contenedor = $(this).parent().parent().parent();
			altura = $contenedor.children("span").height();
			$contenedor.animate( {height:altura+"px"} ,"slow");
		} else {
			var newSrc = $(this).attr("src").replace("_encoger","_ampliar");
			$(this).attr("src",newSrc);
			$(this).attr("alt","Ver más texto");
			$contenedor = $(this).parent().parent().parent();
			$contenedor.animate( {height:"40px"} ,"slow");
		}
	})
}

function controlarBloques(accion) {
	if ($(".bloque .datos").length>1) {
				actual = $(".bloque .titulo_fin:first").html();
				cadena = "<img src='img/titulo_up.gif' class='ocultar' />"
				cadena += "<table cellspacing='4' cellpadding='0' class='tabla_ocultar_todo'>"
				cadena += "<tr>"
		if (accion==0) {
			cadena += "<td><img src='img/ocultar_todo_down.gif' border='0' class='ocultar_todo' /></td>"
			cadena += "<td><span class='ocultar_todo'>Ampliar Todos</span></td>"
		} else {
			cadena += "<td><img src='img/ocultar_todo_up.gif' border='0' class='ocultar_todo' /></td>"
			cadena += "<td><span class='ocultar_todo'>Ocultar todos</span></td>"
		}
		cadena += "</tr>"
		cadena += "</table>";
		$(".bloque .titulo_fin:first").html(cadena + actual);
		cadena =	"<img src='img/titulo_up.gif' class='ocultar' />";
		$(".bloque .titulo_fin").not($(".bloque .titulo_fin:first")).map(function () {
			actual = $(this).html(cadena + $(this).html());
		});
		if (accion == 0) {
			$(".bloque .datos").not($('.bloque .datos:first')).slideUp('fast');
			$(".bloque .ocultar").not($('.bloque .ocultar:first')).map(function () {
				$(this).attr('src',$(this).attr('src').replace('up','down'))
			});
		}
	}

	$(".bloque .ocultar").click(function () {
		if (($(this).parent().parent().parent().children('.datos:visible').length)==1) {
			$(this).attr('src',$(this).attr('src').replace('up','down'));
			$(this).parent().parent().parent().children('.datos').slideUp('fast');
		} else {
			$(this).attr('src',$(this).attr('src').replace('down','up'));
			$(this).parent().parent().parent().children('.datos').slideDown('fast');
		}
	});

	$(".bloque .ocultar_todo").click(function () {
		if ($(".bloque .ocultar_todo:first").attr("src").indexOf("down")!=-1) {
			abrir = 1;
		} else {
			abrir = 0;
		}
		$.ajax({
			url: "cookie_bloque.php",
			type: 'POST',
			dataType: 'text',
			data: "abrir=" + abrir,
			error: function(){
				return false;
			},
			success: function(data){
				if (data==0) {
					$(".bloque .ocultar_todo:first").attr("src",$(".bloque .ocultar_todo:first").attr("src").replace('up','down'));
					$(".bloque .ocultar_todo:last").html("Ampliar todos");
					$(".bloque .ocultar").not($(".bloque .ocultar:first")).map(function () {
						$(this).attr("src",$(this).attr("src").replace('up','down'));
					});
					$(".bloque .datos:visible").not($(".bloque .datos:first")).slideUp('fast');
				} else {
					$(".bloque .ocultar_todo:first").attr("src",$(".bloque .ocultar_todo:first").attr("src").replace('down','up'));
					$(".bloque .ocultar_todo:last").html("Ocultar todos");
					$(".bloque .ocultar").not($(".bloque .ocultar:first")).map(function () {
						$(this).attr("src",$(this).attr("src").replace('down','up'));
					});
					$(".bloque .datos").not($(".bloque .datos:first")).slideDown('fast');
				}
			}
		});
	});
}

function hayAnimacion() {
	if ($("*:animated").length==0) {
		return false;
	} else {
		return true;
	}
}

function abrirLoading(tipo) {
	if (tipo=="errForm") {
		$("#avisos #textAlerta").html("Los datos no se pueden guardar porque existen errores en el formulario. Por favor, revise los campos marcados...");
		$("#avisos #icoAlerta img").attr("src","img/loading_warning.gif");
		$("#cerrarAlertaMain a").click( function() { cerrarLoading('errForm'); } );
		$("#avisos").fadeIn('fast');
	} else {
		if (tipo=="errorAjax") {
			$("#avisos #textAlerta").html("Atención: Ha ocurrido algún error al guardar los datos...");
			$("#avisos #icoAlerta img").attr("src","img/loading_warning.gif");
			$("#cerrarAlertaMain a").click( function() { cerrarLoading('errForm'); } );
			$("#avisos").fadeIn('fast');
		} else {
			$("#avisos").fadeIn('fast');
		}
	}
	return false;
}

function cerrarLoading(tipo) {
	if (tipo=="errForm") {
		$("#avisos").hide('fast');
		$("#avisos #textAlerta").html("Procesando información...");
		$("#avisos #icoAlerta img").attr("src","img/loading_panel.gif");
		$("#cerrarAlertaMain a").click( function() { cerrarLoading(); } );
	} else {
		$("#avisos").fadeOut('slow');
	}
	return false;
}

/* Barra de advertencia */
function showRequest () {
	abrirLoading();
}

function showResponse (dialogo) {
	if (dialogo!="") $(dialogo).dialog('destroy').remove();
	cerrarLoading();
}
/* Fin de Barra de advertencia */


function confirmar (mensaje, funcion) {

	var dialog = $("<div id='confirmar' title='Confirmaci&oacute;n'>"+mensaje+"</div>").insertAfter('body');
	$(dialog).dialog({
		resizable: false,
		modal: true,
		overlay: {
				opacity: 0.5,
				background: "black"
		},
		width: 400,
		height: 200,
		buttons: {
				"Confirmar": function() {
						$(this).dialog('destroy').remove();
						eval(funcion);
				},
				"Cancelar": function() {
						$(this).dialog('destroy').remove();
				}
		}
	});

	$('.ui-dialog-titlebar-close').click(function() {
		$("#confirmar").dialog('destroy').remove();
	})

}


function alertar (mensaje, funcion) {

	var dialog = $("<div id='confirmar' title='Informaci&oacute;n'>"+mensaje+"</div>").insertAfter('body');
	$(dialog).dialog({
		resizable: false,
		modal: true,
		overlay: {
				opacity: 0.5,
				background: "black"
		},
		width: 400,
		height: 200,
		buttons: {
				"Continuar": function() {
					if ((typeof(funcion)=="undefined") || (funcion=="")) {
						$("#confirmar").dialog('destroy').remove();
					} else {
						eval(funcion);
					}
				}
		}
	});

	$('.ui-dialog-titlebar-close').click(function() {
		$("#confirmar").dialog('destroy').remove();
	})

}

function controlarLateralBotones () {
	$("tbody[id]").unbind().hover(
		function () {
			//$(".oculto", $(this)).fadeIn();
			//$(".oculto", $(this)).css({'visibility':'visible'});
			$(".oculto", $(this)).css({'opacity':0,'visibility':'visible'});
			$(".oculto", $(this)).fadeTo("fast", 1);

		},
		function () {
			//$(".oculto", $(this)).fadeOut();
			//$(".oculto", $(this)).css({'visibility':'hidden'});
			$(".oculto", $(this)).css({'opacity':1,'visibility':'hidden'});
			$(".oculto", $(this)).fadeTo("fast", 0);
		}
	);
}

// Esta es la función que usa Heinle para recuperar una cookie
// name - nombre de la cookie deseada
// devuelve un string conteniendo el valor de la cookie especificada o null si la cookie no existe

function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    }
  }
  return null;
}


// Esta es una adaptación de la función de Dorcht para colar una cookie
// name - nombre de la cookie
// value - valor de la cookie
// [expires] - fecha de caducidad de la cookie (por defecto, el final de la sesión)
// [path] - camino para el cual la cookie es válida (por defecto, el camino del documento que hace la llamada)
// [domain] - dominio para el cual la cookie es válida (por defecto, el dominio del documento que hace la llamada)
// [secure] - valor booleano que indica si la trasnmisión de la cookie requiere una transmisión segura
// al especificar el valor null, el argumento tomará su valor por defecto

function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}


// Esta es una adaptación de la función de Dorcht para borrar una cookie
// name - nombre de la cookie
// [path] - camino de la cookie (debe ser el mismo camino que el especificado al crear la cookie)
// [domain] - dominio de la cookie (debe ser el mismo dominio que el especificado al crear la cookie)
// se considera el camino y dominio por defecto si se especifica null o no se proporcionan argumentos

function delCookie (name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

//Funcion creada por Fabian Müller
//Esta es una funcion que nos permite el redondeo a la precisión decimal que se necesite, tienen dos
//parametros el primero es el numero a redondear y el segundo parametro indica la precisión decimal
function redondea_decimales(num,num_decimales)
{
	num=num.replace(",",".");
	multiplicador="1";
	for(i=0;i<parseInt(num_decimales);i++)
	{
		multiplicador+="0";
	}
	return Math.round(parseFloat(num)*parseFloat(multiplicador))/parseFloat(multiplicador);
}