﻿/// <reference path = "../system/jquery-1.4.4-vsdoc.js"/>

$(document).ready(function () {
    if (document.location.href.indexOf("MemberPhotos") > -1) {
        $("div.memberPhotoCaption").find("div.btnAdminArticle").click(function () { togglePhotoFriendsOnly(this); });
    }
});

function togglePhotoFriendsOnly(elem) {
    var $elem = $(elem);
    var friendsOnly = $("#FriendsOnly");
    if ($elem.hasClass("btnArticleApproved")) {
        $elem.removeClass("btnArticleApproved").addClass("btnArticleUnapproved");
        friendsOnly.val("true");
    } else {
        $elem.removeClass("btnArticleUnapproved").addClass("btnArticleApproved");
        friendsOnly.val("false");
    }
}

function initMemberPhotoUploads() {
    $("input#fileUpload").change(function () {
        ChangeImage(this, "#tmpMemberPhoto");
        $("input[name=fakeMemberUpload]").val($("input#fileUpload").val());
        $("div.memberUploadButton").show();
    });
}

//http: //weblogs.asp.net/imranbaloch/archive/2010/04/03/image-preview-in-asp-net-mvc.aspx
function ChangeImage(fileId, imageId) {
    $("div.memberPhotoUploader").fadeIn(500);
    $("div.imageTypeNotice").hide();
    $("#form1").ajaxSubmit({ success: function (responseText) {
        if (isImage(responseText)) {
            var d = new Date();
            $(imageId)[0].src = "/ImagePreview/ImageLoad?a=" + d.getTime();
            $(imageId).show();
            $("input#uploadButton").removeClass("btnSaveDisabled").addClass("btnSaveEnabled").removeAttr("disabled").click(function () { uploadMemberPhoto(this); }); ;
        } else {
            $(imageId).hide();
            $("div.imageTypeNotice").show();
        }
        $("div.memberPhotoUploader").fadeOut(500);
    }
    });
}

function isImage(responseText) {
    var rtg = false;
    var fType = getMemberPhotoType(responseText);
    switch (fType) {
        case "image/pjpeg": //this comes from IE when selecting a jpeg
            rtg = true;
            break;
        case "image/jpeg":
            rtg = true;
            break;
        case "image/jpg":
            rtg = true;
            break;
        case "image/png":
            rtg = true;
            break;
        case "image/gif":
            rtg = true;
            break;
    }
    return rtg;
}

function getMemberPhotoType(responseText) {
    responseText = responseText.toLowerCase();
    var pType = responseText.substring(0, responseText.indexOf(';')).split('<body>');
    
    return pType[pType.length - 1];
}

function uploadMemberPhoto(elem) {
    var $elem = $(elem);
    //$elem.fadeOut(500, function () { $("div.memberPhotoUploader").fadeIn(500, function () { $elem.parents("form")[0].submit(); }) });
    $("div.memberPhotoUploader").fadeIn(500);
    var $form = $elem.parents("form");
    $form.attr("action", "/MemberPhotos/Uploaded");
    $elem.fadeOut(500, function () { $form[0].submit(); });
}

function initMemberPhotoActions() {
    $("input.btnEditMemberPhoto").live("click", function () { editMemberPhoto(this); });
    $("input.btnDeleteMemberPhoto").live("click", function () { deleteMemberPhoto(this); });
}

function editMemberPhoto(elem) {
    var $elem = $(elem);
    var photoId = $elem.siblings("input[name=memberPhotoId]").val();
    var url = "/MemberPhotos/Edit/" + photoId;
    document.location = url;
}

function deleteMemberPhoto(elem) {
    $elem = $(elem);
    var photoId = $elem.siblings("input[name=memberPhotoId]").val();
    var msg = "Are you sure you want to delete this photo?\nIt cannot be undone.";
    if (confirm(msg)) {
        var url = "/MemberPhotos/Delete/" + photoId;
        $.post(url,
            null,
            function (json) {
                if (json = "success") {
                    $elem.parents("div.photoRow").remove();
                } else {
                    // jquery dialog call or
                    alert(json.errorMessage);
                }
            }, 'json');

    }
}

