﻿//function initSliderMapHome() 
//{    
//    var postcode = "";
//    var defaultDistanceIndex;    
//    var defaultZoom;
//    var defaultDistance = $( "#hfDefaultDistance" ).attr("value");

//    // insert the slider div
//    $(".sliderDist").append( '<div id="sldDistance" class="ui-slider-1"></div>' );
//    

//    var callPostcodeAnyWhereService = function( address, zoomLevel )
//    {
//        // invoke the web service
//        $.ajax({ type: "POST",  
//            url: "/resources/services/locationservices.asmx/GetLatLongFromPostcode",  
//            dataType: "xml",  
//            data: "postcode=" + address,
//            processData: false,  
//            error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxErrorPA(XMLHttpRequest, textStatus, errorThrown); },  
//            success: function(xml) { showAddressPE(xml, zoomLevel); }  
//        }); 
//    }
//    
//    var showAddressPE = function( xml, zoomLevel )
//    {
//        returnedLat = 0;
//        returnedLon = 0;
//        
//        // Process xml from the webservice
//        $( "GeoPoint", xml ).each( function() 
//        {
//            returnedLat = $( "Latitude", this ).text();            
//            returnedLon = $( "Longitude", this ).text();
//            
//        });
//        
//        
//        if( returnedLat == 0 && returnedLon == 0 )
//        {            
//            // invalid postcode so invoke the web service again to get the lat/long for our default postcode
//            $.ajax({ type: "POST",  
//                url: "/resources/services/locationservices.asmx/GetLatLongFromPostcode",  
//                dataType: "xml",  
//                data: "postcode=" + $( "#hfDefaultPostcode" ).attr("value"),
//                processData: false,  
//                error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxErrorPA(XMLHttpRequest, textStatus, errorThrown); },  
//                success: function(xml) { showAddressPE(xml, zoomLevel); }   
//            });                         
//            
//            // set the text colour to grey and insert the word postcode in the postcode field
//	        $(".txtPostcode").css( { 'color' : '#8c8c8c' } );
//	        $(".txtPostcode").attr( "value", "postcode" );
//        
//            // pop up message
//            alert( "Could not find postcode: " + postcode );
//        }
//        
//                
//        var point = new GLatLng(returnedLat, returnedLon);
//        
//        map.setCenter( point, zoomLevel );
//    }
//    

//    // Google map   	
//	
//	var map = new GMap2( document.getElementById( "map" ), { size:new GSize( 513,377 ) } );
//	
//	map.disableDragging();
//	map.disableDoubleClickZoom();
//	map.disableInfoWindow();	
//	
//	
//	// this call will initialise the map	
//	
//	// first set the default zoom level
//	switch(defaultDistance)
//    {
//        case "1":	        	             	        	        
//            defaultZoom = 15;
//            break;
//        case "2":
//            defaultZoom = 14;
//            break;
//        case "5":
//            defaultZoom = 13;
//            break;
//        case "10":
//            defaultZoom = 12;
//            break;
//        case "15":
//            defaultZoom = 11;
//            break;
//        case "20":
//            defaultZoom = 10;
//            break;
//        default:
//            defaultZoom = 10;	            
//    }
//	
//	callPostcodeAnyWhereService($( "#hfDefaultPostcode" ).attr("value"), defaultZoom);
//	
//	
//	// Distance slider
//	$("#sldDistance").slider(
//	{
//	    handles: [ { start: 2, id: "dist-handle-one" } ],
//	    steps: 5,
//	    max: 5,
//	    min: 0,
//	    range: false,
//	    change: function(e, ui)
//	    {	        	    
//	        var sliderValue = ui.value;

