﻿///<reference path="jquery-1.3.2-vsdoc.js"  />

var dX, dY, numVeces = 15, esc, esc2, cx, cy, intervalo;

function acercar() {
    contador++;

    if (contador > numVeces) {
        clearInterval(intervalo);
        SetCargando(false);
        return;
    }

    LtnWebViewer1.Move(-dX, -dY);
}

function WinTransicion2(x, y) {
    var centroX = LtnWebViewer1.getCenterUtmX();
    var centroY = LtnWebViewer1.getCenterUtmY();
    var cx = parseFloat(x, 10);
    var cy = parseFloat(y, 10);

    cx = LtnWebViewer1.worldToLocalCoordX(cx);
    cx = parseInt(cx - LtnWebViewer1.worldToLocalCoordX(centroX));

    cy = LtnWebViewer1.worldToLocalCoordY(cy);
    cy = parseInt(cy - LtnWebViewer1.worldToLocalCoordY(centroY));

    var dif = Math.abs(LtnWebViewer1.worldToLocalCoordX(centroX) - Math.abs(cx));
    var dif2 = Math.abs(LtnWebViewer1.worldToLocalCoordY(centroY) - Math.abs(cy));

    if (dif > LtnWebViewer1.getWidth() || dif2 > LtnWebViewer1.getHeight())
        numVeces = 1;
    else numVeces = 7;

    var vCenter = LtnWebViewer1.getCenterUtm();

    //posición central en píxels
    var pxCenter = LtnWebViewer1.transformWorldToLocal(vCenter.x, vCenter.y);
    dX = cx / numVeces;
    dY = cy / numVeces;
    LtnWebViewer1.Move(-(cx % numVeces), -(cy % numVeces));
    contador = 0;
    intervalo = setInterval(acercar, 100);
}

function abrirVentana(ruta, nueva) {
    var tam = "width=" + (screen.width - 50) + ",height=" + (screen.height - 100) + ",";
    var n = "v";
    
    if(nueva) {
        var a = new Date();
        n += ((n.indexOf("?") > 0) ? "&" : "?") + a.getUTCMilliseconds();        
    }
    var ventanaDescargas = window.open(ruta);
    ventanaDescargas.focus();	
}

function abrirVentanaFlotante(url, nueva) {
    var o = GE("panelRedondeadoFrame_iframeFicha");
    
    if(nueva) {
        var a = new Date();
        url += ((url.indexOf("?") > 0) ? "&" : "?") + a.getUTCMilliseconds();        
    }

    //Apagamos el combo de las calles por que no hay manera que se quede por debajo de la capa semitransparente
    document.getElementById("divCalles").style.visibility = "hidden";

    o.height = (document.body.offsetHeight - 100) + "px";
    o.width = (document.body.offsetWidth - 40);
    
    var capa = GE("panelRedondeadoFrame_tematica");
    capa.style.visibility = "visible";
    capa.style.top = "-30px";
    
    document.getElementById("capaT").style.visibility = "visible";
    o.src = url;
}


function abrirVentanaFlotanteContenido(url, onclick) {
    document.getElementById("contenidoPanel").innerHTML = url;
    document.getElementById("DivContenido").style.visibility = "visible";
    if (onclick != null) {
        $(".boton", document.getElementById("DivContenido")).click(function() { document.getElementById('DivContenido').style.display = 'none'; eval(onclick); });
    }  
}

var interval = 0;
var capaPoi;
var capVerpoi = 0;

