/************************************************************
* Geo Web Solutions (C) 2006 Bentley Benelux Netherlands BV *
* -------------------------------------------------------   *
* script file for Eindhoven website                         *
************************************************************/

var tabs= 'SEARCH,INFO,ABONNEE,HELP';   // ID'S VAN DE TABBLADEN (NAAM NIET WIJZIGEN)
var tabTitle = "ZOEKEN,GEGEVENS,ABONNEE,HELP" //TEKST OP IEDER TABBALD (KAN GEWIJZIGD WORDEN)

var _mapWidth = 350;                    // width of the flashobject in the website
var _mapHeight = 390;                   // height of the flashobject in the website
var _serviceName = 'BV1';               // Name of the Geo Web Solutions service to use

var _searchName = 'SQ_Adres';           // Name of the Search to present to the user
var _questionOne = 'Straat_D';          // Name of the first Question (column) for this search
var _questionTwo = 'Hnr';               // Name of the second Question (column) for this search
var _questionThree = 'Huisnr';

var _search2Name = 'Postcode';          // Name of the Search to present to the user
var _question2One = 'POSTCODE';         // Name of the first Question (column) for this search
var _question2Two = 'TOEVOEGING';       // Name of the second Question (column) for this search
var _filter='';

var _answerOne='';
var _answerTwo='';

var _xCoord;
var _yCoord;
var _mapResolution;
var _activeSearch;
var _startLayers = '';

var host = window.location.hostname;
//var host = 'www.geogids.info';

function resetForm()
{
    parent.fraReport.location.replace("report.html");

    return;
}

/****************************************************************************
* FUNC:    listSearchResult
* DESC:    Function that will search based on the given parameters
*          and show the result in the reportframe
****************************************************************************/
function listSearchResult()
{
    determineFilterValues();

    if(!execGetLocation())
    {
        alert("U dient eerst een zoekopdracht te geven");
        return false;
    }
    execGetInfo(document.getElementById("straal").value);

    return;
}

/****************************************************************************
* FUNC:    showResultinMap
* DESC:    Function that will search based on the given parameters
*          and show the resulting map
****************************************************************************/
function showResultinMap()
{
    if(!execGetLocation(document.getElementById("straal").value))
    {
        alert("U dient eerst een zoekopdracht te geven");
        return false;
    }
    buildStartParamsXY();
    execGetInfo(document.getElementById("straal").value);

    return;
}

function showObjectinMap()
{
    var straal = 100;

    execGetLocation( "0.2");
    buildStartParams();
    execGetInfo("0.2");

    return;
}

/****************************************************************************
* FUNC:    determineMapLayers
* DESC:    The selected value in the maincategory will be used to show in the map
****************************************************************************/
function determineMapLayers()
{
    //Namen van alle layers die altijd aangezet moeten worden
    _startLayers = 'GBKA|Falkplan|Wijk|Buurt';

    var mainCat = parent.fraSearch.document.getElementById("maincat");

    if (mainCat.selectedIndex == 0)
    {
        // alle categoriën tonen
        for(var i=1;i< mainCat.options.length;i++)
        {
            _startLayers += "|" + mainCat.options[i].value;
        }
    }
    else
    {
        _startLayers += '|' + mainCat.options[mainCat.selectedIndex].value;
    }
}

/****************************************************************************
* FUNC:    determineFilterValues
* DESC:    The selected values in the subcategory will be used to filter the result
****************************************************************************/
function determineFilterValues()
{
    _filter = '';
    var itmfilter = '';
    var subcat = document.getElementById("subcat");

    if (!subcat)
        return;

    for(var i=0;i< subcat.options.length;i++)
    {
        if (subcat.options[i].selected)
        {
            itmfilter += "," + subcat.options[i].value;
        }
    }
    itmfilter = itmfilter.substr(1);

    //now build the string that will be used to filter the result
    _filter= "?param_report=voorzieningen&param_field=PROJECTNAAM&&param_separator=,&param_values=" + itmfilter;
}

