﻿var selectedlat;
var selectedlng;
var myLatLng;
var ENTRY_CHARACTER_LIMIT = 1000;
var ENTRY_CHARACTER_LEFT_MSG = ""
var Dwindow;

var custom_area = "";

// set birtdate input for all pages
var date = new Date();
var selectedYear = date.getFullYear() - 10;
var selectedMonth =  date.getMonth();
var selectedDay =  date.getDay();
var selectedDate = new Date(selectedYear, selectedMonth, selectedDay);

var characterCounter = function(text){
    var chars_left = ENTRY_CHARACTER_LIMIT - text.length;
    if(chars_left < 0) chars_left = 0;
    if(ENTRY_CHARACTER_LEFT_MSG.length < 1)
        ENTRY_CHARACTER_LEFT_MSG= $("#characters-left").html();
    $("#characters-left").html(ENTRY_CHARACTER_LEFT_MSG.replace(/1000/, chars_left));
}

$(function() {
  $('#birthdate').datepicker({
  changeMonth: true,
  changeYear: true,
  defaultDate: selectedDate,
  yearRange: '1900:'+ selectedYear +'',
  dateFormat: 'dd/mm/yy',
  onRender: function(){
     jAlert(selectedYear);
  }
  });
});
  
// empty option of city selectbox
function emptyCities() {
    $("#cityCombo option").each(function() {
        if ($(this).val() != "") {
            $(this).remove();
        }
    });
}

// empty option of area selectbox
function emptyAreas() {

    // get first option text of area selectbox
    var firstOptionText = $("#areaCombo option[value=-1]").html();
    // set new option html to area selectbox 
    var firstOptionHtml = "<option value=\"-1\"> " + firstOptionText + "</option>";
 
    $("#areaCombo option").each(function() {
        if ($(this).val() != "") {
            $(this).remove();
        }
    });
    
    $("#areaCombo").html(firstOptionHtml);      
}

// fill the city selectebox
var fillCityCombo = function(cid, selectedCity, cityComboID) {
    var cityComboID = typeof (cityComboID) == "undefined" ? "cityCombo" : cityComboID;
    var obj = $("#" + cityComboID);
    var check_count = 1;
    if(PageName == "location-add-1" || PageName == "location-edit-1" ) check_count = 0;
    
    $.ajax({
        type: "POST",
        url: "ajax-service",
        data: { ajaxDataServiceType: "FillToCityCombo", countryId: cid, selectedCity: selectedCity, langId: LangID, CheckCount: check_count },
        beforeSend: function() {
            obj.attr("disabled", true);
            emptyAreas();
        },
        success: function(result) {
            // get first option text of city selectbox
            var firstOptionText = $("#" + cityComboID + " option[value=-1]").html();
            // set new option html to city selectbox 
            var firstOptionHtml = "<option value=\"-1\"> " + firstOptionText + "</option>";
            
            if(result != ""){
               var html = firstOptionHtml + result
               obj.html(html);
            }else
            {
               obj.html(firstOptionHtml);
            }
             obj.attr("disabled", false);
        }
    });
};

// fill the area selectebox
function fillAreaCombo(cid, selectedArea, areaComboID) {
    var areaComboID = typeof (areaComboID) == "undefined" ? "areaCombo" : areaComboID;
    var obj = $("#" + areaComboID);
    var check_count = 1;
    if(PageName == "location-add-1" || PageName == "location-edit-1" ) check_count = 0;
        
    $.ajax({
        type: "POST",
        url: "ajax-service",
        data: { ajaxDataServiceType: "FillToAreaCombo", cityId: cid, selectedArea: selectedArea,  langId: LangID,  CheckCount: check_count },
        beforeSend: function() {
            obj.attr("disabled", true);
        },
        success: function(result) {
            // get first option text of area selectbox
            var firstOptionText = $("#"+ areaComboID +" option[value=-1]").html();
            // set new option html to area selectbox 
            var firstOptionHtml = "<option value=\"-1\"> " + firstOptionText + "</option>";
            var html = result != "" ? firstOptionHtml + result : firstOptionHtml;
            obj.html(html);
            
            if(PageName == "location-add-1"){
                var lastAreaOptionHtml = "<option value=\"-2\"> " + labels.lbl_other +  "</option>";
                obj.append(lastAreaOptionHtml);
            }
            
            obj.attr("disabled", false);
        }
    });
}


// fix alert messages
var fixElement = function(message, elem) {
    jAlert(message);
    if (elem != null) elem.focus();
};

var datePat = /^(\d{1,2})(\/|-|\.)(\d{1,2})(\/|-|\.)(\d{4})$/;
var isDate = function(dateStr) {
    var matchArray = dateStr.match(datePat);

    if (matchArray == null) {
        return false;
    }

    month = matchArray[3];
    day = matchArray[1];
    year = matchArray[5];

    if (month < 1 || month > 12) {
        return false;
    }

    if (day < 1 || day > 31) {
        return false;
    }

    if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
        return false;
    }

    if (month == 2) {
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day == 29 && !isleap)) {
            return false;
        }
    }
    return true;
};

var isEmail = function(email) {
    var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (regex.test(email)) return true;
    else return false;
};

/*
* PageName   = This param is generating when asp.net web page onload
*
* LangId     = This param is generating when asp.net web page onload
*
*/


