/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Muestra las opciones Edit - Delete - Entre otras de los listados de los diferentes modulos
 */
var tmpStyle;

function overRow(item)
{
    $(".row-actions_" + item).show();
    /*tmpStyle = $("#row_style_" + item).attr('class');
    $("#row_style_" + item).attr('class','bgList');*/
}
/**
 * Oculta las opciones Edit - Delete - Entre otras de los listados de los diferentes modulos
 */
function outRow(item)
{    
    $(".row-actions_" + item).hide();
    /*$("#row_style_" + item).attr('class',tmpStyle);*/
}
/**
 * Muestra los privilegios
 */
function viewInfoSection()
{
    $(".informationSection").show();
    $("#viewInfoSection").hide();
    $("#noViewInfoSection").show();
}

function noViewInfoSection()
{
    $(".informationSection").hide();
    $("#viewInfoSection").show();
    $("#noViewInfoSection").hide();
}


/**
 * Muestra los privilegios
 */
function showPrivileges(item)
{
    $(".permissions_" + item).show();
    $("#displayPrivActive_" + item).hide();
    $("#displayPrivDesactive_" + item).show();
}
/**
 * Oculta los privilegios
 */
function hidePrivileges(item)
{
    $(".permissions_" + item).hide();
    $("#displayPrivActive_" + item).show();
    $("#displayPrivDesactive_" + item).hide();
}
/**
 * Oculta el mensaje de actualizacion de privilegios
 */
function fadeMessage(secuence)
{
    $("#message_" + secuence).hide();

}
/**
 * Ajax para registrar los nuevos permisos
 */
function submitPermissions(module,priv,profile)
{
    // Detecto el status del check, checked o unchecked
    var checkSelected = $("#chk_" + module + "_" + priv + ":checked").val();
    var privPpal = 0;
    if(!checkSelected){
        checkSelected = 0;
    }
    // Si el privilegio seleccionado es distinto de 1(View), lo activo
    if(priv != 1)
        {
            $("#chk_" + module + "_1").attr('checked',true);
            privPpal = 1; // Me indica que en la accion debo agregar otra permisologia con id_privelege = 1
        }
    // Si el privilegio seleccionado es igual a 1(View) y lo estoy desactivando, entonces desactivo el resto
    if(priv == 1 && checkSelected !=1)
        {
            $("#chk_" + module + "_2").attr('checked',false);
            $("#chk_" + module + "_3").attr('checked',false);
            $("#chk_" + module + "_4").attr('checked',false);
        }
    // Ajax para guardar los cambios de permisologia
    $(function(){
        $.ajax({
          type: "POST",
          url: "lxprofile/changePrivileges?id_module=" + module + "&id_privilege=" + priv + "&id_profile=" + profile + "&status=" + checkSelected + "&privPpal=" + privPpal,
          dataType: "script",
          beforeSend: function(objeto){
                $("#message_" + module).html("Guardando ...");
          },
          success: function(msg){
                $("#message_" + module).animate({width:100, height:10}, "slow");
                $("#message_" + module).html('<div>Guardado &nbsp;&nbsp;&nbsp; <a href="#" onclick="fadeMessage(' + module + ' );">Ocultar</a></div>');                
          },
          error: function(objeto, quepaso, otroobj){
                $("#message_" + module).animate({width:150, height:10}, "slow");
                $("#message_" + module).html('<div>Error. Please update browser&nbsp;&nbsp;&nbsp; <a href="#" onclick="fadeMessage(' + module + ' );">Hide</a></div>');
          }

        });
    });
}

/**
 * Devuelve la url base.
 * ej: http://proyecto.com/app_env.php/
 */
function getBaseUrl()
{
    url_from   = String(window.location.href);
    buscarEnv  = /_dev.php/;
    buscarApp  = /backend/;
    enviroment = (buscarEnv.test(url_from)) ? '_dev'    : '';
    aplication = (buscarApp.test(url_from)) ? 'backend' : 'frontend';
    url        = 'http://'+location.hostname+'/'+aplication+enviroment+'.php/';

    return url;
}

/**
 * Retorna el valor de un parametro
 */
function getParameter(varName)
{
    url_from  = String(window.location.href);
    url_from  = url_from.replace(getBaseUrl(), "");
    variables = url_from.split ("/");
    for (i = 0; i < variables.length; i++)
    {
        if(variables[i] == varName)
        {
            return variables[i+1];
        }
    }
    return false;
}

