var embedCode = '<iframe src="{0}/media/{1}/e/{2}/{3}" frameborder="0" width="{4}" height="{5}"></iframe>';

document.observe('dom:loaded', function() {

    dwr.engine.setErrorHandler(errh);
    embedMovie(media.id,
            language,trackerId);
    var inviteLink = $('inviteLink');
    if (inviteLink != null) {
        inviteLink.observe("click", showInviteDiv);
        $('inviteButton').observe('click', invite);
    }

    var translateMenu = $('translateLanguage');
    var translateButton = $('translate');
    if (translateButton != null && translateMenu.childElements().length != 0) {
        //
        var combo = new Ext.form.ComboBox({
            typeAhead: true,
            style: "float: left;",
            triggerAction: 'all',
            emptyText: messages['videoDisplay.choosealanguage'],
            transform:'translateLanguage',
            forceSelection:true,
            width: 220,
            hideLabel: true,
            listeners: {
                'select': function(){
                    translateButton.enable();
                }
            }
        });
        combo.clearValue();
        translateButton.disable();
        translateButton.observe('click', function () {
            var selected = combo.getValue();
            window.location = contextRoot + '/translate/' + media.id + '/' + selected;
        });
        if (translateMenu != null) {
            translateMenu.observe('change', function() {
                translateButton.enable();
            });
        }
    }
    else if (translateButton != null && translateMenu.childElements().length == 0){
        $('translateArea').remove();
    }
    //hide actions pane if no actions we're allowed
    var mediaActions = $('mediaActions');
    if (mediaActions != null) {
        if (mediaActions.childElements().size() == 0) {
            mediaActions.up('.module').hide();
        }
    }

    //report video functions
    $('reportVideo').observe('click', function() {
        $('reportForm').show();
        $('reportButton').observe('click', function() {
            var answer = confirm(messages['videoDisplay.reportWarning']);
            if (answer) {
                Mailer.reportOffensiveVideo(media.id, $F('reportComments'));
                $('reportVideo').replace(messages['videoDisplay.thanksForReport']);
                $('reportForm').hide();
            }
        });
    });
    if ($('downloadType') != null) {
        ///
        new Ext.form.ComboBox({
            typeAhead: true,
            triggerAction: 'all',
            allowBlank:false,
            transform:'downloadType',
            forceSelection:true,
            width: 220,
            hideLabel: true,
            listeners: {
                'select': function(combo){
                    var newValue = combo.getValue();
                    $$('.downloadTrascript').each(function(e) {
                        if (!e.href.endsWith(newValue)) {
                            e.href = (e.href.substr(0, e.href.lastIndexOf("/") + 1) + newValue);
                        }
                    });
                }
            }
        });
        //
    }
    //admin mark a transcript not complete
    if ($('markNotComplete') != null) {
        $('markNotComplete').observe("click", function(event) {
            var answer = confirm(messages['videoDisplay.makeNotCompleteWarning']);
            if (answer) {
                CaptionManager.markTranscriptionNotComplete(media.id, function() {
                    window.location = contextRoot + '/view/' + media.id
                });
            }
            event.stop();
        });
    }

    //change owner feature
    if ($('changeOwner')) {
        $('changeOwner').observe('click', function(event) {
            event.stop();
            $('changeOwnerForm').show();
            $('changeOwner').hide();
        })
    }
    //advanced embeds
    if($('advancedEmdeddingOptions')) {
        $('advancedEmdeddingOptions').observe('click', function() {
            $('advancedEmbed').show();
            $$('.simpleEmbed').each(function(e){e.hide()});
        });

        $('embedSize').observe('change', getEmbedCode);
        $('embedLanguage').observe('change', getEmbedCode);
    }
    //add to project code
    if ($('addMediaToProject') != null){
        $('addMediaToProject').observe('click', function(event){
            event.stop();
            var e = event.element();
            ProjectManager.getAllProjectForCurrentUser(function(data) {
                if (data.size == 0) {
                    e.update(messages['videoDisplay.noProjects']);
                    return;
                }
                else {
                    e.remove();
                    var div = $('addToProjectDiv');
                    div.update('Please select a project:');
                    var select = new Element('select', {id:'projectSelect', name:'projectId'});
                    data.each(function(p) {
                        var option = new Element('option', {value:p.id}).update(p.title);
                        select.insert(option);
                    });
                    div.insert(select);
                    var addButton = new Element('input', {'class': 'button orange', type: 'submit', value: messages['button.add']});
                    div.insert(addButton);
                    addButton.observe('click', function(){
                        ProjectManager.addMediaToProject($F('projectSelect'), media.id, function(){
                            window.location = window.location;
                        });
                    });
                }
            });
        });
    }
    if($('resetCaptions') != null) {
        $('resetCaptions').observe('click', function(event){
            event.stop();
            var answer = confirm(messages['videoDisplay.resetCaptionsWarning']);
            if (answer) {
                $('resetCaptions').stopObserving('click');
                $('resetCaptions').update('Saving..');
                $('resetCaptions').insert(new Element('img',{src: '/images/spinner.gif'}));
                MediaManager.resetMediaCaptions(media.id, function() {
                    window.location = contextRoot + '/view/' + media.id;
                });
            }
        });
    }
    if($('reprocessMedia') != null) {
        $('reprocessMedia').observe('click', function(event){
            event.stop();
            var answer = confirm(messages['videoDisplay.reprocessWarning']);
            if (answer) {
                MediaManager.convertMedia(media.id, function() {
                    window.location = contextRoot + '/view/' + media.id;
                });
            }
        });        
    }
    $('addThisLink').observe('click', function(){
        $('at16pcc').setStyle('width: 131%');    
    });
});

