jQuery.fn.exists = function(){
    return jQuery(this).length>0;
}

$(document).ready(function($) {
    var myhost = location.protocol + "//" + location.host;

    function cacheImage(path) {
        pic = new Image(1000,1000);
        pic.src = path;
    }

    if($(".image_showcase").exists()) {
        var pos = $(".image_showcase").position();
        $(".overlay").attr("style", "left:" + (pos.left - 46) + "px; top:" + (pos.top) + "px;");
        $(".overlay").show();

        $.post(myhost, {
            ajax: "impression"
        }
        , function(data) {
            var counter = 0;
            data = eval(data);
            cacheImage("/images/impression/" + data[1]);
            
            $(".image_showcase img").everyTime(5000, '', function() {
                $(this).fadeTo('slow', 0.001, function() {
                    $(this).attr("src", "/images/impression/" + data[(++counter % data.length)]);
                    $(this).fadeTo('slow', 1.0, function() {                    
                        cacheImage("/images/impression/" + data[((counter + 1) % data.length)]);
                    });
                });
            });
        });
    }

    if($(".casestudies_showcase").exists()) {
        var casestudy_images = undefined;
        var counter = 0;
        var image = $(".casestudies_showcase img");

        $(".f").click(function() {
            update_casestudy_image("next");
        });


        $(".r").click(function() {
            update_casestudy_image("prev");
        });

        $.post(myhost, {
            ajax: "casestudies"
        }
        , function(data) {
            casestudy_images = eval(data);
        });

        function update_casestudy_image(element) {
            if(casestudy_images != undefined) {
                switch (element) {
                    case "prev":
                        counter = (counter == 0) ? (casestudy_images.length - 1) : (counter - 1);
                        cacheImage("/images/casestudies/" + casestudy_images[counter - 1]);
                        break;
                    case "next":
                        counter = (counter == (casestudy_images.length - 1)) ? 0 : (counter + 1);
                        cacheImage("/images/casestudies/" + casestudy_images[counter + 1]);
                        break;
                }

                image.attr("src", "/images/casestudies/" + casestudy_images[counter]);  
            }
        }
    }

    if($(".bookmark").exists()) {
        var bookmark = $(".bookmark");

        bookmark.show();

        bookmark.children("a").click(function() {
            title = $("title").text();

            url = location.href;

            if (window.sidebar) {
                window.sidebar.addPanel(title, url,"");
            } else if( window.external ) { // IE Favorite
                window.external.AddFavorite( url, title);
            } else if(window.opera && window.print) { // Opera Hotlist
                return true;
            }

            event.preventDefault();

            return false;
        });
    }

    if($(".google-nav").exists()) {
        $(".google-nav").show();
        
        var part1 = "http://maps.google.nl/maps?f=d&source=s_d&saddr=";
        var part2 = "&daddr=De+Boelelaan+32,+1083+Amsterdam,+Nederland&g=De+Boelelaan+32,+Amsterdam,+Nederland&ie=UTF8&z=17";
        var walk = "";
        var input = $(".google-nav input");
        var bike = $(".google-nav .bike");
        var car = $(".google-nav .car");
        var button = $(".google-nav .button");

        bike.click(function() {
            car.removeClass("active");
            bike.addClass("active");
            walk = "&dirflg=w";
        });

        car.click(function() {
            bike.removeClass("active");
            car.addClass("active");
            walk = "";
        })

        button.click(function() {
            button.attr("href", part1 + input.val() + part2 + walk, "Google Maps");
        });

        input.keypress(function(event) {
            if(event.keyCode == 13) {
                button.click();
            }
        });

    }
});