$(document).ready(function() {

    $(".forms ul li").css("width", "700px")

    $("a#message-send").click(function() {


        if ($("input#name").val() == "")
            fixElement(labels.contact_reguired_name, $("input#name"));
        else if ($("input#surname").val() == "")
            fixElement(labels.contact_reguired_surname, $("input#surname"));
        else if ($("input#subject").val() == "")
            fixElement(labels.contact_reguired_subject, $("input#subject"));
        else if ($("input#email").val() == "" || isEmail($("input#email").val()) == false)
            fixElement(labels.email_required, $("input#email"));
        else if ($("textarea#message").val().trim() == "")
            fixElement(labels.contact_reguired_message, $("input#message"));
        else if ($("input#securitycode").val().trim() == "")
            fixElement(labels.reguired_security_code, $("input#securitycode"));
        else {
            $.ajax({
                type: "POST",
                url: "/ajax-service",
                data: {
                    "ajaxDataServiceType": "CheckSecurityCode",
                    "LangID": LangID,
                    "securitycode": $("input#securitycode").val()
                },
                beforeSend: function() {

                },
                success: function(result) {

                    if (result == "OK") {
                        $.ajax({
                            type: "POST",
                            url: "/ajax-service",
                            data: { ajaxDataServiceType: "SendContactMessage", "LangID": LangID,
                                name: $("input#name").val(),
                                surname: $("input#surname").val(),
                                subject: $("input#subject").val(),
                                email: $("input#email").val(),
                                message: $("textarea#message").val(),
                                securitycode: $("input#securitycode").val()
                            },
                            beforeSend: function() {
                                $(this).after("<img src=\"/a/i/avatar-loading.gif\"");
                            },
                            success: function(result) {
                                jAlert(result);

                                $("input#name").val(""),
                                   $("input#surname").val(""),
                                   $("input#subject").val(""),
                                   $("textarea#message").val(""),
                                   $("input#securitycode").val("")
                                $("input#email").val("");
                            },
                            error: function() {
                                alerter(labels.unhandled_exception_occured);
                            }
                        });
                    }
                    else {
                        jAlert(labels.lbl_invalid_securitycode);
                    }

                },
                error: function() {
                    alerter(labels.unhandled_exception_occured);
                }

            });

        }
        return false;
    });

    $("ul#lang li a").each(function() {
        var lang = jQuery.trim($(this).text());
        if (lang == LangID.toUpperCase()) {
            $(this).parent().addClass("active");
        }
    });

    $("ul#menu li a").each(function() {
        var pageName = jQuery.trim($(this).text());
        var arr = $(this).attr("href").split('/')
        var page = arr[arr.length - 1];

        if (page.toUpperCase() == PageName.toUpperCase()) {
            $(this).parent().addClass("active");
        }
    });
    /*
    * Begin: Javascipt codes of Home Page
    */
    if (PageName == "home") {

        myLatLng = new google.maps.LatLng(42.5530802889558, 22.5);
        Pegasusla.init('#map', myLatLng, 5);

        // fill county markers to map on pageload 
        Pegasusla.getCountryMarkers(LangID, -1, "");


    }
    /*
    * End: Javascipt codes of Home Page
    */

    $("#sort-by").change(function() {
        redirectToURL($(this).val());
    });

    $("#sort-size").change(function() {
        redirectToURL($(this).val());
    });

    var countries = $("#countryCombo");
    var cities = $("#cityCombo");
    var areas = $("#areaCombo");
    var categories = $("#categoryCombo");
    var categoriesInput = $("input#maininput");
    var keywordInput = $("input#keyword");


    var searchCountries = $("#search-countries");
    var searchCities = $("#search-cities");
    var searchAreas = $("#search-areas");
    var searchCategories = $("#search-categories");
    var searchkeywordInput = $("input#search-keyword");


    // Fill cities and get markers, when country selected
    // LangID = This param is generating when asp.net web page onload
    searchCountries.change(function() {
        var countryId = $(this).val();
        fillCityCombo(countryId, "-1", "search-cities");

        if (countryId < 1) {
            fillAreaCombo(0, 0, "search-areas");
        }
    });

    // Fill areas and get markers when City selected
    // LangID = This param is generating when asp.net web page onload
    searchCities.change(function() {
        var cityId = $(this).val();
        if (cityId > 0) {
            fillAreaCombo(cityId, 0, "search-areas");
        }

        if (cityId < 1) {
            fillAreaCombo(0, 0, "search-areas");
        }
    });

    // Fill markers when City selected
    searchAreas.change(function() {
        var areaId = $(this).val();
        if (areaId < 1)
            fillCityCombo(0, "-1", "search-cities");
    });


    // Fill cities and get markers, when country selected
    // LangID = This param is generating when asp.net web page onload
    countries.change(function() {
        var countryId = $(this).val();
        fillCityCombo(countryId, "-1", "cityCombo");

        if (countryId > 0) {
            Pegasusla.getCityMarkers(LangID, countryId, -1, "")
        }
        else {
            Pegasusla.getCountryMarkers(LangID, -1, "");
            fillAreaCombo(0, 0, 0);
        }
    });

    // Fill areas and get markers when City selected
    // LangID = This param is generating when asp.net web page onload
    cities.change(function() {
        var cityId = $(this).val();

        if (cityId > 0) {
            fillAreaCombo(cityId);
        }

        if (cityId > 0) {
            Pegasusla.getAreaMarkers(LangID, cityId, -1, "")
        }
        else {
            Pegasusla.getCountryMarkers(LangID, -1, "");
            fillAreaCombo(0, 0, 0);
        }
    });


    // Fill markers when City selected
    areas.change(function() {
        var areaId = $(this).val();

        var selectedCountry = $("#countryCombo option:selected").val();
        var selectedCity = $("#cityCombo option:selected").val();
        var selectedCategory = $("#categoryCombo option:selected").val();


        if (areaId > 0) {

            $(".ADD_CUSTOM_AREA").hide();

            Pegasusla.getMarkers({
                ajaxDataServiceType: "SearchLocation",
                areaId: areaId,
                cityId: selectedCity,
                countryId: selectedCountry,
                categoryId: selectedCategory
            });
        }
        else {

            if (areaId == "-2") {
                $(".ADD_CUSTOM_AREA").show();
            } else {
                Pegasusla.getAreaMarkers(LangID, selectedCity, selectedCategory, "");
                $(".ADD_CUSTOM_AREA").hide();
            }

        }

    });

    var firtValue = false;
    var tempValue = null;

    // fill markers to map, when Category selected
    categories.change(function() {

        var categoryId = $(this).val();
        var categoryName = $("#categoryCombo option:selected").text();

        if (PageName == 'location-add-1' || PageName == "location-edit-1") {

            if (tempValue != null) {
                $("select#categories option[value=" + tempValue + "]").remove()
                $("ul.holder li[rel=" + tempValue + "]").remove();
            }

            var sVal = "" + categoryId + " | " + categoryName + "";
            var _option = "<option class=\"selected\" value=\"" + sVal + "\" selected=\"selected\">" + categoryName + "</option>";
            var _li = "<li class=\"bit-box\" rel=\"" + sVal + "\"> " + categoryName + " \n <a class=\"closeButton\" href=\"#\"></a>";

            if (categoryId > 0) {
                if ($("select#categories option[value=" + sVal + "]").length < 1) {
                    $("select#categories").prepend(_option);
                    $("ul.holder").prepend(_li);
                    tempValue = sVal;
                }
            }
        }

        if (PageName != 'location-add-1' && PageName != "location-edit-1") {

            var areaID = $("#areaCombo option:selected").val();
            var cityID = $("#cityCombo option:selected").val();
            var countryID = $("#countryCombo option:selected").val();

            if (countryID != "-1" && cityID != "-1") {
                if (areaID != "-1") {
                    Pegasusla.getMarkers({
                        ajaxDataServiceType: "SearchLocation",
                        areaId: areaID,
                        cityId: cityID,
                        countryId: countryID,
                        categoryId: categoryId
                    });

                } else {
                    Pegasusla.getAreaMarkers(LangID, cityID, categoryId, "");
                }
            }
        }
    });


    // Control of location-add-1 page
    function isValidAddLocaionFormStep1() {
        var categoriesLen = $("input#categories").val().length;

        var isValid = false;
        // reguied country
        if (countries.val() == "" || countries.val() == -1) {
            isValid = false;
            fixElement(labels.required_country, countries);
        }
        // reguied city 
        else if (cities.val() == "" || cities.val() == -1) {
            isValid = false;
            fixElement(labels.required_city, cities);
        }
        // reguied area 
        else if ((areas.val() == "" || areas.val() == -1 || areas.val() == -2) && custom_area == "") {
            isValid = false;
            fixElement(labels.required_area, areas);
        }
        // requied categories
        else if (categoriesLen < 1) {
            isValid = false;
            fixElement(labels.required_category, categories);
        }
        else {
            isValid = true;
        }
        return isValid;
    }

    // Control of location-add-2 page
    function isValidAddLocaionFormStep2() {
        var isValid = false;
        // requid parameters for location
        var locationName = $("input#locationName");
        var locationPhone1 = $("input#locationPhone1");
        var locationPhone2 = $("input#locationPhone2");
        var locatonWeb = $("input#locatonWeb");
        var locationAddress = $("input#locationAddress");
        var entry = $('#entry');
        var firstEntry = $('#entry').htmlarea('toHtmlString');

        // reguied location name 
        if (locationName.val() == "") {
            isValid = false;
            fixElement(labels.required_location_name, locationName);
        }
        // reguied first entry
        else if (firstEntry == "" || firstEntry.length < 5) {
            isValid = false;
            fixElement(labels.required_first_entry, entry);
        }
        else {
            isValid = true;
        }
        return isValid;
    }



    $("form#search-box-items").bind("submit", function() {
        if (countries.val() == "" || countries.val() == -1) {
            fixElement(labels.required_country, countries);
            return false;
        }

    });


    /*
    * Begin: Javascript code of "-1 page
    */
    var hdnCategories = [];
    if (PageName == 'location-add-1') {

        $("#categoryCombo").hide();

        $("#ADD_CUSTOM_AREA").live("blur", function() {
            custom_area = $(this).val();
        });


        $("#ADD_CUSTOM_AREA").live("keyup", function() {
            custom_area = $(this).val();
        });

        Pegasusla.createDefaultMarker = true;

        myLatLng = new google.maps.LatLng(42.5530802889558, 22.5);
        Pegasusla.init('#map', myLatLng, 5);

        Pegasusla.getCountryMarkers(LangID, -1, "");

        $("#add-place-form-1").bind("submit", function() {
            return isValidAddLocaionFormStep1();
        });

        $("input[name=category]").click(function() {

            var hdnCat = $("input#categories");
            var catStr = hdnCat.val();
            var cat = $(this).val();
            var catSeperatorIndex = cat.indexOf("|");
            var catSeperateCatId = cat.substring(0, catSeperatorIndex);

            if ($(this).is(":checked")) {
                hdnCategories.push(cat);
                // jAlert( hdnCategories.join(",") );     
            } else {
                for (var i = 0; i < hdnCategories.length; i++) {
                    var seperatorIndex = hdnCategories[i].indexOf("|");
                    var seperateCatId = hdnCategories[i].substring(0, seperatorIndex);

                    if (catSeperateCatId == seperateCatId)
                        hdnCategories.splice(i, 1);
                }

            }

            $("input#categories").val(hdnCategories.join(","));
        })

        $("#areaCombo").change(function() {
            if ($(this).val() == "-2") {
                var i = Pegasusla.map.markerCount();
                Pegasusla.map.clearMarker(i);
                var lat1 = Pegasusla.map.getCenter().lat();
                var lng1 = Pegasusla.map.getCenter().lng();
                var point1 = new google.maps.LatLng(parseFloat(lat1), parseFloat(lng1));
                var marker1 = Pegasusla.setDefaultMarker(point1);
                Pegasusla.map.addMarker(marker1);
                Pegasusla.map.setCenter(point1);
            }
        });

    }
    /*
    * End: Javascript code of location-add-1 page
    */

    if (PageName == "location-edit") {

        if (LocationCountry > 0) {
            $("#countryCombo option[value=" + LocationCountry + "]").attr("selected", "selected");
            fillCityCombo(LocationCountry, LocationCity, "cityCombo");
        }

        if (LocationCity > 0) {
            $("#cityCombo option[value=" + LocationCity + "]").attr("selected", "selected");
            fillAreaCombo(LocationCity, LocationArea, "areaCombo");
        }

        if (LocationArea > 0) {
            $("#areaCombo option[value=" + LocationArea + "]").attr("selected", "selected");
        }


        Pegasusla.createDefaultMarker = true;
        // create map
        myLatLng = new google.maps.LatLng(42.5530802889558, 22.5);
        Pegasusla.init('#map', myLatLng, 5);

        // fill map
        var lat1 = LocationLat;
        var lng1 = LocationLng;
        var html = " <div id=\"marker\"> " +
                       "   <span> <h5>  <a href='" + LocationDetailURL + "'>  " + LocationName + " </a> </h5> </span>  " +
                       "   <span>" + LocationAddr + " </span>" +
                       "   <span> " + LocationPhone1 + " </span> " +
                       "   <span> " + LocationPhone2 + " </span> " +
                       "   <span> <a href='" + LocationWeb + "' target='_blank'> " + LocationWeb + " </a> </span> " +
                       "<div> ";


        var point1 = new google.maps.LatLng(parseFloat(lat1), parseFloat(lng1));
        var marker1 = Pegasusla.setDefaultMarker(point1);
        Pegasusla.map.addMarker(marker1);
        // Pegasusla.bounds.extend(point1);
        Pegasusla.map.setZoom(parseInt(LocationZoom));
        Pegasusla.map.setCenter(point1);

        // retrieve category
        var categories = LocationCategories.split(',')
        var categoryName, category;
        for (var x = 0; x < categories.length; x++) {
            category = categories[x];
            categoryName = category.split("|")[1];

            if (categoryName != undefined) {

                var _option = "<option class=\"selected\" value=\"" + category + "\" selected=\"selected\">" + categoryName + "</option>";
                var _li = "<li class=\"bit-box\" rel=\"" + category + "\"> " + categoryName + " \n <a class=\"closeButton\" href=\"#\"></a>";
                $("select#categories").prepend(_option);
                $("ul.holder").prepend(_li);
            }
        }
    }

    /*
    * Begin: Javascript code of location-add-2 page
    */
    if (PageName == 'location-add-2' || PageName == 'location-edit-2') {

        myLatLng = new google.maps.LatLng(SelectedLocationLat, SelectedLocationLng);
        Pegasusla.init('#map', myLatLng, SelectedLocationZoomLevel);

        // create marker for the user on map
        var usermarker = Pegasusla.createAddPlaceMarker(myLatLng);
        Pegasusla.map.addMarker(usermarker);
        Pegasusla.map.disableDoubleClickZoom = true
        Pegasusla.map.scrollwheel = false;


        // Change style of navigation scroll control
        Pegasusla.map.setOptions({ navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL
        }
        })

        var langId = $("input#language").val();
        var locationWebId = $("input#insertedLocationWebId").val();
        var userId = $("#userId").val();

        $('#fileInput').uploadify({
            'uploader': '/a/s/uploadify.swf',
            'script': '/upload-service/?',
            'scriptData': { langId: langId, locationWebId: locationWebId, userId: userId },
            'queueID': 'fileUploadQueue',
            'cancelImg': '/a/i/cancel-upload.png',
            'auto': true,
            'multi': true,
            'fileDesc': 'Image Files',
            'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
            'queueSizeLimit': 10,
            'sizeLimit': 1310721,
            'buttonText': labels.lbl_upload_chose_image,
            'folder': '/u/location-photos',
            'onComplete': function(event, queueID, fileObj, response, data) {
                $(".add-uploaded").append(response);
            }
        });

        $("#entry").htmlarea({
            toolbar: [
                ["bold", "italic", "underline"],
                ["orderedlist", "unorderedlist"],
                ["indent", "outdent"],
                ["justifyleft", "justifycenter", "justifyright"]
            ]
        });

        // add location on click event
        $("#add-location-btn").click(function() {

            if (isValidAddLocaionFormStep2()) {

                var locationName = $("input#locationName").val();
                var locationPhone1 = $("input#locationPhone1").val();
                var locationPhone2 = $("input#locationPhone2").val();
                var locationWeb = $("input#locationWeb").val();
                var locationAddress = $("#locationAddress").val();
                var firstEntry = $('#entry').htmlarea('toHtmlString');
                var tags = $("#tags").val();
                var categories = $("#ADD_CATEGORIES").val();

                $.ajax({
                    type: "POST",
                    url: "/ajax-service",
                    data: { ajaxDataServiceType: "AddLocation",
                        langId: langId,
                        locationName: locationName,
                        locationPhone1: locationPhone1,
                        locationPhone2: locationPhone2,
                        locationWeb: locationWeb,
                        locationAddress: locationAddress,
                        locationWebId: locationWebId,
                        userId: userId,
                        firstEntry: firstEntry,
                        tags: tags,
                        categories: categories
                    },
                    beforeSend: function() {
                        $("#add-place-step2-form").focus();
                        var html = "<img src='/a/i/avatar-loading.gif' /> <br> " + labels.add_location_loader_text;
                        $("#add-place-step2-form").html("");
                        resultHtml = "<div id='result-warning'>" + html + "</div>";
                        $("#add-place-step2-form").html(html);
                    },
                    success: function(result) {
                        $("#add-place-step2-form").html("");

                        resultHtml = " <div class=\"static-content\">" +
                           "<p>" +
                            "<div class=\"forms uye-ol\">" +
                            "  <ul class=\"form-content\">" +
                             "   <li class=\"form-heading\">" + labels.lbl_congura + "</li>" +
                             "   <li class=\"blt-text\"> " + result + " </li>" +
                             "   <li class=\"blt-lister\">" +
                            "      <a href=\"/" + langId + "/home\">" + labels.lbl_backtohomepage + "</a>" +
                            "    </li>" +
                            "  </ul>" +
                           " </div>" +
                         " </p>" +
                        "</div>";

                        $("#step-2-img").attr("src", "a/i/step-3-" + langId + ".png");
                        $("#add-place-step2-form").html(resultHtml);
                        $('html, body').animate({ scrollTop: 0 }, 'fast');
                    },
                    error: function() {
                        alerter(labels.add_location_unhandled_exception_occured);
                    }
                });
            }

        });

    }
    /*
    * End: Javascript code of location-add-2 page
    */


    /*
    * Search Results
    */
    if (PageName == 'search-results') {

        myLatLng = new google.maps.LatLng(42.5530802889558, 22.5);
        Pegasusla.init('#map', myLatLng, 5);

        if (SearchedCountry > 0) {
            $("#countryCombo option[value=" + SearchedCountry + "]").attr("selected", "selected");
            $("#search-countries option[value=" + SearchedCountry + "]").attr("selected", "selected");
            fillCityCombo(SearchedCountry, SearchedCity, "cityCombo");
            fillCityCombo(SearchedCountry, SearchedCity, "search-cities");
        }

        if (SearchedCity > 0) {
            $("#cityCombo option[value=" + SearchedCity + "]").attr("selected", "selected");
            $("#search-cities option[value=" + SearchedCity + "]").attr("selected", "selected");
            fillAreaCombo(SearchedCity, SearchedArea, "areaCombo");
            fillAreaCombo(SearchedCity, SearchedArea, "search-areas");
        }

        if (SearchedArea > 0) {
            $("#areaCombo option[value=" + SearchedArea + "]").attr("selected", "selected");
            $("#search-areas option[value=" + SearchedArea + "]").attr("selected", "selected");
        }
        if (SearchedCategory > 0) {
            $("#categoryCombo option[value=" + SearchedCategory + "]").attr("selected", "selected");
            $("#search-categories option[value=" + SearchedCategory + "]").attr("selected", "selected");
        }

        if (SearchedKeyword.length >= 3) {
            $("input#keyword").val(SearchedKeyword);
            $("input#search-keyword").val(SearchedKeyword);
        }

        bindMarkers();
    }


    function getMarkers() {

        Pegasusla.getMarkers({
            ajaxDataServiceType: "SearchLocation",
            countryId: SearchedCountry,
            cityId: SearchedCity,
            areaId: SearchedArea,
            categoryId: SearchedCategory,
            keyword: SearchedKeyword
        });


    }

    function bindMarkers() {

        if (SearchedKeyword.length >= 3) {
            if (SearchedArea > 0) {

                getMarkers();
            }
            else if (SearchedCity > 0)
                Pegasusla.getAreaMarkers(LangID, SearchedCity, SearchedCategory, SearchedKeyword);
            else if (SearchedCountry > 0)
                Pegasusla.getCityMarkers(LangID, SearchedCountry, SearchedCategory, SearchedKeyword);
            else
                Pegasusla.getCountryMarkers(LangID, SearchedCategory, SearchedKeyword);
            return;
        }
        else if (SearchedCategory > 0) {
            if (SearchedArea > 0) {

                getMarkers();
            }
            else if (SearchedCity > 0)
                Pegasusla.getAreaMarkers(LangID, SearchedCity, SearchedCategory, SearchedKeyword);
            else if (SearchedCountry > 0)
                Pegasusla.getCityMarkers(LangID, SearchedCountry, SearchedCategory, SearchedKeyword);
            else
                Pegasusla.getCountryMarkers(LangID, SearchedCategory, SearchedKeyword);
            return;
        }
        else if (SearchedArea > 0) {


            getMarkers(); // girmiyordur.

            return;
        }
        else if (SearchedCity > 0) {

            Pegasusla.getAreaMarkers(LangID, SearchedCity, -1, "");
            return;
        }
        else if (SearchedCountry > 0) {
            fillCityCombo(SearchedCountry, SearchedCity);
            Pegasusla.getCityMarkers(LangID, SearchedCountry, -1, "");
        }
        else {
            Pegasusla.getCountryMarkers(LangID, -1, "");
        }
    }

    /*
    * Search Results
    */

    /*
    * Begin: Javascript codes of location-detail page
    */
    if (PageName == 'location-detail') {

        myLatLng = new google.maps.LatLng(LocationLat, LocationLng);
        Pegasusla.init('#map', myLatLng, ZoomLevel);

        var locationMarker = Pegasusla.createMarker("", myLatLng);
        Pegasusla.map.addMarker(locationMarker);

        // Change style of navigation scroll control
        Pegasusla.map.setOptions({ navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL
        }
        })



        // reset location position on map
        $("#resetbtn").click(function() {
            Pegasusla.map.setCenter(myLatLng);
            return false;
        });

        var locationWebId = $("#hdn_location_web_id").val();
        var langId = $("input#language").val();
        var userId = $("#hdn_user_id").val();

        $("#location-comment").htmlarea({
            toolbar: [
                ["bold", "italic", "underline"],
                ["orderedlist", "unorderedlist"],
                ["indent", "outdent"],
                ["justifyleft", "justifycenter", "justifyright"]
            ],
            loaded: function() {
                $(this.editor).keypress(function(event) {
                    var html = $("#location-comment").htmlarea("toHtmlString");
                    var text = $("<p>" + html + "</p>").text();
                    if (text.length <= ENTRY_CHARACTER_LIMIT)
                        characterCounter(text);
                    else {
                        var unicode = event.keyCode ? event.keyCode : event.charCode
                        if (unicode != 8 && event.shiftKey == false) {
                            characterCounter(text);
                            return false;
                        }
                    }
                });
            }
        });

        $('#fileInput').uploadify({
            'uploader': '/a/s/uploadify.swf',
            'script': '/upload-service/?',
            'scriptData': { langId: langId, locationWebId: locationWebId, userId: userId, simple: 1 },
            'queueID': 'fileUploadQueue',
            'cancelImg': '/a/i/cancel-upload.png',
            'auto': true,
            'multi': true,
            'fileDesc': 'Image Files',
            'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
            'queueSizeLimit': 10,
            'sizeLimit': 4000000,
            'buttonText': labels.lbl_upload_chose_image,
            'folder': '/u/location-photos',
            'onComplete': function(event, queueID, fileObj, response, data) {
                jAlert(response);
                $.fn.colorbox.close();
            }
        });


        $('.jHtmlArea').css('width', '680px');
        $('.jHtmlArea').find('iframe')
            .css('width', '675px')
            .css('height', '200px')
            .css('border', '1px solid #e4e4e4');


    }
    /*
    * End: Javascript codes of location-detail page
    */


    /*
    * Begin: Javascript codes of signup page
    */
    if (PageName == "signup") {

        var password = $("#password");
        var password_again = $("#password-again");
        var m_name = $("#m_name");
        var surname = $("#surname");
        var birthdate = $("#birthdate");
        var country = $("#country");
        var city = $("#city");
        var email = $("#email");

        birthdate.datepicker();

        $('#fileInput').uploadify({
            uploader: '/a/s/uploadify.swf',
            script: '/ajax-service',
            cancelImg: '/a/i/cancel-upload.png',
            queueID: 'fileUploadQueue',
            folder: $("#tmp-key").val(),
            scriptData: { ASPSESSID: $("#p1").val(), AUTHID: $("#p2").val(), "ajaxDataServiceType": "UploadUserTempAvatar", "TempKey": $("#tmp-key").val(), "LangID": LangID },
            fileDataName: 'FILE',
            auto: true,
            multi: false,
            fileDesc: 'Valid Extensions: jpg',
            buttonText: labels.lbl_upload_chose_image,
            fileExt: '*.jpg',
            displayData: 'speed',
            onAllComplete: function(event, data) {
                if (data.errors < 1) {
                    $("#avatar-image").attr("src", "/u/tmp-avatar/" + $("#tmp-key").val() + ".jpg?x=" + Math.random())
                    $("#span-avatar-upload").slideUp();
                    $("#span-avatar-image").slideDown();
                }
            }
        });

        $("#avatar-image").click(function() {
            if (confirm(labels.tmp_avatar_delete_question)) {
                $.ajax({
                    type: "POST",
                    url: "/ajax-service",
                    data: { ajaxDataServiceType: "DeleteUserTempAvatar", "LangID": LangID },
                    beforeSend: function() {
                        $("#avatar-image").attr("src", "/a/i/avatar-loading.gif");
                    },
                    success: function(result) {
                        jAlert(result);
                        $("#span-avatar-image").slideUp();
                        $("#span-avatar-upload").slideDown();
                    },
                    error: function() {
                        alerter(labels.unhandled_exception_occured);
                        $("#avatar-image").attr("src", "/u/tmp-avatar/" + $("#tmp-key").val() + ".jpg?x=" + Math.random())
                        $("#span-avatar-upload").slideUp();
                        $("#span-avatar-image").slideDown();
                    }
                });
            }
            return false;
        });

        $("#country").change(function() {
            fillCityCombo($(this).val(), "-1", "city");
        });

        $(".btn-submit").live("click", function() {
            $("#frmSignUp").trigger("submit");
            return false;
        });

        $(".btn-cancel").live("click", function() {
            if (confirm(labels.registration_from_cancel_question)) {
                history.go(-1);
            }
            return false;
        });

        $("#country").trigger("change");

        $("#frmSignUp").submit(function() {
            var btns_html = "";
            if (password.val().length < 6) {
                fixElement(labels.password_required, password);
            }
            else if (password.val() != password_again.val()) {
                fixElement(labels.password_not_matched, password_again);
            }
            else if (m_name.val().length < 2) {
                fixElement(labels.m_name_required, m_name);
            }
            else if (surname.val().length < 2) {
                fixElement(labels.surname_required, surname);
            }
            else if (!isDate(birthdate.val())) {
                fixElement(labels.birthdate_required, birthdate);
            }
            else if (city.val() == "" || city.val() == "-1") {
                fixElement(labels.city_required, city);
            }
            else if (!isEmail(email.val())) {
                fixElement(labels.email_required, email);
            }
            else if (!$("#accept-rules").attr("checked")) {
                fixElement(labels.accept_rule_required, email);
            }
            else {
                $.ajax({
                    type: "POST",
                    url: "/ajax-service",
                    data: $(this).serialize(),
                    beforeSend: function() {
                        btns_html = $("#action-buttons").html();
                        $("#action-buttons").html("<label></label><img src=\"/a/i/action-processing.gif\" />");
                    },
                    success: function(result) {
                        switch (result) {
                            case "INSERTED":
                                jAlert(labels.registration_success);
                                setInterval("redirectoDefaultPage()", 5000);
                                break;
                            case "EMAIL_EXIST":
                                fixElement(labels.email_in_use, email);
                                break;
                        }
                        $("#action-buttons").html(btns_html);
                    }
                });
            }
            return false;
        });
    }
    /*
    * End: Javascript codes of signup page
    */

    

    /*
    * Begin: Javascript codes of profile-edit page
    */
    if (PageName == "profile-edit") {

        var password = $("#password");
        var password_again = $("#password-again");
        var m_name = $("#m_name");
        var surname = $("#surname");
        var birthdate = $("#birthdate");
        var country = $("#country");
        var city = $("#city");
        var email = $("#email");

        birthdate.datepicker();

        $('#fileInput').uploadify({
            uploader: '/a/s/uploadify.swf',
            script: '/ajax-service',
            cancelImg: '/a/i/cancel-upload.png',
            queueID: 'fileUploadQueue',
            folder: $("#tmp-key").val(),
            scriptData: { ASPSESSID: $("#p1").val(), AUTHID: $("#p2").val(), "ajaxDataServiceType": "UploadUserTempAvatar", "TempKey": $("#tmp-key").val(), "LangID": LangID },
            fileDataName: 'FILE',
            auto: true,
            multi: false,
            fileDesc: 'Valid Extensions: jpg',
            buttonText: labels.lbl_upload_chose_image,
            fileExt: '*.jpg',
            displayData: 'speed',
            onAllComplete: function(event, data) {
                if (data.errors < 1) {
                    $("#avatar-tmp-image").attr("src", "/u/tmp-avatar/" + $("#tmp-key").val() + ".jpg?x=" + Math.random())
                    $("#span-avatar-upload").slideUp();
                    if ($("#span-avatar-image").css("display") == "none") {
                        $("#span-avatar-image").slideDown();
                    }
                    $("#span-avatar-tmp-image").slideDown();
                }
            }
        });

        $("#avatar-tmp-image").click(function() {
            if (confirm(labels.tmp_avatar_delete_question)) {
                $("#delete-tmp-avatar").val("Y");
                $("#avatar-tmp-image").attr("src", "")
                $("#span-avatar-tmp-image").slideUp();
                $("#span-avatar-upload").slideDown();
                /*
                $.ajax({
                type: "POST",
                url: "/ajax-service",
                data: { ajaxDataServiceType: "DeleteUserTempAvatar", "LangID": LangID },
                beforeSend: function() {
                $("#avatar-image").attr("src", "/a/i/avatar-loading.gif");
                },
                success: function(result) {
                jAlert(result);
                $("#span-avatar-image").slideUp();
                $("#span-avatar-upload").slideDown();
                },
                error: function() {
                jAlert(labels.unhandled_exception_occured);
                $("#avatar-image").attr("src", "/u/tmp-avatar/" + $("#tmp-key").val() + ".jpg?x=" + Math.random())
                $("#span-avatar-upload").slideUp();
                $("#span-avatar-image").slideDown();
                }
                });
                */
            }
            return false;
        });

        $("#avatar-image").click(function() {
            if (confirm(labels.avatar_delete_question)) {
                $("#delete-avatar").val("Y");
                if ($("#avatar-tmp-image").attr("src") == "") {
                    $("#span-avatar-image").slideUp();
                    $("#span-avatar-upload").slideDown();
                } else {
                    $("#avatar-image").attr("src", "");
                }
            }
            return false;
        });

        $("#country").change(function() {
            fillCityCombo($(this).val(), ($("#city").attr("svalue") != undefined && $("#city").attr("svalue") != null) ? $("#city").attr("svalue") : "-1", "city");
        });

        $(".btn-submit").live("click", function() {
            $("#frmProfileEdit").trigger("submit");
            return false;
        });

        $(".btn-cancel").live("click", function() {
            if (confirm(labels.profile_update_form_cancel_question)) {
                history.go(-1);
            }
            return false;
        });

        $("#country").trigger("change");

        $("#frmProfileEdit").submit(function() {
            if (password.val().length > 0) {
                if (!confirm(labels.password_change_question))
                    return false;
            }
            var btns_html = "";
            if (password.val().length > 0 && password.val().length < 6) {
                fixElement(labels.password_required, password);
            }
            else if (password.val().length > 0 && password.val() != password_again.val()) {
                fixElement(labels.password_not_matched, password_again);
            }
            else if (m_name.val().length < 2) {
                fixElement(labels.m_name_required, m_name);
            }
            else if (surname.val().length < 2) {
                fixElement(labels.surname_required, surname);
            }
            else if (!isDate(birthdate.val())) {
                fixElement(labels.birthdate_required, birthdate);
            }
            else if (city.val() == "" || city.val() == "-1") {
                fixElement(labels.city_required, city);
            }
            else if (!isEmail(email.val())) {
                fixElement(labels.email_required, email);
            }
            else {
                $.ajax({
                    type: "POST",
                    url: "/ajax-service",
                    data: $(this).serialize(),
                    beforeSend: function() {
                        btns_html = $("#action-buttons").html();
                        $("#action-buttons").html("<label></label><img src=\"/a/i/action-processing.gif\" />");
                    },
                    success: function(result) {
                        switch (result) {
                            case "UPDATED":
                                alerter(labels.profile_update_success);
                                window.location.href = "/" + LangID;
                                break;
                            case "EMAIL_EXIST":
                                fixElement(labels.email_in_use, email);
                                break;
                            default:
                                jAlert(labels.unhandled_exception_occured);
                                break;
                        }
                        $("#action-buttons").html(btns_html);
                    },
                    error: function() {
                        alerter(labels.unhandled_exception_occured);
                        $("#action-buttons").html(btns_html);
                    }
                });
            }
            return false;
        });
        if ($("#avatar-tmp-image").attr("src") != "") {
            $("#span-avatar-upload").slideUp();
            $("#span-avatar-tmp-image").slideDown();
        } else if ($("#avatar-image").attr("src") == "" && $("#avatar-tmp-image").attr("src") == "") {
            $("#span-avatar-image").slideUp();
            $("#span-avatar-upload").slideDown();
        }

        // facebook connect entegration 
        var FacebookID = $("#FacebookID").val();
        if (FacebookID != "") {
            if (FacebookID != FB.Connect.get_loggedInUser()) {
                $("#FacebookID").val("");
            } else {
                $(".fcbk-connect").html("<b>" + labels.facebook_info_received + "</b>");
            }
        }
    }
    /*
    * End: Javascript codes of profile-edit page
    */



    /*
    * Begin: Javascript codes of forgot-password page
    */
    if (PageName == "forgot-password") {

        var email = $("#email");

        $(".btn-submit").live("click", function() {
            $("#frmForgotPassword").trigger("submit");
            return false;
        });

        $(".btn-cancel").live("click", function() {
            if (confirm(labels.forgot_password_form_cancel_question)) {
                history.go(-1);
            }
            return false;
        });

        $("#frmForgotPassword").submit(function() {
            if (!isEmail(email.val())) {
                fixElement(labels.email_required, email);
            }
            else {
                $.ajax({
                    type: "POST",
                    url: "/ajax-service",
                    data: $(this).serialize(),
                    beforeSend: function() {
                        btns_html = $("#action-buttons").html();
                        $("#action-buttons").html("<label></label><img src=\"/a/i/action-processing.gif\" />");
                    },
                    success: function(result) {
                        switch (result) {
                            case "EMAIL_SENT":
                                alerter(labels.forgot_password_email_sent);
                                window.location = "/" + LangID;
                                break;
                            case "NOT_EXIST":
                                fixElement(labels.forgot_password_email_not_exist, email);
                                break;
                            case "EMAIL_SENT_QUOTE_EXCEEDED":
                                alerter(labels.forgot_password_email_sent_quote_exceeded);
                                window.location = "/" + LangID;
                                break;
                            default:
                                alerter(labels.unhandled_exception_occured);
                                break;
                        }
                        $("#action-buttons").html(btns_html);
                    },
                    error: function() {
                        alerter(labels.unhandled_exception_occured);
                        $("#action-buttons").html(btns_html);
                    }
                });
            }
            return false;
        });
    }
    /*
    * End: Javascript codes of forgot-password page
    */

});