function setPlayerCaptions(language) {
    if (language != "") {
        CaptionManager.findCaptions(media.id, language, function(data) {
            $('mpl').setPlayerCaptions(data);
            var displayLanguage;
            captionStats.each(function(l){
                if(l.languageCode == language) {
                    displayLanguage = l.languageName;
                }
            });
            pageTracker._trackEvent("Language", (media.title + " - " + media.id), displayLanguage);
        });
    }
    else {
        $('mpl').setPlayerCaptions([{}]);
    }
}

function pageTrackerProxy(titleAndId,displayLanguage) {
    if (displayLanguage != "") {
        pageTracker._trackEvent("Language", titleAndId, displayLanguage);
    }
}

function getEmbedCode() {
    var size = $F('embedSize');
    var lang = $F('embedLanguage');
    var height = 420;
    var width = 347;
    if (size == "s") {
        height = 320;
        width = 272;
    }
    else if (size == "l") {
        height = 480;
        width = 392;
    }
    $('embedCode').value = localize(embedCode, {0: webAppUrl, 1: media.id, 2: size, 3:lang, 5: width, 4: height});
}


function getCaptionStatistics() {
    //Return the array of stats 
    return captionStats;
}

// This is a javascript handler for the player and is always needed.
function thisMovie(movieName) {

    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {

        return document[movieName];

    }
}
;


function showInviteDiv() {
    $('inviteDiv').show();
}

function invite() {
    //hide any messages left from before
    $('error').hide();
    $('success').hide()

    $('spinner').show();
    Mailer.inviteUser($F('email'), function(event) {
        $('spinner').hide();
        $('inviteDiv').hide();
        $('success').appear();
    });
}

function errh(msg) {
    $('spinner').hide();
    $('error').show();
}

//Add to collection functionality
document.observe('dom:loaded', function() {
    var addToMediaCollection = $$('.addToMediaCollection').first();
    if (addToMediaCollection != null) {
        addToMediaCollection.observe('click', function() {
            var div = addToMediaCollection.up('div');
            var mediaId = addToMediaCollection.id;
            var spinner = div.down('div.spinner');
            addToMediaCollection.remove();
            MediaCollectionManager.findUsersMediaCollections(function(collections) {
                if (collections.length == 0) {
                    $('addCollection').show();
                }
                else {

                    spinner.insert({before:messages['videoDisplay.addToCollection'] + ":"});
                    var select = new Element('select', {id:'selectedCollection'});
                    collections.each(function(collection) {
                        var item = new Element('option', {value: collection.id}).update(collection.name);
                        select.insert(item);
                    });
                    spinner.insert({before:select});
                    var add = new Element('a').update(messages['videoDisplay.add']);
                    add.observe('click', function() {
                        $$('img.spinner').first().show();
                        var collectionId = $('selectedCollection').getValue();
                        MediaCollectionManager.addMedia(collectionId, mediaId, function() {
                            spinner.up('li').update(messages['videoDisplay.addedToCollection']);
                            spinner.highlight();
                        });
                    });
                    spinner.insert({before:add});
                }
            });
        });
    }
});

//add to favorites
document.observe('dom:loaded', function() {
    var addLink = $$('.addToFavorites').first();
    if (addLink) {
        addLink.observe('click', function(event) {
            var spinner = event.element().up('div').down('img.spinner');
            spinner.show();
            var mediaId = event.element().id;
            UserManager.addMediaToFavorites(mediaId, function(event) {
                addLink.replace(messages['videoDisplay.addedToFavorites']);
                addLink.highlight();
                spinner.hide();
            });
        });
    }
});

