﻿/// <reference path="jquery-1.6.4.min.js" />
/// <reference path="jquery.anythingslider.min.js" />

$(document).ready(function () { // Navigation
    var $trigger = $("a.nav-link");
    var $layer = $("div.nav-block");
    $trigger.click(function () {
        if ($layer.is(":hidden")) {
            $layer.show();
            $trigger.addClass("nav-link-active");
        } else {
            $layer.hide();
            $trigger.removeClass("nav-link-active");
        }
    });

    $layer.find("a.close").click(function () {
        $layer.hide();
        $trigger.removeClass("nav-link-active");
    });
});

$(document).ready(function () {
    var $last = $("div.text-container > div.text-block").last();
    $last.css("margin-right", "0");
});

$(document).ready(function () { // Carousel
    var $carousels = $("div.carousel ul");
    $carousels.each(function (index) {
        var $carousel = $(this);
        var $pages = $carousel.parent("div.carousel").next("div.page").children("a");
        $carousel.anythingSlider({
            width: "417px",
            height: "417px",
            autoPlay: true,
            enablePlay: false,
	    delay: index == 0 ? 5000 :8000,
            startPanel: 1,
            hashTags: false,
            enableKeyboard: false,
            infiniteSlides: true,
            buildArrows: false,
            buildNavigation: false,
            buildStartStop: false
        });

        if ($pages.length != 1) {
            var currentIndex = 0;
            $pages.eq(currentIndex).addClass("active");
            $pages.click(function () {
                var $page = $(this);
                if (!$page.hasClass("active")) {
                    currentIndex = $pages.index($page);
                    $carousel.data('AnythingSlider').startStop(false);  // auto play stop
                    $carousel.data('AnythingSlider').gotoPage(currentIndex + 1);
                    $carousel.data('AnythingSlider').startStop(true); // auto play start
                }
                return false;
            });

            $carousel.bind("slide_complete", function (e, slider) {
                currentIndex = slider.currentPage - 1;
                $pages.removeClass("active");
                $pages.eq(currentIndex).addClass("active");
            });
        } else {
            $pages.hide();
        }
    });
});

$(document).ready(function () { // Search
    // Query
    var $query = $("#q");
    var defaultValue = $query.attr("placeholder");
    if ($query.val() == "") {
        $query.val(defaultValue);
    }

    $query.focus(function () {
        var $this = $(this);
        if ($this.val() == defaultValue) {
            $this.val("");
        }
    });

    $query.blur(function () {
        var $this = $(this);
        if ($this.val() == defaultValue) {
            $this.val(defaultValue);
        }
    });

    // Tag
    var $tag = $("#tag");
    var $select = $tag.parent();
    var $dropdown = $select.children("div.dropdown");
    var $trigger = $select.children("a.trigger");
    $trigger.click(function () {
        if ($dropdown.is(":hidden")) {
            $dropdown.show();
        } else {
            $dropdown.hide();
        }
        return false;
    });

    $(document).click(function () {
        if (!$dropdown.is(":hidden")) {
            $dropdown.hide();
        }
    });

    var $current = $select.children("span.current");
    var $options = $dropdown.find("a");
    $options.click(function () {
        var $this = $(this);
        $current.text($this.text());
        $tag.val($this.data("uuid"));
        $dropdown.hide();
        $search.click(); // auto post selected tag
        return false;
    });

    if ($tag.val() != "") {
        $options.each(function () {
            var $this = $(this);
            if ($this.data("uuid") == $tag.val()) {
                $current.text($this.text());
            }
        });
    }

    // Submit
    var $searchForm = $("#search-form");
    var $search = $("#search");
    $search.click(function () {
        if ($query.val() == defaultValue) {
            $query.val("");
        }
        $searchForm.submit();
        return false;
    });
});

$(document).ready(function () { // Page break
    var $slider = $("#slider");
    var $prev = $("a.prev");
    var $next = $("a.next");
    var length = $slider.children("li").length;
    $slider.anythingSlider({
        width: "460px",
        height: "320px",
        buildArrows: false,
        buildNavigation: false,
        buildStartStop: false
    });

    var currentIndex = 0;
    $prev.click(function () {
        if (currentIndex > 0) {
            $slider.data('AnythingSlider').goBack();
        }
        return false;
    });

    $next.click(function () {
        if (currentIndex < length - 1) {
            $slider.data('AnythingSlider').goForward();
        }
        return false;
    });

    $slider.bind('slide_complete', function (e, slider) {
        currentIndex = slider.currentPage - 1;
        if (currentIndex == 0) {
            $prev.hide();
        }
        else {
            $prev.show();
        }

        if (currentIndex == length - 1) {
            $next.hide();
        }
        else {
            $next.show();
        }
    });
});

$(document).ready(function () { // Contact form
    var $contactForm = $("#contact-form");
    $contactForm.find(":input[data-default]").each(function () {
        var $this = $(this);
        var defaultValue = $this.data("default");
        $this.val(defaultValue);
        $this.focus(function () {
            if ($this.val() == defaultValue) {
                $this.val("");
            }
        }).blur(function () {
            if ($this.val() == "") {
                $this.val(defaultValue);
            }
        });
    });

    var $telephone = $("input[name='Telephone']");
    $contactForm.validate({
        rules: {
            Name: {
                required: true,
                defaultInvalid: true
            },
            Email: {
                required: true,
                defaultInvalid: true,
                email: true
            },
            Telephone: {
                /*required: true,
                defaultInvalid: true,*/
                telephone: $telephone.data("default") /* default value */
            },
            Message: {
                required: true,
                defaultInvalid: true
            }
        },
        messages: {
            Name: {
                required: "*",
                defaultInvalid: "*"
            },
            Email: {
                required: "*",
                defaultInvalid: "*",
                email: "*"
            },
            Telephone: {
                /*required: "*",
                defaultInvalid: "*",*/
                telephone: "*"
            },
            Message: {
                required: "*",
                defaultInvalid: "*"
            }
        },
        submitHandler: function (form) { // Submit
            if ($telephone.val() == $telephone.data("default")) {
                $telephone.val("");
            }

            form.submit();
        }
    });

    var $btnSend = $contactForm.find("button.btn-send");
    $btnSend.hover(function () {
        $btnSend.addClass("nav-link-active");
    }, function () {
        $btnSend.removeClass("nav-link-active");
    });
});
