$(function () {
    $.fn.jQueryInputHints = function (options) {
        var opts = $.extend({}, $.fn.jQueryInputHints.defaults, options);
        object = $(this);
        return this.each(function () {
            object.data("defText", opts.hintText);
            object.val(opts.hintText);
            object.focus(function () {
                if ($(this).val() == opts.hintText) {
                    $(this).val("")
                }
            });
            object.blur(function () {
                if ($(this).val() == "") {
                    $(this).val(opts.hintText)
                }
            })
        })
    }
});
$(function () {
    initOverlays();
    if (getPage() == "mainpage") {
        mainBannerSlideShow()
    }
    if (getPage() == "personal") {
        initPersonalTable()
    }
    if (getPage() == "newauto" || getPage() == "usedcars" || getPage() == "brand") {
        initCarsTable()
    }
    if (getPage() == "usedcars" || getPage() == "availablecars") {
        initLetters();
        initAvailableTable()
    }
    if (getPage() == "static" || getPage() == "usedcar" || getPage() == "model" || getPage() == "model availablecar") {
        initCarGallery()
    }
    initButtons();
    initFeedback()
});
var getPage = function () {
        if (!window.page) {
            window.page = $("body").attr("class")
        }
        return window.page
    };
var initOverlays = function () {
        var bgimage = "url('/CommonFiles/MainProject/WPM_Templates/Images/common/_src/bg-overlay.png')";
        if (getPage() == "model") {
            var overlays = $(".tech-colors");
            overlays.each(function () {
                var self = $(this);
                self.cwh({
                    bgzindex: 20000,
                    bgclickable: false,
                    bgimage: bgimage,
                    bgopacity: 1,
                    fadespeed: 100,
                }).find(".btn-close").click(function () {
                    $(this).parent().cwhStop();
                    return false
                })
            })
        }
        if (getPage() == "static" || getPage() == "brand" || getPage() == "usedcar" || getPage() == "model" || getPage() == "model availablecar") {
            var overlays = $(".tech-info");
            overlays.each(function () {
                var self = $(this);
                self.cwh({
                    bgzindex: 20000,
                    bgclickable: false,
                    bgimage: bgimage,
                    bgopacity: 1,
                    fadespeed: 100,
                    afterStart: function () {
                        self.find(".content").jScrollPane({
                            scrollbarWidth: 13,
                            dragMinHeight: 100,
                            dragMaxHeight: 100,
                            showArrows: false
                        })
                    }
                }).find(".btn-close").click(function () {
                    $(this).parent().cwhStop();
                    return false
                })
            });
            $(".model-gallery-inner-data").each(function () {
                var galleryItems = $(this).find("a");
                galleryItems.lightBox({
                    txtImage: "",
                    txtOf: "/",
                    imageLoading: "/CommonFiles/MainProject/WPM_Templates/Images/Common/_src/preloader.gif",
                    overlayOpacity: 1
                })
            })
        }
        var overlay = $("#contacts");
        overlay.cwh({
            bgzindex: 20000,
            bgclickable: false,
            bgimage: bgimage,
            bgopacity: 1,
            fadespeed: 100,
            afterStart: function () {
                $("#gmap").gMap({
                    latitude: latitude,
                    longitude: longitude,
                    zoom: 15,
                    markers: [{
                        longitude: longitude,
                        latitude: latitude
                    }],
                    controls: ["GSmallMapControl", "GMapTypeControl"],
                    maptype: G_NORMAL_MAP,
                    scrollwheel: true
                })
            }
        }).find(".btn-close").click(function () {
            $(this).parent().cwhStop();
            return false
        });
        var overlay = $("#feedback");
        overlay.cwh({
            bgzindex: 20000,
            bgclickable: false,
            bgimage: bgimage,
            bgopacity: 1,
            fadespeed: 100
        }).find(".btn-close").click(function () {
            $(this).parent().cwhStop();
            return false
        })
    };
