var track_data = {};
var current_track_id = -1;
var current_playlist_index = -1;
var current_track_index = 0;
var chomper = null;
var loadingDiv = null;
var playlist = null;
var frame = null;
var _current_playlist = null;

function get_playlist() {
    try {
        var x = chomper;
        var value = x.options[x.selectedIndex].value;
        var id = x.options[x.selectedIndex].id;

        if (id == -1)
    	    return;

        if (x.selectedIndex == current_playlist_index)
           return;
        current_playlist_index = x.selectedIndex;

        var ldiv = loadingDiv;
        ldiv.style.display='block';
	var tix = document.getElementById("tix");
	tix.style.display='none';
        YAHOO.MediaPlayer.stop();
	var d = document.getElementById("playb");
        d.src = "http://i.chmp.in/ben_play.png";
	//YAHOO.mediaplayer.Controller.playlistmanager.clear(
        if (value == "genres")
    	    func_chomper("/v2/g2pl/"+id);
        else if (value == "search"){
    	    func_chomper("/v2/search?s="+id);
        } else {
    	    func_chomper("/v2/t2pl/"+id);
        }
    } catch (e) {
//            console.log(e);
        //alert(e);
    }
};

function change_track() {
    var index = playlist.selectedIndex;
if (index == current_track_index)
return;
    if (index == -1)
         return;
    var track_id = playlist.options[playlist.selectedIndex].value;

    var track = track_data[track_id];
    YAHOO.MediaPlayer.play(_current_playlist[index]);
    current_track_index = index;
    current_track_id = track_id;
    if (frame.src != track.article_link)
    	frame.src = track.article_link;
    var tix = document.getElementById("tix");
    tix.style.display='none';

};

function update_playlist(data) {
    _current_playlist = data;
};

function get_shortcode(track){
    $.ajax({
	    type: "GET",
		url: "/v2/cs/chompinapp/"+track.id,
		success: function(data) { 
        var d = document.getElementById("tweeter");
        while (d.hasChildNodes()) {
    	    d.removeChild(d.firstChild);
        }
	d.innerHTML = "";
		var a = document.createElement("a");
		a.style.className = "twitter-share-button";
		a.className = "twitter-share-button tweeter";
		a.style['margin-left'] = "10px";
		a.style['margin-bottom'] = "10px";
		a.innerHTML = "Tweet";
		a.href = "http://twitter.com/share?url="+data+"&via=chompinapp&text="+track.title+" on "+track.feed_title;
		var scr = document.createElement("script");
		scr.src="http://platform.twitter.com/widgets.js";
		scr.type="text/javascript";
		d.appendChild(a);
		d.appendChild(scr); 
           var fb_like = document.getElementById("fb_like");
            fb_like.src = "http://www.facebook.com/plugins/like.php?href=" + data + "&amp;layout=button_count&amp;show_faces=false&amp;width=90&amp;action=like&amp;colorscheme=light&amp;height=25";
	        fb_like.height = 25;
	        fb_like.scrolling = "no";
	        fb_like.frameborder = 0;
	        fb_like.style="border:none; overflow:hidden; width:90px; height:25px;";
	        fb_like.allowTransparency="true";
		}
    });
}

