﻿Other_Class = function() { };
////////////////////////////////////
Other_Class.prototype = {

    //////////////////////////////////////////////////////////
    //              GET CLIENT IP                           //
    //////////////////////////////////////////////////////////
    GetUserIP: function() {
        var classPath = "Main.OTHER.GetSystemInfo";
        var methodName = "GetUserIP";
        $.ajax({
            url: "Handler.ashx",
            dataType: "json",
            data: "ClassPath=" + classPath + "&MethodName=" + methodName,
            type: "POST",
            timeout: GlobalVariable.AjaxTimeOut,
            success: function(result) {
                document.title = "CaiGiChoThue.com  [" + result.UserIP + "]";
            },
            error: function(xhr, message, ex) {
                //alert(GlobalVariable.MsgErrorLoadData);
            },
            complete: function() {
            }
        });
    },

    //////////////////////////////////////////////////////////
    //              GMAP                                    //
    //////////////////////////////////////////////////////////
    GMapInit: function(type, point, description) {
        //type=0 -> New ; type=1 -> Edit ; type=2 -> View
        //point: setCenter point, if not setCenter(HCM)
        //description: show description info at Gmaker
        if (GBrowserIsCompatible()) {
            //Options of Google Search bar
            var opts = {
                googleBarOptions: {
                    style: 'new'
                }
            }

            //Options of Marker icon
            var blueIcon = new GIcon(G_DEFAULT_ICON);
            blueIcon.image = "http://maps.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png";
            markerOptions = { icon: blueIcon };
            //LOAD MAP
            GlobalVariable.GMap = new GMap2(document.getElementById("GMapZone"), opts);
            GlobalVariable.GMap.setUIToDefault();

            if (type != "0") {
                p = point.split("|");
                gpoint = new GLatLng(p[1], p[0]);
                if (type == "1") {
                    GlobalVariable.GMap.enableGoogleBar();
                }
                GlobalVariable.GMap.setCenter(gpoint, 14);
                GlobalVariable.GMarker = new GMarker(gpoint, markerOptions);
                GlobalVariable.GMap.addOverlay(GlobalVariable.GMarker);
                if (description != "") {
                    GlobalVariable.GMap.openInfoWindowHtml(gpoint, description);
                }
            }
            else {
                GlobalVariable.GMap.enableGoogleBar();
                GlobalVariable.GMap.setCenter(new GLatLng(10.780528896786468, 106.67737483978271), 14);
                if (description != "") {
                    GlobalVariable.GMap.openInfoWindowHtml(GlobalVariable.GMap.getCenter(), "<b>Click vào Bản Đồ để chọn vị trí tài sản.</b>");
                }
            }

        }

        //Add event CLICK & MOUSE OVER on Google Map
        if (type != "2") {
            //Bind Click event : get new GMarker when user click
            GEvent.addListener(GlobalVariable.GMap, "click", function(overlay, point) {
                //check if exist market
                if (GlobalVariable.GMarker) {
                    GlobalVariable.GMap.removeOverlay(GlobalVariable.GMarker);
                }
                if (point) {
                    // Use the Click Event’s GLatLng
                    var point = new GPoint(point.x, point.y);
                    GlobalVariable.GMarker = new GMarker(point, markerOptions);
                    GlobalVariable.GMap.addOverlay(GlobalVariable.GMarker);
                    GlobalVariable.GMap.openInfoWindowHtml(new GLatLng(point.y, point.x), "<b>Bạn đã chọn vị trí này:</b><br />Bạn có thể chọn lại 1 vị trí khác.");
                    $("#LienHeMap").val(point.x + "|" + point.y);
                }
            });
            //Bind MouseOver event : disible Result&Adv
            GEvent.addListener(GlobalVariable.GMap, "mouseover", function(overlay, point) {
                $(".gels-popup-wrapper").css("display", "none");
            });
        }
        else {
            //Bind MouseOver event : Show description again when mouseover to GMarker
            GEvent.addListener(GlobalVariable.GMarker, "mouseover", function() {
                if (description != "") {
                    GlobalVariable.GMarker.openInfoWindowHtml(description);
                }
            });
        }

    },

    GMapLoadByLocation: function() {

        //GlobalVariable.GMap.setCenter(new GLatLng(10.780528896786468, 106.67737483978271), 14);

        target = "";
        soNha = jQuery.trim($("#SoNha").val());
        duong = jQuery.trim($("#Duong").val());
        phuongXa = jQuery.trim($("#PhuongXa").val());
        quanHuyen = $("#QuanHuyen").val();
        tinhThanh = $("#TinhThanh").val();

        if ($("#GMapChoise").val() <= 3) {
            if (quanHuyen != "0") target = target + quanHuyen + " District,";
            if (tinhThanh != "0") {
                if ((tinhThanh != "TP.HCM") && (tinhThanh != "Hà Nội"))
                    target = target + tinhThanh + " Province,";
                else
                    target = target + tinhThanh + ",";
            }
            target = target + "Vietnam";
        }

        if ($("#GMapChoise").val() <= 1) {
            if (phuongXa != "") target = "Ward " + phuongXa + "," + target;
        }

        if ($("#GMapChoise").val() <= 2) {
            if (duong != "") target = duong + " Street," + target;
        }

        if ($("#GMapChoise").val() == 0) {
            if (soNha != "") target = soNha + "," + target;
        }

        $("#GMapPath").val(target.replace("Street", "").replace("Province", "").replace("District", "").replace("Ward", "phường").replace(",Vietnam", ""));

        document.getElementById(":0:inputId").value = target.replace("Quận", "").replace("Xã", "").replace("Phường", "").replace("Đường", "");
        document.getElementById(":0:buttonId").click();
        $(".gels-popup-wrapper").css("display", "none");
    },

    /////////////////////////////////////////////////////////////
    //              TOOLTIP                                    //
    /////////////////////////////////////////////////////////////
    ImagePreview: function() {
        /* CONFIG */

        xOffset = 10;
        yOffset = 30;

        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result

        /* END CONFIG */
        $("a.preview").hover(function(e) {
            this.t = this.title;
            this.title = "";
            var c = (this.t != "") ? "<br/>" + this.t : "";
            $("body").append("<p id='preview'><img src='" + this.href + "' alt='Image preview' />" + c + "</p>");
            $("#preview")
			    .css("top", (e.pageY - xOffset) + "px")
			    .css("left", (e.pageX + yOffset) + "px")
			    .fadeIn("fast");
        },
	    function() {
	        this.title = this.t;
	        $("#preview").remove();
	    });
        $("a.preview").mousemove(function(e) {
            $("#preview")
			    .css("top", (e.pageY - xOffset) + "px")
			    .css("left", (e.pageX + yOffset) + "px");
        });
    },


    /////////////////////////////////////////////////////////////
    //              CHECK EMAIL VALID                          //
    /////////////////////////////////////////////////////////////
    CheckValidEmail: function(str) {

        var at = "@"
        var dot = "."
        var lat = str.indexOf(at)
        var lstr = str.length
        var ldot = str.indexOf(dot)
        if (str.indexOf(at) == -1) {
            return false;
        }

        if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
            return false;
        }

        if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
            return false;
        }

        if (str.indexOf(at, (lat + 1)) != -1) {
            return false;
        }

        if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
            return false;
        }

        if (str.indexOf(dot, (lat + 2)) == -1) {
            return false;
        }

        if (str.indexOf(" ") != -1) {
            return false;
        }

        return true
    },

    /////////////////////////////////////////////////////////////
    //              NUMBER FUNCTION                            //
    /////////////////////////////////////////////////////////////
    NumberAddCommas: function(nStr) {
        nStr = nStr.replace(/,/g, '');
        nStr += '';

        nStr = "" + (parseFloat(nStr) - 0);
        if (nStr == 'NaN') return "";

        x = nStr.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
        }
        return x1 + x2;
    },

    // Only allow input number with . (dot) ==> Float
    IsNumberKeyDot: function(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode;
        if (charCode != 46) {
            if ((charCode > 31) && (charCode < 48 || charCode > 57))
                return false;
        }
        return true;
    },

    // Only allow input number and no . (dot) ==> Integer
    IsNumberKey: function(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode;
        if ((charCode > 31) && (charCode < 48 || charCode > 57))
            return false;
        return true;
    },

    /////////////////////////////////////////////////////////////
    //              DECODE UNICODE                             //
    /////////////////////////////////////////////////////////////
    DecodeUnicode: function(str) {
        str = str.toLowerCase();
        str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, "a");
        str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, "e");
        str = str.replace(/ì|í|ị|ỉ|ĩ/g, "i");
        str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, "o");
        str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, "u");
        str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, "y");
        str = str.replace(/đ/g, "d");
        str = str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'| |\"|\&|\#|\[|\]|~|$|_/g, "-");
        /* tìm và thay thế các kí tự đặc biệt trong chuỗi sang kí tự - */
        str = str.replace(/-+-/g, "-"); //thay thế 2- thành 1-
        str = str.replace(/^\-+|\-+$/g, "");
        //cắt bỏ ký tự - ở đầu và cuối chuỗi
        return str;
    }


};

var Other = new Other_Class();