/**
*   @desc Make pages function. Dynamicly generated pages and callbackfunction
*   @note Currently hard coded limit to 20 pages
*
*   @param int iCurrent Current page number
*   @param int iTotal Total count of pages
*   @param string sCallPageFucntion string function to initiate change of page. Add __PAGENR__ to place the vairable page number
*   @param string sTop Element name of pagecounter container
*   @param string sBottom Element name of pagecounter container 2
**/
function makePages(iCurrent, iTotal, sCallPageFunction, sTop, sBottom){
    var sPages = '';
    var sClass = '';
    if ( iTotal > 20 )  { iTotal = 20; }
    
    if ( iTotal > 1 ) {
    
        iPrevious = iCurrent - 1;
        if ( iPrevious == 0 ) { iPrevious = 1; }
        sPages += '<a href="#" onclick="' + sCallPageFunction.replace("__PAGENR__", ( iCurrent - 1)) + '"><</a>';
        
        for ( var i=1; i<=iTotal; i++ ) {
            if ( i == iCurrent ) { sClass = 'class="current"' } else { sClass = ''; }
            sPages += '<a href="#" ' + sClass + ' onclick="' + sCallPageFunction.replace("__PAGENR__", ( i )) + ';return false;">' + i + '</a>';
        }
        
        iNext = iCurrent + 1;
        if ( iNext > iTotal ) { iNext = iTotal; }
        sPages += '<a href="#" onclick="' + sCallPageFunction.replace("__PAGENR__", iNext ) + ';return false;">></a>';
    }
        
    document.getElementById(sTop).innerHTML = sPages;
    document.getElementById(sBottom).innerHTML = sPages;
}


