﻿// client_common.js
///*********************************************
///
///     Common Functions
///
//**********************************************
// Logout function
function FuncCloseOut(){document.getElementById('onCloseFrame').src = "ApplicationClosed.aspx";}

function AttachFuncCloseOut()
{
    if(window.attachEvent)
    {
        window.attachEvent("onbeforeunload",FuncCloseOut);
    }
    else
    {
        window.addEventListener("beforeunload",FuncCloseOut,false);
    } 
}

function DettachFuncCloseOut()
{
    if (window.detachEvent)
    {
        window.detachEvent("onbeforeunload", FuncCloseOut);
    }
    else
    {
        window.removeEventListener("beforeunload", FuncCloseOut, false);
    }
}

function changeLanguage(url)
{
    if (window.detachEvent)
    {
        window.detachEvent("onbeforeunload", FuncCloseOut);
    }
    else
    {
        window.removeEventListener("beforeunload", FuncCloseOut, false);
    }
}

function goToSpecialLink(url)
{
    
    if (window.detachEvent)
    {
        window.detachEvent("onbeforeunload", FuncCloseOut);
    }
    else
    {
        window.removeEventListener("beforeunload", FuncCloseOut, false);
    }
        
    document.location.href = url;
    
    return false;
}



///*********************************************
///
///     Glossary Functions
///
//**********************************************
// Go to the glossary 
function gotoGlossary(lang, anchor)
{
    var page = "glossario";
    
    if (lang != "")
        page += lang;
    
    page += ".htm";
    
    if (anchor != "")
        page += "#" + anchor;

    window.open(page, "","width=800px, height=600px, resizable, scrollbars");
    
    return false;
}




///*********************************************
///
///     Zoom Functions
///
//**********************************************
function zoomtoFeature(objectID,layerName)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToFeature&ObjectID=" + objectID;
    argument += "&LayerName=" + layerName;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}

function zoomToNUTIII(id_nutiii)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToNUTIII&ID_NUTIII=" + id_nutiii;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}

function zoomToConcelho(dico)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToConcelho&DICO=" + dico;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}

function zoomToParqueIndustrial(id_pi_dist)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToParqueIndustrial&ID_PI_DIST=" + id_pi_dist;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}

function zoomToLote(id_lo_dist)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToLote&ID_LO_DIST=" + id_lo_dist;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}

function zoomToZonaPDM(id_zp_dist)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=ZoomToZonaPDM&ID_ZP_DIST=" + id_zp_dist;
    var context = "";
    
    eval(m_zoomtoFeatureCallback);
}




///*********************************************
///
///     ListBox Functions
///
//**********************************************
/// Moves an item from one ListBox to another
function moveListBoxItem(sourceID,destID)
{
    var ltb1 = document.getElementById(sourceID);
    var ltb2 = document.getElementById(destID);
    for(var i = 0; i < ltb1.options.length; i++)
    {
        if (ltb1.options[i].selected)
        {
            opt = ltb1.options[i];
            insertInOrder(ltb2, opt);
            ltb1.options[i] = null;            
        }
    }
}




///*********************************************
///
///     Auxiliars
///
//**********************************************
function myCompare(opt1,opt2)
{
    var str1 = new String(opt1.text);
    var str2 = new String(opt2.text);
    if(str1 >= str2)
        return 1;
    else 
        return -1;
}

///Inserts an item in an array in order
function insertInOrder(lstbox,opt)
{
    var newarr = new Array();
    for(var j = 0; j<lstbox.options.length; j++)
        newarr[j] = lstbox.options[j];
    
    lstbox.options.length = 0;
    
    newarr[newarr.length] = opt;
    newarr.sort(myCompare);
    
    for(var k=0; k<newarr.length; k++)
        lstbox.options.add(new Option(newarr[k].text, newarr[k].value));
}

