var globalFavLoading = false;
var globalBigPlayerLoading = false;
var playerPlayingElement = false;
var selectedElement = false;
var range = 0;

/* document ready functions */
$$(function() {
    /* ay big player */
    $$('#ay_player_lists_wrap').fadeIn(200,function(){
        registerPlayerListEvents();
    });

    //set first element to selected element
    selectedElement = $$("#ay_player_lists_wrap div.ay_player_list_item:first");
    if(selectedElement.size()>0) {
        markElement(selectedElement,1);
    }

    /* ay big player commands */
    $$('.ay_player_commands').show();
    //scroll up
    $$('#ay_player_scrollUp').click(function(){
        if(selectedElement.prev().size()>0) {
            markElement(selectedElement,0);
            selectedElement = selectedElement.prev();
            markElement(selectedElement,1);
        }
    });
    //scroll down
    $$('#ay_player_scrollDown').click(function(){
        if(selectedElement.next().size()>0) {
            markElement(selectedElement,0);
            selectedElement = selectedElement.next();
            markElement(selectedElement,1);
        }
    });


    /* mousewheel */
    if(jQuery().mousewheel) {
        $$('#ay_player_lists_wrap').mousewheel(function(event, delta) {
            if(delta<0) {
                if(selectedElement.next().size()>0) {
                    markElement(selectedElement,0);
                    selectedElement = selectedElement.next();
                    markElement(selectedElement,1);
                }
            }
            else if(delta>0){
                if(selectedElement.prev().size()>0) {
                    markElement(selectedElement,0);
                    selectedElement = selectedElement.prev();
                    markElement(selectedElement,1);
                }
            }
            return false;
        });
    }

});

function markElement(el,onOff) {
    if(onOff==1) {
        $$('span.ay_player_title',el).addClass("ay_player_title_rollover");
        $$('span.ay_player_title a',el).css("color","#fff");
        $$('span.ay_player_detailslink',el).addClass("ay_player_detailslink_rollover");
        /* scroll position: every five elements */
        var elNo = $$(el).data("number");
        var newRange = parseInt((elNo*28)/140);
        if(newRange!=range) {
            range = newRange;
            $$('.ay_player_lists').stop();
            $$('.ay_player_lists').animate({
                "top":-range*140+"px"
            },500);
        }
    }
    else {
        $$('span.ay_player_title',el).removeClass("ay_player_title_rollover");
        $$('span.ay_player_title a',el).css("color","#333");
        $$('span.ay_player_detailslink',el).removeClass("ay_player_detailslink_rollover");
    }
}

/* big player functions */
function registerPlayerListEvents() {
    /* details link */
    $$('span.ay_player_detailslink').one("click",function(){
        location.href = $$('a',this).attr("href");
    });

    //count
    $$("#ay_player_lists_wrap div.ay_player_list_item").each(function(i){
        $$(this).data("number",i);
    });
}

function bigplayer_loadFile(flashKey,uid,objId,type){
    if(!globalBigPlayerLoading) {
        if(uid != playerPlayingElement) {
            globalBigPlayerLoading = uid;
            markElement(selectedElement,0);
            selectedElement = $$("#ay_player_list_item_"+uid);
            markElement(selectedElement,1);
            var link = $$('#bigplayer_listlink_'+uid);
            $$('span.linkText',link).css("display","none");
            $$(link).addClass("ajax-loader-small-bigplayer");
            tx_ddaudiyou_getFilename(flashKey,uid,objId,type);
        }
        else {
            bigplayer_stopSounds();
        }
    }
}

function bigplayer_playMultiFile(uid,objId,type) {
	if(currentAYPlayCount == false) {
		currentAYPlayCount = 0;
	}
    if(globalBigPlayerLoading != uid) {
        if(globalBigPlayerLoading != false) {
            bigplayer_stopSounds();
        }
        globalBigPlayerLoading = uid;
        markElement(selectedElement,0);
        selectedElement = $$("#ay_player_list_item_"+uid);
        markElement(selectedElement,1);
        var link = $$('#bigplayer_listlink_'+uid);
        $$('span.linkText',link).css("display","none");
        $$(link).addClass("ajax-loader-small-bigplayer");
        if(multiAYPlays[uid][currentAYPlayCount]) {
        	tx_ddaudiyou_getMultiFilename(multiAYPlays[uid][currentAYPlayCount],uid+'_'+currentAYPlayCount,objId,type);
        }
    	multiAYPlayerPlays = true;
		globalBigPlayerLoading = uid;
    } else {
    	bigplayer_stopSounds();
    }
}