var initCarGallery = function (id) {
        if (typeof id == "undefined") {
            id = "gallery-inner"
        }
        $(".gallery").show();
        var instanceOne = new ImageFlow();
        instanceOne.init({
            ImageFlowID: id,
            imageFocusMax: 3,
            opacity: $.browser.ie ? false : true,
            onClick: function () {
                var self = $(this);
                var src = self.attr("longdesc");
                self.parent().parent().parent().find(".model-gallery-inner-data").find("a").filter('[href="' + src + '"]').trigger("click");
                return false
            }
        })
    };
var initBrandsGallery = function (id) {
        if (typeof id == "undefined") {
            id = "gallery-inner"
        }
        $(".gallery").show();
        var instanceOne = new ImageFlow();
        instanceOne.init({
            ImageFlowID: id,
            opacity: !$.browser.msie,
            imageFocusMax: 3,
            onClick: function () {
                location.href = $(this).attr("longdesc");
                return false
            }
        })
    };
var mainBannerSlideShow = function () {
        var mainBan = $(".mainBanner"),
            mainBanImgs = $(mainBan).find(".imgList"),
            mainBanPrev = $(mainBan).find("a.prev"),
            mainBanNext = $(mainBan).find("a.next");
        $(mainBanImgs).cycle({
            fx: "scrollHorz",
            timeout: 5000,
            next: mainBanNext,
            prev: mainBanPrev,
            slideResize: 0,
            requeueOnImageNotLoaded: true,
            before: function (curr, next, opts) {
                $(mainBan).find(".title b").text(next.title);
                $(mainBan).find(".title span").text(next.alt);
                if ($(next).attr('rel') != '') {
                    $('.title').css('cursor', 'pointer');
                    var nxt = $(next);
                    $('.title').unbind('click').bind('click', function () {
                        location.href = nxt.attr('rel');
                    });
                } else {
                    $('.title').css('cursor', 'default').unbind('click');
                }
            },
            pager: $(mainBan).find("table td.center"),
            pagerAnchorBuilder: function (idx, slide) {
                return '<a href="#">' + slide.title + "</a>"
            }
        })
    };
var initBrand = function () {
        window.initializedModelsColors = new Array();
        window.initializedModelsGalleries = new Array();
        window.lastActiveOverviews = new Array();
        window.lastActiveColors = new Array();
        window.currentModel = 0;
        var modelBig = $("#model-big");
        window.modelBigW = modelBig.width();
        initGalleriesData();
        initModelsPreview();
        initBrandsLogos();
        initModel(0);
        $(".btn-gallery").trigger("click")
    };
var initGalleriesData = function () {
        $(".model-gallery-inner").find("img").each(function () {
            var self = $(this);
            self.data("res", self.attr("alt"))
        })
    };
var initBrandsLogos = function () {
        $(".logo-l,.logo-r,.logo-1").find("img").each(function () {
            var self = $(this);
            var parentH = self.parent().height();
            self.css("top", (parentH - self.height()) / 2)
        });
        $(".logo-1").find("img").each(function () {
            var self = $(this);
            var parentH = self.parent().parent().height();
            self.css("top", (parentH - self.height()) / 2)
        })
    };
var initModel = function (modelId) {
        window.currentModel = modelId;
        lastActiveOverviews[currentModel] = $(".btn-to-models");
        if (!lastActiveColors[currentModel]) {
            lastActiveColors[currentModel] = 0
        }
        $(".brand-info").hide();
        $("#brand-info-" + currentModel).show();
        $("#model-big").find("img").hide();
        $(".model-gallery").hide();
        $(".model-gallery-inner").hide();
        initBrandBtns();
        initColorsPreview()
    };
