(function ($) {
    $.fn.buildProgressMarkup = function () {
        var container = $('div#acq-matriculation').hide();
        var categories = container.find('div.category');
        var items = container.find('div.martriculation-item').find('div.video');
        var markup = $('<div />');
        var catArray = new Array();
        var catArrCount = 0;
        var catBoolean = false;
        categories.each(function () {
            var color = 'gray';
            var val = $(this).text();
            switch (val) {
                case 'Wall Street Basics':
                    color = 'green';
                    break;
                case 'Advanced Class':
                    color = 'blue';
                    break;
                case 'Resident Training Program (RTP) 2008':
                    color = 'purple';
                    break;
                case 'Resident Training Program (RTP) 2007':
                    color = 'purple';
                    break;
                case 'RTP 2008':
                    color = 'purple';
                    break;
                case 'RTP 2007':
                    color = 'purple';
                    break;
            }
            if (catArrCount === 0) {
                markup.append('<h3 class="' + color + '">' + val + '</h3><div class="item-wrap"><ul class="items"></ul></div>');
                catArray[0] = val;
                catArrCount++;
            }
            else {
                $.each(catArray, function (index, value) {
                    if (value === val) {
                        catBoolean = false;
                    } else {
                        catBoolean = true;
                    }
                });
                if (catBoolean) {

                    markup.append('<h3 class="' + color + '">' + val + '</h3><div class="item-wrap"><ul class="items"></ul></div>');
                    catArray[catArrCount] = val;
                    catArrCount++;
                }
            }
        });
        items.each(function () {


            var video = $(this).text();
            var parent = $(this).prev().text();
            var status = 'expired';
            var tooltip = 'Expired';
            var enabled = parseInt($(this).next().text());
            var activePlay = parseInt($(this).next().next().text());
            var lastSegmentViews = parseInt($(this).next().next().next().text());
            var anySegmentViews = parseInt($(this).next().next().next().next().text());


            if (!enabled) {
                status = 'disabled';
                tooltip = 'Disabled';
            }
            else if (activePlay) {
                status = 'in-progress';
                tooltip = 'Play';
            }
            else if (lastSegmentViews) {
                status = 'complete';
                tooltip = 'Complete';
            }
            else if (anySegmentViews) {
                status = 'incomplete';
                tooltip = 'Incomplete';
            }



            //console.log('Video:' + video);
            //console.log('Status:' + status);
            //console.log('Active Play:' + activePlay);
            //console.log('Last Segment Views:' + lastSegmentViews);
            //console.log('Any Segment Views:' + anySegmentViews);



            var header = markup.find('h3:contains("' + parent + '")');
            //alert(header.text());
            var itemWrap = header.next('div.item-wrap');
            //alert(itemWrap.html());
            var items = itemWrap.find('ul.items');
            //alert(items.html());
            var item = $('<li class="' + status + '" />').append('<span />');
            item.children('span').append('<a title="' + tooltip + '" />');
            item.children('span').children('a').append(video);

            items.append(item);
        });
        container.html(markup.html());
        container.accordion({ autoHeight: false });
        container.show();
        container.find('a').unbind('click');
        var viddz = $('.vid-nav');
        if (viddz.size()) {
            var curCat = $('.TopLeftPane').find('.vid-nav').text();
            container.find('h3:contains("' + curCat + '")').click();
        }
    }
})(jQuery);


// Start ACQ Video Restriction Modal Popup Plugin
(function ($) {
    var acqmodal;
    if (!acqmodal) acqmodal = function () { };
    $.fn.acqmodal = function (uid, rid, tid) {
        
        var url = '';
        var url2 = '';
        var proto = window.location.protocol;

        if(proto == 'https:'){

            url = '/VideoSeminars/videotimelimitset.aspx?uid=' + uid + '&rid=' + rid;
            url2 = '/VideoSeminars/videotracking.aspx?uid=' + uid + '&tid=' + tid + '&segmentid=1';
        }
        if(proto == "http:"){
            
           url = '/VideoSeminars/videotimelimitset2.aspx?uid=' + uid + '&rid=' + rid;
           url2 = '/VideoSeminars/videotracking2.aspx?uid=' + uid + '&tid=' + tid + '&segmentid=1';
        }

        
        /* Added 12/31/10
        second call to videotimelimitset.aspx
        that passes @PortalID, @UserID, @TabID, @SegmentID = 1
        */
        var pid = $('#portalid').text();
        //console.log(url2);
        var dialog = $('<div></div>').append('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Proceeding will start your 4 day period. Are you sure?</p>');
        return this.each(function () {
            var link = $(this);
            link.click(function () {
                $('*').dialog("destroy");
                $(document).scrollTop(0);
                $(window).scrollTop(0);
                var text = link.text();
                dialog
                .dialog({
                    title: 'Start 4 day period ?',
                    modal: true,
                    resizable: false,
                    buttons: {
                        'Continue to Video Page': function () {
                            $(this).dialog('close');
                            //console.log(url);
                            $.ajax({
                                url: url,
                                type: 'GET',
                                error: function () {
                                    //console.log('ERROR!');
                                    alert('Tracking Response Error');
                                },
                                success: function (data) {
                                    /* 
                                    Added 12/31/10
                                    */
                                    $.ajax({
                                    url: url2,
                                    type: 'GET',
                                    error: function(){
                                    alert('Tracking Response Error');
                                    },
                                    success: function(data){
                                        window.location.href = link.attr('href');
                                        
                                    }                                   
                                    });
                                    
                                    
                                }
                            });

                        },
                        Cancel: function () {
                            $(this).dialog('close');
                        }
                    }
                });
                return false;
            });
        });
    };
})(jQuery);