function bigplayer_loadFileResponse(args) {
    if(args[0]==true) {
        $$('#bigplayer_listlink_'+playerPlayingElement).removeClass("ay_playing_element");
        playerPlayingElement = args[1];
        var link = $$('#bigplayer_listlink_'+args[1]);
        $$(link).addClass("ay_playing_element");
        $$(link).removeClass("ajax-loader-small-bigplayer");
        $$('span.linkText',link).css("display","block");
        globalBigPlayerLoading = false;
        $$('#ay_player_play_img')[0].src = ay_player_imgs[5].src;
        $$('#ay_player_play_img').addClass("ay_player_isplaying");
    }
}

function bigplayer_stopSounds() {
    document.getElementById('vumeter').sendEvent('STOP',null);
    $$('#ay_player_play_img')[0].src = ay_player_imgs[4].src;
    $$('#ay_player_play_img').removeClass("ay_player_isplaying");
    var link = $$('#bigplayer_listlink_'+playerPlayingElement);
    $$(link).removeClass("ay_playing_element");
    globalBigPlayerLoading = false;
    playerPlayingElement = false;
}

function bigplayer_playSounds() {
    var link = $$("a.bigplayer_listlink",selectedElement);
    $$(link).trigger("click");
}

function bigplayer_loadList(listNo,detailsPid,mode,limitStart) {
    /* more load */
    if(mode=="prepend") {
        $$('#ay_list_more_link').html("");
        $$('#ay_list_more_link').addClass("ajax-loader-player-more");
        tx_ddaudiyou_loadList(listNo,detailsPid,mode,limitStart);
    }
    /* new list load */
    else {
        $$('a.ay_player_button').removeClass("ay_player_button_active");
        $$('#ay_p_b_'+listNo).addClass("ay_player_button_active");
        /* loading list animation... */
        $$('.ay_player_lists').hide();
        $$('#ay_player_lists_wrap').addClass("ajax-loader");
        tx_ddaudiyou_loadList(listNo,detailsPid,mode,limitStart);
    }
}

function bigplayer_loadListResponse(res,mode) {
    /* add to existing list */
    if(mode=="prepend") {
        var preSelEl = selectedElement.prev();

        $$('#ay_list_more').fadeOut(200,function(){
            $$('#ay_list_more').replaceWith(res);
            registerPlayerListEvents();
            //set first element to selected element
            selectedElement = preSelEl.next();
            markElement(selectedElement,1);
        });
    }
    /* load new list */
    else {
        $$('#ay_player_lists_wrap').removeClass("ajax-loader");
        $$('.ay_player_lists').show();
        $$('.ay_player_lists').html(res);
        $$('.ay_player_lists').css("top","0px");
        registerPlayerListEvents();
        range = 0;
        //set first element to selected element
        selectedElement = $$("#ay_player_lists_wrap div.ay_player_list_item:first");
        markElement(selectedElement,1);
    }
}

/* favorite functions */
function tx_ddaudiyou_favButtonLoad(target,loading,uid,feId,big) {

    if(loading==1 && !globalFavLoading) {
        globalFavLoading = true;
        if(big==1) {
            $$('#favButton_'+uid).html("").css("background","url(fileadmin/templates/main/images/ajax-loader-small.gif) center center no-repeat");
        }
        else {
            $$('#favButton_'+uid+" img").hide();
        }
        $$('#favButton_'+uid).addClass("ajax-loader-small");
        tx_ddaudiyou_addToFavorites(uid,feId,target,big);
    }
    else if(loading==0 && globalFavLoading) {
        globalFavLoading = false;
        $$('#favButton_'+uid).removeClass("ajax-loader-small");
        if(target==1) {
            if(big==1) {
                $$('#favButton_'+uid).replaceWith('<a href="javascript:;" class="favButtonLinkBigDelete" id="favButton_'+uid+'" title="Aus Favoriten entfernen" onclick="tx_ddaudiyou_favButtonLoad(0,1,'+uid+','+feId+',1);" ></a>');
            }
            else {
                $$('#favButton_'+uid).replaceWith('<a href="javascript:;" class="favButtonLink" id="favButton_'+uid+'" title="Aus Favoriten entfernen" onclick="tx_ddaudiyou_favButtonLoad(0,1,'+uid+','+feId+',0);"><img border="0" src="fileadmin/templates/main/images/listview_tofavs.png" alt="fav" /></a>');
            }
        }
        else {
            if(big==1) {
                $$('#favButton_'+uid).replaceWith('<a href="javascript:;" class="favButtonLinkBigAdd" id="favButton_'+uid+'" title="Zu Favoriten hinzuf&uuml;gen" onclick="tx_ddaudiyou_favButtonLoad(1,1,'+uid+','+feId+',1);"></a>');
            }
            else {
                $$('#favButton_'+uid).replaceWith('<a href="javascript:;" class="favButtonLink" id="favButton_'+uid+'" title="Zu Favoriten hinzuf&uuml;gen" onclick="tx_ddaudiyou_favButtonLoad(1,1,'+uid+','+feId+',0);"><img border="0" src="fileadmin/templates/main/images/listview_tofavs_ia.png" alt="fav" /></a>');
            }
        }
    }
    return true;
}