/*
function abrirVentanaFlotanteFicha(id, x, y) {
    capVerpoi = LtnWebViewer1.createCustomLayer(Math.random());           
    
    capaPoi= GE("verPoi");
    capaPoi.style.visibility="visible";  
    capaPoi.style.display="";   
    capaPoi.style.position="absolute";
    
    capaPoi.width = "550px";
    capaPoi.height = "300px";
    
    var o = GE("iframe2");
    o.src="loading.htm";
    
        
    x=LtnWebViewer1.worldToLocalCoordX(x);
    y=LtnWebViewer1.worldToLocalCoordY(y);
    x=parseInt(x+(parseInt(capaPoi.width)/2));
    y=parseInt(y+(parseInt(capaPoi.height)/2));
    
    
    if((x+parseInt(capaPoi.width)+100)>document.body.offsetWidth && (x-parseInt(capaPoi.width))>400) 
        x=x-parseInt(capaPoi.width)+150;
    if((y+parseInt(capaPoi.height)-100)>document.body.offsetHeight) 
        y=y-parseInt(capaPoi.height);
    
      
         
    x=LtnWebViewer1.localToWorldCoordX(x);
    y=LtnWebViewer1.localToWorldCoordY(y);
    
    o.src=id;
    //capaPoi.style.left=x;
    //capaPoi.style.top=y;
    capaPoi.style.opacity="0";
    
    capaPoi.style.filter="alpha(opacity=0)";
    interval= setInterval(subirOpacidad,100);
    capVerpoi.addItem(capaPoi, x, y);
    capVerpoi.getContainer().style.zIndex=100;
    //capVerpoi.setItems(capaPoi, x, y);
      
    //Si estamos en la version lite del callejero hay que mover todo el mapa
    //hacia la izquierda y hacia abajo para que quepa el cartel del servicio
    if(gup( 'lite' )!=""){
        var tam=LtnWebViewer1.getBounds();
        pmaxX=parseInt( tam.width)+parseInt( tam.x);
        pmaxY=parseInt( tam.height)+parseInt( tam.y);
        tamImagenCuadroAncho=Math.abs( LtnWebViewer1.localToWorldCoordX(295)-x);
        tamImagenCuadroAlto= Math.abs( LtnWebViewer1.localToWorldCoordY(292)-y);
        var auxX=LtnWebViewer1.getScale()*50;
        var auxY=LtnWebViewer1.getCenterUtmY();
        
        if(x+tamImagenCuadroAncho> pmaxX)auxX-=(x+tamImagenCuadroAncho)-pmaxX;
        if(y+tamImagenCuadroAlto> pmaxY)auxY-=(y+tamImagenCuadroAncho)-pmaxY;
        
        gotoXY(x-auxX,y,LtnWebViewer1.getWidth(),LtnWebViewer1.getHeight());
    }

}
*/

function abrirVentanaFlotanteFicha(id, x, y) {
    $.ajax({ data: 'tipo=VerPoi&id=' + id,
        success: function(text) {
            OnCompleteVerPoi(text, x, y);
        },
        dataType: 'text'
    });
}

