﻿var Estate = {
    res: {},

    ValidateContactForm: function() {
        var fname = $("#Name").val();
        var fphone = $("#Phone").val();
        var fmessage = $("#Message").val();

        $("#Message").removeClass("error");
        $("#Name").removeClass("error");
        $("#Phone").removeClass("error");

        var error = 0;
        if (fmessage == "") {
            ++error;
            $('#Message').addClass("error");
        }
        if (fname == "") {
            ++error;
            $('#Name').addClass("error");
        }
        if (fphone == "") {
            ++error;
            $('#Phone').addClass("error");
        }

        return error == 0;
    },

    ShowMap: function() {
        $('#SelectedRegions').val($("#LocalityRewrites").val());
        $("#SearchMap").modal();
    },

    SelectRegion: function(name, codename) {
        var currVal = $('#SelectedRegions').val();
        if (currVal.indexOf(name + ",") != -1) {
            return;
        }

        $('#SelectedRegions').val(currVal + name + ', ');
    },

    ResetRegions: function() {
        $('#SelectedRegions').val("");
    },

    ContinueRegions: function() {
        $('#LocalityRewrites').val($('#SelectedRegions').val());
        $('#SelectedRegions').val("");
        $.modal.impl.close();
    },

    // Načtení a vyplnění checkbox list area pro výběr typu místností
    loadRoomTypeList: function() {
        var _langId = __langId;
        var flatTypeId = $("#flattype").val();

        if (flatTypeId == "") {
            $("#subestate").html("");
            return;
        }

        $.ajax({
            type: "POST",
            url: "/Services/Estate.asmx/LoadRoomTypeList",
            data: "{flatTypeId: '" + flatTypeId + "', langId: '" + _langId + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                $("#subestate").html(msg.d);
            }
        });
    },

    RequestValidation: function() {
        var ftitle = $("#Title").val();
        var fname = $("#Name").val();
        var fphone = $("#Phone").val();
        var femail = $("#Email").val();
        var ftext = $("#Text").val();

        var fFlatTypeId = $("#FlatTypeId").val();
        var fLocalityId = $("#LocalityId").val();
        var fOwnershipId = $("#OwnershipId").val();
        var fBuildingTypeId = $("#BuildingTypeId").val();

        $("#Title").removeClass("error");
        $("#Name").removeClass("error");
        $("#Phone").removeClass("error");
        $("#Email").removeClass("error");
        $("#Text").removeClass("error");

        $("#FlatTypeId").removeClass("error");
        $("#LocalityId").removeClass("error");
        $("#OwnershipId").removeClass("error");
        $("#BuildingTypeId").removeClass("error");

        var error = 0;
        if (ftitle == "") {
            ++error;
            $('#Title').addClass("error");
        }
        if (fname == "") {
            ++error;
            $('#Name').addClass("error");
        }
        if (fphone == "") {
            ++error;
            $('#Phone').addClass("error");
        }
        if (femail == "") {
            ++error;
            $('#Email').addClass("error");
        }
        if (ftext == "") {
            ++error;
            $('#Text').addClass("error");
        }
        if (fFlatTypeId == "") {
            ++error;
            $('#FlatTypeId').addClass("error");
        }
        if (fLocalityId == "") {
            ++error;
            $('#LocalityId').addClass("error");
        }
        if (fOwnershipId == "") {
            ++error;
            $('#OwnershipId').addClass("error");
        }
        if (fBuildingTypeId == "") {
            ++error;
            $('#BuildingTypeId').addClass("error");
        }

        $("#nval").val("confirm");

        return error == 0;
    },

    DeleteRequest: function() {
        var fcode = $("#DeleteSecurityCode").val();
        var fmail = $("#DeleteEmail").val();

        var ffalse = $("#falseText").val();
        var ftrue = $("#trueText").val();

        $("#DeleteSecurityCode").removeClass("error");
        $("#DeleteEmail").removeClass("error");

        var error = 0;
        if (fcode == "") {
            ++error;
            $('#DeleteSecurityCode').addClass("error");
        }
        if (fmail == "") {
            ++error;
            $('#DeleteEmail').addClass("error");
        }

        if (error == 0) {
            $.ajax({
                type: "POST",
                url: "/Services/Estate.asmx/DeleteEstateRequest",
                data: "{Email: '" + fmail + "', SecurityCode: '" + fcode + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    if (msg.d == true) {
                        window.location.reload();
                        alert(ftrue);
                    } else {
                        alert(ffalse);
                    }
                }
            });
        }
    },

    SendResponse: function() {
        var ftext = $("#response-text").val();
        var fname = $("#response-name").val();
        var fphone = $("#response-phone").val();
        var femail = $("#response-email").val();
        var fid = $("#EstateRequestId").val();

        $("#response-text").removeClass("error");
        $("#response-name").removeClass("error");
        $("#response-phone").removeClass("error");

        var error = 0;
        if (fname == "") {
            ++error;
            $('#response-name').addClass("error");
        }
        if (ftext == "") {
            ++error;
            $('#response-text').addClass("error");
        }
        if (fphone == "") {
            ++error;
            $('#response-phone').addClass("error");
        }

        if (error == 0) {
            $.ajax({
                type: "POST",
                url: "/Services/Estate.asmx/SendResponse",
                data: "{name: '" + fname + "', phone: '" + fphone + "', email: '" + femail + "', text: '" + ftext + "', id: '" + fid + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {

                }
            });

            $.modal.impl.close();

        }

        return false;
    },

    ShowResponseForm: function(id) {
        $("#EstateRequestId").val(id);
        $("#responseModalContent").modal();
    },

    SendCompareEmail: function() {
        var fname = $('#compare-name').attr('value');
        var femail = $('#compare-email').attr('value');
        var fmessage = $("#compare-message").attr('value');
        var fmailto = $("#compare-mailto").attr('value');
        var furl = $("#compare-url").attr('value');
        var message = $("#emailMessage").attr('value');
        var flangid = __langId;

        $('#compare-name').removeClass("error");
        $('#compare-email').removeClass("error");
        $('#compare-message').removeClass("error");
        $('#compare-mailto').removeClass("error");

        var error = 0;
        if (fname == "") {
            ++error;
            $('#compare-name').addClass("error");
        }
        if (!isValidEmailAddress(femail)) {
            ++error;
            $('#compare-email').addClass("error");
        }
        if (!isValidEmailAddress(fmailto)) {
            ++error;
            $('#compare-mailto').addClass("error");
        }

        if (error == 0) {
            $.ajax({
                type: "POST",
                url: "/Services/Estate.asmx/SendCompareToMail",
                data: "{name: '" + fname + "', email: '" + femail + "', message: '" + fmessage + "', mailto: '" + fmailto + "', langId: '" + flangid + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    alert(message);
                }
            });

            $.modal.impl.close();
        }

        return false;
    },

    SendClipboardEmail: function() {
        var fname = $('#clipboard-name').attr('value');
        var femail = $('#clipboard-email').attr('value');
        var fmessage = $("#clipboard-message").attr('value');
        var fmailto = $("#clipboard-mailto").attr('value');
        var furl = $("#clipboard-url").attr('value');
        var message = $("#emailMessageC").attr('value');
        var flangid = __langId;

        $('#clipboard-name').removeClass("error");
        $('#clipboard-email').removeClass("error");
        $('#clipboard-message').removeClass("error");
        $('#clipboard-mailto').removeClass("error");

        var error = 0;
        if (fname == "") {
            ++error;
            $('#clipboard-name').addClass("error");
        }
        if (!isValidEmailAddress(femail)) {
            ++error;
            $('#clipboard-email').addClass("error");
        }
        if (!isValidEmailAddress(fmailto)) {
            ++error;
            $('#clipboard-mailto').addClass("error");
        }


        if (error == 0) {
            $.ajax({
                type: "POST",
                url: "/Services/Estate.asmx/SendClipboardToMail",
                data: "{name: '" + fname + "', email: '" + femail + "', message: '" + fmessage + "', mailto: '" + fmailto + "', langId: '" + flangid + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    alert(message);
                }
            });

            $.modal.impl.close();
        }

        return false;
    },

    ClipboardButton: function(deleteallMessage, emailMessage, tocomparedMessage) {
        var selectedValue = $('#c_operation2').val();

        switch (selectedValue) {
            case "none":
                return;
            case "deleteall":
                $.ajax({
                    type: "POST",
                    url: "/Services/Estate.asmx/RemoveAllFromClipboard",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        if (msg.d == true) {
                            $('#compareItems').html("");
                            $('#NumClipboard').html("0");
                            $('#NumClipboard2').html("0");
                            alert(deleteallMessage);
                        }
                    }
                });
                break;
            case "tocompare":
                $.ajax({
                    type: "POST",
                    url: "/Services/Estate.asmx/MoveClipboardToCompare",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        if (parseInt(msg.d) > 0) {

                            num = parseInt(msg.d);
                            $('#NumCompare').html(num);
                            $('#NumCompare2').html(num);

                            $('#compareItems').html("");
                            $('#NumClipboard').html("0");
                            $('#NumClipboard2').html("0");
                            alert(tocomparedMessage);
                        }
                    }
                });
                break;
            case "email":
                var num = parseInt($('#NumClipboard').html());
                if (num > 0) {
                    $('#clipboardModalContent').modal();
                }
                break;
        }
    },

    CompareButton: function(deleteallMessage, emailMessage, toclipboardMessage) {
        var selectedValue = $('#c_operation').val();

        switch (selectedValue) {
            case "none":
                return;
            case "toclipboard":
                $.ajax({
                    type: "POST",
                    url: "/Services/Estate.asmx/MoveCompareToClipboard",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        if (parseInt(msg.d) > 0) {

                            num = parseInt(msg.d);
                            $('#NumClipboard').html(num);
                            $('#NumClipboard2').html(num);

                            $('#compareItems').html("");
                            $('#NumCompare').html("0");
                            $('#NumCompare2').html("0");
                            alert(toclipboardMessage);
                        }
                    }
                });
                break;
            case "deleteall":
                $.ajax({
                    type: "POST",
                    url: "/Services/Estate.asmx/RemoveAllFromCompare",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        if (msg.d == true) {
                            $('#compareItems').html("");
                            $('#NumCompare').html("0");
                            $('#NumCompare2').html("0");
                            alert(deleteallMessage);
                        }
                    }
                });
                break;
            case "email":
                var num = parseInt($('#NumCompare').html());
                if (num > 0) {
                    $('#compareModalContent').modal();
                }
                break;
        }
    },

    ShowDetail: function() {
        $('#desc').css('overflow', 'visible');
        $('#desc').css('height', 'auto');
        $('#showAll').toggle();
        $('#hideAll').toggle();

        return false;
    },

    HideDetail: function() {
        $('#desc').css('overflow', 'hidden');
        $('#desc').css('height', '90px');
        $('#showAll').toggle();
        $('#hideAll').toggle();

        return false;
    },

    SendMail: function(id, url, name) {
        $('#forward-url').attr("value", url);
        $('#forward-id').attr("id", id);


        $('#forwardModalContent').modal();
    },

    AddToClipboard: function(id, text) {
        $.ajax({
            type: "POST",
            url: "/Services/Estate.asmx/AddToClipboard",
            data: "{id: '" + id + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                if (msg.d == true) {

                    var num = parseInt($('#NumClipboard').html());
                    num += 1;
                    $('#NumClipboard').html(num);
                    $('#NumClipboard2').html(num);
                    var link = "#clip" + id;
                    var linkRemove = "#clipRemove" + id;
                    $(link).toggle();
                    $(linkRemove).toggle();

                    alert(text);
                }
            }
        });
    },

    RemoveFromClipboard: function(id, text) {
        $.ajax({
            type: "POST",
            url: "/Services/Estate.asmx/RemoveFromClipboard",
            data: "{id: '" + id + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                if (msg.d == true) {

                    var num = parseInt($('#NumClipboard').html());
                    num -= 1;
                    $('#NumClipboard').html(num.toString());
                    $('#NumClipboard2').html(num.toString());
                    var link = "#clip" + id;
                    var linkRemove = "#clipRemove" + id;
                    $(link).toggle();
                    $(linkRemove).toggle();
                    alert(text);
                    location.reload();
                }
            }
        });
    },

    AddToCompare: function(id, text) {
        $.ajax({
            type: "POST",
            url: "/Services/Estate.asmx/AddToCompare",
            data: "{id: '" + id + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                if (msg.d == true) {

                    var num = parseInt($('#NumCompare').html());
                    num += 1;
                    $('#NumCompare').html(num);
                    $('#NumCompare2').html(num);
                    var link = "#compare" + id;
                    var linkRemove = "#compareRemove" + id;
                    $(link).toggle();
                    $(linkRemove).toggle();

                    alert(text);
                }
            }
        });
    },

    RemoveFromCompare: function(id, text) {
        $.ajax({
            type: "POST",
            url: "/Services/Estate.asmx/RemoveFromCompare",
            data: "{id: '" + id + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                if (msg.d == true) {

                    var num = parseInt($('#NumCompare').html());
                    num -= 1;
                    $('#NumCompare').html(num.toString());
                    $('#NumCompare2').html(num.toString());
                    var link = "#compare" + id;
                    var linkRemove = "#compareRemove" + id;
                    $(link).toggle();
                    $(linkRemove).toggle();
                    alert(text);
                    location.reload();
                }
            }
        });


    },

    setResource: function(_res) {
        this.res = _res;
    },
    googleMap: null,
    googleMapOverlays: [],
    // Get the instance of the google map
    getGoogleMap: function() {
        var mapElem = document.getElementById("map");

        if (mapElem) {
            if (this.googleMap == null) {
                this.googleMap = new GMap2(mapElem);
                this.googleMap.addControl(new GMapTypeControl());
                this.googleMap.addControl(new GLargeMapControl());
            }
            return this.googleMap;
        }
        return null;
    },
    // Initialize google map
    googleMapsInitialize: function() {
        for (var i = 0; i < this.googleMapOverlays.length; i++) {
            this.putGoogleMapOverlay(this.googleMapOverlays[i].icon,
                    this.googleMapOverlays[i].lat,
                    this.googleMapOverlays[i].lng);
        }
        this.googleMapOverlays = new Array();
    },
    // Put overlay image to google map
    putGoogleMapOverlay: function(icon, lat, lng) {

        if (this.googleMap == null) {
            this.googleMapOverlays.push({ icon: icon, lat: lat, lng: lng });
            return;
        }

        var map = this.getGoogleMap();
        var gIcon = new GIcon(G_DEFAULT_ICON);
        gIcon.image = icon;
        gIcon.iconSize = new GSize(16, 16);
        gIcon.shadowSize = new GSize(0, 0);
        markerOptions = { icon: gIcon };
        map.addOverlay(new GMarker(new GLatLng(lat, lng), markerOptions));
    },

    // Vyvolání zobrazení galerie při kliknutí na náhledový obrázek reality
    showGallery: function(estateId) {
        var gal = $("a[rel^='lightbox" + estateId + "']");

        if (gal != null && gal.length > 0) {
            Widgets.clickElement(gal[0]);
        }

        return false;
    }
};
