$is_loading = false;
$active_case = "";

$(document).ready(function(){
    
    $(".twitter, .email, .facebook").css('opacity', 0.8);
    
    $(".twitter, .email, .facebook").easyTooltip();
    
    $(".twitter, .email, .facebook").hover(function(){
        $(this).fadeTo(50, 1);
    }, function(){
        $(this).fadeTo(50, 0.8);
    });
    
    $(".case img").each(function(){
        check_if_loaded($(this));
    });
    
    $(".case").click(function(){
        if($(this).hasClass('direct_link'))
        {
            return true;
        }
        else if($(this).hasClass('showreel') && $(this).hasClass('active'))
        {
            close_overlay();
            return false;
        }
        else if($(this).hasClass('showreel'))
        {
            if(! $is_loading)
            {
                $is_loading = true;
                load_showreel($(this));
                return false;
            }
        }
        else if(! $(this).hasClass('active'))
        {
            if(! $is_loading)
            {
                $is_loading = true;
                load_case($(this));
                return false;
            }
        }
        else if($(this).hasClass('active'))
        {
            close_overlay();
            return false;
        }
    });
    
    $(".case").hover(function(){
        if(! $is_loading)
        {
            $(this).fadeTo(100, 1);
        }
    },function(){
        if(!$(this).hasClass('active')) {
            $(this).fadeTo(100, 0.6);
        }
    });
    
    $("#case_info .close").click(function(){
       return false; 
    });
    
    $('#livesearch').keyup(function(event) {
        if (event.keyCode == '27') {
            setTimeout(function(){
                closeLiveSearch();
            }, 100);
        }
    });
    
    
});

check_if_loaded = function(obj)
{
    var img = new Image();
    img.src = obj.attr('src');
    $(img).load(function(){
        $(obj).fadeIn(450);
    });
}

load_case = function(el)
{
    $active_case = el;
    var case_id = el.find('a').attr('href').replace('#', '');
    $('.case').css('opacity', 0.6).removeClass('active');
    el.css('opacity', 1).append('<div class="loading"></div>').addClass('active');
    var row = $("#"+el.attr('rel'));
    var new_div = $(el).attr('id')+"_container";
    var time_out = 100;
    $('.viewing_case').remove();
    setTimeout(function(){
        $('.viewing_case').remove();
        row.after('<div class="viewing_case div_4" id="'+new_div+'"></div>');
        $.post("cases/view/"+case_id, function(data) {
            $("#"+new_div).css('display', 'none');
            $("#"+new_div).html(data);
            $("#"+new_div).slideDown(500);
            setTimeout(function(){
                var offset = row.offset().top;
                $("html, body").animate({scrollTop: offset-20}, 500);
            }, 1000);
        });
        el.find('.loading').remove();
        $is_loading = false;
    }, time_out);
}

load_showreel = function(el)
{
    $active_case = el;
    var case_id = el.find('a').attr('href').replace('#', '');
    $('.case').css('opacity', 0.6).removeClass('active');
    el.css('opacity', 1).append('<div class="loading"></div>').addClass('active');
    var row = $("#"+el.attr('rel'));
    var new_div = $(el).attr('id')+"_container";
    var time_out = 100;
    $('.viewing_case').remove();
    setTimeout(function(){
        $('.viewing_case').remove();
        row.after('<div class="viewing_case div_4" id="'+new_div+'"></div>');
        $.post("showreels/view/"+case_id, function(data) {
            $("#"+new_div).css('display', 'none');
            $("#"+new_div).html(data);
            $("#"+new_div).slideDown(500);
            setTimeout(function(){
                var offset = row.offset().top;
                $("html, body").animate({scrollTop: offset-20}, 500);
            }, 1000);
        });
        el.find('.loading').remove();
        $is_loading = false;
    }, time_out);
}

close_overlay = function()
{
        $active_case.removeClass('active');
        $active_case.css('opacity', 0.6)
        var el = $('.viewing_case');
        el.remove();
        $("html, body").animate({scrollTop: "-=300"}, 500);
}

change_video = function(v, i)
{
    $("#video_player").attr({
        src: v,
        poster: i
    });
}

function preformSearch()
{
    setTimeout(function(){
        var keyword = $("#livesearch").val().toLowerCase();
        var keyword_array = new Array();
        keyword_array = keyword.split(" ");
        var j = 0;
        $(keyword_array).each(function(){
          if(this == "") {
            keyword_array.remove(j);
          }
          j+=1;
        });
        var keyword_length = keyword_array.length;
        $("#content").fadeTo(500, 0.2);
        $("#results").html("<div class='clear'></div>");
        $("#results").html("<div class='clear'></div><h1>Cases matching: "+keyword);
        var i = 0;
        var ii = 0;
        $($cases).each(function(){
            var content = this.alla.toLowerCase();
            var m = 0;
            $(keyword_array).each(function(){
                if(content.toLowerCase().match(this)) {
                    m+=1;
                }
            });
            if(m > 0) {
                i++;
                if(i%4 === 0) {
                    var klass = "div_1 case no-right-margin";
                } else {
                    var klass = "div_1 case";
                }
                $("#results").append('<div class="'+klass+' direct_link"><a href="'+this.url+'"><h3>'+this.title+'</h3><img style="display:block;" src="'+this.thumb+'" /></a></div>');
            }
        });
        if(i == 0) {
            $("#results").append("<p>No matches</p>");
        } else {
            var llink = keywords_to_url($("#search input").val());
            $("#results").append('<div id="input_link"><input type="text" value="'+llink+'"></div>');
            $("#input_link input").click(function(){
                $(this).focus().select();
            });
        }
        $("#results").slideDown(500);
        $("#results").append("<p class='close' onclick='closeLiveSearch();'>Close search</p><div class='clear'></div>");
    }, 150);
}

function keywords_to_url(keys) {
    var keyword = keys.toLowerCase();
    var keyword_array = new Array();
    keyword_array = keyword.split(" ");
    var j = 0;
    $(keyword_array).each(function(){
      if(this == "") {
        keyword_array.remove(j);
      }
      j+=1;
    });
    var i = 0;
    var search = "";
    $(keyword_array).each(function() {
        i+=1;
        if(i == keyword_array.length) {
            search+=this;
        } else {
            search+=this+"_";
        }
    });
    return "http://www.redrumpost.se/search/tags/"+search;
}

function generate_search() {
    setTimeout(function(){
        var keyword = $("#livesearch").val().toLowerCase();
        var keyword_array = new Array();
        keyword_array = keyword.split(" ");
        var j = 0;
        $(keyword_array).each(function(){
          if(this == "") {
            keyword_array.remove(j);
          }
          j+=1;
        });
        var i = 0;
        var search = "";
        $(keyword_array).each(function() {
            i+=1;
            if(i == keyword_array.length) {
                search+=this;
            } else {
                search+=this+"_";
            }
            window.location = "http://www.redrumpost.se/search/tags/"+search;
        });
    }, 150);
}

Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};

function closeLiveSearch()
{
    $("#content").fadeTo(500, 1);
    $("#results").slideUp(500);
    $("#livesearch").blur().attr('value', 'type to search');
}