var initModelsPreview = function () {
        var parent = $("#brand-models");
        calculateNamesPos(parent);
        parent.find(".scrollable").scrollable({
            prev: ".prev-models",
            next: ".next-models"
        });
        parent.find(".items").find("a").click(function () {
            var preview = $(this).parent().parent();
            initModel(preview.attr("id").replace("model-", ""));
            var items = preview.parent().parent();
            var previewImg = preview.find("img");
            var colorImg = $("#model-" + currentModel + "-color-" + lastActiveColors[currentModel]).find(".icon").find("a").find("img");
            $("html").css("background-color", colorImg.attr("alt"));
            items.find(".preview").removeClass("active");
            preview.addClass("active");
            if ($(".btn-gallery").hasClass("active")) {
                $(".btn-gallery").trigger("click")
            } else {
                var url = colorImg.attr("title");
                var modelBig = $("#model-big");
                var bigImg = modelBig.find("img");
                if (bigImg.attr("src") != url) {
                    var pl = $(".preloader");
                    bigImg.hide();
                    pl.show();
                    var img = new Image();
                    img.src = url;
                    img.onload = function () {
                        bigImg.attr("src", url);
                        bigImg.css("left", (modelBigW - img.width) / 2);
                        pl.hide();
                        bigImg.show()
                    }
                } else {
                    bigImg.show()
                }
                $(".model-gallery").hide();
                $(".model-gallery-inner").hide();
                $("#model-big").show();
                $(".btn-gallery").removeClass("active");
                $(".btn-to-models").addClass("active");
                $(".btn-overview").addClass("active")
            }
            return false
        })
    };
var initColorsPreview = function () {
        if (!initializedModelsColors[currentModel]) {
            var parent = $("#model-colors-" + currentModel);
            parent.find(".scrollable").scrollable({
                prev: ".prev-" + currentModel,
                next: ".next-" + currentModel
            });
            parent.find(".items").find("a").click(function () {
                var preview = $(this).parent().parent();
                var id = preview.attr("id").replace("model-" + currentModel + "-color-", "");
                lastActiveColors[currentModel] = id;
                var items = preview.parent().parent();
                var previewImg = preview.find("img");
                $("html").css("background-color", previewImg.attr("alt"));
                items.find(".preview").removeClass("active");
                preview.addClass("active");
                var url = previewImg.attr("title");
                var modelBig = $("#model-big");
                var bigImg = modelBig.find("img");
                if (bigImg.attr("src") != url) {
                    var pl = $(".preloader");
                    bigImg.hide();
                    pl.show();
                    var img = new Image();
                    img.src = url;
                    img.onload = function () {
                        bigImg.attr("src", url);
                        bigImg.css("left", (modelBigW - img.width) / 2);
                        pl.hide();
                        bigImg.show()
                    }
                } else {
                    bigImg.show()
                }
                return false
            });
            initializedModelsColors[currentModel] = 1
        }
    };
var calculateNamesPos = function (parent) {
        parent.find(".name").find(".btn-dark").each(function () {
            var self = $(this);
            self.css("left", (self.parent().parent().width() - self.width()) / 2)
        })
    };
var initBrandBtns = function () {
        $(".btn-gallery").unbind("click").click(function () {
            var brandBtns = $(".brand-btn-wrap").find(".btn-light");
            brandBtns.removeClass("active");
            $(this).addClass("active");
            var model = currentModel;
            if ($("#model-gallery-" + model).css("display") == "none") {
                $("#model-big").hide();
                $("#model-colors-" + currentModel).hide();
                $("#brand-models").show();
                $("#model-gallery-" + model).show();
                $("#model-gallery-inner-" + model).show();
                lastActiveOverviews[currentModel] = $(".btn-to-models");
                if ($("#model-gallery-inner-" + model).find("div").size() == 0) {
                    initModelGallery(model)
                }
                var preview = $("#brand-models").find(".preview");
                if (preview.filter(".active").size() == 0) {
                    preview.filter(":first").addClass("active")
                }
            } else {}
            return false
        });
        $(".btn-overview").unbind("click").click(function () {
            lastActiveOverviews[currentModel].trigger("click");
            return false
        });
        $(".btn-to-colors").unbind("click").click(function () {
            var brandBtns = $(".brand-btn-wrap").find(".btn-light");
            brandBtns.removeClass("active");
            $(this).addClass("active");
            $(".btn-overview").addClass("active");
            $(".model-gallery").hide();
            $(".model-gallery-inner").hide();
            $("#brand-models").hide();
            var preview = $("#model-colors-" + currentModel).find(".preview");
            if (preview.filter(".active").size() > 0) {
                preview.filter(".active").find(".name").find("a").trigger("click")
            } else {
                preview.filter(":first").find(".name").find("a").trigger("click")
            }
            $("#model-colors-" + currentModel).show();
            calculateNamesPos($("#model-colors-" + currentModel));
            $("#model-big").show();
            lastActiveOverviews[currentModel] = $(this);
            return false
        });
        $(".btn-to-models").unbind("click").click(function () {
            var brandBtns = $(".brand-btn-wrap").find(".btn-light");
            brandBtns.removeClass("active");
            $(this).addClass("active");
            $(".btn-overview").addClass("active");
            $(".model-gallery").hide();
            $(".model-gallery-inner").hide();
            $("#model-colors-" + currentModel).hide();
            var preview = $("#brand-models").find(".preview");
            if (preview.filter(".active").size() > 0) {
                preview.filter(".active").find(".name").find("a").trigger("click")
            } else {
                preview.filter(":first").find(".name").find("a").trigger("click")
            }
            $("#brand-models").show();
            $("#model-big").show();
            lastActiveOverviews[currentModel] = $(this);
            return false
        });
        $(".btn-tech-info").unbind("click").click(function () {
            $("#tech-info-" + currentModel).cwhStart();
            return false
        })
    };
