/*
 * The Media Database
 * Copyright(c) 2008, Steven C Norder.
 * 
 * All Rights Reserved
 */


Ext.ns('ZP');ZP.Data={Remote:{get:function(config){if(Ext.isAir){var callback=config.callback;Ext.Ajax.request({url:config.url,callback:function(options,success,response){if(success){var errored=false;}else{var errored=true;}
callback(response,options.url,errored);}})}else{ZP.Data.OpenSocial.Remote.get(config);}},post:function(config){if(Ext.isAir){}else{ZP.Data.OpenSocial.Remote.post(config);}}},MySpace:{Viewer:{set:function(A,C){console.log("Saving in Persistance Storage: "+A+"="+C);var B=opensocial.newDataRequest();var C=Ext.util.JSON.encode(C);var C=C.replace(/&amp;/g,'%26');B.add(B.newUpdatePersonAppDataRequest("VIEWER",A,C));B.send(function(D){if(D.hadError()){console.log("Error while saving!");console.log(D);}})},get:function(key,callback){var req=opensocial.newDataRequest();var idspec=opensocial.newIdSpec({'userId':'VIEWER','groupId':'SELF'});req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER),'viewer');req.add(req.newFetchPersonAppDataRequest(idspec,key),'data');req.send(function(resp){var viewerResp=resp.get('viewer');var dataResp=resp.get('data');if(!viewerResp.hadError()&&!dataResp.hadError()){var viewer=viewerResp.getData();var viewerID=viewer.getId();var viewerID=viewerID.replace('myspace.com:','');var data=dataResp.getData();var viewerData=data[viewerID];callback(viewerData);}});}}},OpenSocial:{Remote:{get:function(config){var param={};param[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;param[gadgets.io.RequestParameters.CONTENT_TYPE]=gadgets.io.ContentType.JSON;gadgets.io.makeRequest(config.url,config.callback,param);},post:function(config){var param={};param[gadgets.io.RequestParameters.AUTHORIZATION]=gadgets.io.AuthorizationType.SIGNED;param[gadgets.io.RequestParameters.METHOD]=gadgets.io.MethodType.POST;param[gadgets.io.RequestParameters.CONTENT_TYPE]=gadgets.io.ContentType.JSON;param[gadgets.io.RequestParameters.POST_DATA]=config.postdata;gadgets.io.makeRequest(config.url,config.callback,param);}}}};