/****************************************************************************
* FUNC:    initWebsite
* DESC:    Function that will initialize the website
****************************************************************************/
function initWebsite()
{
    var arrTabTitles = tabTitle.split(",");

    for (var i=0;i<arrTabTitles.length;i++)
    {
        document.getElementById("tab" + i).innerHTML = arrTabTitles[i];
    }
    buildStartParams();

    change_tab('tab0');

    return;
}

//  check for valid numeric strings
function IsNumeric(strString)
{
    var strValidChars = "0123456789.-";
    var strChar;
    var blnResult = true;

    if (strString.length == 0)
        return false;

    //  test strString consists of valid characters listed above
    for (i = 0; i < strString.length && blnResult == true; i++)
    {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1)
        {
            blnResult = false;
        }
    }
    return blnResult;
}

function letterSearch(sChar)
{
    //clear divtags
    document.getElementById("divAnswer1_1").innerHTML = '<span class="txtsmall">Een ogenblik aub... </span>';
    document.getElementById("divAnswer1_2").innerHTML = '';
    document.getElementById("divAnswer2_1").innerHTML = '';
    document.getElementById("divAnswer2_2").innerHTML = '';

    _activeSearch=_searchName;

    if( ( sChar.indexOf("/") > -1 ) || (IsNumeric(sChar) == true) )
    {
        document.getElementById("divAnswer1_1").innerHTML = '<span class="txtsmall">Zaaknummer wordt gezocht ... </span>';

        _searchName = "SQ_BV_STATUS";
        _questionOne = "ZAAKNUMMER";
        _activeSearch=_searchName;

        setTimeout('loadObjectQuestion("'+ sChar +'","' + _searchName +'","'+ _questionOne +'")', 100)

        document.getElementById("divStraal").style.display = "none";
        document.getElementById("divToon").style.display = "none";
    }
    else
    {
        _searchName = "SQ_Adres";
        _questionOne = "Straat_D";

        document.getElementById("divStraal").style.display = "block";
        document.getElementById("divToon").style.display = "block";

        _activeSearch=_searchName;

        setTimeout('loadFirstQuestion("'+ sChar +'","' + _searchName +'","'+ _questionOne +'")', 100)
    }

    return;
}

function postcodeSearch(sChar)
{
    //clear divtags
    document.getElementById("divAnswer2_1").innerHTML = '<span class="txtsmall">Een ogenblik aub.. </span>';
    document.getElementById("divAnswer2_2").innerHTML = '';
    document.getElementById("divAnswer1_1").innerHTML = '';
    document.getElementById("divAnswer1_2").innerHTML = '';

    _activeSearch=_search2Name;
    setTimeout('loadFirstQuestion("'+ sChar +'","' + _search2Name +'","'+ _question2One +'")', 100)

    return;
}

/****************************************************************************
* FUNC:    execGetLocation
* DESC:    Do a GetLocation request based on the given search answers
****************************************************************************/
function execGetLocation(radius)
{
    if(!_activeSearch)
        return false;

    var questionOne;
    var questionTwo;

    //Get the names of the columns associated with the current search
    if (_activeSearch == _searchName)
    {
        questionOne = _questionOne;
        questionTwo = _questionTwo;
    }
    else
    {
        questionOne = _question2One;
        questionTwo = _question2Two;
    }

    // Execute GetLocation
    var fmGetLocation = new FMGetLocation();
    var fmReq = fmGetLocation.request;
    var fmResp = fmGetLocation.response;

    fmReq.service = _serviceName;
    fmReq.searchQuery.name = _activeSearch;

    if (_answerTwo != '')
    {
        fmReq.searchQuery.columns = new Array(new FMColumn(questionOne, _answerOne), new FMColumn(questionTwo, _answerTwo));
    }
    else
    {
        fmReq.searchQuery.columns = new Array(new FMColumn(questionOne, _answerOne));
    }
    fmReq.mapSize.width = _mapWidth;
    fmReq.mapSize.height = _mapHeight;

    fmGetLocation.execute();

    // Parse response
    _xCoord = fmResp.centerPoint.x;
    _yCoord = fmResp.centerPoint.y;
    _mapResolution = radius/100;

    return true;
}

