// Javascript Document

var GOOGLEMAP = null; 
var _ADMID = -1;
var _CLIID = -1;

/**
*/
function getCenterCoordinates(map){
    if( _ADMID != -1 || _CLIID != -1 ){
        var center = map.getCenter();
        document.getElementById("latitude").value = center.latRadians();
        document.getElementById("longitude").value = center.lngRadians();
        updateGoo2Deg();
    }
}

/**
*/
function getZoom(map){
    if( _ADMID != -1 || _CLIID != -1 ){
        document.getElementById("zoom").value = map.getZoom();
    }
}

/**
*/
function updateMap(){
    updateDeg2Goo();
    var lon = document.getElementById("long_deg").value;
    var lat = document.getElementById("lat_deg").value;
    
    lon = gf(lon);
    lat = gf(lat);
    
     
    var point = new GLatLng(lat,lon);
    map.panTo(point);
    
}

/**
*/
function r2g(rad,position){
    var ent = 0;
    var dec = 0;
    var grd = 0;
    var m = 0;
    var gxm = "000x00";
    var sw = "";

    if(position.match(new RegExp('^lat$'))){
        if(rad < 0){
           sw = "s";
           rad *= -1;
        }else{
           sw = "n";
        }
    }else if(position.match(new RegExp('^lon$'))){
        if(rad < 0){
           sw = "w";
           rad *= -1;
        }else{
           sw = "e";
        }
    }
    grd = (180*rad)/3.1415926536;
    ent = parseInt(grd);
    dec = grd - ent;
    m = dec * 60;
    gxm = "" + ent + "" + sw + "" + m;   
    return gxm;
}

/**
*/
function g2r(deg){
    var tem = new Array();
    var n = 0;
    var n1 = 0;
    var sign = 1;
    sign = sig(deg);
    tem = deg.split(/n|s|e|w/);
    tem[1] = tem[1].substring(0,2);
    n1 = parseFloat(tem[1]/60);
    n = parseFloat(tem[0]) + parseFloat(n1);
    if(sign == 0){
        n *= -1;
    }
    
    n = (n*3.1415926536)/180; 
    
    return n;
}


function gf(deg){
    var tem = new Array();
    var n = 0;
    var n1 = 0;
    var sign = 1;
    sign = sig(deg);
    tem = deg.split(/n|s|e|w/);
    tem[1] = tem[1].substring(0,2);
    n1 = parseFloat(tem[1]/60);
    n = parseFloat(tem[0]) + parseFloat(n1);
    if(sign == 0){
        n *= -1;
    }
    
   
    
    return n;
}

/**
*/
function updateDeg2Goo(){

   var lon = document.getElementById("long_deg").value;
   var lat = document.getElementById("lat_deg").value;
   if( isDegree(lon) && isDegree(lat) ){
       document.getElementById("longitude").value = g2r(lon,'lon');
       document.getElementById("latitude").value = g2r(lat,'lat');
   } else {
       alert("The coordinates format is not correct. Please verify the values.");
   }

} 

/**
*/
function updateGoo2Deg(){

   var lon = document.getElementById("longitude").value;
   var lat = document.getElementById("latitude").value;
   if( isNumber(lon) && isNumber(lat) ){
       document.getElementById("long_deg").value = r2g(lon,'lon');
       document.getElementById("lat_deg").value = r2g(lat,'lat');
   } else {
       alert("The coordinates format is not correct. Please verify the values.");
   }

} 

/**
*/
function isNumber(n){
    var re = new RegExp('(^-?[0-9]+)(\.?[0-9]*$)');
    if(n.match(re)){
        return true;
    } else {
        return false;
    }
}

/**
*/
function isDegree(deg){
    var regexp = /(^[0-9]+)(n|s|e|w)([0-9]+)(\.?[0-9]*$)/;
    if(regexp.test(deg)){
        return true;
    } else {
        return false;
    }
}

/**
*/
function sig(text){
    var sign = 1;
    if(text.match(new RegExp(/s|w/i))){
        sign = 0;
    }
    return sign;
}

function displayMap(){
    if(window.parent != window.self){
        alert('Estoy dentro de otra ventana !');
        var d = parent.document;
        alert('d.getElementById("div-google-map-msgload"): '+d.getElementById("div-google-map-msgload").id);
    } else {
        alert('Estoy solito ;(');
    }
}
