﻿/// <reference path="jquery-1.4.1-vsdoc.js" />
var region = 0;
var iconRed, iconGreen;
var pointsArray;

//performs a basic search to display each
function ShowBasicMap() {
    ShowMap(2);
    auctionproxySync.invoke("UpdateSimpleSearchCriterias", { lbNr: 0,
        regions: "",
        categories: "",
        kommuner: "",
        retskredse: "",
        sortExpression: "",
        sortDirection: "asc"
    }, function(result) {
        auctionproxySync.invoke("Search");
    });
}
function DisplaySearchResult(displayResult) {
    var records = 0;
    //perform the actual search
    auctionproxySync.invoke("NumberOfSearchResults", {}, function(result) { records = $(result)[0] });
    //if something was found:
    if (displayResult && records > 0) {
        var displaying = 0, page = 1;
        while (displaying < records) {
            //if page is 1 initialise array of points
            if (page == 1) {
                pointsArray = new Array();
            }
            ShowOnMap(100, page);
            page++;
            displaying = displaying + 100;
        }
    }
    //if no records was found and no result div exists 
    else if (records == null && $('#mapNoResult') != null) {
        $('#map').hide();
        $('#mapNoResult').show();
    }
    RemoveProgress();
}
function ShowAuction(lbNr, Zoom) {
    pointsArray = new Array();
    //Get the current auction
    auctionproxySync.invoke("LoadById", { lbNr: lbNr }, function(result) {
        for (var i = 0; i < $(result).length; i++) {
            var a = $(result)[i];
            if (a.MapInfo.Latitude != 0 && a.MapInfo.Longitude != 0) {
                if (ValidPoint(a.MapInfo)) {
                    point = new google.maps.LatLng(parseFloat(a.MapInfo.Latitude), parseFloat(a.MapInfo.Longitude));
                    pointsArray[0] = point;
                    map.addOverlay(createMarker(point, 1, a));
                    map.setCenter(new google.maps.LatLng(parseFloat(a.MapInfo.Latitude), parseFloat(a.MapInfo.Longitude)), 11);
                }
            }
        }
        if (Zoom) {
            ZoomToFit();
        }
    });
}
function ShowPoint(lat, lng) {
    pointsArray = new Array();
    if (lat != 0 && lng != 0) {
        point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
        pointsArray[0] = point;
        map.addOverlay(new GMarker(point, iconGreen));
        map.setCenter(new google.maps.LatLng(parseFloat(lat), parseFloat(lng)), 15);
    }

}
///validates a point
function ValidPoint(p) {
    if (parseFloat(p.Latitude) >= -180 && parseFloat(p.Latitude) <= 180 && parseFloat(p.Longitude) >= -180 && parseFloat(p.Longitude) <= 180) {
        return true;
    }
    return false;
    //parseFloat(a.MapInfo.Latitude), parseFloat(p.Longitude)
}
///displays the search resuæt
function ShowOnMap(pageSize, page) {
    //alert(records);
    //GetSearchResult(int , int page)
    //Get the seach results
    auctionproxySync.invoke("GetSearchResult", { pageSize: pageSize, page: page }, function(result) {
        for (var i = 0; i < $(result).length; i++) {
            var a = $(result)[i];
            if (a.MapInfo.Latitude != 0 && a.MapInfo.Longitude != 0) {
                if (ValidPoint(a.MapInfo)) {
                    point = new google.maps.LatLng(parseFloat(a.MapInfo.Latitude), parseFloat(a.MapInfo.Longitude));
                    var arrayPointPlace = (page * pageSize) + i;
                    pointsArray[arrayPointPlace] = point;
                    map.addOverlay(createMarker(point, 2, a));
                }
            }
        }
        ZoomToFit();
    });
}
///adjusts the zoom level
function ZoomToFit() {
    var latlngbounds = new GLatLngBounds();
    for (var i = 0; i < pointsArray.length; i++) {
        if (pointsArray[i] != null) {
            latlngbounds.extend(pointsArray[i]);
        }
    }
    map.setCenter(latlngbounds.getCenter(), map.getBoundsZoomLevel(latlngbounds));
}
//$('#content').width()
function ShowMap(type) {
    if (type == 1) {
        $('#map').width($('#content').width() - ($('#content').width() * 0.45));
        $('#map').height($(window).height() - 150);
    }
    else if (type == 2 || type == 3) {
        $('#map').width($(window).width());
        $('#map').height($(window).height());
    }
    //if content element exists then use that
    else if ($('#content').length) {
        $('#map').width($('#content').width());
        $('#map').height($(window).height() - 162);
    }
    map = new google.maps.Map2(document.getElementById("map"));
    if (type == 2) {
        map.setCenter(new google.maps.LatLng(57.04722, 9.92010), 9);
    }
    else {
        map.setCenter(new google.maps.LatLng(57.04722, 9.92010), 7);
    }
    // create tvang icon red
    iconRed = new GIcon();
    iconRed.image = "/Style/images/GoogleMaps/mm_20_red.png" // "http://labs.google.com/ridefinder/images/mm_20_red.png";
    iconRed.shadow = "/Style/images/GoogleMaps/mm_20_shadow.png" // "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    // create tvang icon green
    iconGreen = new GIcon();
    iconGreen.image = "/Style/images/GoogleMaps/mm_20_green.png" // "http://labs.google.com/ridefinder/images/mm_20_green.png";
    iconGreen.shadow = "/Style/images/GoogleMaps/mm_20_shadow.png" // "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    iconGreen.iconSize = new GSize(12, 20);
    iconGreen.shadowSize = new GSize(22, 20);
    iconGreen.iconAnchor = new GPoint(6, 20);
    iconGreen.infoWindowAnchor = new GPoint(5, 1);

    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
    map.addControl(new GOverviewMapControl());
}
//map.setCenter(new google.maps.LatLng(57.04722, 9.92010), 7);
//map.checkResize();

