﻿/// <reference path="../js/jquery-1.4.1.min.js" />

var geocoder;

//when document fully loaded
$(document).ready(function() {

    $("#searchForm").show();
    $("input[id*='btn_submit']").show();
    //updatePrograms("All"); //when just loaded ask for list of all programs

    //when service been changed present the list of the programs
    $("select[id*='ddl_services']").change(function() {
        var service = $(this).val();

        if (service == "All") {
            $("select[id*='ddl_programs'] >option").remove(); //clearing drop down list
        }
        else {
            updatePrograms(service);
        }
    });

    registerPage();

    //---------------- END OF ON DOCUMENT LOADED ----------------------------//
});


//calling for webservice and pulling programs using Ajax
function updatePrograms(service) {
    $.ajax({
        type: "POST",
        url: "widget.asmx/getPrograms_en",
        data: "{'service_name': '" + service + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(result) {
            var msg = result.d;

            $("select[id*='ddl_programs'] >option").remove(); //clearing drop down list
            
            $("select[id*='ddl_programs']").append(
                $('<option></option>').val("All").html("All")
            );
                        
            for (var i = 0; i < $(msg).length; i++) //looping trough and adding new values to cleared list
            {
                $("select[id*='ddl_programs']").append(
                            $('<option></option>').val(msg[i].Program_en).html(msg[i].Program_en)
                        );
            }
        }
    });
}


//finding geocode for the address and reads all the forms data
function codeAddress() {
    geocoder = new google.maps.Geocoder();

    var services = $("select[id*='ddl_services']").val();
    var programs = $("select[id*='ddl_programs']").val();
    var distance = $("input[id*='txt_distance']").val();
    var address = $("input[id*='txt_location']").val();


    //var address = document.getElementById("address").value;
    if (geocoder) {
        geocoder.geocode({ 'address': address }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latitude = results[0].geometry.location.lat();
                var longtitude = results[0].geometry.location.lng();

                //constructing the url for search
                var asoRequestURL = 'http://www.aso411.ca/en/results.aspx?postalCode=' + address + '&distance=' + distance;
                asoRequestURL += '&latitude=' + latitude + '&longitude=' + longtitude;
                asoRequestURL += '&service=' + services + '&program=' + programs;

                window.open(asoRequestURL);

                //$(parent.location).attr('href', asoRequestURL);
            }
            else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });
    }
}

//taking all info and performing search
function fireSearch() {
    if ($("input[id*='txt_location']").val() != "" && $("input[id*='txt_distance']").val() != "")
        codeAddress();
    else alert("Please make sure you input your address and distance to service");

    return false;
}

//updating page count
function registerPage() {
    var url = $(parent.location).attr('href');

    $.ajax({
        type: "POST",
        url: "widget.asmx/updateCounter",
        data: "{'url': '" + url + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(result) {   
            //alert("success");                
        }
    });    
} 
