﻿function printWorkContent(content_id) {
    var work_content_preview = $(content_id);
    var header = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml' ><html><head><link href=\"/AltStyles/printsubmission.css\" type=\"text/css\" rel=\"stylesheet\" /></head><body><div id=\"work_preview\">";
    var footer = "</div></body></html>";
    var win = window.open("", "print_work_content_window", "", false);

    win.document.write(header + work_content_preview.html() + footer);
    win.document.close();
    return false;
}

function printCategories(type) {
    var content = jQuery("#cat_" + type).html();
    var menu = jQuery("#cat_" + type + "_menu").html();
    var logo = "<img src='/Images/alliance_logo_630x85.gif' alt='Alliance Logo' />";
    
    var header = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml' ><html><head><link href=\"/AltStyles/printsubmission.css\" type=\"text/css\" rel=\"stylesheet\" /></head><body><div id=\"work_preview\">";
    var footer = "</div></body></html>";
    var win = window.open("", "print_categories", "", false);

    win.document.write(header + logo + menu + content + footer);
    win.document.close();
    return false;
}

function getItemsNumber() {
    var itemHeight = 122;
    var itemWidth = 122;
    var header = 23 + 23 + 42; //header + footer + next button
    var windowHeight = $(window).height();
    var windowWidth = $(window).width();
    var verticalCount = Math.floor((windowHeight - header) / itemHeight);
    var horizontalCount = Math.floor(windowWidth / itemWidth);
    var count = verticalCount * horizontalCount;
    if (count == 0) {
        count = [horizontalCount, verticalCount, 1].filter(function(e) { return e > 0 })[0];
    }
    return count;
}

function toggleDajPanelContent(id) {
    $('#panelContent' + id).toggle();
    var obj = $('#panelToggle' + id);
    $('#panelContent' + id).is(':visible') ? obj.html('&#150;') : obj.html('+');
}

function toggleDajPanelRounds(select) {
    var row = $('#included_rounds');
    select.selectedIndex == 0 ? row.show() : row.hide();
}

function baseJudgingTool(save_path, left_container, right_container) {
    var objPd = new Object;
    objPd.activeWork = null;
    objPd.activate = function(id) {
        var strId = 'asset_' + id;
        $('.image img').removeClass('activated');
        $('.image div').removeClass('activated');
        $('#' + strId).children().addClass('activated');
        if (objPd.activeWork == null) {
            objPd.setNavigationButtonActions();
        }
        this.activeWork = id;
        objPd.updateDashboard();
    }
    objPd.setNavigationButtonActions = function() {
        $(document).ready(function() {
            if ($('#fancy_left')) $('#fancy_left').click(objPd.activatePrevious);
            if ($('#fancy_left span')) $('#fancy_left span').click(objPd.activatePrevious);
            if ($('#fancy_right')) $('#fancy_right').click(objPd.activateNext);
            if ($('#fancy_right span')) $('#fancy_right span').click(objPd.activateNext);
        });
    }
    objPd.updateDashboard = function() {
        var self = this;
        $.ajax({
            type: "POST",
            url: "/DAJ/PromoteDemoteJudgingDashboard",
            data: { work_id: this.activeWork },
            dataType: "html",
            success: function(msg) {
                var objMsg = eval("(" + msg + ")");
                var uploadLink = objMsg.UploadLink;
                $('#dashboardContent').html('Title: ' + objMsg.Title + '<br />Type: ' + objMsg.Type + '<br />Materials: ' + objMsg.Materials + '<br />Dimensions: ' + objMsg.Dimensions + '<br />Barcode: <a href="' + uploadLink + '" target="_blank">' + objMsg.Barcode + '</a><br /><a href="' + objMsg.AssetFullPath + '" >Download Original File</a>');
                $('#Comment').html(objMsg.Comment);
            }
        });
    }
    objPd.countJudgings = function() {
        var h_1 = $('#' + left_container + '_header span');
        var h_2 = $('#' + right_container + '_header span');
        var left_count = $('#' + left_container + ' li').size();
        var right_count = $('#' + right_container + ' li').size();
        h_1.html('(' + left_count + ')');
        h_2.html('(' + right_count + ')');
    }
    objPd.activatePrevious = function() {
        var element = $('#asset_' + objPd.activeWork).parent().prev().children('a.image').attr('id');
        var id = element.split('_').pop();
        objPd.activate(id);
    }
    objPd.activateNext = function() {
        var element = $('#asset_' + objPd.activeWork).parent().next().children('a.image').attr('id');
        var id = element.split('_').pop();
        objPd.activate(id);
    }
    objPd.initFancy = function() {
        $("a.judgingImage").fancybox({ 'zoomSpeedIn': 300, 'zoomSpeedOut': 300, 'overlayShow': false });
    }
    objPd.setLimit = function(limit) {
        this.limit = limit;
    }
    objPd.limitExceeded = function() {
        if (this.limit == null) {
            return false;
        }
        var size = $('#' + right_container + ' li').size();
        return this.limit < size;
    }
    objPd.judgingWorksPopup = function(path) {
        window.open(path, 'JudgingWorks', 'fullscreen=1,menubar=0,toolbar=0,scrollbars=1,resizable=0,status=0');
    }

    $('#' + left_container).sortable({ connectWith: '#' + right_container, receive: function(event, ui) { objPd.countJudgings(); ui.item.children().attr('rel', left_container); } });
    $('#' + right_container).sortable({ connectWith: '#' + left_container, receive: function(event, ui) { objPd.countJudgings(); ui.item.children().attr('rel', right_container); } });

    return objPd;
}