function selectCountry(id){
    $("#countryCombo option[value="+ id +"]").attr("selected", "selected");
    //alert(id);
    $("#countryCombo").trigger("change");
}


function selectCity(id){
    $("#cityCombo option[value="+ id +"]").attr("selected", "selected");
    $("#cityCombo").trigger("change");
}

function selectArea(id){
    $("#areaCombo option[value="+ id +"]").attr("selected", "selected");
    //alert(id);
    $("#areaCombo").trigger("change");
}

 



/*
    GOOGLE MAP SEARCH LOCATION
*/

var COUNTRY_MARKER_ICON = "a/i/country.png";
var CITY_MARKER_ICON = "a/i/city.png";
var AREA_MARKER_ICON = "a/i/area.png";
var LOCATION_MARKER_ICON = "a/i/space.png";

var COUNTRY_MARKER_SHADOW_ICON = "a/i/marker_shadow.png";
var CITY_MARKER_SHADOW_ICON = "a/i/marker_shadow.png";
var AREA_MARKER_SHADOW_ICON = "a/i/marker_shadow.png";
var LOCATION_MARKER_SHADOW_ICON = "a/i/marker_shadow.png";


var BLUE_MARKER_ICON        = "a/i/dragdrop.png";
var BLUE_MARKER_ICON_SHADOW  = "a/i/marker_shadow.png";