var initModelGallery = function (model) {
        var id = "model-gallery-inner-" + model;
        var imgs = $("#" + id).find("img");
        var imgssize = imgs.size();
        if (imgssize > 0) {
            var preloader = $(".preloader");
            preloader.show();
            imgs.each(function () {
                var self = $(this);
                self.attr("src", self.data("res"))
            });
            var instanceOne = new ImageFlow();
            instanceOne.init({
                ImageFlowID: id,
                opacity: $.browser.ie ? false : true,
                imageFocusMax: 3,
                onClick: function () {
                    var self = $(this);
                    var src = self.attr("longdesc");
                    self.parent().parent().parent().find(".model-gallery-inner-data").find("a").filter('[href="' + src + '"]').trigger("click");
                    return false
                }
            });
            preloader.hide()
        }
    };
var initButtons = function () {
        $("#btn-mail").click(function () {
            $("#feedback").cwhStart();
            return false
        });
        if (getPage() == "usedcar" || getPage() == "model") {
            $(".btn-delails").click(function () {
                $(".tech-info").cwhStart();
                return false
            })
        }
        if (getPage() == "usedcar" || getPage() == "model availablecar") {
            $(".btn-detailed").click(function () {
                $(".tech-info").cwhStart();
                return false
            })
        }		
        $("#btn-contacts").click(function () {
            $("#contacts").cwhStart();
            return false
        });
        if (getPage() == "brand" || getPage() == "usedcar" || getPage() == "model" || getPage() == "availablecars") {
            $(".btn-send-request").click(function () {
                $("#feedback").cwhStart();
                return false
            })
        }
        if (getPage() == "model") {
            $(".btn-colors").click(function () {
                $(".tech-colors").cwhStart();
                return false
            })
        }
    };
var initFeedback = function () {
        var form = $("#feedbackForm");
        form.find("#fio").jQueryInputHints({
            hintText: "Фамилия Имя Отчество"
        });
        form.find("#email").jQueryInputHints({
            hintText: "Электронная почта"
        });
        form.find("#phone").jQueryInputHints({
            hintText: "Номер телефона"
        });
        form.find("#topic").jQueryInputHints({
            hintText: "Выберите тему"
        });
        form.find("#message").jQueryInputHints({
            hintText: "Текст сообщения"
        });
        form.find("#topic").focus(function () {
            form.find(".topic-variants").show();
            form.find(".cntr-arrow").addClass("opened")
        });
        form.find(".topic-variants").find("li").click(function () {
            form.find("#topic").val($(this).text());
            form.find(".topic-variants").hide();
            form.find(".cntr-arrow").removeClass("opened")
        });
        form.find(".cntr-arrow").click(function () {
            if ($(this).hasClass("opened")) {
                $(this).removeClass("opened");
                form.find(".topic-variants").hide()
            } else {
                form.find("#topic").focus()
            }
            return false
        });
        form.submit(function () {
            sendMessage();
            return false
        });
        form.find("#feedbackFormSubmit").click(function () {
            form.submit();
            return false
        })
    };