Ext.ns('MDB');MDB.Playlist={add:function(r){Ext.StoreMgr.lookup('playlist_store').add(r);},Panel:Ext.extend(Ext.grid.GridPanel,{mask:null,ddGroup:'playlistDDGroup',enableDragDrop:true,initComponent:function(){var grid=this;this.store=new Ext.data.SimpleStore({id:'playlist_store',fields:[{name:'artist',type:'string'},{name:'artist_id',type:'string'},{name:'song',type:'string'},{name:'url',type:'string'},{name:'type',type:'string'},{name:'id',type:'string'},{name:'display',type:'string'},{name:'duration',type:'string'},{name:'link',type:'string'}]});this.columns=[new Ext.grid.RowNumberer(),{id:'display',dataIndex:"display"}];this.hideHeaders=true;this.autoExpandMax=4000;this.autoExpandColumn='display';this.border=false;var win;this.bbar=[{text:"Play",xtype:"tbbutton",handler:function(button,event){if(grid.getSelectionModel().getCount()>0){Ext.getCmp('player').playVideo(grid.getSelectionModel().getSelected());}else{Ext.getCmp('player').playVideo(grid.getStore().getAt(0));grid.getSelectionModel().selectRow(0);}}},{xtype:'tbseparator'},{text:"Remove",xtype:"tbbutton",handler:function(button,event){grid.getSelectionModel().each(function(r){grid.getStore().remove(r);});grid.getView().refresh();}},{xtype:'tbseparator'},{text:"Clear Playlist",xtype:"tbbutton",handler:function(button,event){grid.getStore().removeAll();}},{xtype:'tbseparator'},{text:"Save/Load/Delete Playlists",xtype:"tbbutton",handler:function(button,event){win=new Ext.Window({xtype:'form',layout:'form',id:'playlistSaveLoadWin',width:300,height:175,mask:null,autoShow:true,title:'Playlists',labelWidth:45,bodyStyle:'padding:15px',defaults:{width:200},items:[{xtype:'combo',fieldLabel:'Playlists',name:'playlist',store:new Ext.data.SimpleStore({id:'playlist_combo_store',fields:['display','id','profile'],sortInfo:{field:"display",direction:"ASC"},data:[['Loading...','']]}),displayField:'display',valueField:'id',value:'0',readOnly:true,forceSelection:true,mode:'local',triggerAction:'all',selectOnFocus:true,id:'playlistSaveLoadPlaylist',listeners:{select:function(combo,r,i){if(r.data.id!=0){Ext.getCmp('playlistSaveLoadName').setValue(r.data.display);Ext.getCmp('playlistSaveLoadProfile').setValue(r.data.profile);}else{Ext.getCmp('playlistSaveLoadName').setValue('');Ext.getCmp('playlistSaveLoadProfile').setValue(0);}},render:function(combo){ZP.Data.Remote.get({url:"http://www.mediadb.com/json/myspace/loadplaylists",callback:function(response,url,errored){Ext.getCmp('playlistSaveLoadWin').mask.hide();var items=response.data;Ext.StoreMgr.lookup('playlist_combo_store').removeAll();var records=Array();for(var i in items){var item=items[i];if(item.d){records.push(new MDB.PlaylistsRecord({display:item.d,id:item.i,profile:item.p}));}}
Ext.StoreMgr.lookup('playlist_combo_store').add(records);Ext.getCmp('playlistSaveLoadPlaylist').setValue(0);}});}}},{xtype:'textfield',fieldLabel:'Name',name:'name',id:'playlistSaveLoadName'},{xtype:'checkbox',fieldLabel:'Profile',name:'profile',id:'playlistSaveLoadProfile'}],buttonAlign:'center',buttons:[{text:'Save',handler:function(){Ext.getCmp('playlistSaveLoadWin').mask.show();var list=Array();var i=1;Ext.StoreMgr.lookup('playlist_store').each(function(r){list.push({ORDER:i,ARTIST:r.data.artist,ARTIST_ID:r.data.artist_id,SONG:r.data.song,URL:r.data.url,ID:r.data.id,TYPE:r.data.type,DISPLAY:r.data.display,DURATION:r.data.duration,LINK:r.data.link});i++;});ZP.Data.Remote.post({url:"http://www.mediadb.com/json/myspace/saveplaylist",postdata:{PlaylistName:Ext.getCmp('playlistSaveLoadName').getValue(),PlaylistID:Ext.getCmp('playlistSaveLoadPlaylist').getValue(),Profile:Ext.getCmp('playlistSaveLoadProfile').getValue(),Playlist:Ext.util.JSON.encode(list)},callback:function(){Ext.getCmp('playlistSaveLoadWin').close();}});}},{text:'Load',handler:function(){Ext.getCmp('playlistSaveLoadWin').mask.show();Ext.getCmp('playlist_grid').mask.show();ZP.Data.Remote.post({url:"http://www.mediadb.com/json/myspace/loadplaylist/",postdata:{PlaylistName:Ext.getCmp('playlistSaveLoadName').getValue(),PlaylistID:Ext.getCmp('playlistSaveLoadPlaylist').getValue()},callback:function(response,url,errored){if(!errored){var items=response.data;Ext.StoreMgr.lookup('playlist_store').removeAll();var records=Array();for(var i in items){var item=items[i];if(item.di){records.push(new MDB.Playlist.Record({artist:item.an,artist_id:item.ai,song:item.s,url:item.u,type:item.t,id:item.i,display:item.di,duration:item.du,link:item.l}));}}
Ext.StoreMgr.lookup('playlist_store').add(records);}
Ext.getCmp('playlist_grid').mask.hide();Ext.getCmp('playlistSaveLoadWin').close();}});}},{text:'Delete',handler:function(){Ext.getCmp('playlistSaveLoadWin').mask.show();ZP.Data.Remote.post({url:"http://www.mediadb.com/json/myspace/deleteplaylist",postdata:{PlaylistName:Ext.getCmp('playlistSaveLoadName').getValue(),PlaylistID:Ext.getCmp('playlistSaveLoadPlaylist').getValue()},callback:function(){Ext.getCmp('playlistSaveLoadWin').close();}});}}],listeners:{render:function(window){window.mask=new Ext.LoadMask(window.getEl(),{msg:"Please wait..."});window.mask.show();}}});win.show();}}];this.on('rowdblclick',function(grid,rowIdx,r){Ext.getCmp('player').playVideo(grid.getSelectionModel().getSelected());});this.on('render',function(g){g.mask=new Ext.LoadMask(g.getGridEl(),{msg:"Please wait..."});var ddrow=new Ext.ux.dd.GridReorderDropTarget(g,{copy:false,listeners:{beforerowmove:function(objThis,oldIndex,newIndex,records){},afterrowmove:function(objThis,oldIndex,newIndex,records){g.getView().refresh();},beforerowcopy:function(objThis,oldIndex,newIndex,records){},afterrowcopy:function(objThis,oldIndex,newIndex,records){}}});Ext.dd.ScrollManager.register(g.getView().getEditorParent());});this.on('beforedestroy',function(g){Ext.dd.ScrollManager.unregister(g.getView().getEditorParent());});MDB.Playlist.Panel.superclass.initComponent.call(this);}}),Record:Ext.data.Record.create([{name:'artist',type:'string'},{name:'artist_id',type:'string'},{name:'song',type:'string'},{name:'url',type:'string'},{name:'type',type:'string'},{name:'id',type:'string'},{name:'display',type:'string'},{name:'duration',type:'string'},{name:'link',type:'string'}])};MDB.PlaylistsRecord=function(){return Ext.data.Record.create([{name:'display',type:'string'},{name:'id',type:'int'}]);}();