function getSrc(foto, lbnr, defaultAuctionPictureId) {
    if (defaultAuctionPictureId != null && defaultAuctionPictureId != 0) {
        return "<img src='" + root + "Files/Pages/ShowFile.aspx?lbnr=" + lbnr + "&type=PHOTO&pid=" + defaultAuctionPictureId + "&Size=map_small'>"
    }
    else if (foto != 0) {
        return "<img src='" + root + "Files/Pages/ShowFile.aspx?lbnr=" + lbnr + "&type=PHOTO&pid=" + foto + "&Size=map_small'>"
        //return "<img src='http://admin.tvang.dk/getimage.aspx?id=" + foto + "&size=map_small'>"
        //  return "<img src='http://localhost/tvang2005_1/getimage.aspx?id=" + foto + "&size=map_small'>"
    }
    else {
        return "<img src='" + root + "style/images/logo.jpg'>"
    }
}

function createMarker(point, type, a) {
    if (type == 2) {
        var marker = new GMarker(point, iconGreen);
    }
    else {
        var marker = new GMarker(point, iconRed);
    }

    if (a.AuctionNumber != 'A') {

        var infoTabs = [
					new GInfoWindowTab("Foto", "<font size='1' style='font-family: 'Verdana''><table style='width:300px;' class='paddingStandard' cellspacing=0>" +
                    "<tr>" +
                    "<td rowspan='7'>" + getSrc(a.ThumbNail, a.LbNr, a.DefaultAuctionPictureId) + "</td><td></td>" +
                    "</tr>" +
                    "<tr><td class='paddingSides' NOWRAP>" + a.Category + "</td></tr>" +
                    "<tr><td class='paddingSides' NOWRAP>Boligareal: " + ((a.BuildingSize > 0) ? a.BuildingSize : "") + "</td></tr>" +
                    "<tr><td class='paddingSides' NOWRAP>Grundareal: " + ((a.AreaSize > 0) ? a.AreaSize : "") + "</td></tr>" +
                    "<tr><td class='paddingSides' NOWRAP>Ejd.værdi: " + a.PropertyValueFormatted + "</td></tr>" +
                    "<tr><td class='paddingSides' NOWRAP>lbnr: " + a.LbNrFormatted + "</td></tr>" +
                    "<tr><td class='paddingSides' NOWRAP><a href='javascript:ShowAuctionWindow(" + a.LbNr + ")'><u>Se annonce</u></a></td></tr>" +
                    "<tr><td colspan='2'>" + a.Address + ", " + a.ZipCode + " " + a.City + "</td></tr>" +
                    "</table></font>"),
					new GInfoWindowTab("Info", "<br/><table><tr>"
							+ "<td width='6'></td><td colspan='2'><b>Auktionstidspunkt:</b></td></tr><tr><td width='6'><td>"
							+ "Dato:    <br/>"
							+ "Ugedag:  <br/>"
							+ "Tidspunkt:&nbsp;<br/>"
							+ "</td><td>"
							+ a.DateFormatted + "<br/>"
							+ a.DayOfWeek + "<br/>"
							+ a.TimeFormatted + "<br/></td></tr></table>"
							+ "&nbsp;&nbsp;&nbsp;<a href='javascript:ShowAuctionWindow(" + a.LbNr + ")'><u>Se annonce</u></a><br/>"
							+ "")
					  ];
    }
    else {
        var infoTabs = [
					new GInfoWindowTab("Foto", "<font size='1' style='font-family: 'Verdana''><table><tr>"
						+ "<td>" + getSrc(a.ThumbNail, a.LbNr, a.DefaultAuctionPictureId) + "</td><td><br/>"
						+ a.Category + "<br/>"
						+ "Boligareal: " + a.BuildingSize + "<br/>"
						+ "Grundareal: " + a.AreaSize + "<br/>"
						+ "Ejd.værdi: " + a.PropertyValueFormatted + "<br/>"
						+ "lbnr: " + a.LbNrFormatted + "<br/>"
						+ "<a href='javascript:ShowAuctionWindow(" + a.LbNr + ")'><br/><u>Se annonce</u></a>"
						+ "</td></tr><tr><td colspan='2'>" + a.Address + ", " + a.ZipCode + " " + a.City + "</td></tr></font>"),
					new GInfoWindowTab("Info", "<br/><table><tr>"
							+ "<td width='6'></td><td colspan='2'><b>Auktionstidspunkt:</b></td></tr><tr><td width='6'><td>"
							+ "Dato:    <br/>"
							+ "Ugedag:  <br/>"
							+ "Tidspunkt:&nbsp;<br/>"
							+ "<font <font color='FF3333'>Aflyst</font>"
							+ "</td><td>"
							+ "<strike>" + a.DateFormatted + "</<strike><br/>"
							+ "<strike>" + a.DayOfWeek + "</<strike><br/>"
							+ "<strike>" + a.TimeFormatted + "</<strike><br/><br/></td></tr></table>"
							+ "&nbsp;&nbsp;&nbsp;<a href='javascript:ShowAuctionWindow(" + a.LbNr + ")'><u>Se annonce</u></a><br/>"
							+ "")
					  ];
    }


    //var closeit = true;	

    GEvent.addListener(marker, "mouseover", function() {
        //closeit = true;	
        marker.openInfoWindowTabsHtml(infoTabs);
    });
    /*GEvent.addListener(marker, "mouseout", function() {
    if (closeit) {
    marker.closeInfoWindow();
    }
    });*/
    GEvent.addListener(marker, "click", function() {
        //closeit = false;
        map.setCenter(new google.maps.LatLng(parseFloat(a.MapInfo.Latitude), parseFloat(a.MapInfo.Longitude)), 11);
    });
    return marker;
} //end create marker
function setCenterClick(lat, lng) {
    map.setCenter(new google.maps.LatLng(lat, lng), 13);
}

var point;

//document.getElementById('waiting').style.visibility='hidden';								   