var COUNTRY_ZOOM_LEVEL = 5;
var CITY_ZOOM_LEVEL = 10;
var AREA_ZOOM_LEVEL = 15;


/*
Override Google Map Objects 
*/
var infowindow;

(function() {

    google.maps.Map.prototype.markers = new Array();

    google.maps.Map.prototype.addMarker = function(marker) {
        this.markers[this.markers.length] = marker;
    };

    google.maps.Map.prototype.getMarkers = function() {
        return this.markers
    };

    google.maps.Map.prototype.clearMarkers = function() {
        if (infowindow) {
            infowindow.close();
        }

        for (var i = 0; i < this.markers.length; i++) {
            this.markers[i].setMap(null);
        }
    };
    
    google.maps.Map.prototype.markerCount = function() {
       return this.markers.length;
    };
    
    google.maps.Map.prototype.clearMarker = function(i) {
        if(this.markers[i] != undefined)
            this.markers[i].setMap(null);
    };
    
})();


 

var Pegasusla = {

    createDefaultMarker: false,
    
    createlocationMarker: false,
    
    fillMarkers: true,
    
    draggable: false,
    
    map: null,
    
    bounds: null,
    
    markers: [],
    
    defaultMarker: null,

    // create mark
    createMarker: function(name, latlng) {
        var shape = {
            coord: [1, 1, 1, 20, 18, 20, 18, 1],
            type: 'poly'
        };
        var marker = new google.maps.Marker({ position: latlng, map: Pegasusla.map,
            draggable: Pegasusla.draggable, 
            icon: LOCATION_MARKER_ICON,
            shadow: LOCATION_MARKER_SHADOW_ICON,
            clickable: true,
            shape: shape,
            dragCrossMove: false
        });
        Pegasusla.markers.push(marker);
        google.maps.event.addListener(marker, "click", function() {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: name });
            infowindow.open(Pegasusla.map, marker);
        });
        return marker;
    },

    // create mark
    createAddPlaceMarker: function(latlng) {

        var marker = new google.maps.Marker({
            position: latlng, map: Pegasusla.map,
            icon: BLUE_MARKER_ICON,
            shadow: BLUE_MARKER_ICON_SHADOW,
            clickable: true,
            dragCrossMove: true
        });
        
      
        return marker;
    },

    // init map
    init: function(selector, latLng, zoom) {

        var options = {
            zoom: zoom,
            center: latLng,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            draggingCursor: 'pointer',
            navigationControlOptions: {  
                 style: google.maps.NavigationControlStyle.ZOOM_PAN  
               }  
        }

        Pegasusla.map = new google.maps.Map($(selector)[0], options);
        this.bounds = new google.maps.LatLngBounds();
    },

    // Get Markers
    getMarkers: function(params, address) {

        var addr = typeof (address) == "undefined" ? "ajax-service" : address;

        if (Pegasusla.map != null) {

            Pegasusla.map.clearMarkers();
            $("#loader").css({ display: "block", zIndex: 999999, backgroundColor: "#eaeaee" });
            $("#loader").html("<img src=\"a/i/loading.gif\"/> <br />" + labels.map_marker_loader_text);
            Pegasusla.bounds = new google.maps.LatLngBounds();
            
            $.ajax({
                type: "POST",
                url: addr,
                data: params,
                success: function(xml) {
                
                    if ($(xml).find("marker").length > 0) {
                        Pegasusla.fillMarkers(xml);
                        $("#loader").css({ display: "none" });
                    } else {
                       
                        if (PageName != "location-add-1" && PageName != "location-edit-1") {
                            $("#loader").html(labels.map_search_no_result_found);
                        }
                        else {
                            $("#loader").css({ display: "none" });
                            
                        }
//                         
                    }
                    
                     if (Pegasusla.createDefaultMarker) {
                            // set default marker
                            var i = Pegasusla.map.markerCount();
                            Pegasusla.map.clearMarker(i);
                            
                       
                            var parentLat =  $(xml).find("markers").attr("parentLat");
                            var parentLng =  $(xml).find("markers").attr("parentLng");
                            var parentZoomlevel11 = $(xml).find("markers").attr("parentZoomlevel");
                             
                            var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
                             
                             
                             
                             var marker1 = Pegasusla.setDefaultMarker(parentPoint);
                             Pegasusla.map.addMarker(marker1);
                             
                             Pegasusla.map.setZoom(parseInt(parentZoomlevel11));
                             Pegasusla.map.setCenter(parentPoint);
                            //Pegasusla.bounds.extend(point1);
                            //Pegasusla.map.setCenter(point1);
                            //Pegasusla.map.fitBounds(Pegasusla.bounds);
                            // set default marker
                        }
                }
            });

        }
    },
 

    fillMarkers: function(xml) {
        var parentLat =  $(xml).find("markers").attr("parentLat");
        var parentLng =  $(xml).find("markers").attr("parentLng");
        var parentZoom = $(xml).find("markers").attr("parentZoomlevel");
        
        $(xml).find("marker").each(function() {
            var detailurl = $(this).find('detailurl').text();
            var label = $(this).find('label').text();
            var webaddress = $(this).find('webaddress').text();
            var address = $(this).find('address').text();
            var phone1 = $(this).find('phone1').text();
            var phone2 = $(this).find('phone2').text();
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var html = " <div id=\"marker\"> " +
                       "   <span> <h5>  <a href='" + detailurl + "'>  " + label + " </a> </h5> </span>  " +
                       "   <span>" + address + " </span>" +
                       "   <span> " + phone1 + " </span> " +
                       "   <span> " + phone2 + " </span> " +
                       "   <span> <a href='"+ webaddress +"' target='_blank'> " + webaddress + " </a> </span> " +
                       "<div> ";

            var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
            Pegasusla.bounds.extend(point);
            Pegasusla.map.addMarker(Pegasusla.createMarker(html, point));
        });

        if( $(xml).find("marker").length > 1){
//            if(
//                (parentLat != "undefined" && parentLat!="") &&
//                (parentLng !="undefined" && parentLng!="") &&
//                (parentZoom !="undefined" && parentZoom!="")
//            ){
//                 var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
//                 Pegasusla.map.setZoom(parseInt(parentZoom));
//                 Pegasusla.map.setCenter(parentPoint);
//            }
//            else{
                Pegasusla.map.fitBounds(Pegasusla.bounds);
                 
//            }  
        }else{
             
             if( $(xml).find("marker").length == 0)
             {             
                   var parentLat =  $(xml).find("markers").attr("parentLat");
                   var parentLng =  $(xml).find("markers").attr("parentLng");
                   var parentZoomLevel = $(xml).find("markers").attr("parentZoomLevel");
 
                   var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
                   Pegasusla.map.setZoom(parseInt(parentZoomLevel));
                   Pegasusla.map.setCenter(parentPoint);
                    
            }else{
                var lat = $(xml).find("marker").find('lat').text();
                var lng = $(xml).find("marker").find('lng').text();
                var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));    
                Pegasusla.map.setZoom(parseInt(15));
                Pegasusla.map.setCenter(point);
                
            // Pegasusla.map.fitBounds(Pegasusla.bounds);
            }

             
        }
    },
    
    mapLoader :  $("#loader"),
    
    getCountryMarkers : function(langId, categoryId, keyword){
        
         
    
        Pegasusla.map.clearMarkers();
        $("#loader").css({ display: "block", zIndex: 999999, backgroundColor: "#eaeaee" });
        $("#loader").html("<img src=\"a/i/loading.gif\"/> <br />" + labels.map_marker_loader_text);
        
          
        Pegasusla.bounds = new google.maps.LatLngBounds();
        $.ajax({
            type: "POST",
            url: "ajax-service",
            data: { langId: langId, ajaxDataServiceType: "GetMapCountries", 
                    categoryId: categoryId, keyword: keyword },
            success: function(xml) {

                if ($(xml).find("marker").length > 0) {
                    Pegasusla.fillCountryMarkers(xml);
                    
                     $("#loader").css({ display: "none"});
                } else {
                    if (PageName != "location-add-1" && PageName != "location-edit-1") 
                        $("#loader").html(labels.map_search_no_result_found);
                    else
                        $("#loader").css({ display: "none"});    
                }
                
            }
        });
    },
    
    fillCountryMarkers: function(xml){
    
        $(xml).find("marker").each(function() {
            var url = $(this).find('url').text();
            var lcount = $(this).find('lcount').text();
            var ecount = $(this).find('ecount').text();
            var label = $(this).find('label').text();
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var id = $(this).find('id').text();
                    
            var html = " <div id=\"marker\"> ";
            
            if(PageName !="location-add-1" && PageName != "location-edit-1")
               html = html + " <span> <h5 class='info-head'> <a  href=\""+ url +"\"> " + label + " </a> </h5> </span> ";  
            else
               html = html + " <span> <h5 class='info-head'> <a onclick=\"selectCountry("+ id +");\" style='cursor:pointer'>  " + label + " </a> </h5> </span> ";
                                
            html = html + "    <span style=\"color:gray\"> " + lcount + " " + labels.map_search_location_count + " </span> <br /> " +
                 "    <span style=\"color:gray\"> " + ecount + " " + labels.map_search_entry_count + " </span> " +
                 "<div> ";
            
            var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
            Pegasusla.bounds.extend(point);
            Pegasusla.map.addMarker(Pegasusla.createCountryMarker(html, point));
        });
        Pegasusla.map.fitBounds(Pegasusla.bounds);
    },

    // create marker for countries
    createCountryMarker: function(name, latlng) {
        var shape = {
            coord: [1, 1, 1, 20, 18, 20, 18, 1],
            type: 'poly'
        };
        var marker = new google.maps.Marker({
            position: latlng, map: Pegasusla.map,
            draggable: false,
            icon: COUNTRY_MARKER_ICON,
            shadow: COUNTRY_MARKER_SHADOW_ICON,
            clickable: true,
            shape: shape,
            dragCrossMove: false
            //shadow: COUNTRY_MARKER_SHADOW_ICON
        });
        Pegasusla.markers.push(marker);
        google.maps.event.addListener(marker, "click", function() {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: name });
            infowindow.open(Pegasusla.map, marker);
        });
        return marker;
    },
    
    getCityMarkers : function(langId, countryId, categoryId, keyword){
    
        Pegasusla.map.clearMarkers();
        $("#loader").css({ display: "block", zIndex: 999999, backgroundColor: "#eaeaee" });
        $("#loader").html("<img src=\"a/i/loading.gif\"/> <br />" + labels.map_marker_loader_text);

        Pegasusla.bounds = new google.maps.LatLngBounds();
        var check_count = 1;
        if(PageName == "location-add-1" || PageName == "location-edit-1" ) check_count = 0;
        
        $.ajax({
            type: "POST",
            url: "ajax-service",
            data: { countryId: countryId, langId: langId, ajaxDataServiceType: "GetMapCities",
                    categoryId: categoryId, keyword: keyword, CheckCount: check_count },
            success: function(xml) {

                if ($(xml).find("marker").length > 0) {
                    
                	Pegasusla.fillCityMarkers(xml);
                    
                             
//                    if ((parentLat !="" && parentLat != "undefined") &&
//                    	(parentLng !="" && parentLng != "undefined") &&
//                    	(parentZoomLevel !="" && parentZoomLevel != "undefined")
//                		){
//                		    
//                             
//                             
//                		}{
//                			
//                		}
                    
                    $("#loader").css({ display: "none"});
                    
                } else {
 
                    if (PageName != "location-add-1" && PageName != "location-edit-1")
                        $("#loader").html(labels.map_search_no_result_found);
                    else
                        $("#loader").css({ display: "none"});    
                    
                    
                     var parentLat =  $(xml).find("markers").attr("parentLat");
                     var parentLng =  $(xml).find("markers").attr("parentLng");
                     var parentZoomLevel = $(xml).find("markers").attr("parentZoomLevel");
  
                     var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
                     Pegasusla.map.setZoom(parseInt(parentZoomLevel));
                     Pegasusla.map.setCenter(parentPoint);
                }
                
                 
            }
        });
    },
    
    fillCityMarkers: function(xml){
       
         var x = 1;
         $(xml).find("marker").each(function() {
            var url = $(this).find('url').text();
            var lcount = $(this).find('lcount').text();
            var ecount = $(this).find('ecount').text();
            var label = $(this).find('label').text();
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var id = $(this).find('id').text();
            
            if(x == 1){
                    var parentLat =  $(xml).find("markers").attr("parentLat");
                    var parentLng =  $(xml).find("markers").attr("parentLng");
                    var parentZoomLevel = $(xml).find("markers").attr("parentZoomLevel");
  
                    var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng));
                    Pegasusla.map.setCenter(parentPoint);
                    Pegasusla.map.setZoom(parseInt(parentZoomLevel));
                     
                    x = 2;
            }      
            
            var html = " <div id=\"marker\"> ";
            
            if(PageName !="location-add-1" && PageName != "location-edit-1")
               html = html + " <span> <h5 class='info-head'> <a href=\""+ url +"\"> " + label + " </a> </h5> </span> ";  
            else
               html = html + " <span> <h5 class='info-head'>  <a  onclick=\"selectCity("+ id +");\" style='cursor:pointer'>  " + label + " </a> </h5> </span> "; 
                                
            html = html + "    <span style=\"color:gray\"> " + lcount + " " + labels.map_search_location_count + " </span> <br /> " +
                 "    <span style=\"color:gray\"> " + ecount + " " + labels.map_search_entry_count + " </span> " +
                 "<div> ";

            var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
            //Pegasusla.bounds.extend(point);
            Pegasusla.map.addMarker(Pegasusla.createCityMarker(html, point));
         });
    },
    
    
     // create marker for cities
    createCityMarker: function(name, latlng) {
        var shape = {
            coord: [1, 1, 1, 20, 18, 20, 18, 1],
            type: 'poly'
        };
        var marker = new google.maps.Marker({
            position: latlng, map: Pegasusla.map,
            draggable: false,
            icon: CITY_MARKER_ICON,
            shadow: CITY_MARKER_SHADOW_ICON,
            clickable: true,
            shape: shape,
            dragCrossMove: false
            //shadow: CITY_MARKER_SHADOW_ICON
        });
        Pegasusla.markers.push(marker);
        google.maps.event.addListener(marker, "click", function() {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: name });
            infowindow.open(Pegasusla.map, marker);
        });
        return marker;
    },
    
    getAreaMarkers : function(langId, cityId, categoryId, keyword){
        Pegasusla.map.clearMarkers();
        $("#loader").css({ display: "block", zIndex: 999999, backgroundColor: "#eaeaee" });
        $("#loader").html("<img src=\"a/i/loading.gif\"/> <br />" + labels.map_marker_loader_text);
        var check_count = 1;
        if(PageName == "location-add-1" || PageName == "location-edit-1" ) check_count = 0;
        
        Pegasusla.bounds = new google.maps.LatLngBounds();
        $.ajax({
            type: "POST",
            url: "ajax-service",
            data: { cityId: cityId, langId: langId, ajaxDataServiceType: "GetMapAreas",
                    categoryId: categoryId, keyword: keyword, CheckCount: check_count},
            success: function(xml) {
            
               var parentLat = $(xml).find("markers").attr("parentLat");
               var parentLng = $(xml).find("markers").attr("parentLng");
               var parentZoom = $(xml).find("markers").attr("parentZoomLevel");
               
                   if($(xml).find("marker").length > 0)
                   {
                     Pegasusla.fillAreaMarkers(xml);
                     $("#loader").css({ display: "none"}); 
                     
                     if($(xml).find("marker").length == 1) {
                         var parentLat =  $(xml).find("markers").attr("parentLat");
                         var parentLng =  $(xml).find("markers").attr("parentLng");
                         var parentZoomLevel = $(xml).find("markers").attr("parentZoomLevel");
      
                         var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
                         Pegasusla.map.setZoom(parseInt(parentZoomLevel));
                         Pegasusla.map.setCenter(parentPoint);
                     }
                     else
                        Pegasusla.map.fitBounds(Pegasusla.bounds);
                   }
                   else
                   {
                     
//                     var parentLat =  $(xml).find("markers").attr("parentLat");
//                     var parentLng =  $(xml).find("markers").attr("parentLng");
//                     var parentZoomLevel = $(xml).find("markers").attr("parentZoomLevel");
//  
//                     var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
//                     Pegasusla.map.setZoom(parseInt(parentZoomLevel));
//                     Pegasusla.map.setCenter(parentPoint);
            
                     var CountryID = -1
                     var CityID = -1 
                     var AreaID = -1
                     var CategoryID = -1;
                     var Keyword = ""
                     
                     if (PageName == "search-results" ){
                     
                         if(SearchedCountry > 0)
                            CountryID = SearchedCountry;
                         else
                            CountryID = $("#countryCombo option:selected").val()
                            
                         if(SearchedCity > 0)
                            CityID = SearchedCity;
                         else
                            CityID = $("#cityCombo option:selected").val();
                            
                          
                            
                         if(SearchedArea > 0)
                            AreaID = SearchedArea;
                         else
                            AreaID = $("#areaCombo option:selected").val();
                            
                         if(SearchedCategory > 0)
                            CategoryID = SearchedCategory;
                         else
                            CategoryID = $("#categoryCombo option:selected").val();
                         
                         if(SearchedKeyword.length > 3)
                            Keyword = SearchedKeyword;

                     }else{
                            CountryID = $("#countryCombo option:selected").val();

                            CityID = $("#cityCombo option:selected").val();

                            AreaID = $("#areaCombo option:selected").val();

                            CategoryID = $("#categoryCombo option:selected").val();
                            
                            Keyword = $("#keyword").val();
                     }
                     
                     Pegasusla.getMarkers({
                        ajaxDataServiceType: "SearchLocation",
                        countryId: CountryID,
                        cityId: CityID,
                        areaId: - 1,
                        categoryId: CategoryID,
                        keyword: Keyword
                     });
                     
                     return;
                   }
               
//                if(
//                    (parentLat != "undefined" && parentLat!="") &&
//                    (parentLng !="undefined" && parentLng!="") &&
//                    (parentZoom !="undefined" && parentZoom!="")
//                ){
//                     var parentPoint = new google.maps.LatLng(parseFloat(parentLat), parseFloat(parentLng)); 
//                     Pegasusla.map.setZoom(parseInt(parentZoom));
//                     Pegasusla.map.setCenter(parentPoint);
//                }
//                else{
//                    Pegasusla.map.fitBounds(Pegasusla.bounds);
//                }
               
            }
        });
    },
    
    fillAreaMarkers: function(xml){
         $(xml).find("marker").each(function() {
            var url = $(this).find('url').text();
            var lcount = $(this).find('lcount').text();
            var ecount = $(this).find('ecount').text();
            var label = $(this).find('label').text();
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var id = $(this).find('id').text();
                       
            var html = " <div id=\"marker\"> ";
            
            if(PageName !="location-add-1" && PageName != "location-edit-1")
               html = html + " <span> <h5 class='info-head'> <a  href=\""+ url +"\"> " + label + " </a> </h5> </span> ";  
            else
               html = html + " <span> <h5 class='info-head'>   <a onclick=\"selectArea("+ id +");\" style='cursor:pointer'>  " + label + " </a> </h5> </span> ";  
                             
            html = html + "    <span style=\"color:gray\"> " + lcount + " " + labels.map_search_location_count + " </span> <br /> " +
                 "    <span style=\"color:gray\"> " + ecount + " " + labels.map_search_entry_count + " </span> " +
                 "<div> ";

            var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
            Pegasusla.bounds.extend(point);
            Pegasusla.map.addMarker(Pegasusla.createAreaMarker(html, point));
         });
          
         if (Pegasusla.createDefaultMarker) {
            // set default marker
//            var lat1 = Pegasusla.map.getCenter().lat();
//            var lng1 = Pegasusla.map.getCenter().lng();
//            var point1 = new google.maps.LatLng(parseFloat(lat1), parseFloat(lng1));
//            var marker1 = Pegasusla.setDefaultMarker(point1);
//            Pegasusla.map.addMarker(marker1);
//            Pegasusla.bounds.extend(point1);
//            Pegasusla.map.fitBounds(Pegasusla.bounds);
           
//            Dwindow = new google.maps.InfoWindow({ content:
//                                "<span> <h5>"+    labels.lbl_map_addlocation_icon_desc +"</h5> </span>" });
//                                Dwindow.open(Pegasusla.map, marker1);
            // set default marker
        }
    },
    
      // create marker for areas
    createAreaMarker: function(name, latlng) {
        var shape = {
            coord: [1, 1, 1, 20, 18, 20, 18, 1],
            type: 'poly'
        };
        var marker = new google.maps.Marker({
            position: latlng, map: Pegasusla.map,
            draggable: false,
            icon: AREA_MARKER_ICON,
            shadow: AREA_MARKER_SHADOW_ICON,
            clickable: true,
            shape: shape,
            dragCrossMove: false
        });
        Pegasusla.markers.push(marker);
        google.maps.event.addListener(marker, "click", function() {
            if (infowindow) infowindow.close();
            infowindow = new google.maps.InfoWindow({ content: name });
            infowindow.open(Pegasusla.map, marker);
        });
        return marker;
    },
    
    showLoader : function(){
         Pegasusla.mapLoader.css({ display: "block", zIndex: 999999, backgroundColor: "#eaeaee" });
         Pegasusla.mapLoader.html("<img src=\"a/i/loading.gif\"/> <br />" + labels.map_marker_loader_text);
    },
    
    hideLoader : function(){
        Pegasusla.mapLoader.css({ display: "none" });
    },
    
    bindMarkers: function(xml) {

        $(xml).find("marker").each(function() {
            var detailurl = $(this).find('detailurl').text();
            var label = $(this).find('label').text();
            var webaddress = $(this).find('webaddress').text();
            var address = $(this).find('address').text();
            var phone1 = $(this).find('phone1').text();
            var phone2 = $(this).find('phone2').text();
            var lat = $(this).find('lat').text();
            var lng = $(this).find('lng').text();
            var html = " <div id=\"marker\"> " +
                        "   <span> <h5> " + label + "  </h5> </span>  " +
                       "    <span> <b> " + labels.lbl_marker_address + " </b> <br />" + address + "  </span> <br /> " +
                       "    <span> <b> " + labels.lbl_marker_phone1 + "  </b> " + phone1 + "   </span> <br /> " +
                       "    <span> <b> " + labels.lbl_marker_phone2 + "  </b> " + phone2 + "  </span> <br /> " +
                       "    <span> <b> " + labels.lbl_marker_web_address + " </b>  " + webaddress + "  </span> <br />" +
                       "    <span> <a href='" + detailurl + "'> " + labels.lbl_marker_detail_addr + " </span> " +
                       "<div> ";

            var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
            Pegasusla.bounds.extend(point);
            Pegasusla.map.addMarker(Pegasusla.createMarker(html, point));
        });

 
        Pegasusla.map.fitBounds(Pegasusla.bounds);

        if (Pegasusla.map.getZoom() > 15) Pegasusla.map.setZoom(15);

        if (Pegasusla.createDefaultMarker) {
            var lat1 = Pegasusla.map.getCenter().lat();
            var lng1 = Pegasusla.map.getCenter().lng();
            var point1 = new google.maps.LatLng(parseFloat(lat1), parseFloat(lng1));
            var marker1 = Pegasusla.setDefaultMarker(point1);
            Pegasusla.map.addMarker(marker1);
            if(Dwindow) Dwindow.close();
        }
    },

    setDefaultMarker: function(pos, html) {

        var shape = {
            coord: [1, 1, 1, 20, 18, 20, 18, 1],
            type: 'poly'
        };
  
        var marker = new google.maps.Marker({
            position: pos, map: Pegasusla.map,
            draggable: true,
            icon: BLUE_MARKER_ICON,
            clickable: true,
            shape: shape,
            dragCrossMove: true,
            shadow: BLUE_MARKER_ICON_SHADOW
        });
        
        Dwindow = null;
        Dwindow = new google.maps.InfoWindow({ content:
                            "<span> <h5>"+    labels.lbl_map_addlocation_icon_desc +"</h5> </span>" });
               Dwindow.open(Pegasusla.map, marker);

        google.maps.event.addListener(marker, 'dragend', function(event) {
            var lat = event.latLng.lat();
            var lng = event.latLng.lng();
            var currentLatLng = new google.maps.LatLng(lat, lng);
            Pegasusla.map.setCenter(currentLatLng);
            selectedlat = lat;
            selectedlng = lng;
              if(Dwindow) Dwindow.close();
            updateDefaultMarkerPosition();
        });
        
        google.maps.event.addListener(marker, "click", function() {
                if (infowindow) infowindow.close();
                infowindow = new google.maps.InfoWindow({ content: html });
                infowindow.open(Pegasusla.map, marker);
        });        
                  
        google.maps.event.addListener(Pegasusla.map, 'zoom_changed', function(event) {
            changeDefaultMarkerPosition();
             if(Dwindow) Dwindow.close();
            updateDefaultMarkerPosition();
        });

        google.maps.event.addListener(Pegasusla.map, 'dblclick', function(event) {
            changeDefaultMarkerPosition();
            if(Dwindow) Dwindow.close();
            updateDefaultMarkerPosition();
        });
        
        var firstMove = false;
        google.maps.event.addListener(Pegasusla.map, 'mousemove', function(event) {
             
            var center = Pegasusla.map.getCenter();
            var lat2 = center.lat();
            var lng2 = center.lng();
            var point2 = new google.maps.LatLng(parseFloat(lat2), parseFloat(lng2));
            marker.setPosition(point2);
            selectedlat = lat2;
            selectedlng = lng2;
            updateDefaultMarkerPosition();
        });
        
        google.maps.event.addListener(Pegasusla.map, 'moveend', function(event) {
            if(Dwindow) Dwindow.close();
            var center = Pegasusla.map.getCenter();
            var lat2 = center.lat();
            var lng2 = center.lng();
            var point2 = new google.maps.LatLng(parseFloat(lat2), parseFloat(lng2));
            marker.setPosition(point2);
            updateDefaultMarkerPosition();
        });

        function changeDefaultMarkerPosition() {
            var lat2 = Pegasusla.map.getCenter().lat();
            var lng2 = Pegasusla.map.getCenter().lng();
            var point2 = new google.maps.LatLng(parseFloat(lat2), parseFloat(lng2));
            marker.setPosition(point2);
        }

        function updateDefaultMarkerPosition() {
            $("#ADD_COUNTRY_ID").val($("#countryCombo option:selected").val());
            $("#ADD_CITY_ID").val($("#cityCombo option:selected").val());
            $("#ADD_AREA_ID").val($("#areaCombo option:selected").val());
            $("#ADD_COORD_LAT").val(selectedlat);
            $("#ADD_COORD_LNG").val(selectedlng);
            $("#ADD_ZOOM_LEVEL").val(Pegasusla.map.getZoom());  
        }

        return marker;
    }

}