Ext.ns('MDB');MDB.Player=Ext.extend(Ext.Panel,{mtvplayer:false,youtubeplayer:false,yahooplayer:false,playing:null,currentPlayer:null,repeat:false,ismuted:false,stoped:false,totalTime:null,updateTask:false,yplaystate:null,yadstreamid:null,videoMask:null,maximized:false,relatedshown:false,poweredbymtv:new Ext.Toolbar.TextItem({text:' ',xtype:'tbtext'}),task:null,elRuntime:null,playButton:new Ext.Toolbar.Button({iconCls:'play-button',handler:function(button,state){Ext.getCmp('player').play();}}),prevButton:new Ext.Toolbar.Button({iconCls:'prev-button',handler:function(button,state){Ext.getCmp('player').previous();}}),nextButton:new Ext.Toolbar.Button({iconCls:'next-button',handler:function(button,state){Ext.getCmp('player').next();}}),stopButton:new Ext.Toolbar.Button({iconCls:'stop-button',handler:function(button,state){Ext.getCmp('player').stop();}}),pauseButton:new Ext.Toolbar.Button({iconCls:'pause-button',enableToggle:true,toggleHandler:function(button,state){if(state){Ext.getCmp('player').pause();}else{Ext.getCmp('player').unpause();}}}),repeatButton:new Ext.Toolbar.Button({iconCls:'repeat-button',enableToggle:true,toggleHandler:function(button,state){Ext.getCmp('player').repeat=state;}}),volupButton:new Ext.Toolbar.Button({iconCls:'vol-up-button',handler:function(button,state){Ext.getCmp('player').volup();}}),voldownButton:new Ext.Toolbar.Button({iconCls:'vol-down-button',handler:function(button,state){Ext.getCmp('player').voldown();}}),muteButton:new Ext.Toolbar.Button({iconCls:'mute-button',enableToggle:true,toggleHandler:function(button,state){Ext.getCmp('player').ismuted=state;Ext.getCmp('player').mute();}}),sliderField:null,isAdjusting:false,_initListeners:function(){this.on('resize',this._onResize,this);this.on('destroy',this._onDestroy,this);var c=this;this.sliderField.on('dragstart',function(){this.isAdjusting=true;},this);this.sliderField.on('drag',this._onSeekPosition,this);this.sliderField.on('dragend',function(){this.isAdjusting=false;},this);},initComponent:function(){this.border=false;var panel=this;this.title='Welcome To The Media Database';this.bufferResize=true;var html='';if(MDB.Canvas){this.tools=[{id:'restore',qtip:'Restore Video',handler:function(){if(Ext.getCmp('player').relatedshown){Ext.getCmp('relatedPanel').show();}
Ext.getCmp('bottomTabPanel').show();Ext.getCmp('sideTabPanel').show();Ext.getCmp('viewport').syncSize();Ext.getCmp('viewport').doLayout();Ext.getCmp('rightside').syncSize();Ext.getCmp('rightside').doLayout();Ext.getCmp('player').maximized=false;Ext.getCmp('player').syncSize();Ext.getCmp('player').doLayout();Ext.getCmp('player').sliderField.fireEvent('resize');}},{id:'maximize',qtip:'Maximize Video',handler:function(){if(Ext.getCmp('relatedPanel').isVisible()){Ext.getCmp('relatedPanel').hide();Ext.getCmp('player').relatedshown=true;}
Ext.getCmp('bottomTabPanel').hide();Ext.getCmp('sideTabPanel').hide();Ext.getCmp('viewport').syncSize();Ext.getCmp('viewport').doLayout();Ext.getCmp('rightside').syncSize();Ext.getCmp('rightside').doLayout();Ext.getCmp('player').maximized=true;Ext.getCmp('player').syncSize();Ext.getCmp('player').doLayout();Ext.getCmp('player').sliderField.fireEvent('resize');}}];html='<iframe id="homeframe" src="http://www.mediadb.com/frame/myspace/index" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>';}
this.html=html+'<div id="mtvdiv" style="display:none;width:100%;height:100%;"><div id="mtvvideodiv"></div></div><div id="youtubediv" style="display:none;width:100%;height:100%;"><div id="youtubevideodiv"></div></div><div id="yahoodiv" style="display:none;width:100%;height:100%;"><div id="yahoovideodiv"></div></div>';this.listeners={render:function(){panel.videoMask=new Ext.LoadMask(Ext.getCmp('videoPanel').getEl(),{msg:"This Video Has Been Removed..."});}};this.sliderField=new MDB.Player.SliderField({minValue:0,maxValue:0,fieldLabel:'Slider',disabled:true,listeners:{render:function(){this.el.dom.parentNode.style.width='100%';}}});window.mtvnPlayerLoaded=this.mtvplayerloaded;var mtvnSetCoad=function(adObject){return};window.mtvnSetCoad=mtvnSetCoad;window.onYouTubePlayerReady=this.onyoutubeplayerready;window.y_up_eventHandler=this.y_up_eventHandler;this.sliderField.on('dragstart',function(){this.isAdjusting=true;},this);this.sliderField.on('drag',this._onSeekPosition,this);this.sliderField.on('dragend',function(){this.isAdjusting=false;},this);this.on('resize',function(p,adjWidth,adjHeight,rawWidth,rawHeight){this._onResize(adjWidth,adjHeight,rawWidth,rawHeight);if(Ext.get('mtvn_player')!=null){Ext.get('mtvn_player').setHeight(Ext.getCmp('player').getInnerHeight()+35);}},this);this.bbar=new Ext.Toolbar({height:30,listeners:{render:function(cmp){var player=Ext.getCmp('player');this.add(player.prevButton);this.add(player.playButton);this.add(player.pauseButton);this.add(player.stopButton);this.add(player.nextButton);this.add(new Ext.Toolbar.Separator());this.add(player.repeatButton);this.add(new Ext.Toolbar.Separator());this.add(new Ext.Toolbar.Spacer());this.add(player.sliderField);this.add(new Ext.Toolbar.Spacer());this.add(new Ext.Toolbar.Spacer());player.elRuntime=Ext.fly(this.el.dom.getElementsByTagName('tr')[0]).createChild({tag:'td',style:'color:#FFFFFF'});player.elRuntime.update('00:00');this.add(new Ext.Toolbar.Spacer());this.add(new Ext.Toolbar.Separator());this.add(new Ext.Toolbar.Spacer());this.add(player.voldownButton);this.add(player.volupButton);this.add(player.muteButton);this.add(new Ext.Toolbar.Spacer());this.add(player.poweredbymtv);}}});this._initListeners();MDB.Player.superclass.initComponent.call(this);},_onResize:function(adjWidth,adjHeight,rawWidth,rawHeight){this.sliderField.fireEvent('resize');},_onDestroy:function(){if(this.task){Ext.TaskMgr.stop(this.task);}},playVideo:function(r){var player=Ext.getCmp('player');player.stoped=true;player.mtvplayer=false;player.yahooplayer=false;try{swfobject.removeSWF('mtvvideodiv');}catch(err){}
try{Ext.DomHelper.overwrite('mtvdiv','<div id="mtvvideodiv"></div>');}catch(err){}
try{swfobject.removeSWF('yahoovideodiv');}catch(err){}
try{Ext.DomHelper.overwrite('yahoodiv','<div id="yahoovideodiv"></div>');}catch(err){}
player.stop();player.setTitle(r.data.display);player.playing=r.id;player.totalTime=r.data.duration;if(player.task){Ext.TaskMgr.stop(player.task);}
var params={allowFullScreen:"true",allowScriptAccess:"always",quality:"high",bgcolor:"#000000",wmode:"transparent",salign:"b",align:"b"};Ext.get('mtvdiv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});Ext.get('youtubediv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:false});Ext.get('yahoodiv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});if(Ext.get('homeframe')!=null){Ext.get('homeframe').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});}
if(r.data.type=='MTV'){if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();Ext.getCmp('youtuberelatedvideos_grid').hide();Ext.getCmp('musicrelatedartists_grid').show();Ext.getCmp('musicrelatedartists_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Artists');Ext.getCmp('musicrelatedartists_grid').store.load({params:{ID:r.data.artist_id,NAME:r.data.artist}});player.poweredbymtv.show();Ext.DomHelper.overwrite(player.poweredbymtv.getEl(),'<a href="'+r.data.link+'" target="_blank"><img src="http://www.mtv.com/shared/promoimages/powered_by_mtv/powered_by_mtv_icon_black_cyan.jpg" /></a>');}
player.currentPlayer='MTV';player.volupButton.show();player.voldownButton.show();player.muteButton.show();Ext.get('mtvdiv').fadeIn({endOpacity:1,duration:0.5,useDisplay:true});swfobject.embedSWF('http://media.mtvnservices.com/mgid:uma:video:mtvmusic.com:'+r.data.url,"mtvvideodiv","100%",Ext.getCmp('player').getInnerHeight()+35,"9.0.0",false,{autoPlay:"true"},params,{id:"mtvn_player",name:"mtvn_player"});}else if(r.data.type=='YOUTUBE'){if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();player.poweredbymtv.hide();Ext.getCmp('musicrelatedartists_grid').hide();Ext.getCmp('youtuberelatedvideos_grid').show();Ext.getCmp('youtuberelatedvideos_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Videos');var relatedurl='http://gdata.youtube.com/feeds/api/videos/'+r.data.id+'/related';if(relatedurl!=Ext.getCmp('youtuberelatedvideos_grid').store.proxy.url){Ext.getCmp('youtuberelatedvideos_grid').store.proxy.url=relatedurl;Ext.getCmp('youtuberelatedvideos_grid').store.load();}}
player.volupButton.show();player.voldownButton.show();player.muteButton.show();Ext.get('youtubediv').fadeIn({endOpacity:1,duration:0.5,useDisplay:false});if(player.youtubeplayer!=false&&player.youtubeplayer!=null){player.youtubeplayer.loadVideoById(r.data.id);}else{var atts={id:"myytplayer"};swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=myytplayer","youtubevideodiv","100%","100%","9.0.0",false,null,params,atts);setTimeout(function(){Ext.getCmp('player').playVideo(r);},2500);}
player.currentPlayer='YOUTUBE';}else if(r.data.type=='YAHOO'){player.poweredbymtv.hide();if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();Ext.getCmp('youtuberelatedvideos_grid').hide();Ext.getCmp('musicrelatedartists_grid').show();Ext.getCmp('musicrelatedartists_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Artists');Ext.getCmp('musicrelatedartists_grid').store.load({params:{ID:r.data.artist_id,NAME:r.data.artist}});}
player.volupButton.hide();player.voldownButton.hide();player.muteButton.hide();Ext.get('yahoodiv').fadeIn({endOpacity:1,duration:0.5,useDisplay:true});swfobject.embedSWF("http://d.yimg.com/cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop.swf","yahoovideodiv","100%","100%","9.0.0",false,{id:'v'+r.data.url,shareEnable:'0',enableFullScreen:'0',autoStart:'1',controlsEnable:'0',infoEnable:'0',postpanelEnable:'0',prepanelEnable:'0',nowplayingEnable:'0',eh:'y_up_eventHandler'},params,{id:"yplayer"});player.currentPlayer='YAHOO';}
Ext.getCmp('viewport').syncSize();Ext.getCmp('viewport').doLayout();player.doLayout();player.sliderField.fireEvent('resize');player.stoped=false;},loadVideo:function(r){var player=Ext.getCmp('player');player.stoped=true;player.mtvplayer=false;player.yahooplayer=false;try{swfobject.removeSWF('mtvvideodiv');}catch(err){}
try{Ext.DomHelper.overwrite('mtvdiv','<div id="mtvvideodiv"></div>');}catch(err){}
try{swfobject.removeSWF('yahoovideodiv');}catch(err){}
try{Ext.DomHelper.overwrite('yahoodiv','<div id="yahoovideodiv"></div>');}catch(err){}
player.stop();player.setTitle(r.data.display);player.playing=r.id;player.totalTime=r.data.duration;if(player.task){Ext.TaskMgr.stop(player.task);}
var params={allowFullScreen:"true",allowScriptAccess:"always",quality:"high",bgcolor:"#000000",wmode:"transparent",salign:"b",align:"b"};Ext.get('mtvdiv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});Ext.get('youtubediv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:false});Ext.get('yahoodiv').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});if(Ext.get('homeframe')!=null){Ext.get('homeframe').fadeOut({endOpacity:0,easing:'easeOut',duration:0.5,remove:false,useDisplay:true});}
if(r.data.type=='MTV'){if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();Ext.getCmp('youtuberelatedvideos_grid').hide();Ext.getCmp('musicrelatedartists_grid').show();Ext.getCmp('musicrelatedartists_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Artists');Ext.getCmp('musicrelatedartists_grid').store.load({params:{ID:r.data.artist_id,NAME:r.data.artist}});player.poweredbymtv.show();Ext.DomHelper.overwrite(player.poweredbymtv.getEl(),'<a href="'+r.data.link+'" target="_blank"><img src="http://www.mtv.com/shared/promoimages/powered_by_mtv/powered_by_mtv_icon_black_cyan.jpg" /></a>');}
player.currentPlayer='MTV';player.volupButton.show();player.voldownButton.show();player.muteButton.show();Ext.get('mtvdiv').fadeIn({endOpacity:1,duration:0.5,useDisplay:true});swfobject.embedSWF('http://media.mtvnservices.com/mgid:uma:video:mtvmusic.com:'+r.data.url,"mtvvideodiv","100%",Ext.getCmp('player').getInnerHeight()+35,"9.0.0",false,{autoPlay:"false"},params,{id:"mtvn_player",name:"mtvn_player"});}else if(r.data.type=='YOUTUBE'){if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();player.poweredbymtv.hide();Ext.getCmp('musicrelatedartists_grid').hide();Ext.getCmp('youtuberelatedvideos_grid').show();Ext.getCmp('youtuberelatedvideos_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Videos');var relatedurl='http://gdata.youtube.com/feeds/api/videos/'+r.data.id+'/related';if(relatedurl!=Ext.getCmp('youtuberelatedvideos_grid').store.proxy.url){Ext.getCmp('youtuberelatedvideos_grid').store.proxy.url=relatedurl;Ext.getCmp('youtuberelatedvideos_grid').store.load();}}
player.volupButton.show();player.voldownButton.show();player.muteButton.show();Ext.get('youtubediv').fadeIn({endOpacity:1,duration:0.5,useDisplay:false});if(player.youtubeplayer!=false&&player.youtubeplayer!=null){player.youtubeplayer.cueVideoById(r.data.id);}else{var atts={id:"myytplayer"};swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=myytplayer","youtubevideodiv","100%","100%","9.0.0",false,null,params,atts);setTimeout(function(){Ext.getCmp('player').loadVideo(r);},2500);}
player.currentPlayer='YOUTUBE';}else if(r.data.type=='YAHOO'){player.poweredbymtv.hide();if(Ext.getCmp('relatedPanel')&&!Ext.getCmp('player').maximized){Ext.getCmp('relatedPanel').show();Ext.getCmp('youtuberelatedvideos_grid').hide();Ext.getCmp('musicrelatedartists_grid').show();Ext.getCmp('musicrelatedartists_grid').doLayout();Ext.getCmp('relatedPanel').setTitle('Related Artists');Ext.getCmp('musicrelatedartists_grid').store.load({params:{ID:r.data.artist_id,NAME:r.data.artist}});}
player.volupButton.hide();player.voldownButton.hide();player.muteButton.hide();Ext.get('yahoodiv').fadeIn({endOpacity:1,duration:0.5,useDisplay:true});swfobject.embedSWF("http://d.yimg.com/cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop.swf","yahoovideodiv","100%","100%","9.0.0",false,{id:'v'+r.data.url,shareEnable:'0',enableFullScreen:'0',autoStart:'0',controlsEnable:'0',infoEnable:'0',postpanelEnable:'0',prepanelEnable:'0',nowplayingEnable:'0',eh:'y_up_eventHandler'},params,{id:"yplayer"});player.currentPlayer='YAHOO';}
Ext.getCmp('viewport').syncSize();Ext.getCmp('viewport').doLayout();player.doLayout();player.sliderField.fireEvent('resize');player.stoped=false;},mtvplayerloaded:function(playerId){Ext.getCmp('player').mtvplayer=document.getElementById(playerId);Ext.getCmp('player').mtvplayer.addEventListener('STATE_CHANGE',"Ext.getCmp('player').mtvonStateChange");Ext.getCmp('player').mtvplayer.addEventListener('PLAYHEAD_UPDATE',"Ext.getCmp('player').mtvonPlayheadUpdate");Ext.getCmp('player').mtvplayer.addEventListener('MEDIA_ENDED',"Ext.getCmp('player').mtvmediaEnded");Ext.getCmp('player').mtvplayer.addEventListener('READY',"Ext.getCmp('player').mtvonReady");},mtvmediaEnded:function(){},mtvonPlayheadUpdate:function(){if(Ext.getCmp('player').currentPlayer=='MTV')Ext.getCmp("player").updateVideoInfo();},mtvonReady:function(){},mtvonStateChange:function(state){switch(state){case("stopped"):if(Ext.getCmp('player').stoped!=true){Ext.getCmp('player').next();}
break;case("playing"):Ext.getCmp('player').mute();break}},onyoutubeplayerready:function(playerId){Ext.getCmp('player').youtubeplayer=document.getElementById("myytplayer");Ext.getCmp('player').youtubeplayer.addEventListener("onStateChange","Ext.getCmp('player').youtubeonStateChange");Ext.getCmp('player').youtubeplayer.addEventListener("onError","Ext.getCmp('player').youtubeonError");},youtubeonStateChange:function(state){switch(state){case(0):if(Ext.getCmp('player').task){Ext.TaskMgr.stop(Ext.getCmp('player').task);}
if(Ext.getCmp('player').stoped!=true){Ext.getCmp('player').next();}
break;case(1):Ext.getCmp('player').task={run:function(){Ext.getCmp('player').updateVideoInfo();},interval:500};Ext.TaskMgr.start(Ext.getCmp('player').task);Ext.getCmp('player').mute();break;}},youtubeonError:function(error,error2){if(Ext.getCmp('player').task){Ext.TaskMgr.stop(Ext.getCmp('player').task);}
Ext.getCmp('player').videoMask.show();Ext.getCmp('player').currentPlayer=null;setTimeout(function(){Ext.getCmp('player').videoMask.hide();Ext.getCmp('player').next();},5000);},y_up_eventHandler:function(pType,pItem){switch(pType){case"init":Ext.getCmp('player').yahooplayer=document.getElementById("yplayer");break;case"itemBegin":if(pItem.type=='S_AD'){Ext.getCmp('player').yadstreamid=pItem.clipsid;}
Ext.getCmp('player').task={run:function(){Ext.getCmp('player').updateVideoInfo();},interval:500};Ext.TaskMgr.start(Ext.getCmp('player').task);break;case"itemEnd":case"done":if(Ext.getCmp('player').stoped!=true&&Ext.getCmp('player').yadstreamid!=pItem.clipsid){Ext.getCmp('player').next();}
if(Ext.getCmp('player').task){Ext.TaskMgr.stop(Ext.getCmp('player').task);}
break;case"streamPlay":case"streamPause":case"streamStop":case"streamError":case"userClick":break;}},getCurrentTime:function(){if(Ext.getCmp('player').mtvplayer){return Ext.getCmp('player').mtvplayer.getPlayheadTime();}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){return Ext.getCmp('player').youtubeplayer.getCurrentTime();}else if(Ext.getCmp('player').yahooplayer){return Ext.getCmp('player').yahooplayer.getVidTime();}},getVideoBytesLoaded:function(){if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){return Ext.getCmp('player').youtubeplayer.getVideoBytesLoaded();}else{return-1;}},getVideoBytesTotal:function(){if(Ext.getCmp('player').mtvplayer){return-1;}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){return Ext.getCmp('player').youtubeplayer.getVideoBytesTotal();}},pause:function(){if(Ext.getCmp('player').mtvplayer){Ext.getCmp('player').mtvplayer.pause();}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){if(Ext.getCmp('player').youtubeplayer!=null)Ext.getCmp('player').youtubeplayer.pauseVideo();}else if(Ext.getCmp('player').yahooplayer){Ext.getCmp('player').yahooplayer.vidPause();}},unpause:function(){if(Ext.getCmp('player').mtvplayer){Ext.getCmp('player').mtvplayer.unpause();}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){Ext.getCmp('player').youtubeplayer.playVideo();}else if(Ext.getCmp('player').yahooplayer){Ext.getCmp('player').yahooplayer.vidPlay();}},play:function(){if(Ext.getCmp('player').mtvplayer){Ext.getCmp('player').mtvplayer.unpause();}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){Ext.getCmp('player').youtubeplayer.playVideo();}else if(Ext.getCmp('player').yahooplayer){Ext.getCmp('player').yahooplayer.vidPlay();}},previous:function(){var index=Ext.StoreMgr.lookup('playlist_store').indexOfId(Ext.getCmp('player').playing);var total=Ext.StoreMgr.lookup('playlist_store').getCount();index=index-1;if(index>=0){Ext.getCmp('player').playVideo(Ext.StoreMgr.lookup('playlist_store').getAt(index));Ext.getCmp('playlist_grid').getView().focusRow(index);Ext.getCmp('playlist_grid').getSelectionModel().selectRow(index);}else if(Ext.getCmp('player').repeat==true){Ext.getCmp('player').playVideo(Ext.StoreMgr.lookup('playlist_store').getAt(total-1));Ext.getCmp('playlist_grid').getView().focusRow(total-1);Ext.getCmp('playlist_grid').getSelectionModel().selectRow(total-1);}},next:function(){var index=Ext.StoreMgr.lookup('playlist_store').indexOfId(Ext.getCmp('player').playing);var total=Ext.StoreMgr.lookup('playlist_store').getCount();index=index+1;if(index<total){Ext.getCmp('player').playVideo(Ext.StoreMgr.lookup('playlist_store').getAt(index));Ext.getCmp('playlist_grid').getView().focusRow(index);Ext.getCmp('playlist_grid').getSelectionModel().selectRow(index);}else if(Ext.getCmp('player').repeat==true){Ext.getCmp('player').playVideo(Ext.StoreMgr.lookup('playlist_store').getAt(0));Ext.getCmp('playlist_grid').getView().focusRow(0);Ext.getCmp('playlist_grid').getSelectionModel().selectRow(0);}},stop:function(){Ext.getCmp('player').stoped=true;if(Ext.getCmp('player').mtvplayer){Ext.getCmp('player').mtvplayer.pause();Ext.getCmp('player').mtvplayer.setPlayheadTime(0);}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){Ext.getCmp('player').youtubeplayer.stopVideo();}else if(Ext.getCmp('player').yahooplayer){Ext.getCmp('player').yahooplayer.vidStop();}},seekTo:function(){if(Ext.getCmp('player').mtvplayer){Ext.getCmp('player').mtvplayer.setPlayheadTime(this.sliderField.getValue());}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){Ext.getCmp('player').youtubeplayer.seekTo(this.sliderField.getValue());}else if(Ext.getCmp('player').yahooplayer){Ext.getCmp('player').yahooplayer.vidSeek(this.sliderField.getValue());}},voldown:function(){if(Ext.getCmp('player').mtvplayer){if(Ext.getCmp('player').mtvplayer.getVolume()!=0)Ext.getCmp('player').mtvplayer.setVolume(Ext.getCmp('player').mtvplayer.getVolume()-0.1);}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){if(Ext.getCmp('player').youtubeplayer.getVolume()!=0)Ext.getCmp('player').youtubeplayer.setVolume(Ext.getCmp('player').youtubeplayer.getVolume()-10);}},volup:function(){if(Ext.getCmp('player').mtvplayer){if(Ext.getCmp('player').mtvplayer.getVolume()!=1)Ext.getCmp('player').mtvplayer.setVolume(Ext.getCmp('player').mtvplayer.getVolume()+0.1);}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){if(Ext.getCmp('player').youtubeplayer.getVolume()!=1)Ext.getCmp('player').youtubeplayer.setVolume(Ext.getCmp('player').youtubeplayer.getVolume()+10);}},mute:function(){if(Ext.getCmp('player').mtvplayer){if(Ext.getCmp('player').ismuted===false){Ext.getCmp('player').mtvplayer.unmute();}else{Ext.getCmp('player').mtvplayer.mute();}}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){if(Ext.getCmp('player').ismuted===false){Ext.getCmp('player').youtubeplayer.unMute();}else{Ext.getCmp('player').youtubeplayer.mute();}}},getPlayState:function(){if(Ext.getCmp('player').mtvplayer){return Ext.getCmp('player').mtvplayer.getPlayState();}else if(Ext.getCmp('player').currentPlayer=='YOUTUBE'&&Ext.getCmp('player').youtubeplayer!=null&&Ext.getCmp('player').youtubeplayer!=false){var state=Ext.getCmp('player').youtubeplayer.getPlayerState();switch(state){case-1:state='unstarted';break;case 0:state='ended';break;case 1:state='playing';break;case 2:state='paused';break;case 3:state='buffering';break;case 5:state='video_cued';break;default:state='unknown';break;}
return state;}else if(Ext.getCmp('player').yahooplayer){return Ext.getCmp('player').yahooplayer.getVidState();}else{return false;}},updateVideoInfo:function(){var totalTime=Ext.getCmp('player').totalTime;var loaded=Ext.getCmp('player').getVideoBytesLoaded();var crem=Math.floor(Ext.getCmp('player').getCurrentTime());var width=Ext.getCmp('player').sliderField.sbar.getWidth();if(loaded!=-1){var total=Ext.getCmp('player').getVideoBytesTotal();var percLoaded=Math.floor(((loaded/total)*100));var pixels=Math.floor((width/100)*percLoaded);Ext.getCmp('player').sliderField.updateSliderBg(pixels);}else{Ext.getCmp('player').sliderField.updateSliderBg(1);}
if(totalTime>0){Ext.getCmp('player').sliderField.fireEvent('resize');Ext.getCmp('player').sliderField.setDisabled(false);var cminutes=Math.floor(crem/60);var cseconds=(crem%60);var trem=Math.floor(totalTime);var tminutes=Math.floor(trem/60);var tseconds=(trem%60);this.elRuntime.update((cminutes<10?'0'+cminutes:cminutes)+':'+(cseconds<10?'0'+cseconds:cseconds)+' / '+(tminutes<10?'0'+tminutes:tminutes)+':'+(tseconds<10?'0'+tseconds:tseconds));Ext.getCmp('player').sliderField.maxValue=trem;if(!Ext.getCmp('player').isAdjusting){Ext.getCmp('player').sliderField.setValue(crem,true);}}else{Ext.getCmp('player').sliderField.setDisabled(true);Ext.getCmp('player').sliderField.setValue(0,true);var cminutes=Math.floor(crem/60);var cseconds=(crem%60);this.elRuntime.update((cminutes<10?'0'+cminutes:cminutes)+':'+(cseconds<10?'0'+cseconds:cseconds));}},_onSeekPosition:function(){this.seekTo(this.sliderField.getValue());}});