//Validación de formularios
//Si es valido, devuelve true
function valida(valor, tipo) {
	switch(tipo) {
	 case 'telephone' : reg = /^[0-9\-\.\(\)\ ]+$/; break;
	 case 'email'     : reg = /^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/; break;
	 case 'date'      : reg = /^[0-9]{4}\-\[0-9]{1,2}\-\[0-9]{1,2}$/; break; //format YYYY-mm-dd
	 case 'number'    : reg = /^[0-9\ ]+$/; break;     //Only Numbers
	 case 'noSpecial' : reg = /^[0-9a-zA-Z]+$/; break; //No special caracteres
	 case 'string'    : reg = /^[a-zA-Z\ \']+$/; break; //Only string
	}
	
	//Validation
	if(!reg.exec(valor)) {
	 return false;
	}else{
	 return true;
	}
}






function selectClearLocalidadOrigen(opcion){
	switch (opcion) {
		case "ciudad":
			$("#zona_origen").html("<option value=''>Seleccione una Zona</option>");
			break;
		default:
			break;
	}
}

function selectClearLocalidadDestino(opcion){
	switch (opcion) {
		case "ciudad":
			$("#zona_destino").html("<option value=''>Seleccione una Zona</option>");
			break;
		default:
			break;
	}
}


function selectClearLocalidadConcesionario(opcion){
	switch (opcion) {
	case "ciudad":
		$("#zona_oficina").html("<option value=''>Seleccione una Zona</option>");
		$("#concesionario_destino").html("<option value=''>Seleccione una Oficina</option>");
		$("#cont_concesionario_destino").text('');
		break;
	case "zona":
		$("#concesionario_destino").html("<option value=''>Seleccione una Oficina</option>");
		$("#cont_concesionario_destino").text('');
		break;
	case "concesio":
		$("#cont_concesionario_destino").text('');
		break;
	default:
		break;
	}	
}


function selectVaciar(id, text){
	$("#"+id).html("<option value=''>Seleccione "+text+" </option>");
}






function msjErrorGuia(){
	var valor = $("#msjGuia").text();
	
	if(valor != ''){
		// Se deshabilita el envio del form
		$('#sobreLigero').submit(function(){
		    $('input[type=submit]', this).attr('disabled', 'disabled');
		});
		// Se muestra el mensaje
		$("#msjGuia").show();
	}else{
		$('#sobreLigero').submit(function(){
		    $('input[type=submit]', this).attr('disabled', '');
		});
		$("#msjGuia").hide();
	}
}


function limpiaVolumen(){
	
	$('#envio_numero_piezas').keyup(function(){
		var numPiezas = $('#envio_numero_piezas').val();
		
		for(x=1;x<=numPiezas;x++){
			limpiaCampo('envio_peso_largo'+x);
		}
		
		
	});
}


function limpiaCampo(idCampo,valor){
	var valCampo = $("#"+idCampo).val();
	if(valCampo == valor){
		$("#"+idCampo).val('');
	}
}

function modificaCampo(idCampo,valor){
	var valCampo = $("#"+idCampo).val();
	if(valCampo == ""){
		$("#"+idCampo).val(valor);
		$("#peso_volumen").val('Total');
	}
}

/**
 * 
 * @returns {Number}
 */
function valorDCalculo(){
	var numPiezas = $('#envio_numero_piezas').val();
	var valorTotal = 0;
	for(x=0;x<numPiezas;x++){
		valorCPza = $("#envio_paquetes_"+x+"_valor").val();
		valorTotal = eval(valorTotal) + eval(valorCPza);
	}
	return valorTotal;
}



/**
 * Calcula el peso total de las piezas/paquetes
 */
function calculaPeso(){
	
	var numPiezas = $('#envio_numero_piezas').val();
	var pesoTotal = 0;
	for(x=0;x<numPiezas;x++){
		pesoPza = $("#envio_paquetes_"+x+"_peso").val();
		
		if(valida(pesoPza,'number')){
			pesoTotal = eval(pesoTotal) + eval(pesoPza);
		}else{
			pesoTotal = "";
		}
		
		if(volumen = $("#envio_paquetes_"+x+"_volumen").val()){
			// Verifica el mayor numero entre peso y volumen
			if (eval(pesoPza) >= eval(volumen)){
				$("#envio_paquetes_"+x+"_valor").val(pesoPza);
			}else{
				$("#envio_paquetes_"+x+"_valor").val(volumen);
			}
		}else{
			$("#envio_paquetes_"+x+"_valor").val(pesoPza);
		}
		
	}
	$("#envio_peso_gramos").val('');
	$("#envio_peso_gramos").val(pesoTotal);
}

/**
 * Calcula el volumen de una pieza/paquete determinado
 * @param id
 */
function calculaVolumen(id){
	var peso = $("#envio_paquetes_"+id+"_peso").val();
	var largo = $("#envio_paquetes_"+id+"_largo").val();
	var alto = $("#envio_paquetes_"+id+"_alto").val();
	var ancho = $("#envio_paquetes_"+id+"_ancho").val();
	
	if((valida(largo,'number')) && (valida(alto,'number')) && (valida(ancho,'number'))){
		volumen = largo * alto * ancho/6000;
		$("#envio_paquetes_"+id+"_volumen").val('');
		$("#envio_paquetes_"+id+"_volumen").val(volumen);
		
		// Verifica el mayor numero entre peso y volumen
		if (peso > volumen){
			$("#envio_paquetes_"+id+"_valor").val(peso);
		}else{
			$("#envio_paquetes_"+id+"_valor").val(volumen);
		}
		
		// Se calcula el volumen total
		volTotal = volumenTotal();
		$("#peso_volumen").val('');
		$("#peso_volumen").val(volTotal);
	}else{
		$("#envio_paquetes_"+id+"_volumen").val('Total');
		$("#peso_volumen").val('');
	}	
}

/**
 * Calcula el volumen total de las piezas/paquetes
 */
function volumenTotal(){
	var numPiezas = $('#envio_numero_piezas').val();
	var volTotal = 0;
	for(x=0;x<numPiezas;x++){
		volPza = $("#envio_paquetes_"+x+"_volumen").val();
		volTotal = eval(volTotal) + eval(volPza);
	}
	return volTotal;
}

