﻿<!-- 
function writePaging(currentItem, numberItems)
{
    var strPaging = "";
    if(currentItem != 0) strPaging +="<a href=\"javascript:showItem('" + (currentItem-1) + "');pageTracker._trackPageview('/map/paging/" + (currentItem-1) + "');\"><img src=\"" + defaultUrl + "/img/ico_left.gif\" alt=\"\"/></a>"
    else strPaging +="<img src=\"" + defaultUrl + "/img/empty.gif\" width=\"5\" alt=\"\"/>"
    strPaging += "&nbsp;<b>&nbsp;" + (parseInt(currentItem)+1) + "</b> von <b>" + numberItems + "</b>&nbsp;&nbsp;";
    if(currentItem != numberItems-1) strPaging +="<a href=\"javascript:showItem('" + (parseInt(currentItem)+1) + "');;pageTracker._trackPageview('/map/paging/" + (currentItem+1) + "');\"><img src=\"" + defaultUrl + "/img/ico_right.gif\" alt=\"\"/></a>"
    strPaging += "</div>";
    document.getElementById("paging").innerHTML = strPaging;
    document.getElementById("pagingLabel").innerHTML = "Blättern:";
}

function showItem(currentItemNo)
{
    if (!currentItemNo && SShowItemId != 0)
    {
        for (var i = 0; i < id.length; i++)
        {
            if (id[i] == SShowItemId) currentItemNo = i;
        }
        SShowItemId = 0;
    }
    if (!currentItemNo) currentItemNo = 0;

    document.getElementById("imgItemThumb").setAttribute("src", defaultUrl + "/img/empty.gif");
    document.getElementById("imgItemThumb").setAttribute("src", thumb[currentItemNo]!= "" ? thumb[currentItemNo] : defaultUrl + "/img/empty.gif");
    document.getElementById("numOfItems").innerHTML = "(" + (parseInt(currentItemNo)+1) + " von " + numberOfItems + "):";
    document.getElementById("lnkImageToItem").setAttribute("href", affUrl[currentItemNo]);
    document.getElementById("lnkTitleToItem").setAttribute("href", affUrl[currentItemNo]);
    document.getElementById("lnkTitleToItem").innerHTML = title[currentItemNo];
    document.getElementById("price").innerHTML = price[currentItemNo] + "*";
    document.getElementById("lnkDetail").setAttribute("href", affUrl[currentItemNo]);
    document.getElementById("lnkDetail").innerHTML = "Detailansicht";
    document.getElementById("divVehicleData").innerHTML = document.getElementById("ctl00_cphRightBox_divVehicleSearch") ? (km[currentItemNo] + " km - " + regDate[currentItemNo]) : "";
    args="(!this.checked) ? removeFromNoteList(" + id[currentItemNo] + ") : addToNoteList(" + id[currentItemNo] + ");";
    document.getElementById("NoteListArea").innerHTML = "<input id=\"NoteList\" type=\"checkbox\" name=\"cbNoteList\" onclick=\"" + args + "\"/>";
    if (strNotes.indexOf(id[currentItemNo]) > 0) document.getElementById("NoteList").checked = true; 
    document.getElementById("marketplace").innerHTML = "&nbsp;bei " + market[currentItemNo];
    document.getElementById("divImageBox").style.visibility = "visible";
    if(numberOfItems > 1) writePaging(currentItemNo,numberOfItems);
} 

function preloadImages()
{
    for (var i = 0; i < numberOfItems; i++) 
    {
        var tempImage = new Array();
        tempImage[i] = new Image(90,90); 
        tempImage[i].src = thumb[i];
    }
}

function loadItems(items) 
{
    GDownloadUrl(defaultUrl + "/api.aspx?fid=2&its=" + items, 
      function(data, responseCode) 
      {
        var xml = GXml.parse(data);
        var items = xml.documentElement.getElementsByTagName("item");
        numberOfItems = items.length;

        for (var i = 0; i < numberOfItems; i++) 
        {
            id[i] = items[i].getElementsByTagName("id")[0].firstChild.nodeValue;
            title[i] = items[i].getElementsByTagName("title")[0].firstChild.nodeValue;
            hasValue = items[i].getElementsByTagName("thumb")[0].firstChild;
            thumb[i] = hasValue == null? "" : items[i].getElementsByTagName("thumb")[0].firstChild.nodeValue; 
            affUrl[i] = items[i].getElementsByTagName("affUrl")[0].firstChild.nodeValue; 
            hasValue = items[i].getElementsByTagName("km")[0].firstChild;
            km[i] = hasValue == null? "" : items[i].getElementsByTagName("km")[0].firstChild.nodeValue; 
            hasValue = items[i].getElementsByTagName("regDate")[0].firstChild;
            regDate[i] = hasValue == null? "" : items[i].getElementsByTagName("regDate")[0].firstChild.nodeValue;  
            price[i] = items[i].getElementsByTagName("price")[0].firstChild.nodeValue; 
            market[i] = items[i].getElementsByTagName("market")[0].firstChild.nodeValue; 
        }
        showItem();
        preloadImages();
      });
}