function promoteDemoteTool(save_path, left_container, right_container) {
    var objPd = new baseJudgingTool(save_path, left_container, right_container);
    objPd.completedJudging = function(panel_id) {
        if (objPd.limitExceeded()) {
            alert("Invalid number of works nominated.\n" + objPd.limit + " work(s) should be submitted.");
            return false;
        } else {
            var leftParams = $('#' + left_container).sortable("serialize", { key: left_container }) || left_container + '=0';
            var rightParams = $('#' + right_container).sortable("serialize", { key: right_container }) || right_container + '=0';
        }
        $.ajax({
            type: "POST",
            url: save_path,
            data: leftParams + '&' + rightParams + '&panel_id=' + panel_id,
            dataType: "html",
            success: function(msg) {
                var objMsg = eval("(" + msg + ")");
                if (objMsg.type == 'Success') {
                    $('#message').html(objMsg.content).removeClass().addClass('success').show();
                }
                else if (objMsg.type == 'Failure') {
                    $('#message').html(objMsg.content).removeClass().addClass('failure').show();
                }
            }
        });
    }
    return objPd;
}

function nominateTool(save_path, left_container, right_container) {
    var objPd = new promoteDemoteTool(save_path, left_container, right_container);
    objPd.setLimit(5);
    return objPd;
}

function winnersTool(save_path, left_container, right_container) {
    var objWT = new baseJudgingTool(save_path, left_container, right_container);
    objWT.chooseWinner = function(region_id) {
        var leftParams = $('#' + left_container).sortable("serialize", { key: left_container }) || left_container + '=0';
        var rightParams = $('#' + right_container).sortable("serialize", { key: right_container }) || right_container + '=0';

        $.ajax({
            type: "POST",
            url: save_path,
            data: leftParams + '&' + rightParams + '&region_id=' + region_id,
            dataType: "html",
            success: function(msg) {
                var objMsg = eval("(" + msg + ")");
                if (objMsg.type == 'Success') {
                    $('#message').html(objMsg.content).removeClass().addClass('success').show();
                }
                else if (objMsg.type == 'Failure') {
                    $('#message').html(objMsg.content).removeClass().addClass('failure').show();
                }
            }
        });
    }
    objWT.setLimit(1);
    return objWT;
}

function confirmLink(link, message) {
    if (confirm(message)) {
        var f = document.createElement('form');
        f.action = link.href;
        f.method = 'POST';
        link.parentNode.appendChild(f);
        f.submit();
        return false;
    }
    else {
        return false;
    }
}

function AssetBrowserInitFancy() {
    $(document).ready(function() {
        var cookieHeight = parseInt($.cookie('screenHeight'));
        $(".iframe").fancybox(
            { 'frameWidth': 900, 'frameHeight': 700 }
        );
    });
}

function AssetBrowser(numberOfAssets, workId) {
    var ab = new Object();
    ab.number = numberOfAssets;
    ab.current = 0;
    ab.workId = workId;
    ab.previous = function() {
        if (this.current <= 0) return;
        this.current--;
        this.showCurrent();
    }
    ab.next = function() {
        if (this.current + 1 >= this.number) return;
        this.current++;
        this.showCurrent();
    }
    ab.setLinksVisibility = function() {
        if (this.current == 0) {
            $('#previousLink').hide();
        } else {
            $('#previousLink').css('display', 'inline');
        }
        if (this.current + 1 == this.number) {
            $('#nextLink').hide();
        } else {
            $('#nextLink').css('display', 'inline');
        }
    }
    ab.showCurrent = function() {
        $('.assetBrowser').hide();
        var current = $('#asset_browser_image_' + this.current);
        ab.updateDashboard(ab.workId, current.attr('title'));
        current.show();
        this.setLinksVisibility();
    }

    $(window).scroll(function() {
        var leftMagin = Math.ceil(($(window).width() - 120) / 2);
        $('#assetsBrowserNavigation').css('margin-left', (leftMagin + $(window).scrollLeft()) + 'px');
    });

    ab.updateDashboard = function(activeWork, activeAsset) {
        $.ajax({
            type: "POST",
            url: "/DAJ/PromoteDemoteJudgingDashboard",
            data: { work_id: activeWork, asset_id: activeAsset },
            dataType: "html",
            success: function(msg) {
                var objMsg = eval("(" + msg + ")");
                var uploadLink = objMsg.UploadLink;
                window.parent.$('#dashboardContent').html('Title: ' + objMsg.Title + '<br />Type: ' + objMsg.Type + '<br />Materials: ' + objMsg.Materials + '<br />Dimensions: ' + objMsg.Dimensions + '<br />Barcode: <a href="' + uploadLink + '" target="_blank">' + objMsg.Barcode + '</a><br /><a href="' + objMsg.AssetFullPath + '" >Download Original File</a>');
                window.parent.$('#Comment').html(objMsg.Comment);
            }
        });
    }
    return ab;
}