function func_chomper(url) {
    $.ajax({
	    type: "GET",
		url: url,
		success: function(data) { 
            try {
    

		    /* clear our playlist */
		    var  entrieshidden = document.getElementById("hidden_tracks");
		    while (entrieshidden.hasChildNodes()){
					entrieshidden.removeChild(entrieshidden.firstChild);
		    }
		    var  entries = document.getElementById("playlist");
		    while (entries.hasChildNodes()){
					entries.removeChild(entries.firstChild);
		    }
    		for (var i = 0; i < playlist.length; i++) {
    			playlist.remove(i);
    		}

    		    frame.src = data[0].article_link;
    		    window.document.title = data[0].article_title;
    		for (var i = 0; i < data.length; i++) {
    			track_data[data[i].id] = data[i];
    			var a = document.createElement("a");
    			a.id = data[i].id;
    			a.href = data[i].link;
    			if (data[i].artist_name == "null"){
    			    data[i].artist_name = "";
			    		a.innerHTML = data[i].title;
					}
					else
			    a.innerHTML = data[i].title + " by " + data[i].artist_name ;

    			var option = document.createElement("option");
    			//option.id = data[i].id; // our track
    			option.value = data[i].id;
				option.title = data[i].artist_avatar;
				if (!data[i].artist_avatar) { alert ('no image'); }

    			// TODO: goose does not like foobar?track=blah.mp3 even
    			// though that is a valid url to play (on mobile at least)
    			// we need to strip them out
    			entrieshidden.appendChild(a);

    			if (data[i].link.indexOf("get_file.php?file") == -1) {
        	     try {
        	         option.innerHTML ="&lt;ul class='playlistlist'&gt;&lt;li&gt;" + data[i].artist_name + "&lt;/li&gt;&lt;li&gt;" + data[i].title+"&lt;/li&gt;&lt;/ul&gt;";
        			      playlist.add(option, null);
        		   }
        		   catch(ex) {
										//alert(playlist.options.length);
										option.innerHTML ="<ul class='playlistlist'><li>" + data[i].artist_name + "</li><li>" + data[i].title+"</li></ul>";
										var iesucks = new Option(option.innerHTML, option.value);
										iesucks.title = data[i].artist_avatar;
										//$(iesucks).html(inner);
										playlist.add(iesucks);
			              //alert("playlist add exception" + ex);
        		   }
						}
    			}

    		    var ldiv = loadingDiv;
    		    ldiv.style.display = 'none';

    		    $("#playlist").msDropDown({showIcon:true, visibleRows:11, rowHeight:55, mainCSS:'dd2', style:'font-size:20px'});  // refresh it
    		    YAHOO.MediaPlayer.onPlaylistUpdate.subscribe(update_playlist);
    		    YAHOO.MediaPlayer.addTracks(entrieshidden,0,true);
    		    YAHOO.MediaPlayer.onTrackStart.subscribe(update_track);
    		    YAHOO.MediaPlayer.onTrackStart.subscribe(update_ui_pause);
    		    YAHOO.MediaPlayer.onTrackPause.subscribe(update_ui_play);

		} catch (x) {
            alert("No results found. Try a different search.");
		}



	    }
	});
};

function get_current_index_from_playlist(obj_id){
for (var i = 0; i < _current_playlist.length; i++){
if (_current_playlist[i].__objId == obj_id)
 return i;

}
return 0;
}

function check_tix(track){
var url = "/v2/tix";
   $.ajax({
    type: "POST",
 data: "a="+track.artist_name,
		url: url,
		success: function(data) { 
 var tix = document.getElementById("tix");
 if (data.length > 0){
     tix.style.display = "block";
     tix.href = data[0]['href'];
 } else {
     tix.style.display = "none";
     tix.href="#";
 }
    }
});
}
function update_track() {
    try {
	var tix = document.getElementById("tix");
	tix.style.display = "none";
        var meta = YAHOO.MediaPlayer.getMetaData();
        var track_id = meta.anchor.id;

        current_track_id = track_id;
        var ct = track_data[track_id];

        if (frame.src != ct.article_link)
    	    frame.src = ct.article_link;

        window.document.title = ct.article_title;

	get_shortcode(ct);
	check_tix(ct);

        playlist.selectedIndex = get_current_index_from_playlist(meta.__objId);
        $("#playlist").msDropDown({showIcon:true, visibleRows:11, rowHeight:55, mainCSS:'dd2', style:'background-color:#f3f, font-size:24px'});  // refresh it
        
    } catch (e) {
	    console.log(e);
	    //alert(e);
    }
};

function submitenter(myfield,e) {
    var keycode;
    if (window.event) {
        keycode = window.event.keyCode;
        targetid = e.target.id;
    } else if (e) {
        keycode = e.which;
    } else {
        return true;
    }

    if (keycode == 13 || targetid == 'searchbtn') {
	    // do search post
    	disablePopup();
    	var search = myfield.value;
    	func_chomper("/v2/search?s="+search);
    	var c = chomper; 
    	var o = document.createElement("option");
    	o.value = "search";
    	o.id = search;
    	o.title = "http://chompin.com/imgs/chomped-ico-on.png";
    	o.innerHTML = search + " playlist";
    	c.appendChild(o);
    	var i = c.options.length;
    	c.selectedIndex = i-1;
        $("#chomper").msDropDown({showIcon:true, visibleRows:11, rowHeight:50, style:'background-color:#f3f, font-size:24px'});  
    	return false;
    } else {
	    return true;
    }
};