$(document).ready(function(){

    if(PageName == "profile-edit"){
     var UserWebID = $("#USERWEBID").val();
     if ( UserWebID != "" ) {
         $.ajax({
                type: "POST",
                url: "ajax-service",
                data: { ajaxDataServiceType: "GetFacebookID",  UserWebID: UserWebID },
                success: function(result){
                    if (result != "" && result.length < 32)
                        $(".fcbk-connect").html("<b>" + labels.facebook_info_received + "</b>");
                }
            });
    }}
});

var updateFacebookInfo = function(){
    var facebookID = FB.Connect.get_loggedInUser();
    var UserWebID = $("#USERWEBID").val();
    $("#FacebookID").val(facebookID);
    
    if( UserWebID != "" && UserWebID != undefined ){
    
        $.ajax({
            type: "POST",
            url: "ajax-service",
            data: { ajaxDataServiceType: "UpdateFacebookID", FacebookID : facebookID,  UserWebID: UserWebID },
            success: function(result){
                $(".fcbk-connect").html("<b>" + labels.facebook_info_received + "</b>");
            }
        });
    
    }
    //$(".fcbk-connect").parent().slideUp();
    $(".fcbk-connect").html("<b>" + labels.facebook_info_received + "</b>");
};


function redirectoDefaultPage() {
        window.location.href = "/" + LangID;
    }
 