function OnCompleteVerPoi(text, x, y) {
    var ancho = 420, alto;
    capVerpoi = LtnWebViewer1.createCustomLayer(Math.random());
    var o = $(document.getElementById("divContenidoPoi"));
    capaPoi = $(document.getElementById("verPoi"));
    
    //Para recoger la propiedad height, necesitamos tener el display activo.
    capaPoi.css("visibility", "hidden");
    capaPoi.css("display", "");
    capaPoi.css("position", "absolute");

    //Obtenemos la altura de forma dinamica, y agregamos un alto al div donde contendra todo.
    capaPoi.width(ancho);
    o.attr("innerHTML", text);
    alto = o.height();
    capaPoi.height(alto + 50);
    
    x = LtnWebViewer1.worldToLocalCoordX(x);
    y = LtnWebViewer1.worldToLocalCoordY(y);
    x = parseInt(x + (ancho / 2));
    y = parseInt(y + (alto / 2));

    //Comprobamos si la ventana cabe en la parte derecha con una separacion de 100px, sino lo sacamos por la izq.Lo mismo para la y
    if (x + ancho + 100 > document.body.offsetWidth)
        x = x - ancho;

    if (y + (alto / 2) + 100 > document.body.offsetHeight)
        y = y - alto - 15;
    else
        y += 15;

    if (LtnWebViewer1.worldToLocalCoordY(LtnWebViewer1.getCenterUtmY()) - y > 100)
        WinTransicion2(LtnWebViewer1.localToWorldCoordX(x), LtnWebViewer1.localToWorldCoordY(y + 50));
        
    x = LtnWebViewer1.localToWorldCoordX(x);
    y = LtnWebViewer1.localToWorldCoordY(y);

    capVerpoi.addItem(capaPoi.get(0), x, y);
    capaPoi.css("visibility", "visible");
    capaPoi.css("display", "none");
    capaPoi.fadeIn(1000); 
    capVerpoi.getContainer().style.zIndex = 100;
    
    //Si estamos en la version lite del callejero hay que mover todo el mapa
    //hacia la izquierda y hacia abajo para que quepa el cartel del servicio
    if (gup('lite') != "") {
        var tam = LtnWebViewer1.getBounds();
        var pmaxX = parseInt(tam.width) + parseInt(tam.x);
        var pmaxY = parseInt(tam.height) + parseInt(tam.y);
        var tamImagenCuadroAncho = Math.abs(LtnWebViewer1.localToWorldCoordX(295) - x);
        var tamImagenCuadroAlto = Math.abs(LtnWebViewer1.localToWorldCoordY(292) - y);
        var auxX = LtnWebViewer1.getScale() * 50;
        var auxY = LtnWebViewer1.getCenterUtmY();

        if (x + tamImagenCuadroAncho > pmaxX) auxX -= (x + tamImagenCuadroAncho) - pmaxX;
        if (y + tamImagenCuadroAlto > pmaxY) auxY -= (y + tamImagenCuadroAncho) - pmaxY;

        gotoXY(x - auxX, y, LtnWebViewer1.getWidth(), LtnWebViewer1.getHeight());
    }
}

function subirOpacidad() {
    if (parseInt(capaPoi.css("opacity")) >= 1) {
        clearInterval(interval);
        return;
    }
    
    capaPoi.css("opacity", (parseFloat(capaPoi.css("opacity")) + 0.1) + "");
    capaPoi.css("filter" ,"alpha(opacity=" + ((parseFloat(capaPoi.css("opacity")) + 0.1) * 100) + ")" );
    
}

function cerrarPoi() {
    document.getElementById('verPoi').style.visibility = 'hidden';
    document.getElementById('verPoi').style.display = 'none';
}

function cerrarVentanaFlotante() {
    GE("panelRedondeadoFrame_tematica").style.visibility = "hidden";
    document.getElementById("divCalles").style.visibility = "";
    document.getElementById("capaT").style.visibility = "hidden";
    var o = GE("panelRedondeadoFrame_iframeFicha");
    o.src = "loading.htm";
}

function q(obj)
{
    var s = "";
    for(i in obj)
    {
        s += i+"\t";
    }
    alert(s);
}
                   
function GE(id) {
    var o = document.getElementById(id);

    if (o == null) {
        o = $find(id);
        if (o == null) {
            var sal = "panelRedondeadoBaseCarto_" + id;
            o = document.getElementById(sal);            
        }
    }
    return o;
}

function devolverDecimales(valor, numDecimales)
{
	var n = Math.pow(10, numDecimales);
	var res = valor;
	res*=n;
	res=Math.round(res);
	res/=n;
	return res;
}

function mandarMail(titulo,idficha)
{
    var n = $get(titulo).innerHTML;
    var b = "Vea la ficha de '"+n+"': "+window.location;
    if(idficha!=null) b+="&idficha="+idficha;
    mail("Callejero GEONET TERRITORIAL- "+n, b);
}

function mail(subject, body)
{
    window.open("mailto:?subject="+subject+"&amp;body="+body);
}
function iprint()
{
    window.frames['iframeFicha'].focus(); 
    window.frames['iframeFicha'].print(); 
} 