//	        $(".rbl-distance :input").each(function(counter)
//	        {	        
//	            if( counter == sliderValue)
//	            {
//	                // call the trigger, this will also check it
//	                $(this).trigger("click");                	                	                
//	            }
//	            else
//	            {
//	                this.checked = false;
//	            }
//	        });	        	  
//	             
//	        
//	        // set zoom level  	        
//	        switch(sliderValue)
//	        {
//	            case 0:	        	             	        	        
//	                map.setZoom(15)
//	                break;
//	            case 1:
//	                map.setZoom(14)
//	                break;
//	            case 2:
//	                map.setZoom(13)
//	                break;
//	            case 3:
//	                map.setZoom(12)
//	                break;
//	            case 4:
//	                map.setZoom(11)
//	                break;
//	            case 5:
//	                map.setZoom(10)
//	                break;
//	            default:
//	                map.setZoom(10);	            
//	        }	              
//	        
//	    }, // change
//	    slide: function(e, ui)
//	    {	        
//	        // update the range
//	        var rangeSize = $( "#dist-handle-one" ).css("left");
//	        
//	        $( "#distance-range" ).css("left", 8);
//	        $( "#distance-range" ).css("width", rangeSize);  
//	          
//	    } // slide
//	});
//	
//	
//	// set original slider position and defaultDistanceIndex depending on defaultDistance value
//	switch( defaultDistance )
//	{
//	    case "1":
//	        $( "#dist-handle-one" ).css("left", "0px");
//	        defaultDistanceIndex = 0;
//	        break;
//	    case "2":
//	        $( "#dist-handle-one" ).css("left", "35.2px");
//	        defaultDistanceIndex = 1;
//	        break;
//	    case "5":
//	        $( "#dist-handle-one" ).css("left", "70.4px");
//	        defaultDistanceIndex = 2;
//	        break;
//	    case "10":
//	        $( "#dist-handle-one" ).css("left", "105.6px");	        
//	        defaultDistanceIndex = 3;
//	        break;
//	    case "15":
//	        $( "#dist-handle-one" ).css("left", "140.8px");
//	        defaultDistanceIndex = 4;
//	        break;
//	    case "20":
//	        $( "#dist-handle-one" ).css("left", "176px");
//	        defaultDistanceIndex = 5;
//	        break;
//	    default:
//	        $( "#dist-handle-one" ).css("left", "105.6px");
//	        defaultDistanceIndex = 3;
//	}
//	
//	
//	// check the radio button (refineDistance) according to the defaultDistance value
//	$(".rbl-distance :input").each(function(counter)
//    {	        
//        if( counter == defaultDistanceIndex )
//        {
//            // call the trigger, this will also check it
//            $(this).trigger("click");                	                	                
//        }
//        else
//        {
//            this.checked = false;
//        }
//    });
//	
//		
//	// insert our own range and set it		
//	$("#sldDistance").append('<div id="distance-range" class="ui-slider-range"></div>');	
//	var rangeSize = $( "#dist-handle-one" ).css("left");	        	
//	$( "#distance-range" ).css("left", 8);
//	$( "#distance-range" ).css("width", rangeSize);
//	
//	// insert the overlay after the range	
//	$("#sldDistance .ui-slider-range").after('<div class = "distance-overlay"></div>');
//	
//	// set the text colour to grey and insert the word postcode in the postcode field
//	$(".txtPostcode").css( { 'color' : '#8c8c8c' } );
//	$(".txtPostcode").attr( "value", "postcode" );
//	
//	$(".txtPostcode").focus( function()
//	{
//	    if( $(".txtPostcode").attr( "value" ) == "postcode" )
//	    {
//	        // sset text colour to black
//	        $(".txtPostcode").css( { 'color' : 'black' } );
//	    
//	        // clear the postcode
//	        $(".txtPostcode").attr( "value", "" );
//	    }
//	});
//	
//	// Submit button
//	$("#btnPostcode").click(function ()
//	{     
//	    //alert($(".txtPostcode").attr("value"));
//	    
//	    postcode = $(".txtPostcode").attr("value");	    
//	    
//	    if ( postcode.length > 0 && postcode != "postcode" )
//	    {	    
//	        // call showAddress with postcode and zoom level
//	        var zoomLevel = map.getZoom();
//    	    
//	        //showAddress(postcode + ", UK", zoomLevel);
//	        callPostcodeAnyWhereService( postcode, zoomLevel );
//	    }
//	});
//		
//}