/**********************************************************************
Als je meer info over een item op de kaart wilt zien, 
wordt deze functie aangeroepen.
**********************************************************************/
function showInfo(iMarkerID){
    // De inhoud van de informatie DIV alleen bijwerken als er een iMarkerID is opgegeven
    if(iMarkerID){
    
        // Via een AJAX request de informatie over het item ophalen uit de database    
        itemXML = makeRequest(sBaseUrl + 'ajax/item.xml.php?id=' + iMarkerID);
        
        /** Activate tabtitle, show tab and set right content block **/
        swap('tab', true);
        
        activate('tabTitle');
        setTabContent('info');        

        
        // controleren of het item bestaat, als dat niet zo is staat er in de XML output een tag met de naam 'fout'
        if(checkForTag(itemXML.getElementsByTagName('fout')[0])){
            text     = itemXML.getElementsByTagName('fout')[0].firstChild.data;

            // De informatie in de informatie div zetten
            sContent = '<h2><img class="png" src="images/bol_bg_fefefe.png">Niet gevonden</h2>';
            sContent += '<p>'+text+'</p>';
            
            document.getElementById('tab_contents_info').innerHTML = sContent;
        // Als het item wel bestaat
        } else {
                
            titel    = itemXML.getElementsByTagName('titel')[0].firstChild.data;
            permlink = itemXML.getElementsByTagName('permlink')[0].firstChild.data;
            
            adres = '';
            if(checkForTag(itemXML.getElementsByTagName('adres')[0])){
                adres     = itemXML.getElementsByTagName('adres')[0].firstChild.data;
            }
            postcode = '';
            if(checkForTag(itemXML.getElementsByTagName('postcode')[0])){
                postcode     = itemXML.getElementsByTagName('postcode')[0].firstChild.data;
            }
            plaats = '';
            if(checkForTag(itemXML.getElementsByTagName('plaats')[0])){
                plaats     = itemXML.getElementsByTagName('plaats')[0].firstChild.data;
            }
            email = '';
            if(checkForTag(itemXML.getElementsByTagName('email')[0])){
                email     = itemXML.getElementsByTagName('email')[0].firstChild.data;
            }
            telefoon = '';
            if(checkForTag(itemXML.getElementsByTagName('telefoonnummer')[0])){
                telefoon     = itemXML.getElementsByTagName('telefoonnummer')[0].firstChild.data;
            }            

            textafbeelding = '';
            if(checkForTag(itemXML.getElementsByTagName('textafbeelding')[0])){
                textafbeelding     = itemXML.getElementsByTagName('textafbeelding')[0].firstChild.data;
            }            

            website = '';
            if(checkForTag(itemXML.getElementsByTagName('website')[0])){
                website     = itemXML.getElementsByTagName('website')[0].firstChild.data;
                website = website.replace('http://','');
            }
            
            omschrijving = itemXML.getElementsByTagName('omschrijving')[0].firstChild.data;
            lat           = parseFloat(itemXML.getElementsByTagName('position')[0].getAttribute('lat'));
            lng           = parseFloat(itemXML.getElementsByTagName('position')[0].getAttribute('lng'));

            thumb1 = '';
            if(checkForTag(itemXML.getElementsByTagName('thumb1')[0])){
                thumb1     = itemXML.getElementsByTagName('thumb1')[0].firstChild.data;
                large1     = itemXML.getElementsByTagName('large1')[0].firstChild.data;
            }
            
            thumb2 = '';
            if(checkForTag(itemXML.getElementsByTagName('thumb2')[0])){
                thumb2     = itemXML.getElementsByTagName('thumb2')[0].firstChild.data;
                large2     = itemXML.getElementsByTagName('large2')[0].firstChild.data;
            }            

            thumb3 = '';
            if(checkForTag(itemXML.getElementsByTagName('thumb3')[0])){
                thumb3     = itemXML.getElementsByTagName('thumb3')[0].firstChild.data;
                large3     = itemXML.getElementsByTagName('large3')[0].firstChild.data;
            }
            
            thumb4 = '';
            if(checkForTag(itemXML.getElementsByTagName('thumb4')[0])){
                thumb4     = itemXML.getElementsByTagName('thumb4')[0].firstChild.data;
                large4     = itemXML.getElementsByTagName('large4')[0].firstChild.data;
            }

            bijlage = '';
            if(checkForTag(itemXML.getElementsByTagName('bijlage')[0])){
                bijlage     = itemXML.getElementsByTagName('bijlage')[0].firstChild.data;
            }

            aSubgroepen = itemXML.getElementsByTagName('subgroep');
            
            // De informatie formatten
            sContent = '';

            // editinplace icons
            
            if(bWebbeheerLoggedIn){
                
                sContent += '<img style="cursor:pointer;margin:0;width:20px;height:16px;background:transparent;" src="webbeheer/images/edit.gif" onclick="editItem(\'markers\',' + iMarkerID + ');" title="wijzig" alt="wijzig" />';
                sContent += '<img style="cursor:pointer;margin:0;width:17px;height:16px;background:transparent;" src="webbeheer/images/delete.gif" onclick="deleteItem(\'markers\',' + iMarkerID + ');" title="verwijder" alt="verwijder" />';
                sContent += '<hr/>';
            }
        
            sContent += '<div style="float: right;"><a href="#" onclick="swap(\'tab\', false);return false;" class="funky left">Terug naar de kaart</a></div>';
            sContent += '<h2><img class="png" src="images/bol_bg_fefefe.png">'+titel+'</h2>';
            
            if ( textafbeelding != '' ) {
                var textafbeeldinghtml = '<img src="' + sBaseUrl + textafbeelding + '" style="float:left;margin:15px 15px 0 0;">';
            } else {
                var textafbeeldinghtml = '';
            }
            
            sContent += '<div class="omschrijving">'+ textafbeeldinghtml + omschrijving +'</div>';
            
            
            if (thumb1 != '' || thumb2 != '' || thumb3 != '' || thumb4 != ''){
                sContent += '<div class="info_extra_thumbs">';
            }
            if(thumb1 != '')     sContent += '<div class="thumb"><a href="javascript:enlarge(\'' + large1 + '\');"><img src="webbeheer/libs/image/phpThumb.php?src=' + thumb1 + '&w=120&h=90&zc=1" alt="" /></a></div>';
            if(thumb2 != '')     sContent += '<div class="thumb"><a href="javascript:enlarge(\'' + large2 + '\');"><img src="webbeheer/libs/image/phpThumb.php?src=' + thumb2 + '&w=120&h=90&zc=1" alt="" /></a></div>';
            if(thumb3 != '')     sContent += '<div class="thumb"><a href="javascript:enlarge(\'' + large3 + '\');"><img src="webbeheer/libs/image/phpThumb.php?src=' + thumb3 + '&w=120&h=90&zc=1" alt="" /></a></div>';
            if(thumb4 != '')     sContent += '<div class="thumb" style="margin-right: 0px;"><a href="javascript:enlarge(\'' + large4 + '\');"><img src="webbeheer/libs/image/phpThumb.php?src=' + thumb4 + '&w=120&h=90&zc=1" alt="" /></a></div>';
            
            if (thumb1 != '' || thumb2 != '' || thumb3 != '' || thumb4 != ''){
                sContent += '</div>';
            }

            
            sContent += '<br/><div class="info_extra"><div id="info_extra_middleborder">';
            
            if(adres != '' || email != '' || telefoon != '' || website != '' || bijlage != '' || postcode != '' || plaats != '') sContent += '<div id="info_adres"><h3>Contactgegevens</h3>';
            if(adres != '')     sContent += adres + '<br/>';
            if(postcode != '')     sContent += postcode + '<br/>';
            if(plaats != '')     sContent += plaats + '<br/>';
            
            sContent += '<br/><table>';
            
            if(email != '')     sContent += '<tr><td><b>E-mail</b></td><td><a href="mailto:' + email + '">' + email + '</a></td></tr>';
            if(telefoon != '')     sContent += '<tr><td><b>Telefoon</b></td><td> ' + telefoon + '</td></tr>';
            if(website != '')    sContent += '<tr><td> </td><td><a href="http://' + website + '" target="_blank">Bezoek de website</a></td></tr>';
                        
            if(bijlage != '')     sContent += '<td><br /><b>Bijlage</b></td><td><br /><a href="'+bijlage+'" target="_blank">downloaden</a></td></tr>';
            
            sContent += '</table></div>';
            
            sContent += '<div id="info_rubrieken"><h3>Rubrieken</h3>';
            
            // Subgroepen waar deze marker in zit
            for (i=0; i<aSubgroepen.length; i++) {
                //grab info from XML DOM parkings node
                sgtitel     = aSubgroepen[i].getElementsByTagName('titel')[0].firstChild.data;
                hgtitel     = aSubgroepen[i].getElementsByTagName('hgtitel')[0].firstChild.data;
                sgicon      = aSubgroepen[i].getElementsByTagName('icon')[0].firstChild.data;
                hgkleur     = aSubgroepen[i].getElementsByTagName('kleur')[0].firstChild.data;
                sgid        = aSubgroepen[i].getElementsByTagName('sgid')[0].firstChild.data;
                
                sContent += '<img class="png" style="background-color:' + hgkleur + ';" src="' + sBaseUrl + 'images/icons/' + sgicon + '" alt="" align="absmiddle" class="icon" /><a href="#" onclick="oMenu.getItemList(' + sgid + ');return false;">' + hgtitel + ' > ' + sgtitel + '</a><br/>';
                
            }            

            sContent += '</div></div></div>';

            sContent += '<div id="info_link">Linken naar deze pagina:<br/>';
            sContent += '<input id="permLink" type="text" value="'+permlink+'" onClick="javascript:document.getElementById(\'permLink\').focus();document.getElementById(\'permLink\').select();" readonly="true">';
            sContent += '</div>';
            
            sContent += '<div id="reactions"></div>';
            
            sContent += getReactForm();

            // De naam van het informatie tabje veranderen
            document.getElementById('tabTitleText').innerHTML = titel.substring(0,43); // de titel moet niet langer zijn als 43 tekens anders loopt ie het tabje uit
            
            // De informatie in de informatie div zetten
            document.getElementById('tab_contents_info').innerHTML = sContent;

            showReactions(iMarkerID);
            
            // In het hidden field het markers id zetten
            document.getElementById('iMarkerId').value = iMarkerID;
            
            // Statistieken bijhouden
            pageHit(permlink + '/meer_informatie');
            
       }
    } // if marker
}

