﻿
var _ParamLAT = "lat";
var _ParamLNG = "lng";
var _GEOPointIDEditID = "GEO_POINT_ID";
var _GEOLinkEditID = "GEO_LINK";
var _GEONotPrivateID = "GEO_NOT_PRIVATE";

function ParseQ(pQueryParams)
{
    var tmpResult = new Array();
    
    if (pQueryParams.indexOf("?") == 0) 
        pQueryParams = pQueryParams.substring(1);

    var tmpParamsArray = pQueryParams.split("&");
    var tmpParamArray;
    var tmpParamName;
    var tmpParamValue;
      
    for(var i = 0; i < tmpParamsArray.length; i++)
    {
        tmpParamArray = tmpParamsArray[i].split("=");
        tmpParamName = tmpParamArray[0];
        tmpParamValue = tmpParamArray[1];
        tmpResult[tmpParamName] = tmpParamValue;
    }
    return tmpResult;
}

function GEO_OpenEditMap(pWidth, pHeight, pHRef, pWinCaption, pParams)
{
    var tmpGeoLinkValue = null;
    var tmpGeoPointIDValue = null;
    
    var tmpEdGeoLink = document.getElementById(_GEOLinkEditID);
    var tmpEdGeoPointID = document.getElementById(_GEOPointIDEditID);
    
    if (tmpEdGeoLink)
        tmpGeoLinkValue = tmpEdGeoLink.value;
    if (tmpEdGeoPointID)
        tmpGeoPointIDValue = tmpEdGeoPointID.value;

    var tmpTop = Math.ceil((screen.height - pHeight) / 2);
    var tmpLeft = Math.ceil((screen.width - pWidth) / 2);
    if (pParams.length > 0)
        pParams = "," + pParams;

    var tmpWindow = window.open(
        pHRef + "?" + _GEOLinkEditID + "=" + tmpGeoLinkValue + "&" + _GEOPointIDEditID + "=" + tmpGeoPointIDValue, 
        pWinCaption,
        "width=" + pWidth + ",height=" + pHeight + ",top=" + tmpTop + ",left=" + tmpLeft + pParams);
    tmpWindow.focus();
    return false;
}

function GEO_Redirect()
{
    try
    {
        if (opener)
        {
            var tmpQueryParams = ParseQ(window.location.search);
            if ((tmpQueryParams) && (tmpQueryParams[_ParamLAT]) && (tmpQueryParams[_ParamLNG]))
                GEO_SetLink(tmpQueryParams);
        }
    }
    catch(tmpError)
    {
    }
    window.close();
}

function GEO_SetLink(pQueryParams)
{
    if (pQueryParams)
    {
        var tmpEdGeoLink = opener.document.getElementById(_GEOLinkEditID);
        if (tmpEdGeoLink)
            tmpEdGeoLink.value = unescape(decodeURI(pQueryParams[_ParamLAT]) + ", " + decodeURI(pQueryParams[_ParamLNG]));
        var tmpChGeoNotPrivate = opener.document.getElementById(_GEONotPrivateID);
        if (tmpChGeoNotPrivate)
            tmpChGeoNotPrivate.checked = true;
    }
}