function initSliderMapHome() 
{    
    $( document ).ready( function() 
    {
    
        var postcode = "";
        var defaultDistanceIndex;    
        var defaultDistance = $( "#hfDefaultDistance" ).attr("value");


        // insert the slider div
        $(".sliderDist").append( '<div id="sldDistance" class="ui-slider-1"></div>' );
        

        var callPostcodeAnyWhereService = function( address, zoomLevel )
        {
            // invoke the web service
            $.ajax({ type: "POST",  
                url: "/resources/services/locationservices.asmx/GetLatLongFromPostcode",  
                dataType: "xml",  
                data: "postcode=" + address,
                processData: false,  
                error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxErrorPA(XMLHttpRequest, textStatus, errorThrown); },  
                success: function(xml) { showAddressPE(xml, zoomLevel); }  
            }); 
        }

        
        var showAddressPE = function( xml, zoomLevel )
        {
            returnedLat = 0;
            returnedLon = 0;
            
            // Process xml from the webservice
            $( "GeoPoint", xml ).each( function() 
            {
                returnedLat = $( "Latitude", this ).text();            
                returnedLon = $( "Longitude", this ).text();
                
            });
            
            if( returnedLat == 0 && returnedLon == 0 )
            {            
                // invalid postcode so invoke the web service again to get the lat/long for our default postcode
                $.ajax({ type: "POST",  
                    url: "/resources/services/locationservices.asmx/GetLatLongFromPostcode",  
                    dataType: "xml",  
                    data: "postcode=" + $( "#hfDefaultPostcode" ).attr("value"),
                    processData: false,  
                    error: function(XMLHttpRequest, textStatus, errorThrown) { ajaxErrorPA(XMLHttpRequest, textStatus, errorThrown); },  
                    success: function(xml) { showAddressPE(xml, zoomLevel); }   
                });                         
                
                // set the text colour to grey and insert the word postcode in the postcode field
	            $(".txtPostcode").css( { 'color' : '#8c8c8c' } );
	            $(".txtPostcode").attr( "value", "postcode" );
            
                // pop up message
                alert( "Could not find postcode: " + postcode );
            }
                    
            var point = new GLatLng(returnedLat, returnedLon);
            
            map.setCenter( point, zoomLevel );
        }


        // Google map   		
	    var map = new GMap2( document.getElementById( "map" ), { size: new GSize( 511, 377 ) } );	
	    map.disableDragging();
	    map.disableDoubleClickZoom();
	    map.disableInfoWindow();	
    		
    	
	    // first set the default zoom level
	    switch(defaultDistance)
        {
            case "1":	        	             	        	        
                defaultZoom = 15;
                defaultDistanceIndex = 0;
                break;
            case "2":
                defaultZoom = 14;
                defaultDistanceIndex = 1;
                break;
            case "5":
                defaultZoom = 13;
                defaultDistanceIndex = 2;
                break;
            case "10":
                defaultZoom = 12;
                defaultDistanceIndex = 3;
                break;
            case "15":
                defaultZoom = 11;
                defaultDistanceIndex = 4;
                break;
            case "20":
                defaultZoom = 10;
                defaultDistanceIndex = 5;
                break;
            default:
                defaultZoom = 10;	      
                defaultDistanceIndex = 5;      
        }
    		

        // This is the initial map centre		
	    //callPostcodeAnyWhereService($( "#hfDefaultPostcode" ).attr("value"), defaultZoom);    
    	
	    // Distance slider
	    $("#sldDistance").slider(
	    {
	        value: defaultDistanceIndex,
	        step: 1,
	        max: 5,
	        min: 0,
	        range: 'min',
	        change: function(e, ui)
	        {	        	    
	            var sliderValue = ui.value;

	            $(".rbl-distance :input").each(function(counter)
	            {	        
	                if( counter == sliderValue)
	                {
	                    // call the trigger, this will also check it
	                    $(this).trigger("click");                	                	                
	                }
	                else
	                {
	                    this.checked = false;
	                }
	            });	        	  
    	             
    	        
	            // set zoom level  	        
	            switch(sliderValue)
	            {
	                case 0:	        	             	        	        
	                    map.setZoom(15)
	                    break;
	                case 1:
	                    map.setZoom(14)
	                    break;
	                case 2:
	                    map.setZoom(13)
	                    break;
	                case 3:
	                    map.setZoom(12)
	                    break;
	                case 4:
	                    map.setZoom(11)
	                    break;
	                case 5:
	                    map.setZoom(10)
	                    break;
	                default:
	                    map.setZoom(10);	            
	            }	              	        
	        }
	    });
    	
    		
	    // check the radio button (refineDistance) according to the defaultDistance value
	    $(".rbl-distance :input").each(function(counter)
        {	        
            if( counter == defaultDistanceIndex )
            {
                // call the trigger, this will also check it
                $(this).trigger("click");                	                	                
            }
            else
            {
                this.checked = false;
            }
        });
    	
    			
	    // insert the overlay after the range	
	    $("#sldDistance .ui-slider-range").after('<div class = "distance-overlay"></div>');
    	
    	
	    // set the text colour to grey and insert the word postcode in the postcode field
	    $(".txtPostcode").css( { 'color' : '#8c8c8c' } );
	    $(".txtPostcode").attr( "value", "postcode" );
    	
	    $(".txtPostcode").focus( function()
	    {
	        if( $(".txtPostcode").attr( "value" ) == "postcode" )
	        {
	            // sset text colour to black
	            $(".txtPostcode").css( { 'color' : 'black' } );
    	    
	            // clear the postcode
	            $(".txtPostcode").attr( "value", "" );
	        }
	    });


	    var btnPostcode = $("<span id=\"btnPostcode\" class=\"postcode-submit\"></span>").click( function() {
            
            postcode = $(".txtPostcode").attr("value");	    
    	    
	        if ( postcode.length > 0 && postcode != "postcode" )
	        {	    
	            // call showAddress with postcode and zoom level
	            var zoomLevel = map.getZoom();
        	    
	            //showAddress(postcode + ", UK", zoomLevel);
	            callPostcodeAnyWhereService( postcode, zoomLevel );
	        } 
    	    
	    } );
    	
    	
	    $( ".postcode-submit" ).append( btnPostcode );	
    	
    	
	    callPostcodeAnyWhereService($( "#hfDefaultPostcode" ).attr("value"), defaultZoom);
	
	} );
}