/****************************************************************************
* FUNC:    execGetInfo
* DESC:    Do a GetInfo request based on coordinate info with possible radius
****************************************************************************/
function execGetInfo(radius)
{
    var mapRes = _mapResolution;
    var sResponseException = "FMServiceExceptionReport";
    var sResponseInfo = "FMSendInfo";
    var ELEMENT_NODE = 1;
    var TEXT_NODE = 3;
    var mask;

    if (arguments.length > 0)
        mask = 'CIRCLE(' + _xCoord + ' ' + _yCoord + ',' + radius + ')';
    else
        mask = 'POINT(' + _xCoord + ' ' + _yCoord + ')';

    // Execute GetInfo
    var fmGetInfo = new FMGetInfo();
    var fmReq = fmGetInfo.request;
    var fmResp = fmGetInfo.response;

    fmReq.service = _serviceName;
    fmReq.spatialMask = mask;
    fmReq.mapResolution = " " + radius/100;
    fmReq.mapSize.width = _mapWidth;
    fmReq.mapSize.height = _mapHeight;

    fmGetInfo.execute();

    if(null == fmResp.xml)
    {
        sHTML = "Geen vergunningen gevonden binnen deze straal."
        return( false );
    }

    var sendInfoXML = xmlFactory.serialize(fmResp.xml);

    initReport( sendInfoXML );

    return( true );
}

/****************************************************************************
* FUNC:    initReport
* DESC:
****************************************************************************/