function update_ui_play() {
    var d = document.getElementById("playb");
    d.src = "http://i.chmp.in/ben_play.png";
};

function update_ui_pause() {
    var d = document.getElementById("playb");
    d.src = "http://i.chmp.in/ben_pause.png";
};

function play() {
    var d = document.getElementById("playb");
    var s = d.src;
    if (s.indexOf("pause") == -1){ // play
        d.src = "http://i.chmp.in/ben_play_pressed.png";
	    setTimeout(function(){
                      d.src = "http://i.chmp.in/ben_pause.png";
		      }, 150);
        YAHOO.MediaPlayer.play();
    } else { // pause 
      d.src = "http://i.chmp.in/ben_pause_pressed.png";
	    setTimeout(function(){
                      d.src = "http://i.chmp.in/ben_play.png";
		      }, 150);
        YAHOO.MediaPlayer.pause();
    }
};

function next() {
    var d = document.getElementById("nextb");
    d.src = "http://i.chmp.in/ben_next_pressed.png";
    setTimeout(function(){
                      d.src = "http://i.chmp.in/ben_next.png";
		      }, 250);

    YAHOO.MediaPlayer.next();		   
    current_track_index++;

    playlist.selectedIndex = current_track_index;

    $("#playlist").msDropDown({showIcon:true, visibleRows:11, rowHeight:55, mainCSS:'dd2', style:'background-color:#f3f, font-size:24px'});  // refresh it
    var track_id = playlist.options[playlist.selectedIndex].value;
    current_track_id = track_id;
    //    update_track();
};

var YMPParams =
{
   defaultalbumart:'http://a0.twimg.com/profile_images/765365844/app_icon.png'
};

var popupStatus = 0;  

//loading popup with jQuery magic!
function loadPopup(){
    //loads popup only if it is disabled
    if(popupStatus==0) {
	    $("#backgroundPopup").css({
		    "opacity": "0.7"
		        });
	    $("#backgroundPopup").slideDown("slow");
	    $("#searchbox").slideDown("slow");
	    popupStatus = 1;
    }
}

//disabling popup with jQuery magic!
function disablePopup(){
    //disables popup only if it is enabled
    if(popupStatus==1){
	$("#backgroundPopup").slideUp("slow");
	$("#searchbox").slideUp("slow");
	popupStatus = 0;
    }
}


$(document).ready(function(){
		      //LOADING POPUP
		      //Click the button event!
		      $("#searchb").click(function(){
					     
					     //load popup
					     loadPopup();
					 });
    
		      //CLOSING POPUP
		      //Click the x event!
		      $("#searchboxClose").click(function(){
							disablePopup();
						    });
		      //Click out event!
		      $("#backgroundPopup").click(function(){
						      disablePopup();
						  });
		      //Press Escape event!
		      $(document).keypress(function(e){
					       if(e.keyCode==27 && popupStatus==1){
						   disablePopup();
					       }
					   });

		      chomper = document.getElementById("chomper");	
		      chomper.style.width = "250px";
		      playlist = document.getElementById("playlist");
		      playlist.style.width = "310px";
		      loadingDiv = document.getElementById("LoadingDiv");
		      frame = document.getElementById("frame");
		      $("#chomper").msDropDown({showIcon:true, visibleRows:11, rowHeight:55, style:'background-color:#f3f, font-size:24px'}); 
		      $("#playlist").msDropDown({showIcon:true, visibleRows:11, rowHeight:55, mainCSS:'dd2', style:'background-color:#f3f, font-size:24px'});
		      goose();

		  });
// like, why isn't goose there on DOM ready?
function goose(){
    try {
        YAHOO.MediaPlayer.onAPIReady.subscribe(function(){
        YAHOO.MediaPlayer.onPlaylistUpdate.subscribe(update_playlist);
        YAHOO.MediaPlayer.onTrackStart.subscribe(update_ui_pause);
        YAHOO.MediaPlayer.onTrackPause.subscribe(update_ui_play);
        YAHOO.MediaPlayer.onTrackStart.subscribe(update_track);
        YAHOO.MediaPlayer.addTracks(document.getElementById("hidden_tracks"),0,true);

        for (var i = 0; i < load_data.length; i++){
            t = load_data[i];
            if (t.link.indexOf("get_file.php?file") == -1){
                track_data[t.id] = t;
            }
        }

        });
    }catch (e){
        console.log(e);
        //alert(e);
    }
}