function beginUpdate()
{        
    if(--updateRequested > 0) return;
    defineMarkersToLoad(null,null);
    loadMapList();
}

function createMarker(point, city, items, numItems) 
{
    var icon = new GIcon(baseIcon);
    if (numItems > 9) numItems = 99;
    icon.image = defaultUrl + "/img/map_marker" + numItems + ".png";

    var marker = new GMarker(point, icon);
    markers[city] = marker;
    GEvent.addListener(marker, "click", function() 
      {
       pageTracker._trackPageview('/map/openMarker/');
       pageTracker._trackEvent('Karte', 'Marker öffnen', city);
       marker.openInfoWindowHtml("<div style=\"width:290px;\"><b>" + placeName + " in " + city + "</b> <span id=\"numOfItems\">(lade...):</span><br/><div class=\"textSpacer\"></div><div id=\"divImageBox\" class=\"boxMapDraw\" style=\"visibility:hidden;\"><div class=\"boxMapArea\"><a id=\"lnkImageToItem\" href=\"#\"><img id=\"imgItemThumb\" class=\"boxImage\" src=\"" + defaultUrl + "/img/empty.gif\" alt=\"Produktbild\" style=\"width:90px;border-width:0px;\" /></a><div class=\"boxText\" style=\"font-size:smaller\"><div style=\"height:25px;overflow:hidden;\"><b><a id=\"lnkTitleToItem\" href=\"#\"></a></b><br/></div><div id=\"divVehicleData\"><br/></div><div style=\"float:left\"><span id=\"NoteListArea\" class=\"checkbox\"></span><label for=\"cbNoteList\">auf Merkliste</label></div><div style=\"float:right;padding-top:6px;\"><b><span id=\"price\"></span></b></div><br/><div style=\"clear:left;padding-top:2px;\"><b><a id=\"lnkDetail\" href=\"#\"></a></b><span id=\"marketplace\"></span></div></div><div class=\"boxClear\"><br/></div></div></div><div class=\"textSpacer\"></div><span id=\"pagingLabel\" style=\"float:left;\"></span><div id=\"paging\" style=\"margin-left:90px;height:" + (numItems > 1? 15 : 0) + "px;\"></div>");
       if (!document.all) loadItems(items);
      });
    GEvent.addListener(marker, "infowindowopen", function() {SOpenInfoWindow++;if (document.all) loadItems(items);});
    GEvent.addListener(marker, "infowindowclose", function() {--SOpenInfoWindow;});
    return marker;
}

function loadMarkers(loadSw, loadNe)
{
    if (SOpenInfoWindow == 0) document.getElementById("layoutboxLoadingStatus").style.visibility = "visible";
    var strUrlParam = "";

    strUrlParam += "&mid=" + intMarketplace;
    strUrlParam += (SCount == null) ? "" : "&nop=" + SCount;
    strUrlParam += (SQuery == null) ? "" : "&q=" + SQuery;
    strUrlParam += (SCond == null) ? "" : "&con=" + SCond;
    strUrlParam += (SManu == null) ? "" : "&man=" + SManu;
    strUrlParam += (SType == null) ? "" : "&typ=" + SType;
    strUrlParam += (SKmMax == null) ? "" : "&kmmax=" + SKmMax;
    strUrlParam += (SYearMin == null) ? "" : "&yeamin=" + SYearMin;
    strUrlParam += (SPriceMax == null) ? "" : "&primax=" + SPriceMax;
    strUrlParam += "&fil=1";

    var strFeedUrl = defaultUrl + "/api.aspx?fid=1&nelon=" + loadNe.lng() + "&nelat=" + loadNe.lat() + "&swlon=" + loadSw.lng() + "&swlat=" + loadSw.lat() + strUrlParam ;

    GDownloadUrl(strFeedUrl, 
      function(data, responseCode) 
      {
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("pnt");

        for (var i = 0; i < markers.length; i++) 
        {
            var point = new GLatLng(parseFloat(markers[i].getElementsByTagName("lat")[0].firstChild.nodeValue),
             parseFloat(markers[i].getElementsByTagName("lon")[0].firstChild.nodeValue));
            var city = markers[i].getElementsByTagName("cty")[0].firstChild.nodeValue;
            var items = markers[i].getElementsByTagName("its")[0].firstChild.nodeValue; 
            var numItems = markers[i].getElementsByTagName("num")[0].firstChild.nodeValue;  
            map.addOverlay(createMarker(point, city, items, numItems));
        }
        document.getElementById("layoutboxLoadingStatus").style.visibility = "hidden";
      });
}

