    function addResultMarkers(mapObject, resultSet)
    {
        var map = mapObject;
        var point;        
        var marker;
        var options;

        if(resultSet.count == 0)
            return;
        var lat = parseFloat(resultSet[0][5]);
        var lng = parseFloat(resultSet[0][4]);
        var latMin = lat;
        var lngMin = lng;        
        var latMax = 0;
        var lngMax = 0;
        var multipleMarkers = false;
        var counter;

        for(i = 0; i < resultSet.length; i++)
        {
                //Array: 0=navn, 1=adresse, 2=postnr, 3=postdst, 4=lng, 5=lat, 6=elitesmiley, 7=smiley1, 8=dato1
                lat = parseFloat(resultSet[i][5]);
                lng = parseFloat(resultSet[i][4]);
                if(latMin != 0 && lngMin != 0)
                {
                    if(lat < latMin)
                        latMin = lat;
                    if(lat > latMax)
                        latMax = lat;
                    if(lng < lngMin)
                        lngMin = lng;
                    if(lng > lngMax)
                        lngMax = lng;
                }
                else
                {
                    latMin = parseFloat(resultSet[i][5]);
                    lngMin = parseFloat(resultSet[i][4]); 
                    latMax = parseFloat(resultSet[i][5]); 
                    lngMax = parseFloat(resultSet[i][4]); 
                }
                point = new GLatLng(lat,lng);
                //while-loop: check if companies has same coordinates - create marker with info for all companies with same coords
                counter = 1;
                multipleMarkers = false;
                if(resultSet.length > 1 && i+counter < resultSet.length)
                {
                    while(lat == parseFloat(resultSet[i+counter][5]) && lng == parseFloat(resultSet[i+counter][4]))
                    {
                        if(!multipleMarkers)
                        {
                            multipleMarkers = true;
                            marker = new Array();
                            //add first marker to array
                            marker[counter-1]  = i;
                        }
                        //add current + counter value marker to array
                        marker[counter]  = i+counter;
                        counter++;                        
                        if(i+counter >= resultSet.length)
                            break;
                    }
                }
                if(multipleMarkers)
                {
                    map.addOverlay(createMarkers(marker, map));
                }
                else
                {
                    marker  = i;
                    map.addOverlay(createMarker(marker, map));            
                }                
                i += counter-1;
        }
        var bounds = new GLatLngBounds(new GLatLng(latMin, lngMin), new GLatLng(latMax, lngMax));
        map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
    }
  
    function createMarker(id, map)
    {
        var point = new GLatLng(r[id][5],r[id][4]);
        var smiley = new GMarker(point, getMarkerOptions(r[id][0], checkSmiley(id),r[id][20]));
        GEvent.addListener(smiley, "click", function() {
                map.openInfoWindowHtml(point, getInfoHtml(id,false), { maxWidth: 325});
                //setTimeout(replaceX(), 1000);
                });
        return smiley;
    }
    
    function createMarkers(ids, map)
    { 
        var point = new GLatLng(r[ids[0]][5],r[ids[0]][4]);
        var smiley = new GMarker(point, getMarkerOptions(Text_Multiple_Companies.replace("{0}",ids.length), checkSmiley(ids[0]),r[ids[0]][20]));
        GEvent.addListener(smiley, "click", function() {
            smileyIDs = ids;
            map.openInfoWindowHtml(point, getInfoHtml(ids, true), {maxWidth: 325})
            //setTimeout(replaceX(), 2000);
            });           
        return smiley;
    }
    function checkSmiley(id)
    {
        if(r[id][6] == "1")
            return 5;
        if(r[id][6] == "2")
            return 6;
        if(r[id][21] == "True")
            return 7;
        else
            return r[id][8];
    }
    
    function getInfoBodyStart(id)
    {
        var html = "<div><b><a href=\""+getUrlToCompany(r[id][19])+"\" title=\""+r[id][0]+"\">"+r[id][0]+"</a></b><br />" + r[id][1] + 
                    "<br />" + r[id][2] + " " + r[id][3] + "</div>" +
                    "<br />";
        return html;
    }
     function getLatestSmiley(id)
    {
        var html = "<div class=\"smileyInfo\">";
       
        if(r[id][21] != "True")    
        {
            if(r[id][22] != "" && r[id][22] != null && r[id][22] != "")
                html +=     getSmileyWithReport(id,22);
               /*"<a target=\"_blank\" class=\"smileyLink\" href=\"" + getControlUrl() + r[id][22] + "\">";
            html +=     "<img src=\"" + getSmileyImage(r[id][20],r[id][8]) + "\" title=\""+getAltTextForControl(r[id][9].substr(0,10),r[id][8],true)+"\"/>" +
                        "<br /><div>" + r[id][9].substr(0,10) + "</div>";
            if(r[id][22] != "" && r[id][22] != null)
                html +=     "</a>";*/
        }
        else
        {
            html += getSmileyNoReport(id, 7);
            /*html +=     "<img src=\"" + getSmileyImage(r[id][20],7) + "\" title=\""+"\"/>" +
                        "<br /><div>" + r[id][9].substr(0,10) + "</div></a>"; */
        }
        html += "</div>";
        return html;
    }
    
    function getSmileys(id)
    {
        var reportStartField = 22;
        var html = "<div class=\"smileyInfo\">";
        if(r[id][21] != "True")    
        {
            for(i=7;i<19;i++)
            {
                if(r[id][reportStartField] != "" && r[id][reportStartField] != null)
                {
                    html += getSmileyWithReport(id,r[id][reportStartField]);
                }
                else
                {
                    html += getSmileyNoReport(id, i);
                } 
                i +=2;
                reportStartField++;
            }
       }
       else
          html += getSmileyNoReport(id, 7);
        html += "</div>";
        return html;
    }
    function soloHtml(id, html)
    {
        html += getInfoBodyStart(id);
       
        //check for eliteSmiley
        if(r[id][6] == "1")
        {
            html += "<div class=\"smileyInfo\">";
            html += "<img src=\"" + getSmileyImage(r[id][20],5) + "\" title=\"Elite Smiley\" />";
            html += "</div>";
        }
        if(r[id][6] == "2")
        {
            html += "<div class=\"smileyInfo\">";
            html += "<img src=\"" + getSmileyImage(r[id][20],6) + "\" title=\"" + GetAltTextNotElite() + "\" />";
            html += "</div>";
        }
        html += getSmileys(id);
        //Smiley2 Info: 10-12; Smiley3 Info: 13-15; Smiley4 Info: 16-18; 
        html += "</div>";
        return html;
    }
    function displaySingle(id)
    {
        var html = getInfoBodyStart(id);
        html +=     "<div class=\"smileyInfo\">";
        
        //check for eliteSmiley
        if(r[id][6] == "1" && r[id][21] != "True")
        {
            html += "<div class=\"eliteSmiley\">";
            html += "<img src=\"" + getSmileyImage(r[id][20],5) + "\" title=\"Elite Smiley\" />";
            html += "</div>";
        }
        html += getSmileys(id);
/*
       for(i=10;i<19;i++)
        {
            if(r[id][i+13] != "" && r[id][i+13] != null)
            {
                html += getSmileyWithReport(id,i+13);
            }
            else
            {
                html += getSmileyNoReport(id, i);
            } 
            i +=2;
        }
        */
        html += "<div class='javaLink' onmouseover=\"this.style.textDecoration = \'underline\';\" onmouseout=\"this.style.textDecoration = \'none\';\" onclick='this.parentNode.parentNode.parentNode.innerHTML=getInfoHtml(smileyIDs, true);'>Tilbage til liste</div>\n";        
        html += "</div></div>";

        return html;
    }
 
    function getSmileyWithReport(id, rep)
    {
        var html = "";
        html +=     "<div class=\"smileyInfo\">";
        html +=     "<a target=\"_blank\" class=\"smileyLink\" href=\"" + getControlUrl() + rep + "\">"; //r[id][i+15]
        html +=     "<img src=\"" + getSmileyImage(r[id][20],r[id][i+1]) + "\" title=\""+getAltTextForControl(r[id][i+2].substr(0,10),r[id][i+1],true)+"\"/>" +
                    "<br /><div class=\"smileydate\">" + r[id][i+2].substr(0,10) + "</div>";
        html +=     "</a>";
        html +=     "</div>";
        return html;
    }
    function getSmileyNoReport(id, smileyNumber)
    {
        
        if(r[id][21] == "True")
            r[id][smileyNumber+1] = 7;
        var html = "";
        if(r[id][smileyNumber+1] != "" && r[id][smileyNumber+1] != null)
        {
            html += "<div class=\"oldSmileyInfo\">";
            html += "<img class=\"oldSmiley\" src=\"" + getOldSmileyImage(r[id][20],r[id][smileyNumber+1]) + "\" title=\""+getAltTextForControl(r[id][smileyNumber+2].substr(0,10),r[id][smileyNumber+1],false)+"\" />"; 
            html += "<br />";
            html += "<div class=\"oldDate\">" + r[id][smileyNumber+2].substr(0,10) + "</div>";// + "</a>";
            html += "</div>";
            return html;
        }
        else
        {
            if(smileyNumber==7)
            {
                html += "<div class=\"oldSmileyInfo\">";
                html += "<img class=\"oldSmiley\" src=\"" + getOldSmileyImage(r[id][20],7) + "\" title=\""+getAltTextForNoedstop()+"\" />"; 
                html += "<br />";
                html += "<div class=\"oldDate\">&nbsp;</div>";
                html += "</div>";
           
            }
            return html;
        }
    }


    var node;

    function insertXscript()
    {
        var script = "\n<script type='text/javascript'>function x(){\n"; 
        script += "var divNode = document.getElementById(\"smileyContainer\").parentNode.parentNode.parentNode;\n";
        script += "var imgList = divNode.getElementsByTagName(\"img\");\n";
        script += "imgList[5].attributes.getNamedItem(\"src\").value = \"/Skins/smiley.fvst.dk/controls/mapcontrol/scripts/x.jpg\";\n}\n";
        script += "setTimeout(\"x()\",200);";
        script += "</"+"script>";
        return script;
    }
    function getInfoHtml(ids, multiple)
    {
        var html = "<div id=\"smileyContainer\" class=\"infoList\"><div id=\"bubbleContent\" class=\"infoBody\" >\n";

        var longName = false;
        if(multiple)
        {       
            var sName;
            var smileyImg;
            
            html += "<ul>\n";
            for(i = 0; i < ids.length; i++)
            {
//                if(r[ids[i]][6] == "1")
//                   smileyImg =  getMiniSmileyImage(r[ids[i]][20],5);
//                if(r[ids[i]][21] == "True")
//                    smileyImg =  getMiniSmileyImage(r[ids[i]][20],7);
//                else 
//                    smileyImg = getMiniSmileyImage(r[ids[i]][20],r[ids[i]][8]);
                sName = r[ids[i]][0];
                if(sName.length > 35)
                {
                    longName = true;
                    sName = sName.substr(0,34);
                    sName += "...";
                }
                html += "<li id='" + ids[i] + "' class='listSmiley' onmouseover=\"this.style.textDecoration = \'underline\';\" onmouseout=\"this.style.textDecoration = \'none\';\" onclick='this.parentNode.parentNode.parentNode.innerHTML = displaySingle(this.id);' title='" + r[ids[i]][0] + "'>" + sName + "</li>"; //style='list-style-image: url(" + smileyImg + ");\'
            }
            html += "</ul>\n";
            
            //make sure div is high enough for individual content to fit inside it : Q&D
            var size = 10 - ids.length
            if(longName)
                size++;
            for(i=0;i<size;i++)
            {
                html +="<br />\n";
            }
            html += "</div></div> \n";
            return html + insertXscript();
        }
        else
        {
            return soloHtml(ids, html) + insertXscript();
        }
    }
 