function getDeleteUserFavs() {
    var deleteFavs = new Array();
    $$('.deleteFavs').each(function() {
        if($$(this).attr("checked")) {
            deleteFavs.push($$(this).val());
        }
    });
    if(deleteFavs.length>0) {
        $$('#deleteFavs').val(deleteFavs);
        return true;
    }
    return false;
}

function getDeleteUserFiles(aForm,singleFile){
    if(!singleFile) {
        var deleteFiles = new Array();
        $$('.deleteFiles').each(function() {
            if($$(this).attr("checked")) {
                deleteFiles.push($$(this).val());
            }
        });
        if(deleteFiles.length>0) {
            $$('#deleteFiles').val(deleteFiles);
            openConfirmDialog("L&ouml;schen best&auml;tigen","Bitte best&auml;tige, dass du uns mit der L&ouml;schung der hier ausgew&auml;hlten Beitr&auml;ge beauftragen m&ouml;chtest.<br/><br/>Die Beitr&auml;ge werden zun&auml;chst nur deaktiviert.",
                function(success){
                    if(success) aForm.submit();
                });
        }
    }
    else {
        openConfirmDialog("L&ouml;schen best&auml;tigen","Bitte best&auml;tige, dass du uns mit der L&ouml;schung der hier ausgew&auml;hlten Beitr&auml;ge beauftragen m&ouml;chtest.<br/><br/>Die Beitr&auml;ge werden zun&auml;chst nur deaktiviert.",
            function(success){
                if(success) aForm.submit();
            });
    }
    return false;
}

/* dialog functions */
function openConfirmDialog(title,content,callback) {
    $$('object').hide();
    var cD = $$('#confirmDialog');
    $$('.dialogContent',cD).html(content);
    cD.dialog({
        title : title,
        modal : true,
        buttons: {
            "Ok": function() {
                $$(this).dialog("close");
                callback(true);
            },
            "Abbrechen": function() {
                $$(this).dialog("close");
                callback(false);
            }
        },
        close : function () {
            $$('object').show();
        }
    });
}

/* regular play and download functions */
function getFile(id) {
    document.getElementById('downloadFile'+id).submit();
	return false;
}

function tx_ddaudiyou_loadFile(fileInformation, movieName, type) {
    if(type=="download") {
        location.href = fileInformation['filename'];
    }else if(type=="listen") {
        tx_ddaudiyou_setFilename(fileInformation['filename'], movieName);
    }else if(type=="listenDownload") {
        player = document.getElementById(movieName);
        try {
            fileObj = new Object();
            fileObj.file = fileInformation['filename'];
            fileObj.type = "sound";
            fileObj.uid = fileInformation['fileuid'];
            player.sendEvent("LOAD",fileObj);
        } catch (e) {
            //console.log(e);
        }
    }
}

function tx_ddaudiyou_setFilename(fileName, movieName) {
    tx_ddaudiyou_thisMovie(movieName).setFilename(fileName);
}

function tx_ddaudiyou_thisMovie(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

function tx_ddaudiyou_startPlaying(movieName) {
    tx_ddaudiyou_thisMovie(movieName).playFile();
}

function tx_ddaudiyou_stopPlaying(movieName) {
    tx_ddaudiyou_thisMovie(movieName).stopFile();
}

function tx_ddaudiyou_replaceButton(buttonName, movieName, type, linkText) {
    var linkFunction = '';
    if(type=='start') {
        linkFunction = "tx_ddaudiyou_startPlaying('"+movieName+"');";
    }else if(type=='stop') {
        linkFunction = "tx_ddaudiyou_stopPlaying('"+movieName+"');";
    }
    document.getElementById(buttonName).innerHTML = '<a href="javascript:void(0);" onclick="'+linkFunction+'">'+linkText+'</a>';
    return true;
}

function tx_ddaudiyou_showError(errorText) {
    alert(errorText);
}
function tx_ddaudiyou_showErrorReload(errorText) {
    alert(errorText);
    window.location.href = window.location.href;
}
