var clickHandlers={}

function addClickHandlers() {
    //$("a.external").mousedown(function(e) {
    //    // fire and forget since user is navigating away from site
    //    $.post("/ajax/click", { url: e.target.href }, function(data){});
    //});
    
    //$("a.like").click(function(e) {
    //    e.preventDefault();
    //    var likedLink = $(this)
    //    // send request
    //    $.post("/post/like", { post: e.target.id }, function(data) {
    //        var count = parseInt(data);
    //        if (!isNaN(count)) {
    //            likedLink.parent(".like-container").html("<span class='liked'>Liked</span> (" + data + ")");
    //        }
    //    });
    //});
    
    $("a.comment-link").click(function(e) {
       e.preventDefault();
       var commentLink = $(this);
       // extract answer id
       var answerId = e.target.id.split("comment-link-")[1];
       $("#comments-"+answerId+" .commentFormContainer").toggle();
       var commentField = $("#comments-"+answerId+" #comment_body");
       //commentField.val("Write a comment...");
       commentField.focus();
    });

    $("a.cancelcomment-link").click(function(e) {
       // hide parent comment div and clear field
       e.preventDefault();
       var cancelLink = $(this);
       cancelLink.parent().parent().parent().parent().toggle();
       cancelLink.parent().parent().parent().children("textarea").val("");
    });

    $(".commentFormContainer form").submit(function(e) {
       var thisForm = $(this).get(0);
       var answer = thisForm.a.value;
       var commentField = thisForm.b;
       var body = commentField.value;
       var includeReply = thisForm.r.checked;
       var submitButton = thisForm.submitcomment;
       if (body.length == 0) {
           alert("Please enter a comment");
              commentField.focus();
           return false;
       }
       
       // disable fields
       commentField.disabled = true;
       submitButton.disabled = true;
       $.post("/ajax/comment", { a:answer, b:body, r:includeReply}, function(data) {
           var response = data.split("|");
           if (response[0] == "SUCCESS") {
             $("#comments-"+answer+" .commentsContainer").append(response[1]);
             $("div.last_comment").fadeIn().removeClass("last_comment");
             commentField.value = "";
             commentField.disabled = false;
             submitButton.disabled = false;
           }
       });
       
       return false;
    });
       
}

function updateProfileImage(image, status_id) {
    //alert(image.id)
    $.post("/user/update_profile_image", { status_id: status_id }, function(data) {
        //alert("updated image")
    });
}

function updateProfileImageUser(image, username) {
//    $.post("/user/update_profile_image", { u: username }, function(data) {
//        //alert("updated image")
//    });
}

function trackPostEvent(event, key) {
    $.post("/post/event/" + event, { key: key, referrer: document.referrer }, function(data) {
    });
}        

function searchRelatedPosts(key) {
    $.post("/tasks/related_posts", {key: key, method: "search"}, function(data) {
      //alert("search complete")
    });
}        

//$.validator.setDefaults({
//	submitHandler: function() { alert("submitted!"); }
//});

function addAnswerFormValidator() {
    $("#answerForm").validate({
        rules: {
            email_address: {
                required: "#subscribe_email:checked",
                email: true
            }
        },
        messages: {
            answer: {
                required: "Whoops! You forgot to write an answer"
            },
            email_address: {
                required: "Please enter an email addres"
            }
        }
    });

    // code to hide email
    var subscribeEmail = $("#subscribe_email");
    // email subscription is optional, hide at first
    var inital = subscribeEmail.is(":checked");
    var emailAddressContainer = $("#emailAddressContainer")[inital ? "removeClass" : "addClass"]("hide");
    //var emailAddressInputs = emailAddressContainer.find("input").attr("disabled", !inital);
    // show when subscribe is checked
    subscribeEmail.click(function() {
    	emailAddressContainer[this.checked ? "removeClass" : "addClass"]("hide");
    	if (this.checked) {
    	    $("#email_address").focus().select();
    	}
    	//emailAddressInputs.attr("disabled", !this.checked);
    });
}