/**********************************************************************
Zoeken naar de opgegeven zoekwoorden.
De resultaten in het zoektablad tonen.
**********************************************************************/
function showSearch(sKeyword, iPage){
    iPage = iPage || 1;

    setTabContent('search');
    
    $('searchResultWrap').style.display = "block";
    
    if(sKeyword){        
        
        // Via een AJAX request de zoekresultaten ophalen uit de database    
        searchXML = makeRequest(sBaseUrl + 'ajax/search.xml.php?keyword=' + sKeyword + '&iPage=' + iPage);
        
        numResults    = parseInt(searchXML.getElementsByTagName('numResults')[0].firstChild.data);
        if ( numResults > 0 ) {
            iPageCount = parseInt(searchXML.getElementsByTagName('iPageCount')[0].firstChild.data);
        } else {
            iPageCount = 0;
        }
        
        /** Alleen bij lege resultaten een geocode search doen **/
        if ( numResults < 1 ) { oSearch.getSearch(sKeyword); }
        else { oSearch.cleanResult(); }
        
        aResults     = searchXML.getElementsByTagName('result');
        
        makePages(iPage, iPageCount, "showSearch('"+sKeyword+"',__PAGENR__);", 'spTop', 'spBottom');
        
        
        sResults = '';
        

        
        for (i=0; i<aResults.length; i++) {
            //grab info from XML DOM parkings node
            id                  = aResults[i].getElementsByTagName('id')[0].firstChild.data;
            titel               = aResults[i].getElementsByTagName('titel')[0].firstChild.data;
            
            if ( titel.length > 40 ) {
                titel = titel.substring(0, 38) + '...';
            }
            
            omschrijving        = aResults[i].getElementsByTagName('omschrijving')[0].firstChild.data;
            lat                 = aResults[i].getElementsByTagName('lat')[0].firstChild.data;
            lng                 = aResults[i].getElementsByTagName('lng')[0].firstChild.data;
            zoom                = aResults[i].getElementsByTagName('zoom')[0].firstChild.data;            
            website             = aResults[i].getElementsByTagName('website')[0].firstChild.data;
            website = website.replace('http://','');
            
            adres               = aResults[i].getElementsByTagName('adres')[0].firstChild.data;
            telefoonnummer      = aResults[i].getElementsByTagName('telefoonnummer')[0].firstChild.data;            
            plaats              = aResults[i].getElementsByTagName('plaats')[0].firstChild.data;
            subgroep            = aResults[i].getElementsByTagName('subgroep')[0].firstChild.data;
            sg_titel            = aResults[i].getElementsByTagName('sg_titel')[0].firstChild.data;
            
            
            if ( omschrijving != '' ){
                var link = '<a class="clean" href="#" onclick="showInfo(' + id + ');return false;" class="funky right">Meer informatie</a>';
                var linkTitel = '<a class="title" href="#" onclick="showInfo(' + id + ');return false;" class="funky">' + titel + '</a>';
                var linkMap = '<a class="clean" href="#" onclick="swap(\'tab\', false);oMapObjects.gotoHiddenId('+  parseFloat(id) +');return false;" class="funky left">Toon op kaart</a> | ';
            } else if ( website == '' ) {
                var link = '';
                var linkTitel = '<a class="title" href="#" onclick="swap(\'tab\', false);oMapObjects.gotoHiddenId('+ parseFloat(id) +');return false;" class="funky">' + titel + '</a>';
                var linkMap = '<a class="clean" href="#" onclick="swap(\'tab\', false);oMapObjects.gotoHiddenId('+ parseFloat(id) +');return false;" class="funky left">Toon op kaart</a>';
            } else {
                var link = '<a class="clean" href="http://' + website + '" target="_blank" class="funky up">Bekijk website</a>';
                var linkTitel = '<a class="title" href="http://' + website + '" class="funky">' + titel + '</a>';
                var linkMap = '<a class="clean" href="#" onclick="swap(\'tab\', false);oMapObjects.gotoHiddenId('+ parseFloat(id) +');return false;" class="funky left">Toon op kaart</a> | ';
            }
                                    
            // de content voor dit zoekresultaat formatten
            sResults += '<div class="searchResult"><p class="links">';
            
            sResults += '<img alt="' + sg_titel + '" class="png" onclick="oMenu.getItemList(' + subgroep + ');" src="' + oIcons[subgroep].labelImage + '" style="margin:5px;float:right;display:block;height:21px;cursor:pointer;background-color:#' + oIcons[subgroep].bgColor + '">';
            
            sResults += linkTitel;
            
            sResults += linkMap;
            sResults += link;
            sResults += '</p>';
            
            var sAdres = '';
            if ( adres != '' ) { 
                sAdres += adres; 
                if ( plaats != '' ) {
                    sAdres += ', ' + plaats;
                }
                if ( telefoonnummer != '' ) {
                    sAdres += '<br/>';
                }
            }
            if ( telefoonnummer != '' ) {
                sAdres += telefoonnummer;
            }
            
            sResults += '<p class="adress">' + sAdres + '</p></div>';
        }
        
        // De showInfo in de informatie div zetten
        sContent = '';
        
        if(sResults != 0){
            if(numResults == 1){
                var sResultString = 'Er is <b>1</b> resultaat gevonden.';
            } else {
                var sResultString = 'Er zijn <b>' + numResults + '</b> locaties gevonden.';
            }
            sContent += '<br/>';
            sContent += sResults;
            pageHit(sBaseUrl+'zoeken/'+sKeyword);
        } else {
            var sResultString = 'Uw zoekopdracht naar <b>' + sKeyword + '</b> leverde geen resultaten op.';
            pageHit(sBaseUrl+'zoeken/'+sKeyword);
            pageHit('Zoek_resultaat_leeg: ' + sKeyword);
        }
                
        document.getElementById('searchContent').innerHTML = sContent;
        
        document.getElementById('searchOverview').innerHTML = sResultString;
        
        // Statistieken bijhouden
        
    } else {
        swap('tab', true);
    }
}



/**********************************************************************
Twee functies om van een thumb plaatje een large versie in een popup te tonen
**********************************************************************/
imagename = '';
var popup = null;

function enlarge(fullimg){
    if(popup && !popup.closed){
        popup.close();
    }
    
    popup = window.open("about:blank","","width=155,height=116,status=no,toolbar=no,scrollbars=no,menubar=no,location=no,resizable=no");
    imagename = fullimg;
    
    setTimeout('updatePopup();',500)
}

function updatePopup(){
    doc = popup.document;
    doc.open('text/html');
    doc.write('<html><head><title>Uitvergroting</title><meta http-equiv="imagetoolbar" content="no" /><base href="' + sBaseUrl + '" /><link type="text/css" rel="stylesheet" href="css/popup.css" /></head><body>');
    doc.write('<a style="border:0;text-decoration:none;" href="javascript:;" onClick="window.close()"><img style="border:0;text-decoration:none;" name="FullImage" src="' + imagename + '" onLoad="window.resizeTo(FullImage.offsetWidth+25, FullImage.offsetHeight+80);"></a>');
    doc.write('</body></html>');
    doc.close();
}