function defineMarkersToLoad(newSw, newNe)
{

    if (newNe == null) newNe = map.getBounds().getNorthEast();
    if (newSw == null) newSw = map.getBounds().getSouthWest();

    //Load some markers outside map
    enlargeWidth = (newNe.lng() - newSw.lng())/5;
    enlargeHeight = (newNe.lat() - newSw.lat())/5;
    newSw = new GLatLng(parseFloat(newSw.lat() - enlargeHeight), parseFloat(newSw.lng() - enlargeWidth));
    newNe = new GLatLng(parseFloat(newNe.lat() + enlargeHeight), parseFloat(newNe.lng() + enlargeWidth));

    var loadedBounds = new GLatLngBounds(SLoadedSw, SLoadedNe);
    var extendedBounds = new GLatLngBounds(loadedBounds.getSouthWest(), loadedBounds.getNorthEast());
    var newBounds = new GLatLngBounds(newSw, newNe);

    if (!loadedBounds.contains(newSw)) extendedBounds.extend(newSw);
    if (!loadedBounds.contains(newNe)) extendedBounds.extend(newNe); 

    if (loadedBounds.contains(newSw) && loadedBounds.contains(newNe)) //if zoom in/pan inside, do nothing
    {
        pageTracker._trackEvent('Karte', 'Zoom', 'vergrössern');
    } 
    
    else 
    {
        if(!loadedBounds.intersects(newBounds))//pan to other place
        {
            map.clearOverlays();
            extendedBounds = new GLatLngBounds(newSw, newNe);
            loadMarkers(newSw,newNe);
        }
        else if(newBounds.contains(SLoadedSw) && newBounds.contains(SLoadedNe)) // Zoom out
        {
                loadMarkers(newSw,new GLatLng(newNe.lat(),SLoadedSw.lng()));
                loadMarkers(new GLatLng(SLoadedNe.lat(), SLoadedSw.lng()), new GLatLng(newNe.lat(), SLoadedNe.lng()));
                loadMarkers(new GLatLng(newSw.lat(),SLoadedNe.lng()),newNe);   
                loadMarkers(new GLatLng(newSw.lat(),SLoadedSw.lng()), new GLatLng(SLoadedSw.lat(),SLoadedNe.lng()));
                pageTracker._trackEvent('Karte', 'Zoom', 'verkleinern');           
        }
        else //Pan
        {
            if (loadedBounds.contains(new GLatLng(newSw.lat(),newNe.lng()))) //Pan to NW
            {
                loadMarkers(new GLatLng(SLoadedNe.lat(),SLoadedSw.lng()),extendedBounds.getNorthEast());
                loadMarkers(extendedBounds.getSouthWest(),new GLatLng(SLoadedNe.lat(),SLoadedSw.lng()));
                loadMarkers(new GLatLng(SLoadedNe.lat(),newSw.lng()),new GLatLng(newNe.lat(),SLoadedSw.lng()));
                pageTracker._trackEvent('Karte', 'Verschieben', 'Nord-Westen'); 
            }
            if (loadedBounds.contains(newSw)) //Pan to NE
            {

                loadMarkers(new GLatLng(SLoadedNe.lat(),SLoadedSw.lng()),new GLatLng(newNe.lat(),SLoadedNe.lng()));
                loadMarkers(new GLatLng(SLoadedNe.lat(),SLoadedNe.lng()),new GLatLng(newNe.lat(),newNe.lng()));
                loadMarkers(new GLatLng(SLoadedSw.lat(),SLoadedNe.lng()),new GLatLng(SLoadedNe.lat(),newNe.lng()));
                pageTracker._trackEvent('Karte', 'Verschieben', 'Nord-Osten'); 
            }       
            if (loadedBounds.contains(new GLatLng(newNe.lat(),newSw.lng()))) //Pan to SE
            {
                loadMarkers(new GLatLng(SLoadedSw.lat(),SLoadedNe.lng()),extendedBounds.getNorthEast());
                loadMarkers(new GLatLng(newSw.lat(),SLoadedNe.lng()),new GLatLng(SLoadedSw.lat(),newNe.lng()));
                loadMarkers(extendedBounds.getSouthWest(),new GLatLng(SLoadedSw.lat(),SLoadedNe.lng()));
                pageTracker._trackEvent('Karte', 'Verschieben', 'Süd-Osten'); 
            }   
            if (loadedBounds.contains(newNe)) //Pan to SW
            {
                loadMarkers(new GLatLng(newSw.lat(),SLoadedSw.lng()),new GLatLng(SLoadedSw.lat(),SLoadedNe.lng()));
                loadMarkers(new GLatLng(newSw.lat(),newSw.lng()),new GLatLng(SLoadedSw.lat(),SLoadedSw.lng()));
                loadMarkers(new GLatLng(SLoadedSw.lat(),newSw.lng()),new GLatLng(SLoadedNe.lat(),SLoadedSw.lng()));
                pageTracker._trackEvent('Karte', 'Verschieben', 'Süd-Westen'); 
            }            
        }
        SLoadedSw = extendedBounds.getSouthWest();
        SLoadedNe = extendedBounds.getNorthEast();
    }
}