errMessages = new Array();
errMessages[0] = "не заполнены обязательные поля";
errMessages[1] = "не удалось отправить сообщение";
cbMessages = new Array();
cbMessages[0] = "сообщение успешно отправлено";
var sendMessage = function () {
        hideMessages();
        if (validFields()) {
            $.post("/?reqMode=ajax&reqType=sendMessage", {
                fio: jQuery.trim($("#fio").val()),
                email: jQuery.trim($("#email").val()),
                phone: jQuery.trim($("#phone").val()),
                topic: jQuery.trim($("#topic").val()),
                message: jQuery.trim($("#message").val())
            }, function (response) {
                if (response == "1") {
                    hideMessages();
                    showMessage(cbMessages[0])
                } else {
                    hideMessages();
                    showMessage(errMessages[1])
                }
            }, "html")
        } else {
            hideMessages();
            showMessage(errMessages[0])
        }
        return false
    };
var validFields = function () {
        var errorsCnt = 0;
        $(".notFilled").removeClass("notFilled");
        if (jQuery.trim($("#fio").val()) == "" || jQuery.trim($("#fio").val()) == $("#fio").data("defText")) {
            $("#fio").addClass("notFilled");
            errorsCnt++
        }
        if (jQuery.trim($("#email").val()) == "" || jQuery.trim($("#email").val()) == $("#email").data("defText")) {
            $("#email").addClass("notFilled");
            errorsCnt++
        }
        if (jQuery.trim($("#phone").val()) == "" || jQuery.trim($("#phone").val()) == $("#phone").data("defText")) {
            $("#phone").addClass("notFilled");
            errorsCnt++
        }
        if (jQuery.trim($("#topic").val()) == "" || jQuery.trim($("#topic").val()) == $("#topic").data("defText")) {
            $("#topic").addClass("notFilled");
            errorsCnt++
        }
        if (jQuery.trim($("#message").val()) == "" || jQuery.trim($("#message").val()) == $("#message").data("defText")) {
            $("#message").addClass("notFilled");
            errorsCnt++
        }
        return !errorsCnt
    };
var showMessage = function (text) {
        alert(text)
    };
var hideMessages = function () {};
var initPersonalTable = function () {
        $(".short").find("td").click(function () {
            var tr = $(this).parent();
            tr.hide();
            tr.next().css("display", "table-row")
        });
        $(".full").find("td").click(function () {
            var tr = $(this).parent();
            tr.hide();
            tr.prev().css("display", "table-row")
        });
        $(".btn-opinion").click(function () {
            $("#feedback").cwhStart();
            return false
        })
    };
var initLetters = function () {
        var carsLetters = $(".letter");
        var carsLettersArr = new Array();
        var currentLetter = "";
        for (var i = 0; i < carsLetters.size(); i++) {
            var text = carsLetters.eq(i).text();
            if (carsLetters.eq(i).text() != currentLetter) {
                currentLetter = text;
                carsLettersArr.push(text)
            }
        }
        $(".letters").find("span").each(function () {
            var self = $(this);
            var text = self.text();
            for (var i = 0; i < carsLettersArr.length; i++) {
                if (text == carsLettersArr[i]) {
                    self.html("<a href='#'>" + carsLettersArr[i] + "</a>");
                    break
                }
            }
        });
        $(".letters").find("a").click(function () {
            var letter = $(this).text();
            for (var i = 0; i < carsLetters.size(); i++) {
                var text = carsLetters.eq(i).text();
                if (text == letter) {
                    carsLetters.eq(i).parent().parent().css("display", "")
                } else {
                    carsLetters.eq(i).parent().parent().css("display", "none")
                }
            }
            return false
        });
        $("#btn-all-letters").click(function () {
            carsLetters.parent().parent().css("display", "");
            return false
        })
    };
var initCarsTable = function () {
        $(".short").click(function () {
            location.href = $(this).attr("rel");
        })
    };
var initAvailableTable = function () {
        $(".available .short").click(function () {
            location.href = $(this).attr("rel");
        })
    };
//$('.imgList').find('img').each(function() {
//    var self = $(this);
//    if (self.attr('rel')!='') {
//       self.css('cursor','pointer').click(function() {location.href=self.attr('rel')});
//    }
//});