Ext.ns('MDB','MDB.Player');MDB.Player.SliderField=Ext.extend(Ext.form.Field,{defaultAutoCreate:{tag:'input',type:'hidden'},thumbX:0,thumbY:0,initComponent:function(){MDB.Player.SliderField.superclass.initComponent.call(this);this.minValue=this.minValue||0;this.maxValue=this.maxValue||1;this.addEvents('dragstart','drag','dragend');this.on('resize',this.onResize,this);},onResize:function(){this.adjustPixelMax();},adjustPixelMax:function(){if(!this.sbar){return;}
var bb=this.sbar.getBox();var tb=this.sthumb.getBox();if(this.vertical===true){this.pixelMax=bb.height-tb.height;}else{this.pixelMax=bb.width-tb.width;}},onRender:function(ct,position){MDB.Player.SliderField.superclass.onRender.call(this,ct,position);this.sbar=Ext.DomHelper.append(ct,{tag:'div',cls:'mdb-player-slider-'+(this.vertical===true?'v':'h')+'bar'},true);this.sthumb=Ext.DomHelper.append(ct,{tag:'img',src:Ext.BLANK_IMAGE_URL,cls:'mdb-player-slider-'+(this.vertical===true?'v':'')+'thumb'},true);this.sthumb.addClassOnOver('mdb-player-slider-'+(this.vertical===true?'v':'')+'thumb-over');this.setValue(this.getValue()||this.minValue);},afterRender:function(){MDB.Player.SliderField.superclass.afterRender.call(this);if(this.vertical===true){this.sbar.setHeight(parseInt(this.el.dom.style.height,10));}else{var w=parseInt(this.el.dom.style.width,10);if(!isNaN){this.sbar.setWidth(w);}}
this.thumbX=parseInt(this.sthumb.getStyle('left'));this.thumbY=parseInt(this.sthumb.getStyle('bottom'));this.dd=new Ext.dd.DD(this.sthumb.id,'slider-'+this.sthumb.id,{constrainX:!this.vertical,constrainY:this.vertical});this.dd.slider=this;this.dd.onDrag=this.onDrag;this.dd.startDrag=this.startDrag;this.dd.endDrag=this.endDrag;if(this.disabled){this.dd.lock();}},updateSliderBg:function(percentage){this.sbar.dom.style.backgroundPosition='-'+(1280-percentage)+'px 0';},setValue:function(value,moveThumb){MDB.Player.SliderField.superclass.setValue.call(this,value);if(moveThumb===true){if(!this.pixelMax){this.adjustPixelMax();}
var min=this.minValue;var max=this.maxValue;if(this.vertical===true){this.dd.getEl().style.bottom=(Math.floor((value*this.pixelMax)/(min+(max-min)))+this.thumbY)+'px';}else{this.dd.getEl().style.left=Math.floor((value*this.pixelMax)/(min+(max-min)))+'px';}}},resetPositions:function(){this.sthumb.dom.style.left='0px';this.sbar.dom.style.backgroundPosition='-1280px 0';},onDisable:function(){MDB.Player.SliderField.superclass.onDisable.call(this);this.sbar.addClass(this.disabledClass);this.sthumb.addClass(this.disabledClass);this.dd.lock();},onEnable:function(){MDB.Player.SliderField.superclass.onEnable.call(this);this.sbar.removeClass(this.disabledClass);this.sthumb.removeClass(this.disabledClass);this.dd.unlock();},startDrag:function(x,y){var slider=this.slider;var bb=slider.sbar.getBox();var tb=slider.sthumb.getBox();this.resetConstraints();if(!slider.pixelMax){slider.adjustPixelMax();}
if(this.slider.vertical===true){this.setXConstraint(0,0);this.setYConstraint(tb.y-bb.y+1,bb.y+bb.height-tb.y-tb.height-1);}else{this.setYConstraint(0,0);this.setXConstraint(tb.x-bb.x+1,bb.x+bb.width-tb.x-tb.width-1);}
this.slider.fireEvent('dragstart');},endDrag:function(e){this.slider.fireEvent('dragend');},onDrag:function(e){var min=this.slider.minValue;var max=this.slider.maxValue;if(this.slider.vertical===true){var pixelPos=Math.abs(parseInt(this.getEl().style.top,10))-this.slider.thumbY;this.slider.setValue(min+(max-min)*pixelPos/this.slider.pixelMax);}else{var pixelPos=parseInt(this.getEl().style.left,10);this.slider.setValue(min+(max-min)*pixelPos/this.slider.pixelMax);}
this.slider.fireEvent('drag');}});