function saveSelection()
{
    query = document.getElementById("tbSearchTerm").value;
    if (query != null && query != "") SQuery = query
    else SQuery = "";
    element = document.getElementById("ctl00_cphRightBox_cblFilterCondition_0");
    query = element ? (element.checked ? 1 : 3) : "";
    element = document.getElementById("ctl00_cphRightBox_cblFilterCondition_1");
    query = element ? (element.checked ? (query == 3 ? 2 : 0) : query) : "";
    if (query != null && query != "") SCond = query
    else SCond = "";
    if(document.getElementById("ctl00_cphRightBox_divVehicleSearch"))
    {
        element = document.getElementById("ctl00_cphRightBox_ddlManufacturer");
        query = element.options ? element.options[element.selectedIndex].value: "";
        if (query != null && query != "" && query != 0) SManu = query
        else SManu = "";
        element = document.getElementById("ctl00_cphRightBox_ddlType");
        query = element.options ? element.options[element.selectedIndex].value: "";
        if (query != null && query != "" && query != 0) SType = query
        else SType = "";
        element = document.getElementById("ctl00_cphRightBox_tbMaxKilometers");
        query = element ? element.value : "";
        if (query != null && query != "" && query != 0 && !isNaN(query)) SKmMax = query
        else SKmMax = "";
        if(isNaN(query)) element.value = "";
        element = document.getElementById("ctl00_cphRightBox_ddlMinRegistrationYear");
        query = element.options ? element.options[element.selectedIndex].value: "";
        if (query != null && query != "" && query != 0) SYearMin = query
        else SYearMin = "";
        element = document.getElementById("ctl00_cphRightBox_tbMaxPrice");
        query = element ? element.value : "";
        if (query != null && query != "" && query != 0 && !isNaN(query)) SPriceMax = query
        else SPriceMax = "";
        if(isNaN(query)) element.value = "";
    }
}

function loadMapList()
{
    var strUrlParam = "";

    strUrlParam += "&mid=" + intMarketplace;
    strUrlParam += (SCount == null) ? "" : "&nop=" + SCount;
    strUrlParam += (SQuery == null) ? "" : "&q=" + SQuery;
    strUrlParam += (SCond == null) ? "" : "&con=" + SCond;
    strUrlParam += (SManu == null) ? "" : "&man=" + SManu;
    strUrlParam += (SType == null) ? "" : "&typ=" + SType;
    strUrlParam += (SKmMax == null) ? "" : "&kmmax=" + SKmMax;
    strUrlParam += (SYearMin == null) ? "" : "&yeamin=" + SYearMin;
    strUrlParam += (SPriceMax == null) ? "" : "&primax=" + SPriceMax;
    strUrlParam += "&fil=1";

    var strFeedUrl = defaultUrl + "/api.aspx?fid=3&nelon=" + map.getBounds().getNorthEast().lng() + "&nelat=" + map.getBounds().getNorthEast().lat() + "&swlon=" + map.getBounds().getSouthWest().lng() + "&swlat=" + map.getBounds().getSouthWest().lat() + strUrlParam ;

    GDownloadUrl(strFeedUrl, 
      function(data, responseCode) 
      {
        var xml = GXml.parse(data);
        SMapListitems = xml.documentElement.getElementsByTagName("item");
        pageMapList(1);
      });
}

