/**
 * Created by JetBrains PhpStorm.
 * User: Sonic
 * Date: 30.07.11
 * Time: 17:54
 * To change this template use File | Settings | File Templates.
 */

$j(function() {
    $j(".recipe").mouseenter(function(event) {
        if ($j("#info", this).length > 0) return true;
        $j("#info").remove();
        if ($j(".info", this).length > 0) {

            var div = $j("<div></div>").attr("id", "info");
            $j(div).html($j(".info", this).html());
            //$j(div).css({left:$j(this).offset().left - 100, top:$j(this).offset().top});
            $j("div.cont", this).append(div);
        }
    });

    $j(".recipe").mouseleave(function(event) {
        var x = event.pageX;
        var y = event.pageY;
        var left = $j("#info").offset().left;
        var top = $j("#info").offset().top;
        var right = left + $j("#info").width();
        var bottom = top + $j("#info").height();
        if (x >= left && x <= right && y >= top && y <= bottom) return true;
        else
            $j("#info").remove();
    });

    $j("dt.dropdown").click(function(event) {
        event.preventDefault();
        $j("ul", this).slideToggle("slow");
    });

    $j("form span.desc a.val").click(function(event) {
        event.preventDefault();
        $j("#" + $j(this).attr("rel")).val($j(this).text());
    });

    $j("form span.desc a.add").click(function(event) {
        event.preventDefault();
        var select = $j("#" + $j(this).attr("rel"));
        var newSelect = $j(select).clone();
        $j(newSelect).insertBefore(this.parentNode);
    });

    $j("#menu ul li:not(.sub)").click(function(event) {
        event.preventDefault();
        var menu = $j("#menu")[0];
        var td = menu.parentNode;
        var row = td.parentNode;
        var table = $j(menu).parents("table");
        var a = $j("div.dropdown", td);
        var ccal = parseFloat($j("a", this).attr("data-ccal"));
        if ($j(a).hasClass("new")) {

            var row = $j("<tr><td><div class=\"dropdown\"><a href=\"\">" + $j("a", this).text() + "</a></div></td><td class='ccal'>" + ccal + "</td><td><input type=\"text\" name=\"count[]\" value=\"150.0\"/></td><td class='result'>" + (1.5 * ccal) + "</td><td><div class='delete'></div></td></tr>");
            $j(row).insertBefore(td.parentNode);
            $j("td div.delete").click(function() {
                deleteRow(this);
            });
            $j("div.dropdown", row).click(function(event) {
                event.preventDefault();
                showmenu(this);
            });
            $j("input", row).keyup(function() {
                var table = $j(this).parents("table");
                calc(table);
            });
        }
        else {
            $j(a).text($j("a", this).text());
            $j("td.ccal", row).text(ccal);
        }
        calc(table);
        var active = $j("li.active", menu);
        active[0].removeClass("active");
        $j("td div.dropdown.active").removeClass("active");
        $j(menu).hide();
        return false;
    });

    $j("#menu ul li.sub").click(function(event) {
        event.preventDefault();

        $j("#menu ul li.sub.active").removeClass("active");
        $j(this).addClass("active");
    });

    $j("td div.dropdown").click(function(event) {
        event.preventDefault();
        showmenu(this);
    });

    $j("#search input.q").keyup(function() {
        /*var q = $j(this).val();
         $j.get("/Club/Recepty/search.search.html", {q:q, interface:"search", count:1}, function(json) {
         $j("#search .result span").text(json.count);
         }, 'json');*/
    });

    function showmenu(div) {
        if ($j(div).hasClass("active")) {
            $j("#menu").slideUp("slow");
            $j(div).removeClass("active");
        }
        else {
            $j("td div.dropdown.active").removeClass("active");
            $j("#menu").hide();
            $j("#menu").appendTo(div.parentNode);
            $j(div).addClass("active");
            $j("#menu").slideDown("slow");
        }
    }

    function deleteRow(div) {
        var tr = $j(div).parents("tr");
        var table = $j(div).parents("table");
        $j(tr).slideUp("slow", function() {
            $j(this).remove();
            calc(table);
        });
    }

    function calc(table) {
        var total = 0;
        $j("tbody tr", table).not('.add').each(function() {
            var ccal = parseFloat($j("td.ccal", this).text());
            var col = parseFloat($j("input", this).val());
            var result = ((col / 100) * ccal);
            total += result;
            $j(".result", this).text(result.toFixed(2));
        });
        $j(".total span", table).text(total.toFixed(2));
    }

    /**banner**/

    var current_banner = 1;
    var banners = 0;

    if ($j(".recipes_of_week").length > 0) {
        banners = $j(".recipes_of_week .recipe").length;
    }

    $j(".recipes_of_week .numbers li").click(function() {
        if (banners > 0) {
            var num = parseInt($j(this).attr("rel"));
            if (num > 0 && num <= banners) {
                current_banner = num;
                bannerMove();
            }
        }
    });

    $j(".recipes_of_week .arrow").click(function() {
        if ($j(this).hasClass("left")) {
            current_banner--;
            if (current_banner <= 0) current_banner = banners;
        }
        if ($j(this).hasClass("right")) {
            current_banner++;
            if (current_banner > banners) current_banner = 1;
        }
        bannerMove();
    });

    function bannerMove() {
        var left = (current_banner - 1) * 175;
        var left_numbers = (current_banner - 1) * 39;
        $j(".recipes_of_week .recipes .cont").animate({left: "-" + left + "px"}, function() {
            $j(".recipes_of_week .numbers li.active").removeClass("active");
            $j(".recipes_of_week .numbers li[rel=\"" + current_banner + "\"]").addClass("active");
            if ((current_banner - 1) > 3 && (current_banner - 1) < (banners - 3))$j(".recipes_of_week .numbers ul").animate({left: "-" + left_numbers + "px"});
            else {

                if ((current_banner - 1) >= (banners - 3)) $j(".recipes_of_week .numbers ul").animate({left: "-" + (39 * (banners - 4)) + "px"});
                else if ((current_banner - 1) <= 3) $j(".recipes_of_week .numbers ul").animate({left: 0 + "px"});
            }
        });
    }
});
