//cow speech
var cowspeech = ["I'm so sad, even Eeyore feels sorry for me.","I want to go to that city, but it's too far away.",":(","I'm allergic to grass!","My milk has gone sour.","Aww.","*sob*","I'm sad.","I want to be one of those Kobe cows that get massages.","I'm so common, I'm not even Aberdeen Angus.","SUX2BME","*sigh*","I'll never meet the right bull for me.","All the bulls ignore me.","I can't even do HTML.","My DVD player only plays the first twenty minutes of <em>Up</em>.","I miss <em>Firefly</em>.","I wish I were in outer space.","I want bigger udders.","My udders are lop-sided.","I live in a china shop."];

var stateObj = { foo: "bar" };

var updatehash = false;

$("document").ready(function() {
    bindcow();
});

function bindTags() {
    $(".project_tags .tag").unbind("click").click(function() {
        var searchtag = $(this).children(".tag_mid").text();
        doSearch (searchtag);
    });
}

function bindcow() {
    $(".cow").click(function() {
        $(".cow").unbind("click");
        //pick randow word
        var arrlength = cowspeech.length;
        while (cowspeech[ran] == undefined) {
            var ran = Math.round(Math.random()*arrlength);
            $(".bubble_main").html(cowspeech[ran]);
        }
        $(".bubble_main").bestlength({'height': 107, 'usetables': true});
        $(".speech_bubble_holder").stop(true, true).fadeIn(500);
        setTimeout('$(".speech_bubble_holder").stop(true, true).fadeOut(500, function() { bindcow() });', 4000);
    });
}

function loadProject(projectid) {
    $(".project_title, .project_info").html('<div class="ajax_loader"></div>');
    $(".project_tags").html('<div class="ajax_loader_round"></div>');
    $(".project_comment").fadeOut();
    $("#editpost").attr("href", "post.php?pid="+projectid);
    $.getJSON("ajax.php", { func: "loadProject", projectId: projectid }, function(post) {
        $(".project_title div").fadeOut(500, function() {
            $(".project_title").html('<div class="hideme">'+post.title+'</div>');
            $(".project_title div").fadeIn(500);
        });

        $(".project_info div").fadeOut(500, function() {
            $(".project_info").html('<div class="hideme" id="mainpost">'+post.content+'</div>');
            prettyCode();
            $('#mainpost a[target="_blank"]').append(' <img class="ext_lnk" src="images/external-link-over.png" width="10" height="12" alt="external" />');
            $('#mainpost a[target="_blank"]').children("img").attr("src", "images/external-link.png");
            $('#mainpost a[target="_blank"]').mouseenter(function() {
                $(this).children("img").attr("src", "images/external-link-over.png");
            });
            $('#mainpost a[target="_blank"]').mouseleave(function() {
                $(this).children("img").attr("src", "images/external-link.png");
            });

            //social stuff
            var pageurl = 'http%3A//sadcow.co.uk/?p='+post.id;
            var social = '<div class="social_holder">';
            if (post.newer != 'x') {
                social += '<div class="newer_post" id="'+post.newer+'" title="'+post.newertitle+'"></div>';
            }
            if (post.older != 'x') {
                social += '<div class="older_post" id="'+post.older+'" title="'+post.oldertitle+'"></div>';
            }
            social += '<div class="social">' +
            '<a target="_blank" href="http://digg.com/submit?url='+pageurl+'"><img class="social_icon digg" src="images/digg.png" width="24" height="24" alt="Digg" title="Digg this!" /></a>' +
            '<a href="http://www.reddit.com/submit?url='+pageurl+'" target="_blank"><img class="social_icon reddit"  src="images/reddit.png" width="24" height="24" alt="Reddit" title="Post about this on Reddit!" /></a>' +
            '<a href="http://twitter.com/?status='+pageurl+'" target="_blank"><img class="social_icon twitter"  src="images/twitter.png" width="24" height="24" alt="Twitter" title="Tweet about this post!" /></a>' +
            '<a href="http://www.facebook.com/share.php?u='+pageurl+'" target="_blank"><img class="social_icon facebook" src="images/facebook.png" width="24" height="24" alt="Facebook" title="Mention this on filthy, filthy Facebook." /></a>' +
            '<a href="http://www.sadcow.co.uk/feed.php"><img class="social_icon rss"  src="images/feed.png" width="24" height="24" alt="RSS Feed" title="The RSS feed for this site." /></a>' +
            '</div></div>';
            $("#mainpost").append(social);

            $(".project_info div").slideDown(500, function() {
                bindNav();
                $(".social_icon").sadcowtooltip();
            });
            $("#mainpost").find(".twitter_search").twitterpopup();
            // history.pushState(stateObj, 'sad cow: '+post.title, "index.php?p="+post.id);
        });

        if (post.demo_url != "") {
            if ($(".project_demo").is(":hidden")) {
               $(".project_demo").fadeIn(250);
            }
            $(".project_demo div").fadeOut(500, function() {
                $(".project_demo").html('<div class="hideme"><div class="demo_button" title="'+post.demo_url+'"></div></div>');
                $(".project_demo div").slideDown(500);
                bindNav();
            });
        } else {
            $(".project_demo").fadeOut(500);
        }

        if (post.download_url != "") {
            if ($(".project_download").is(":hidden")) {
               $(".project_download").fadeIn(250);
            }
            $(".project_download div").fadeOut(500, function() {
                $(".project_download").html('<div class="hideme"><div class="download_button" id="'+post.download_url+'"></div><div class="download_info">Version '+post.download_version+'<br />'+post.download_size+'<br /><span id="downloads">'+post.downloads+'</span> downloads</div><div class="clear"></div></div>');
                $(".project_download div").slideDown(500);
                bindNav();
            });
        } else {
            $(".project_download").fadeOut(500);
        }


        $.getJSON("ajax.php", { func: "loadTags", projectId: post.id }, function(tags) {
            $(".project_tags div").fadeOut(500, function() {
                $(".project_tags").html(tags.tags+'<div class="clear"></div>');
                $(".project_tags ul").slideDown(500);
                bindTags();
                loadComments(post.id);
            });
        });
    });
}