function pageMapList(currentPageNo)
{
    if (!currentPageNo || isNaN(currentPageNo) || currentPageNo < 1) currentPageNo = 1;
    var items = SMapListitems;
    var totPageNo = parseInt((items.length-1)/7) + 1;
    totPageNo = (totPageNo > 8 ? 8 : totPageNo);
    var currentPageMinItem = (1 + (currentPageNo-1)*7);
    var currentPageMaxItem = currentPageNo*7 > items.length ? items.length : currentPageNo*7;

    document.getElementById("mapList").innerHTML = (items.length == 0 ? "" : "<div style=\"width:182px;padding:3px;border-bottom:solid 1px #efb269;\">&nbsp;</div>");
    var resultHeader = "Keine Artikel in gewähltem Kartenausschnitt für Ihre Suchanfrage gefunden.";
    if (items.length > 0) resultHeader = "<b>" + currentPageMinItem + "-" + currentPageMaxItem + "</b> von <b>" + items.length + "</b> Artikeln";
    if (items.length == 1) resultHeader = "<b>1</b> von <b>1</b> Artikel";
    document.getElementById("mapResultHeader").innerHTML = resultHeader;

    for (var i = currentPageMinItem-1; i < currentPageMaxItem; i++) 
    {
        var id = items[i].getElementsByTagName("id")[0].firstChild.nodeValue;      
        var title = items[i].getElementsByTagName("cat")[0].firstChild.nodeValue; 
        hasValue = items[i].getElementsByTagName("thumb")[0].firstChild;
        var thumb = hasValue == null? "" : items[i].getElementsByTagName("thumb")[0].firstChild.nodeValue; 
        hasValue = items[i].getElementsByTagName("km")[0].firstChild;
        var km = hasValue == null? "" : items[i].getElementsByTagName("km")[0].firstChild.nodeValue; 
        if (km != "") km += " km";
        hasValue = items[i].getElementsByTagName("regDate")[0].firstChild;
        var regDate = hasValue == null ? "" : items[i].getElementsByTagName("regDate")[0].firstChild.nodeValue;  
        if (regDate && regDate.indexOf(".") > 0) regDate = regDate.substring(regDate.indexOf(".")+1,regDate.length);
        var price = items[i].getElementsByTagName("price")[0].firstChild.nodeValue; 
        var city = items[i].getElementsByTagName("city")[0].firstChild.nodeValue;
        document.getElementById("mapList").innerHTML += "<div class=\"boxMapListItem\"><div style=\"width:45px;float:left;\">" + (thumb == "" ? "&nbsp;" : "<a href=\"javascript:SShowItemId=" + id + ";GEvent.trigger(markers['" + city + "'], 'click');\"><img src=\"" + thumb + "\" width=\"45\" alt=\"artikelbild\"/></a>") + "</div><div style=\"width:131px;overflow:hidden;padding-left:3px;\"><a href=\"javascript:SShowItemId=" + id + ";GEvent.trigger(markers['" + city + "'], 'click');\" class=\"brown\">" + title + "</a><br />" + km + ((km && regDate) ? " - " : "") + (regDate != "1900" ? regDate : "") + "<br />" + price + "*</div></div>";
    }

    var resultPaging = "";
    for(var i=0; i< totPageNo; i++)
    {
        if (i==currentPageNo-1) resultPaging += "<b>" + (i+1) + "</b>" + (i==(totPageNo-1) ? "" : "|");
        else resultPaging += "<a class=\"brown\" href=\"javascript:pageMapList('" + (i+1) + "');\">" + (i+1) + "</a>" + (i==(totPageNo-1) ? "" : "|");
    } 
    if (resultPaging != "" && totPageNo > 1) resultPaging = "Blättern: " + resultPaging;
    document.getElementById("mapPaging").innerHTML = totPageNo > 1 ? resultPaging : "";
}

function enterApplySearch(event) 
{
  if (event && event.keyCode == 13) applySerach();
  else return true;
}

function applySerach()
{
    saveSelection();
    map.clearOverlays();
    SLoadedSw = 0;
    SLoadedNe = 0;
    defineMarkersToLoad(null,null);
    loadMapList();
}
//-->