function updateDashboard(activeWork) {
    $.ajax({
        type: "POST",
        url: "/DAJ/PromoteDemoteJudgingDashboard",
        data: { work_id: activeWork },
        dataType: "html",
        success: function(msg) {
            var objMsg = eval("(" + msg + ")");
            var uploadLink = objMsg.UploadLink;
            if (objMsg.Type == 'A') {
                $('#dashboardContent').html('Title: <a href="' + uploadLink + '" target="_blank">' + objMsg.Title + '</a><br />Category: ' + objMsg.Category + '<br />Materials: ' + objMsg.Materials + '<br />Dimensions: ' + objMsg.Dimensions + '<br />Barcode: <a href="' + uploadLink + '" target="_blank">' + objMsg.Barcode + '</a><br /><a href="' + objMsg.AssetFullPath + '" >Download Original File</a>');
                $('#Comment').html(objMsg.Comment);
            } else {
                $('#dashboardContent').html('Title: <a href="' + uploadLink + '" target="_blank">' + objMsg.Title + '</a><br />Category: ' + objMsg.Category + '<br />No. Of Pages: ' + objMsg.NoOfPages + '<br />No. Of Words: ' + objMsg.NoOfWords + '<br />Barcode: <a href="' + uploadLink + '" target="_blank">' + objMsg.Barcode + '</a>');
                $('#Comment').hide();
            }
        }
    });
}

function basePlaylistTool(save_path, left_container, right_container) {
    var objPt = new Object;
    objPt.activeWork = null;
    objPt.activate = function(id) {
        var strId = 'item_' + id;
        $('.image img').removeClass('activated');
        $('#' + strId + ' img').addClass('activated');
        this.activeWork = id;
    }
    objPt.countWorks = function() {
        var h_1 = $('#' + left_container + '_header span');
        var h_2 = $('#' + right_container + '_header span');
        var left_count = $('#' + left_container + ' li').size();
        var right_count = $('#' + right_container + ' li').size();
        h_1.html(left_count);
        h_2.html(right_count);
    }
    objPt.activatePrevious = function() {
        var element = $('#item_' + objPt.activeWork).parent().prev().children('a.image').attr('id');
        if (element != null) {
            var id = element.split('_').pop();
            objPt.activate(id);
        }
    }
    objPt.activateNext = function() {
        var element = $('#item_' + objPt.activeWork).parent().next().children('a.image').attr('id');
        if (element != null) {
            var id = element.split('_').pop();
            objPt.activate(id);
        } 
    }
    objPt.initFancy = function() {
        $("a.playlist_zoomin").fancybox({ 'zoomSpeedIn': 600, 'zoomSpeedOut': 600, 'overlayShow': false, 'autoDimensions': false, 'width': 700, 'height': 650 });
        $("a.playlist_zoomin_text").fancybox({ 'zoomSpeedIn': 600, 'zoomSpeedOut': 600, 'overlayShow': false, 'autoDimensions': false, 'width': 800, 'height': 600, 'hideOnContentClick': false, 'hideOnOverlayClick': true });
    }
    objPt.judgingWorksPopup = function(path) {
        window.open(path, 'JudgingWorks', 'fullscreen=1,menubar=0,toolbar=0,scrollbars=1,resizable=0,status=0');
    }

    $('#' + left_container).sortable({ connectWith: '#' + right_container, receive: function(event, ui) { objPt.countWorks(); ui.item.children().attr('rel', left_container); } });
    $('#' + right_container).sortable({ connectWith: '#' + left_container, receive: function(event, ui) { objPt.countWorks(); ui.item.children().attr('rel', right_container); } });

    return objPt;
}

function galleryPlaylistTool(save_path, left_container, right_container) {
    var objPt = new basePlaylistTool(save_path, left_container, right_container);
    return objPt;
}

function saveGalleryPlaylist(save_path, left_container, right_container) {
    var leftCont = $('#' + left_container);
    var rightCont = $('#' + right_container);
    var leftParams = leftCont.children().size() > 0 ? leftCont.sortable("serialize", { key: left_container }) : left_container + '=0';
    var rightParams = rightCont.children().size() > 0 ? rightCont.sortable("serialize", { key: right_container }) : right_container + '=0';

    $.ajax({
        type: "POST",
        url: save_path,
        data: leftParams + '&' + rightParams,
        dataType: "html",
        success: function(msg) {
            var objMsg = eval("(" + msg + ")");
            ShowMessage(objMsg.content, objMsg.type.toLowerCase());
        }
    });
}

function ShowMessage(message, className) {
    ShowMessageWithTimeLimit(message, className, 5000);
}

function ShowMessageWithTimeLimit(message, className, time_limit) {
    $('#message').html(message).removeClass().addClass(className).show();
    setTimeout(function() { $('#message').html('').removeClass().hide(); }, time_limit);
}
