﻿if (GBrowserIsCompatible()) {
         
            
function checkboxChanged(p_box, p_box2, p_box3, p_box4, p_box5, p_box6) {

     var elem = document.getElementById(p_box);
     var elem2 = document.getElementById(p_box2);
     var elem3 = document.getElementById(p_box3);
     var elem4 = document.getElementById(p_box4);
     var elem5 = document.getElementById(p_box5);
     var elem6 = document.getElementById(p_box6);


     map.clearOverlays();  // ta bort allt på kartan

     var point3 = new GLatLng(A12, A11); // ladda in pekarna till huset
     map.addOverlay(new GMarker(point3, myIcon));

     if (elem.checked == 1) {
         var type = "Matbutiker";
         processXMLfile(type);
     }
     else { }
     if (elem2.checked == 1) {
         var type = "Vardcentraler";
         processXMLfile(type);
     }
     else { }
     if (elem3.checked == 1) {
         var type = "Skolor";
         processXMLfile(type);
     }
     else { }
     if (elem4.checked == 1) {
         var type = "Dagis";
         processXMLfile(type);
     }
     else { }
     if (elem5.checked == 1) {
         var type = "Restauranger";
         processXMLfile(type);
     }
     else { }
//     if (elem6.checked == 1) {
//         var type = "Tag";
//         processXMLfile(type);
//     }
//     else { }
    }


    var sidebar_html = "";
    var gmarkers = [];

    function createTabbedMarker(point, label, tabs, icon) {
     var marker = new GMarker(point, icon);
     var marker_num = gmarkers.length;
     marker.marker_num = marker_num;
     marker.tabs = tabs;
     gmarkers[marker_num] = marker;

     GEvent.addListener(gmarkers[marker_num], "click", function() {
         marker.openInfoWindowTabsHtml(gmarkers[marker_num].tabs);
     });
     return marker;
    }


    function myclick(i) {
     GEvent.trigger(gmarkers[i], "click");
    }




    // create the map
    // var map = new GMap2(document.getElementById("map"));
    var map = new GMap2(document.getElementById("map"));
    var coorsFieldPoint = new GLatLng(A12, A11);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(coorsFieldPoint, 15);


    /* calcDist() function is from  Adam Howitt
    Copyright Adam Howitt 2005
    Email: adamhowitt@gmail.com
    This work is licensed under a Creative Commons
    Attribution-NonCommercial-ShareAlike 2.5 License.
    http://creativecommons.org/licenses/by-nc-sa/2.5/
    */
    function calcDist(lon1, lat1, lon2, lat2) {
     var r = 3963.0;
     var multiplier = 1.609;
     //    var multiplier = 1;
     //   var multiplier = currentUnit == "miles" ? 1 : MILESASKM;
     return multiplier * r * Math.acos(Math.sin(lat1 / 57.2958) *
    Math.sin(lat2 / 57.2958) + Math.cos(lat1 / 57.2958) *
    Math.cos(lat2 / 57.2958) * Math.cos(lon2 / 57.2958 -
    lon1 / 57.2958));
    }



    /*------- LÄGG IN IKONER -------*/

    var myIcon = new GIcon();                                          // Ikon för Hus
    myIcon.image = "/images/icons/hus.png";
    myIcon.iconSize = new GSize(50, 47);
    myIcon.shadow = "/images/icons/skuggaHus.png";
    myIcon.shadowSize = new GSize(50, 47);
    myIcon.iconAnchor = new GPoint(10, 34);
    myIcon.infoWindowAnchor = new GPoint(10, 0);

    var myIcon1 = new GIcon();                                           // Ikon för matbutiker
    myIcon1.image = "/images/icons/matbutiker.png";
    myIcon1.iconSize = new GSize(30, 34);
    myIcon1.shadow = "/images/icons/skugga.png";
    myIcon1.shadowSize = new GSize(30, 34);
    myIcon1.iconAnchor = new GPoint(10, 34);
    myIcon1.infoWindowAnchor = new GPoint(10, 0);
    
    var myIcon2 = new GIcon();                                           // Ikon för vårdcentraler
    myIcon2.image = "/images/icons/vardcentraler.png";
    myIcon2.iconSize = new GSize(30, 34);
    myIcon2.shadow = "/images/icons/skugga.png";
    myIcon2.shadowSize = new GSize(30, 34);
    myIcon2.iconAnchor = new GPoint(10, 34);
    myIcon2.infoWindowAnchor = new GPoint(10, 0);

    var myIcon3 = new GIcon();                                           // Ikon för skolor
    myIcon3.image = "/images/icons/skolor.png";
    myIcon3.iconSize = new GSize(30, 34);
    myIcon3.shadow = "/images/icons/skugga.png";
    myIcon3.shadowSize = new GSize(30, 34);
    myIcon3.iconAnchor = new GPoint(10, 34);
    myIcon3.infoWindowAnchor = new GPoint(10, 0);
    
    var myIcon4 = new GIcon();                                           // Ikon för dagis
    myIcon4.image = "/images/icons/dagis.png";
    myIcon4.iconSize = new GSize(30, 34);
    myIcon4.shadow = "/images/icons/skugga.png";
    myIcon4.shadowSize = new GSize(30, 34);
    myIcon4.iconAnchor = new GPoint(10, 34);
    myIcon4.infoWindowAnchor = new GPoint(10, 0);
    
    var myIcon5 = new GIcon();                                           // Ikon för restauranger
    myIcon5.image = "/images/icons/restauranger.png";
    myIcon5.iconSize = new GSize(30, 34);
    myIcon5.shadow = "/images/icons/skugga.png";
    myIcon5.shadowSize = new GSize(30, 34);
    myIcon5.iconAnchor = new GPoint(10, 34);
    myIcon5.infoWindowAnchor = new GPoint(10, 0);
    
//    var myIcon6 = new GIcon();                                           // Ikon för tåg
//    myIcon6.image = "/images/icons/tag.png";
//    myIcon6.iconSize = new GSize(30, 34);
//    myIcon6.shadow = "/images/icons/skugga.png";
//    myIcon6.shadowSize = new GSize(30, 34);
//    myIcon6.iconAnchor = new GPoint(10, 34);
//    myIcon6.infoWindowAnchor = new GPoint(10, 0);
    

    var point3 = new GLatLng(A12, A11);                                 // Samma värde som ovan för för huset 
    map.addOverlay(new GMarker(point3, myIcon));



    var request = GXmlHttp.create();             
    request.open("GET", filename, true);
    //request.onreadystatechange = processXMLfile;
    request.send(null);



    function processXMLfile(type) {

     if (request.readyState == 4) {
         if ((request.status == 200) || (request.status == 304)) {
             var xmlDoc = request.responseXML;

             var markers = xmlDoc.documentElement.getElementsByTagName("POI");
             for (var i = 0; i < markers.length; i++) {
                 var typ1 = GXml.value(markers[i].getElementsByTagName("POIName")[0]);
                 var typ2 = type;  // ---------------------------här ska värdet in på vad vi söker.-------------------------
                //    var stad1 = GXml.value(markers[i].getElementsByTagName("City")[0]);
                //    var stad2 = "HALMSTAD";   // -------------------------------här ska värdet in på var vi söker -------------------------------

                 if (typ1 == typ2) {
                     var lat = parseFloat(GXml.value(markers[i].getElementsByTagName("yCor")[0]));
                     var lng = parseFloat(GXml.value(markers[i].getElementsByTagName("xCor")[0]));
                     var label = "label";
                     if (isNaN(lat) || isNaN(lng)) {
                         alert("bad point " + i);
                         continue;
                     }
                     var point = new GLatLng(lat, lng);
                     
                     
                     /* ----skapa info i den lilla rutan som kommer fram när vi klickar rätt fritt.. ---*/
                     tabInfo = markers[i].getElementsByTagName("CardHolder");
                     tabs = new Array();
                     if (tabInfo.length > 0) {
                         for (var j = 0; j < tabInfo.length; j++) {
                             var tabLabel = GXml.value(tabInfo[j].getElementsByTagName("Name")[0]);
                             var tabHtml = GXml.value(tabInfo[j].getElementsByTagName("Name")[0]);
                             var tabHtml2 = GXml.value(tabInfo[j].getElementsByTagName("StreetName")[0]);
                             var tabHtml3 = GXml.value(tabInfo[j].getElementsByTagName("StreetNo")[0]);


                             // Calculate Distance 
                             var B13 = lng;
                             var B14 = lat;
                             var disst = calcDist(A11, A12, B13, B14);


                            //  tabHtml = '<p><b>' + tabHtml + '</b></p>' + tabHtml2 + ' ' + tabHtml3 + ' ' + disst + ' KM';
                             tabHtml = '<p><b>' + tabHtml + '</b></p>' + tabHtml2 + ' ' + tabHtml3;
                             if ((j == 0) && (tabInfo.length > 2)) { //  bredden om fler tabbar skulle tilkomma
                                 tabHtml = '<div style="width:' + tabInfo.length * 88 + 'px">' + tabHtml + '</div>';
                             }
                             tabs.push(new GInfoWindowTab(tabLabel, tabHtml));
                         }
                     }
                     else {
                         alert("no tabs point " + i);
                     }


                     //create the marker    
                     var tmpIcon;
                     switch(type) {
                        case 'Matbutiker':
                          tmpIcon = myIcon1;
                          break;    
                        case 'Vardcentraler':
                          tmpIcon = myIcon2;
                          break;  
                        case 'Skolor':
                          tmpIcon = myIcon3;
                          break; 
                        case 'Dagis':
                          tmpIcon = myIcon4;
                          break;                           
                        case 'Restauranger':
                          tmpIcon = myIcon5;
                          break;
//                        case 'Tag':
//                          tmpIcon = myIcon6;
//                          break;   
                        default:                          
                     }                
                     var marker = createTabbedMarker(point, label, tabs, tmpIcon);

                     map.addOverlay(marker);


                 }
                 else {}

             }


         }
         else {
             //alert("file not found:" + filename);
             alert("Inga objekt finns för aktuell kommun!");
         }

     }
    }

    }

    else {
    //alert("Sorry, the Google Maps API is not compatible with this browser");
    alert("Tyvärr, Google Maps API är inte kompatibel med din webbläsare.");
}