function initReport( sendInfoXML )
{
    var sHTML = "";
    var detail_HTML = "";

    var arr_detail = new Array();
    var arr_aanvraag = new Array();

    var xml;
    var xmlString=sendInfoXML;

    if(isIE)
    {
        xml = new ActiveXObject("Microsoft.XMLDOM");
        xml.async = false;
        xml.loadXML(xmlString);
    }
    else
    {
        xml = (new DOMParser()).parseFromString(xmlString, "text/xml");
    }

    // Loop through document, searching for specific elements
    var root = xml.documentElement;

    var RepNode = root.getElementsByTagName("Report");

    for (var i = 0;i < RepNode.length ;i++)
    {
        reportname = new String(RepNode[i].getAttribute("name"));
        if( reportname.indexOf("ALL" ) == -1 )
        {
            var sReportTbl ='<table width="400" border="1" class="tblMain">';
            var Header = RepNode[i].getElementsByTagName("Header").item(0);
            var HNode = Header.getElementsByTagName("Item");
            var sHeader= '<tr><th></th>';

            for (var j = 0;j < HNode.length ;j++)
            {
                if (HNode[j].getAttribute("alias"))
                {
                    sHeader +=  '<th>' + HNode[j].getAttribute("alias") + '</th>';
                }
                else
                {
                    sHeader +=  '<th>' + HNode[j].firstChild.nodeValue + '</th>';
                }
            }

            sReportTbl += sHeader + '</tr>';

            var Records = RepNode[i].getElementsByTagName("Records").item(0);
            var RecNode = Records.getElementsByTagName("Record");
            var sRecord='';

            for (var j = 0;j < RecNode.length ;j++)
            {
                sRecord += '<tr style="cursor: pointer;" onclick="parent.initMapfromReport(\''+ RecNode[j].getAttribute("key") + '\',\'' + RecNode[j].getAttribute("layer") + '\',\'' + arr_detail[j] + '\');">';

                if ( arr_aanvraag[j] == '0')
                {
                    sRecord += '<td align="center"><div style="cursor: pointer;"><img src="./images/info.gif"';
                }
                else
                {
                    sRecord += '<td align="center"><div style="cursor: pointer;"><img src="./images/info2.gif"';
                }

                sRecord += ' alt="' + RecNode[j].getAttribute("key") + ' - Toon object op kaart en toon meer gegevens"/></div></td>';

                var itmNode = RecNode[j].getElementsByTagName("Item");

                for (var k = 0;k < itmNode.length ;k++)
                {
                    if (itmNode[k].firstChild)
                    {
                        var correct_value;

                        correct_value = itmNode[k].firstChild.nodeValue;
                        correct_value = correct_value.replace( /"/g , '`' );
                        correct_value = correct_value.replace( /'/g , '`' );
                        correct_value = correct_value.replace( /\//g, '|' );

                        if ( arr_aanvraag[j] == '0')
                        {
                            sRecord += '<td >' + correct_value + '</td>';
                        }
                        else
                        {
                            sRecord += '<td style="color:#555555;">' + correct_value + '</td>';
                        }
                    }
                    else
                    {
                        sRecord += '<td ></td>';
                    }
                }
                sRecord += '</tr>';
            }
            sReportTbl += sRecord + '</table>';
            sHTML+=sReportTbl;
        }
        else
        {
            var all_Header = RepNode[i].getElementsByTagName("Header").item(0);
            var all_HNode = all_Header.getElementsByTagName("Item");
            var all_sHeader= '<tr><th></th>';
            var arr_columns = new Array();

            for (var n = 0;n < all_HNode.length ;n++)
            {
                if (all_HNode[n].getAttribute("alias"))
                {
                    arr_columns[n] = new Array( all_HNode[n].getAttribute("alias") );
                }
                else
                {
                    arr_columns[n] = new Array( all_HNode[n].firstChild.nodeValue );
                }
            }

            var all_Records = RepNode[i].getElementsByTagName("Records").item(0);
            var all_RecNode = all_Records.getElementsByTagName("Record");

            for (var j = 0;j < all_RecNode.length ;j++)
            {
                arr_aanvraag[j] = new Array( '0' );
                arr_detail[j] = new Array( '<center><font class=tekstbluebold>Details van deze VERGUNNING</font></center><table width=400 class=tblDetail>' );

                var all_itmNode = all_RecNode[j].getElementsByTagName("Item");

                for (var k = 0;k < all_itmNode.length ;k++)
                {
                    if (all_itmNode[k].firstChild)
                    {
                        var correct_value2;
                        correct_value2 = all_itmNode[k].firstChild.nodeValue;
                        correct_value2 = correct_value2.replace( /"/g, '`' );
                        correct_value2 = correct_value2.replace( /'/g, '`' );
                        correct_value2 = correct_value2.replace( /\//g, '|' );

                        arr_detail[j] = arr_detail[j] + '<tr><th>'+ arr_columns[k] + '</th><td>' + correct_value2 + '</td></tr>';
                    }
                    else
                    {
                        arr_detail[j] = arr_detail[j] + '<tr><th>'+ arr_columns[k] + '</th><td></td></tr>';
                        if ( k==all_itmNode.length-1 )
                        {
                            arr_aanvraag[j] = '1';
                        }
                    }
                }
            }
        }
    }

    var oInfo = document.getElementById("result_1");

    oInfo.innerHTML = sHTML;

    oInfo.style.height = '300px';
    oInfo.style.width = '420px';
    oInfo.style.overflow = 'auto';

    return true;
}

function loadObjectQuestion(sValue, sSearchName, sQuestionName)
{
    // Execute GetList
    var fmGetList = new FMGetList();
    var fmReq = fmGetList.request;
    var fmResp = fmGetList.response;

    fmReq.service = _serviceName;
    fmReq.searchQuery.name = sSearchName;
    fmReq.searchQuery.columns = new Array(new FMColumn(sQuestionName, sValue));

    fmGetList.execute();

    // Parse response
    var sHtml = "";

    if(fmResp.items)
    {
        for(var idx = 0; idx < fmResp.items.length; idx++)
        {
            if(fmResp.items[idx] && fmResp.items[idx].replace(/^\s*|\s*$/g,"") != "")
            {
                sHtml += '<option value="' + fmResp.items[idx] + '">' + fmResp.items[idx] + '</option>';
                _answerOne = fmResp.items[idx];
            }
        }
    }

    //alert('sHtml 1: '+sHtml);
    var bshowFirst = false;

    if(sHtml=='')
    {
        sHtml = '';
    }
    else
    {
        sHtml = '<select size="1" class="txtsmall" width="80em" name="listbox1" id="listbox1" onClick="showObjectinMap()">' + sHtml + '</select>';
        bshowFirst = true;
    }
    _answerTwo = '';

    if(bshowFirst)
    {
        showObjectinMap();
        document.getElementById("divAnswer1_1").innerHTML = ' ';
    }
    else
    {
        document.getElementById("divAnswer1_1").innerHTML = '<span class="txtsmall">Dit is geen correct Zaaknummer !</span>';
    }
    return true;
}

function loadFirstQuestion(sValue, sSearchName, sQuestionName)
{
    // Execute GetList
    var fmGetList = new FMGetList();
    var fmReq = fmGetList.request;
    var fmResp = fmGetList.response;

    fmReq.service = _serviceName;
    fmReq.searchQuery.name = sSearchName;
    fmReq.searchQuery.columns = new Array(new FMColumn(sQuestionName, sValue));

    fmGetList.execute();

    // Parse response
    var sHtml = "";
    if(fmResp.items)
    {
        for(var idx = 0; idx < fmResp.items.length; idx++)
        {
            if(fmResp.items[idx] && fmResp.items[idx].replace(/^\s*|\s*$/g,"") != "")
            {
                sHtml += '<option value="' + fmResp.items[idx] + '">' + fmResp.items[idx] + '</option>';
            }
        }
    }

    var bshowFirst = false;
    
    if(sHtml=='')
    {
        sHtml = '';
    }
    else
    {
        sHtml = '<select size="1" class="txtsmall" width="80em" name="listbox1" id="listbox1" onClick="loadSecondQuestion(this, \'' + sSearchName + '\')">' + sHtml + '</select>';
        bshowFirst = true;
    }

    if(sSearchName == _searchName)
    {
        document.getElementById("divAnswer1_1").innerHTML = sHtml;
    }
    else
    {
        document.getElementById("divAnswer2_1").innerHTML = sHtml;
    }

    if(bshowFirst)
        loadSecondQuestion(document.getElementById("listbox1"), sSearchName);

    return true;
}

function loadSecondQuestion(listbox, sSearchName)
{
    var sValue = listbox.value;
    var questionOne;
    var questionTwo;

    //Get the names of the columns associated with the current search
    if (sSearchName == _searchName)
    {
        questionOne = _questionOne;
        questionTwo = _questionTwo;
    }
    else
    {
        questionOne = _question2One;
        questionTwo = _question2Two;
    }

    //reset second answer if available
    _answerTwo = '';
    _answerOne = sValue;

    if (sValue =="")
    {
        return false;
    }

    // Execute GetList
    var fmGetList = new FMGetList();
    var fmReq = fmGetList.request;
    var fmResp = fmGetList.response;

    fmReq.service = _serviceName;
    fmReq.searchQuery.name = sSearchName;
    fmReq.searchQuery.columns = new Array(new FMColumn(questionOne, sValue), new FMColumn(questionTwo));

    fmGetList.execute();

    // Parse response
    var numAntwoorden = 0;
    var sHtml = "";

    if(fmResp.items)
    {
        for(var idx = 0; idx < fmResp.items.length; idx++)
        {
            if(fmResp.items[idx] && fmResp.items[idx].replace(/^\s*|\s*$/g,"") != "")
            {
                sHtml += '<option value="' + fmResp.items[idx] + '">' + fmResp.items[idx] + '</option>';
                numAntwoorden++;
            }
        }
    }

    if(sHtml == '')
    {
        sHtml = '';
    }
    else
    {
        sHtml = '<select size="1" class="txtsmall" width="80em" name="listbox2" id="listbox2" onClick="questionsDone(this)">' +
                '<option value="">--- Selecteer ---</option>' + sHtml + '</select>';
    }

    if(sSearchName == _searchName)
    {
        document.getElementById("divAnswer1_2").innerHTML = sHtml;
    }
    else
    {
        document.getElementById("divAnswer2_2").innerHTML = sHtml;
    }
    return;
}


function updateChoices()
{
    var sStr = '<span class="txtsmall">Gevonden resultaat:&nbsp;' + _answerOne + ' ' + _answerTwo +
                '</span></div>';

    return;
}

function questionsDone(listbox)
{
    _answerTwo = listbox.value;

    return;
}

/*---------------------------------------------------------------------*
* buildStartParams:                                                   *
* Initialize Flash with parameters provided in the searchquery        *
*---------------------------------------------------------------------*/
function buildStartParams()
{
    var movieVars = "fmClient.swf?fm=http://"+ host + "/Scripts/FlexiMap.dll";
    movieVars += "&commurl=report.asp&commtarget=fraReport";
    movieVars += "&service=" + _serviceName;

    var sSQ='';

    // check if a searchquery has been executed, if so add to startup string
    if(_answerOne != '')
    {
        sSQ='&sq='+_searchName + '&' + _questionOne + '=' + _answerOne;
        if(_answerTwo != '')
        {
            sSQ +='&' + _questionTwo + '=' + _answerTwo;
        }
    }
    movieVars += sSQ;

    if(sSQ !='' )
    {
        change_tab('tab0');
    }

    // call function that (re)initializes Flash
    startFlash(movieVars);

    return;
}

/*---------------------------------------------------------------------*
* buildStartParamsXY:                                                 *
* Initialize Flash with parameters provided in the searchquery (XY)   *
*---------------------------------------------------------------------*/
function buildStartParamsXY()
{
    var movieVars = "fmClient.swf?fm=http://"+ host + "/Scripts/FlexiMap.dll";

    movieVars += "&commurl=report.asp";
    movieVars += "&commtarget=fraReport";

    movieVars += "&service=" + _serviceName;

    movieVars += "&xcoord=" + _xCoord;
    movieVars += "&ycoord=" + _yCoord;
    movieVars += "&mapresolution=" + _mapResolution;

    startFlash(movieVars);

    return;
}

/*----------------------------------------------------------------*
* startFlash:                                                    *
* Initialize Flash with or without specific startparameters      *
*----------------------------------------------------------------*/
function startFlash(MovieandVars)
{
    var flashHtml = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'";
    flashHtml += "codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0'";
    flashHtml += "WIDTH='"+ _mapWidth + "' HEIGHT='"+ _mapHeight + "' id='fmClient' ALIGN='middle'>";
    flashHtml += "<param name=movie value='"+ MovieandVars + "'>";
    flashHtml += "<param name=allowScriptAccess value='sameDomain'>";
    flashHtml += "<param name=quality value='high'>";
    flashHtml += "<param name=bgcolor value='#'>";
    flashHtml += "<param name=scale value='noscale'>";
    flashHtml += "<embed src='"+ MovieandVars + "' quality=high bgcolor=# WIDTH='"+ _mapWidth + "' HEIGHT='"+ _mapHeight + "' scale='noscale' NAME='fmClient'";
    flashHtml += "align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed>";
    flashHtml += "</object>";

    var divFlash = document.getElementById("flashMap");
    if(null == divFlash)
        divFlash = parent.document.getElementById("flashMap");
        
    divFlash.innerHTML = flashHtml;

    return;
}

/*---------------------------------------------------------------------*
* initMapfromReport:                                                 *
* Initialize Flash with parameters provided in the searchquery (XY)   *
*---------------------------------------------------------------------*/
function initMapfromReport(key, layer, detail_info)
{
    //  var questionOne='OBJECT_ID';
    var questionOne='ZAAKNUMMER';

    // Execute GetLocation
    var fmGetLocation = new FMGetLocation();
    var fmReq = fmGetLocation.request;
    var fmResp = fmGetLocation.response;

    fmReq.service = _serviceName;

    //zoekingang moet dezelfde naam als de layer hebben
    fmReq.searchQuery.name = "SQ_"+ layer;
    //zoekingang is op basis van id, dus de key moet bij deze vraag worden opgegeven
    fmReq.searchQuery.columns = new Array(new FMColumn(questionOne, key));
    fmReq.mapSize.width = _mapWidth;
    fmReq.mapSize.height = _mapHeight;

    fmGetLocation.execute();

    // Parse response
    _xCoord = fmResp.centerPoint.x;
    _yCoord = fmResp.centerPoint.y;
    _mapResolution = fmResp.mapResolution;

    //now build the startparams
    var movieVars = "fmClient.swf?fm=http://"+ host + "/Scripts/FlexiMap.dll";
    movieVars += "&commurl=report.asp&commtarget=fraReport";
    movieVars += "&service=" + _serviceName;

    movieVars += "&xcoord=" + _xCoord;
    movieVars += "&ycoord=" + _yCoord;
    movieVars += "&mapresolution=" + _mapResolution;
    movieVars += "&startlayers=" + _startLayers;
    movieVars += "&highlight=true";
    movieVars += "&layers=" + layer;
    movieVars += "&keys=" + key;

    startFlash(movieVars);

    showDetailReport(key,layer, detail_info);

    return;
}

function showDetailReport(key,layer, detail_info )
{
    var correct_value;
    var xslParams;

    correct_value = escape(detail_info  + "</table>");
    xslParams = "param_key=" + key + "&param_layer=" + layer + "&detail=" + correct_value;

    if( null == parent.fraReport )
    {
        fraReport.document.location.replace("detail.asp?" + xslParams);
        parent.activateTab('INFO');
    }
    else
    {
        parent.fraReport.document.location.replace("detail.asp?" + xslParams);
        parent.activateTab('INFO');
    }

    return true;
}


function showHelp()
{
    parent.fraReport.location.href = "manual.html";
    return true;
}


/************************EXPOSING FUNCTIONS********************
/**************************************************************/
var exposedParams;

/*------------------------------------------------------------*
* addParams (used starting at version 2.0)                   *
* This function will be used by Flash to expose parameters   *
* Function must be named "addParams" and accept 1 parameter  *
* ==============Content must NOT be changed================= *
* If string from Flash is too long, this function will be    *
* called until entire string is passed                       *
*------------------------------------------------------------*/
function addParams(params)
{
    // DO NOT PUT ALERT BOXES IN THIS FUNCTION
    // FUNCTION IS CALLED WITH AN INTERVAL
    exposedParams += params;
}

/*------------------------------------------------------------*
 * submitParams (used starting at version 2.0)                *
 * This function will be called from Flash when the entire    *
 * string is transferred to addParams                         *
 * Now a function can be called to process the exposed params *
 *------------------------------------------------------------*/
function submitParams()
{
    /*  
    
    //now call the function fleximap, to be backward compatible
    var arrAllParams = exposedParams.split('|');
    for (var i = 0;i< arrAllParams.length;i++)
    {
        var tmp = arrAllParams[i];
        var arrOneParam = arrAllParams[i].split('=');
        var param = arrOneParam[0].toLowerCase();
        var val= arrOneParam[1];

        switch (param) 
        {
            case 'info':
                if (val.toUpperCase()=='CLEAR') 
                {
                }
                else
                {
                    //er komt een rapport vanuit de kaart, activeer het juiste tabblad
                    var Filename = "report.html";

                    parent.fraReport.location.replace(Filename);

                    parent.activateTab('INFO');
                }
            break;
        }
    }
    
    //now clear the variables that have been exposed
    exposedParams='';
    return;
    
    */
}

function noenter()
{
    if ( window.event && window.event.keyCode == 13 )
    {
        letterSearch( document.adres.txtChar.value);
        return false;
    }
    return true;
}