(function ($) {
    var fklightbox;
    if (!fklightbox) fklightbox = function () { }
    $.fn.fklightbox = function (options) {
        var defaults = {
            closeSelector: "a.control:contains('Close')"
        }
        var opts = $.extend(defaults, options);
        var elem = this;
        var body = $('body');
        var overlay;
        if (!$('#fk-overlay').size()) {
            overlay = $('<div id="fk-overlay"></div');
        } else {
            overlay = $('#fk-overlay');
        }
        var close = $(opts.closeSelector);
        fklightbox.addEvents = function () {
            elem.bind('click', function () {
                fklightbox.activate();
            });
            $(close).live('click', function () {
                fklightbox.deactivate();
            });
        }
        fklightbox.init = function () {
            overlay.fadeTo(0, 0).hide();
            body.prepend(overlay);
            fklightbox.addEvents();
        }
        fklightbox.activate = function () {
            var curHeight = $('body').outerHeight();
            overlay.height(curHeight).show();
            overlay.fadeTo(0, 0.6);
        }
        fklightbox.deactivate = function () {
            overlay.stop().fadeTo(0, 0).hide();
        }
        return this.each(function () {
            fklightbox.init();
        });
    }
})(jQuery);

(function ($) {
    var acq;
    if (!acq) acq = function () { };
    $.fn.acq = function () {
        var vidControls;
        var player;
        acq.init = function () {
            acq.userLoginModuleInit();
            acq.spotlightInit();
            acq.videoPageInit();
            acq.myAcctInit();
            acq.hideEmptyLeftCol();
            acq.videoNavInit();
        }
        acq.spotlightInit = function () {
            //Spotlight containers specific
            if ($('#spot-left').children('.DNNEmptyPane').length) {
                $('#spot-left').css('border-right', '0');
            }
            if ($('#spot-right').children('.DNNEmptyPane').length) {
                $('#spot-right').css('border-left', '0');
            }
        }
        acq.videoPageInit = function () {
            // Video Page Specific
            var vidNav = $('.video-nav');
            var vidNavExists = vidNav.size();
            if (vidNavExists) {
                vidNav.each(function () {
                    var elem = $(this);
                    var text = elem.text();
                    switch (text) {
                        case 'Wall Street Basics':
                            $('body').addClass('green-nav');
                            break;
                        case 'Advanced Class':
                            $('body').addClass('blue-nav');
                            break;
                        case 'RTP 2008':
                            $('body').addClass('purple-nav');
                            break;
                        case 'RTP 2007':
                            $('body').addClass('purple-nav');
                            break;
                        case 'Double Espresso':
                            $('body').addClass('red-nav');
                            break;
                        case 'Double Espresso 2006':
                            $('body').addClass('red-nav');
                            break;
                        case 'Before You Begin':
                            $('body').addClass('green-nav');
                            break;
                    }
                });
            }
        }
        acq.myAcctInit = function () {
            //My Account Page Specific
            var MyAccount = false;
            var TitleElement = $('#dnn_ctr632_dnnTITLE_lblTitle');
            var ActionsElement = $('#dnn_ctr632_dnnACTIONS_ctldnnACTIONS');
            var ContentElement = $('#dnn_ctr632_ContentPane');
            var TitleExists = TitleElement.size();
            if (TitleExists) {
                var MyAccountTitle = TitleElement.text();
                if (MyAccountTitle == "My Account") {
                    //console.log('My Account Page');
                    $('#spot-right').css({ 'border-left': '1px solid gray', 'padding-bottom': '20px' });
                    TitleElement.parent('h2').parent('div').parent('div.c-head').parent('.c-wrapper').remove().appendTo('#spot-right');
                    $('#spot-left').css({ 'text-align': 'center' });
                    $('<div style="padding-top: 60px;"class="blu-guy"><img src="/Portals/0/site-images-2010/icon_blueMan.png" alt="" /></div>').appendTo('#spot-left');

                    //TitleElement.show();
                    ActionsElement.show();
                    ContentElement.find("table#dnn_ctr632_ManageUsers_Profile_ProfileProperties_tbl").find("span:contains('Visibility')").hide();
                    ContentElement.show();
                    ContentElement.find('a:contains("Manage Services")').remove();
                    ContentElement.find('input[title="Manage Services"]').remove();

                    MyAccount = true;
                } else {
                    TitleElement.show();
                    ActionsElement.show();
                    ContentElement.show();
                    $('#my-act-menu').hide();



                }
            }
            else {
                var pageName = $('div#tab-name').text();
                var myMenu = $('#my-acct-menu');
                switch (pageName) {
                    case 'My Progress':
                        myMenu.find('a.progress').addClass('active');
                        myMenu.show();
                        break;
                    case 'Order History':
                        myMenu.find('a.history').addClass('active');
                        myMenu.show();
                        break;
                } 
            }





            if (MyAccount) {
                $('#my-acct-menu').find('a.profile').addClass('active');
                $('#my-acct-menu').show();
                $('#dnn_ctr632_ContentPane img').each(function () {
                    var elem = $(this);
                    var src = elem.attr('src');
                    switch (src) {
                        case '/images/help.gif':
                            elem.attr('src', '/Portals/0/Skins/ACQ/images/acct/help.gif');
                            break;
                        case '/images/required.gif':
                            elem.attr('src', '/Portals/0/Skins/ACQ/images/acct/required.gif');
                            break;
                    }


                });
                $('#dnn_ctr632_ContentPane input[type="image"]').each(function () {
                    var elem = $(this);
                    var src = elem.attr('src');
                    switch (src) {
                        case '/images/icon_users_16px.gif':
                            elem.attr('src', '/Portals/0/Skins/ACQ/images/acct/icon_users_16px.gif');
                            break;
                        case '/images/save.gif':
                            elem.attr('src', '/Portals/0/Skins/ACQ/images/acct/save.gif');
                            break;
                    }

                });
            }

        }
        acq.hideEmptyLeftCol = function () {
            //Hide empty left col
            //var bodyLeft = $('#body-left');
            //var bodyRight = $('#body-right');
            //if (bodyLeft.find('.DNNEmptyPane').size()) {
            //    bodyLeft.hide();
            //    bodyRight.css({ 'width': '100%','padding': '20px 0' });
            //}
            //$('img[alt="print"]').hide().next('.CommandButton').hide();
        }

        acq.userLoginModuleInit = function () {
            var user = $('td.login-user input');
            var pass = $('td.login-pass input');
            user.attr('value', 'USERNAME');
            pass.attr('value', 'PASSWORD');
            user.bind('focus', function () {
                if ($(this).val() == "USERNAME") {
                    $(this).attr("value", "");
                }
            });
            user.bind('blur', function () {
                var text = $(this).val();
                if (text == "") {
                    $(this).attr("value", "USERNAME");
                }
            });
            pass.bind('focus', function () {
                if ($(this).val() == "PASSWORD") {
                    $(this).attr("value", "");
                }
            });
            pass.bind('blur', function () {
                var text = $(this).val();
                if (text == "") {
                    $(this).attr("value", "PASSWORD");
                }
            });
        }
        acq.videoNavInit = function () {
            var index = 0;
            vidControls = $('<div id="vid-controls" />');
            if (!$('img.img-link').size()) {
                setTimeout(acq.videoNavInit, 1000);
                vidControlsReady = false;
            }
            else {
                vidControlsReady = true;
                $('img.img-link').each(function () {
                    var elem = $(this);
                    var index = $(this).index();
                    var control = $('<a class="vidnav" />');
                    control.append(elem);
                    vidControls.append(control);
                });
                $('#writeroot table').remove();
                $('#writeroot').hide().append(vidControls);
                acq.addVideoEvents();
                acq.disableAll();
                vidControls.children('a').each(function () {
                    var index = $(this).index();
                    if ((index === 0) || (index === 1)) {
                        acq.enable(index);
                    }
                    else { }
                });
                $('#writeroot').show();
                play(0, false);
            }
        }
        acq.addVideoEvents = function () { $('.vidnav').live('click', acq.navClick); }
        acq.navClick = function () {
            var proceed = true;
            var numVidz = $('.vidnav').size();
            var elem = $(this);
            var index = $(this).index();


            //if (($(this).index() + 1) === numVidz) {console.log('Play All button clicked!!');}
            //else { console.log('Video ' + $(this).index() + ' button clicked!!'); }
            if (proceed) {
                play($(this).index(), false);
                acq.enable($(this).index() + 1);
                //TODO: Review w/RM to determine whether index starts @0 or @1
                acq.updateTracking($(this).index() + 1);
            }
            else { }
        }
        acq.enable = function (index) {
            vidControls.children('a').eq(index).removeClass('disabled').addClass('enabled');
            if (vidControls.children('a').eq(index).children('div.disabled').size()) {
                vidControls.children('a').eq(index).children('div.disabled').remove();
            }
        }
        acq.disable = function (index) {
            var overlay = $('<div class="disabled" />');
            var control = vidControls.children('a').eq(index);
            control.removeClass('enabled').addClass('disabled');
            control.append(overlay);
        }
        acq.disableAll = function () {
            var overlay = $('<div class="disabled" />');
            var control = vidControls.children('a');
            control.removeClass('enabled').addClass('disabled');
            control.append(overlay);
        }
        acq.updateTracking = function (index) {
            var uid = $('#uid').text();
            var tabid = $('#tabid').text();
           
            var url = '';
            var proto = window.location.protocol;

            if(proto == 'https:'){                
                url = '/VideoSeminars/videotracking.aspx?uid=' + uid + '&tid=' + tabid + '&segmentid=' + index;
            }
            if(proto == "http:"){            
               url = '/VideoSeminars/videotracking2.aspx?uid=' + uid + '&tid=' + tabid + '&segmentid=' + index;
            }
            //console.log(url);
            $.ajax({
                url: url,
                type: 'GET',
                error: function () {
                    //console.log('ERROR!');
                    alert('Tracking Response Error');
                },
                success: function (data) {
                    //console.log(data);
                }
            });
        }
        $('.disabled').live('click', function () {
            /*TODO
            * Alert status:
            * 
            * "You must watch video segments in order."
            */
            $(document).scrollTop(0);
            var dialog = $('<div></div>').append('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>You must watch video segments in order.</p>');
            dialog.dialog({
                modal: true,
                buttons: {
                    Ok: function () {
                        $(this).dialog('close');
                    }
                }
            });
            return false;
        });
        return acq.init();
    };
    var vidEnable;
    if (!vidEnable) vidEnable = function () { };
    $.fn.vidEnable = function (index) {
        if (!$('img.img-link').size()) { setTimeout('$.fn.vidEnable(' + index + ')', 3000); }
        else {
            for (var count = 0; count < index; count++) {
                acq.enable(count);
            }
        }
    }
})(jQuery);
jQuery(document).ready(function ($) {
    $(document).bind('mousemove', function () {
        var bodyHeight = $('div#page-middle-wrap').outerHeight();
        var adminBody = $('div#page-middle-wrap-admin');
        if (adminBody.size()) {
            bodyHeight = adminBody.outerHeight();
        }
        $('.frame-left').height(bodyHeight + 104);
        $('.frame-right').height(bodyHeight + 104);
    });
    //$(document).bind('cut copy paste', function (e) {
    //    e.preventDefault();
    //    alert('You cannot ' + e.type + ' text!');
    //});


    $.fn.acq();
    $('a#UserRolesPopup').fklightbox();
    $('a#UserDetailPopup').fklightbox();
    $('a#UserPhonePopup').fklightbox();
    var infoBtn = $('.CATRow img');
    infoBtn.each(function () {
        var elem = $(this);
        var src = elem.attr('src');
        if (src === "/DesktopModules/CATALooKStore/Skins/compact-grey/moreinfo.gif") {
            elem.hide();
        }
    });
    var LoginLinks = $('a.user-list-login');
    if (LoginLinks.size()) {
        tooltip = $('<div class="tooltip"></div>').css({
            'position': 'absolute',
            'border': '4px solid red',
            'background': 'white',
            'padding': '30px',
            'font-size': '18px'
        }).fadeTo('fast', 0.6);
        LoginLinks.each(function () {
            var elem = $(this),
            title = elem.attr('title');
            //console.log(title);
            elem.attr('title', '');
            var offset = elem.offset();
            tooltip.css({ 'left': offset.left, 'top': offset.top }).hide().appendTo('body');
            elem.bind('mouseover', function () {
                tooltip.text(title).show();
            });
            elem.bind('mouseout', function () {
                tooltip.text(title).hide();
            });
            elem.bind('mousemove', function (e) {
                tooltip.css({ 'left': e.pageX - tooltip.outerWidth() / 2, 'top': e.pageY + 18 });
            });

        });
    }
});