///Show activity indicator on the Results panel
function showResultsPanelActivityIndicator(panel, taskResultControl, searchingLabel)
{
    var fpBody = window.document.getElementById(taskResultControl);            
    var html = fpBody.innerHTML;    
    fpBody.innerHTML = "<div><img src='images/callbackActivityIndicator.gif' align='middle'/> " + searchingLabel + " </div>";
    showFloatingPanel(panel);
    fpBody = window.document.getElementById(panel + '_BodyRow');
    if (fpBody.style.display=="none")
        toggleFloatingPanelState(panel,'images/collapse.gif','images/expand.gif');
}

///Open a new window to show the reports 
function openReport(reportid, entityid, lang)
{
    var page = "ReportViewer.aspx";
    var qs = "?";
    
    if (reportid != "")
        qs += m_qs_reportID + "=" + reportid;
    
    if (entityid != "")
    {
        if (qs.length > 1)
            qs += "&";
        qs += m_qs_entityID + "=" + entityid
    }   
        
    if (lang != "")
    {
        if (qs.length > 1)
            qs += "&";
        qs += "lang=" + lang;
        
    }

    window.open(page + qs, "","width=800px, height=600px, resizable");
}

///Open a new window to show the reports from MapTips
function openReportFromMaptip(reportid, entityid)
{
  
    if (m_is_authenticated == "False")
    {
        alert(m_warn_NotAuthenticated);
        return false;
    }
    
    var page = "ReportViewer.aspx";
    var qs = "?";
    
    if (reportid != "")
        qs += m_qs_reportID + "=" + reportid;
    
    if (entityid != "")
    {
        if (qs.length > 1)
            qs += "&";
        qs += m_qs_entityID + "=" + entityid
    }   
        
    if (m_currentLang != "")
    {
        if (qs.length > 1)
            qs += "&";
        qs += "lang=" + m_currentLang;
        
    }
    
		
    window.open(page + qs, "","width=800px, height=600px, resizable");
	
}

function openReportNUTIIIFromMapTip(objectid)
{
    DettachFuncCloseOut();
    
    var argument = "ControlID=Map1&ControlType=MapTips&EventArg=NUTIIIReport";
    argument += "&ObjectID=" + objectid;
    var context = "";
    
    eval(m_openReportNutIIICallback);
}

function openReportConcelhoFromMapTip(objectid)
{
    DettachFuncCloseOut();

    var argument = "ControlID=Map1&ControlType=MapTips&EventArg=ConcelhoReport";
    argument += "&ObjectID=" + objectid;
    var context = "";
    
    eval(m_openReportConcelhoCallback);
}

function showMessage(msg)
{
    alert(msg);
}




///*********************************************
///
///     TaskResults Compare Reports Functions
///
//**********************************************
function compare_reports_onclick()
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=CompareReportButton";
    var context = "";
    
    eval(m_compareButtonClickCallback);
}

function compareLoteZonaPDMReport(id,type)
{
    var argument = "ControlID=Map1&ControlType=TaskResults&EventArg=CompareLoteZonaPDM&ID=" + id;
    argument += "&Type=" + type;
    var context = "";
    
    eval(m_compareLoteZonaPDMCallback);
}

function setCompareReportButtonActive()
{
    var ctl = document.getElementById('div_compare_reports');
    ctl.className = "compare_reports_button_hover";
}

function setCompareReportButtonInActive()
{
    var ctl = document.getElementById('div_compare_reports');
    ctl.className = "compare_reports_button";
}

function hideCompareReportButton()
{
    document.getElementById('div_compare_reports').style.visibility = 'hidden';
}

function showCompareReportButton()
{
    document.getElementById('div_compare_reports').style.visibility = 'visible';
}




///*********************************************
///
///     Callback Response Functions
///
//**********************************************
function compareButtonClickResponse(result,context)
{
    if (result.split('|')[0] == "false")
    {
        alert(result.split('|')[1]);
    }
    else
    {
        openReport("", "", m_currentLang)
    }
}

function openReportNUTIIIResponse(result,context)
{
    AttachFuncCloseOut();
    
    if (result != "")
    {
        openReportFromMaptip(m_reportNUTIII_ID, result);
    }
}

function openReportConcelhoResponse(result,context)
{
    AttachFuncCloseOut();
    
    if (result != "")
    {
        openReportFromMaptip(m_reportConcelho_ID, result);
    }
}