Ext.onReady(function(){function getPlaylist(){ZP.Data.Remote.get({url:"http://www.mediadb.com/json/myspace/profileview",callback:function(response,url,errored){if(!errored){var items=response.data.pl;var records=Array();for(var i in items){var item=items[i];if(item.di){records.push(new MDB.Playlist.Record({favorite_id:item.fi,artist:item.an,artist_id:item.ai,song:item.s,url:item.u,type:item.t,id:item.i,display:item.di,duration:item.du}));}}
Ext.StoreMgr.lookup('playlist_store').add(records);if(response.data.as==1){Ext.getCmp('player').playVideo(Ext.StoreMgr.lookup('playlist_store').getAt(0));}else{Ext.getCmp('player').loadVideo(Ext.StoreMgr.lookup('playlist_store').getAt(0));}
Ext.getCmp('playlist_grid').getSelectionModel().selectRow(0);}else{Ext.get('mtvdiv').fadeIn({endOpacity:1,duration:0.5,useDisplay:false});Ext.DomHelper.overwrite('mtvdiv','<center>'+ownerName+' has not selected any videos yet</center>');}}})}
var viewport=new Ext.Viewport({layout:'border',border:false,id:'viewport',items:[new MDB.Player({region:'center',border:false,layout:'fit',id:"player"}),{region:'south',height:85,xtype:'grid',id:'playlist_grid',hideHeaders:true,autoExpandMax:4000,autoExpandColumn:'display',border:false,store:new Ext.data.SimpleStore({id:'playlist_store',fields:[{name:'artist',type:'string'},{name:'artist_id',type:'string'},{name:'song',type:'string'},{name:'url',type:'string'},{name:'type',type:'string'},{name:'id',type:'string'},{name:'display',type:'string'},{name:'link',type:'string'}]}),columns:[new Ext.grid.RowNumberer(),{id:'display',dataIndex:"display"}],listeners:{rowdblclick:function(grid,rowIdx,r){Ext.getCmp('player').playVideo(grid.getSelectionModel().getSelected());}}}]});viewport.render();getPlaylist();});setTimeout(function(){Ext.get('loading').fadeOut({endOpacity:0,easing:'easeOut',duration:1,remove:true,useDisplay:true});Ext.get('loading-mask').fadeOut({endOpacity:0,easing:'easeOut',duration:1,remove:true,useDisplay:true});},1000);
