﻿var isToggle = true;
var current_row;
var current_tab = 1;
$(document).ready(function() {
   initMusicPlayList();
});
function initMusicPlayList() {
   
    /* Music Playlist */
    current_row = $(".music-playlist > tbody > tr:first", $("#tab" + current_tab));
    
    $("#icon-repeat").click(function(e) {
        e.preventDefault();
        if (!isToggle) {
            isToggle = true;
            $(this).css("background", "url(/content/im/music/repeat.png) no-repeat");
        } else {
            isToggle = false;
            $(this).css({ "background": "url(/content/im/music/repeat-dis.png) no-repeat" });
        }
        return false;
    });

    $("tr", $("#tab" + current_tab)).dblclick(function(e) {
        e.preventDefault();
        var mid = $(this).attr("id");
        if (mid != null && mid != "") {
            current_row = $(this);
            UpdateStatus($(this).find("b").text(), $(this).find(".artist").text(), $(this).find(".album").text());
            Play(mid);
        }
    });

    $("td", $("#tab" + current_tab)).mousedown(function(e) {
        return false;
    });

    $("#status", $("#tab" + current_tab)).corner();
    $(".music-playlist tbody tr:even td").css("background-color", "#2B2B2B");
   
}
var player2 = null;
function playerReady(thePlayer) {
    player2 = window.document[thePlayer.id];
    player2.addModelListener("STATE", "stateListener");
}
function stateListener(obj) { //IDLE, BUFFERING, PLAYING, PAUSED, COMPLETED
    currentState = obj.newstate;
    previousState = obj.oldstate;
    if (currentState == "COMPLETED" && isToggle == true) {
        var cur_play = current_row.next();
        current_row = cur_play;
        var next_mid = cur_play.attr("id");
        if (typeof (next_mid) == "undefined") {
            cur_play = $("tr:first",$("#tab"+current_tab));
            next_mid = cur_play.attr("id");
        }
        
        Play(next_mid);
        UpdateStatus(cur_play.find("b").text(), cur_play.find(".artist").text(), cur_play.find(".album").text());
    }
}
var IEbuffer = "";
function Play(mid) {
    
    var player = $("#player", $("#tab" + current_tab)).html();
    if (IEbuffer == "" && $.browser.msie) IEbuffer = player;
    if ($.browser.msie && IEbuffer != "") player = IEbuffer;
   
    var mark = player.indexOf(".mp3");
    if (mark > -1) {
        var last_mid = player.substring((mark - 36), mark);
        var pattern = new RegExp($.trim(last_mid), 'gi');
        player = player.replace(pattern, mid);
        $("#player","#tab" + current_tab).html(player);
    }
    //change State
}
function UpdateStatus(musicName, artistName, albumName) {
    var tmp = '<div class="txt-label" ><span class="txt-value" ><b>' + musicName + '</b></span></div>';
    tmp += '<div class="txt-label"><span>ARTIST</span>&nbsp;<span class="txt-value" ><b>' + artistName + '</b></span></div>';
    tmp += '<div class="txt-label"><span>ALBUM</span>&nbsp;<span class="txt-value" style="font-size:11px;" ><b>' + albumName + '</b></span></div>';
    $("#status", $("#tab" + current_tab)).html(tmp);
    $("#status", $("#tab" + current_tab)).corner();
}
function MusicTabs(page, stat, tab) {

    $("#tab" + tab).css("height","400px").block({
        message: null,
        overlayCSS: {
            backgroundColor: '#000',
            opacity: 0.5,
            cursor: 'wait'
        }
    });
    
    //Stop Player
    player2.sendEvent('STOP');
    var data = "Page=1&";
    data += "Stat=" + stat + "&";
    data += $("input[name='__RequestVerificationToken']").serialize();
    $.ajax({ type: "POST", url: "/Music/GetMusicTabs/", data: data, dataType: "json"
                           , success: function(obj) {
                               try {
                                   if (obj) {
                                       if (obj.IsCompleted) {
                                           var tmp = $("#tab" + current_tab).html();
                                           current_row = $("#tab" + tab + " > tbody > tr:first");
                                           //$("#tab" + current_tab).html('');
                                           $("#tab" + tab).html(tmp);
                                           current_tab = tab;
                                           $("#player", "#tab" + tab).html(obj.Id);
                                           if ($.browser.msie) IEbuffer = obj.Id;
                                           $("#status", "#tab" + tab).html(obj.Name);
                                           $(".music-playlist > tbody", "#tab" + tab).html(obj.HtmlString);
                                           initMusicPlayList();
                                           // $("#tab" + tab).css("height", "300px").unblock();
                                       } else {
                                           alert(obj.ErrorMessage);
                                       }
                                   }

                               } catch (e) {
                                   alert("Invalid JSON Object");
                               }
                               $("#tab" + tab).css("height", "auto").unblock();

                           }, error: function() {
                               alert("Ooop! Can't process this time.");
                               $("#tab" + tab).css("height", "auto").unblock();
                           }
    });              //End Ajax

}

function SearchMusic() {

    if (current_tab > 1) {
        $("ul.tabs li").removeClass("active");
        $("ul.tabs li").addClass("active");
        $(".tab_content").hide();
        var activeTab = $("ul.tabs li").find("a").attr("href");
        $(activeTab).fadeIn();
    }
    
    current_tab = 1;     
    $("#tab" + current_tab).block({
      message: '<img src="/content/im/ico/gear-loading.gif" />',
        css: {
            padding: 0,
            margin: 0,
            width: '30%',
            top: '40%',
            left: '35%',
            border: '0',
            textAlign: 'center',
            backgroundColor: 'transparent',
            cursor: 'wait'
        },
        overlayCSS:  {
            backgroundColor:'#000',
            opacity:          0.5,
            cursor:          'wait'
        }
    });
    if ($("#txtMkey").val().length > 0 && $("#txtMkey").val() != "Search Music") {
  
    player2.sendEvent('STOP');
    var data = $("#txtMkey").serialize() + "&";
    data += $("#dlMField").serialize() + "&";
    data += $("input[name='__RequestVerificationToken']").serialize();
    $.ajax({ type: "POST", url: "/Music/SearchMusic/", data: data, dataType: "json"
                           , success: function(obj) {
                               try {
                                   if (obj) {
                                       if (obj.IsCompleted) {
                                           var tmp = $("#tab" + current_tab).html();
                                           current_row = $("#tab" + current_tab + " > tbody > tr:first");
                                           $("#tab" + current_tab).html(tmp);
                                           $("#player", "#tab" + current_tab).html("");
                                           $("#player", "#tab" + current_tab).html(obj.Id);
                                           if ($.browser.msie) IEbuffer = obj.Id;
                                           $("#status", "#tab" + current_tab).html(obj.Name);
                                           $(".music-playlist > tbody", "#tab" + current_tab).html(obj.HtmlString);
                                           initMusicPlayList();
                                           // $("#tab" + tab).css("height", "300px").unblock();
                                       } else {
                                           alert(obj.ErrorMessage);
                                       }
                                   }
                                  
                               } catch (e) {
                                   alert("Invalid JSON Object");

                               }
                               $("#tab" + current_tab).unblock();

                           }, error: function() {
                              alert("Ooop! Can't process this time.");
                              $("#tab" + current_tab).unblock();
                           }
    });             //End Ajax
 }
}