function loadComments(postid) {
    $.getJSON("ajax.php", { func: "loadComments", projectId: postid }, function(comments) {
        if ($(".comments_holder").is(":visible")) {
            $(".comments_holder").slideUp(500, function() {
                $(".comments_holder").html(comments.comments.replace('---at---', '@')).slideDown(500, bindComments);
            });
        } else {
            $(".comments_holder").html(comments.comments).slideDown(500, bindComments);
        }

    });
}

function bindComments() {
    $(".add_comment").click(function() {
        var code = '<div class="addcomment"><input type="text" id="comname" value="Your name..." /></div>' +
        '<div class="addcomment"><textarea  rows="4" cols="5" id="comcomment">Your comment...</textarea></div>' +
        '<input type="hidden" id="projid" value="'+$(this).attr("id")+'" />' +
        '<div class="submitbutton navbutton" id="comsubmit" /><div class="clear"></div>';
        $(".add_comment").unbind("click").html(code);

        $("#comname, #comcomment").each(function() {
            $(this).data("def", $(this).val()).data("valid", false);
        });

        $("#comname, #comcomment").focus(function() {
            if ($(this).val() == $(this).data("def")) {
                $(this).val('');
            }
            $(this).css({"color":"#7C8A8E"});
        });

        $("#comname").blur(function() {
            if ($(this).val() != '' && $(this).val().length < 40) {
                $("#comname").css({"color":"#44aa44"}).data("valid", true);
            } else {
                $("#comname").css({"color":"#aa4444"}).data("valid", false);
            }
        });

        $("#comcomment").blur(function() {
            if ($(this).val() != '') {
                $("#comcomment").css({"color":"#44aa44"}).data("valid", true);
            } else {
                $("#comcomment").css({"color":"#aa4444"}).data("valid", false);
            }
        });

        bindNav();
    });
}

function postComment() {
    if ($(".commentsubmiterror").is(":visible")) {
        $(".commentsubmiterror").remove();
    }
    if ($("#comcomment").data("valid") == false || $("#comname").data("valid") == false) {
        $(".add_comment").append("<div class=\"commentsubmiterror\">Sorry, but there's something in your submission that I didn't like.<br />Please make sure all the boxes are filled in and your name is less than 50 characters long.<br />Once all of the text is green, you're good to go!</div>");
        $(".commentsubmiterror").slideDown();
    } else {
        $.ajax({url: "ajax.php", type: "post", data: ({func :  "newComment", postid : $("#projid").val(), comname :$("#comname").val(), comcomment :$("#comcomment").val()}), async:false, success: function(ret) {
            if (ret == "mod") {
                $(".add_comment").html('<div class="needs_modding">Hi!<br />Your comment has been saved, but it looks like there was a link in it, or something else that my anti-spam filter picked up.<br />Assuming all is okay, your comment will appear as soon as it has been moderated - there is no need for you to post it again.<br />Cheers!</div>');
            } else {
                loadComments($("#projid").val())
            }
        }});
    }
};

function prettyCode () {
    $.beautyOfCode.init({
        theme: 'RDark',
        brushes: ['Xml', 'JScript', 'CSharp', 'Plain', 'Php'],
        ready: function() {
            jQuery.beautyOfCode.beautifyAll()
        }
    });
}
