var fizy = new Class({
	//Implements: Log,
	initialize: function(access,theme,state,youtube){
		this.access = access;
		this.theme = theme;
		this.state = state;
		this.video = 0;
		this.shuffle = 0;
		this.playList = [];
		this.yt = youtube;
		if(Browser.Engine.trident) { this.IE=1; }
		if(this.IE && Browser.Engine.version == 4) { this.IE6=1; }
		return 0;
	},
/*--------------------------------------------------*/
//	FOOTER	
/*--------------------------------------------------*/
	footer: function(PID){	
		this.PID = PID; // default playList ID
		this.order = [];
		this.player('build');
		this.listPL();
		return 0;
	},
/*--------------------------------------------------*/
//	LOADER	
/*--------------------------------------------------*/
	loader: function(ID,color){
		if (color) return new Element('img',{'id':'loader'+ID,'class':'loader','src':'/themes/'+fizy.theme+'/images/loader.gif'});
		else return new Element('img',{'id':'loader'+ID,'class':'loader','src':'/themes/'+fizy.theme+'/images/loaderBlack.gif'});
	},
/*--------------------------------------------------*/
//	fizyBOX	
/*--------------------------------------------------*/
	box: function(title,inner,loader,w,h,overlay,focus,enter){
		if($('fizyOverlay')){ fizy.closeBox(); }
		if(fizy.video) fizy.player('video',true);
		title = title?title:'&nbsp;'
		w = w?w:510;
		h = h?h:440;
		//if IE6
		if(fizy.IE6){
			window.scrollTo(0, 0);
			$('fizy').setStyle('overflow','hidden');
			var c = window.getCoordinates();
			new Element('div',{'id':'fizyOverlay','styles':{'opacity':(overlay?overlay:.8),'width':c.width,'height':c.height},'events':{
				'click':function(){ fizy.closeBox(); }
			}}).inject($(document.body));
		} else {
			new Element('div',{'id':'fizyOverlay','styles':{'opacity':(overlay?overlay:.8)},'events':{
				'click':function(){ fizy.closeBox(); }
			}}).inject($(document.body));
		}
		var b = new Element('div',{'id':'fizyBOX','styles':{
			'margin-top':-h/2,'margin-left':-w/2,'width':w,'height':h
			,'display':loader?'none':'block'
		}}).inject($(document.body));
		new Element('span',{'class':'close','text':lang.close,'events':{
			'click':function(){ fizy.closeBox(); }
		}}).inject(new Element('div',{'class':'header','html':title}).inject(b),'top');
		if(loader){
			inner.inject(new Element('div',{'id':'fizyContainer'}).inject(b));
		} else new Element('div',{'id':'fizyContainer','html':inner}).inject(b);		
		if(fizy.IE)
		$(document.html).addEvent('keydown',function(e){ if(e.key=='esc' || (enter && e.key=='enter')) fizy.closeBox(); });
		else
		$(window).addEvent('keydown',function(e){ if(e.key=='esc' || (enter && e.key=='enter')) fizy.closeBox(); });		
		if(focus) $(focus).focus();
		return 0;	
	},
	setBox: function(){		
		$(document.body).getElements('a.fizybox').each(function(e){
			e.addEvent('click',function(){				
				fizy.boxr(e.get('title'));
			});
			e.set('title',e.get('href'));
			e.erase('href');
			e.setStyle('cursor','pointer');
		});
		return 0;	
	},
	boxr: function(href,w,h){
		var content = new IFrame({ 
		    src: href, 'frameborder': 0, 'framescrool': 'no',			 
		    styles: { 'border':'0' },
		    events: { load: function(){ $('fizyBOX').setStyle('display','block'); }}				 
		});
		fizy.box('', content, 1, w, h);
	},
	closeBox: function(){ 
		if($('fizyOverlay'))$('fizyOverlay').destroy(); 
		if($('fizyBOX'))$('fizyBOX').destroy(); 
		$(window).removeEvents('click'); 
		$(window).removeEvents('keydown'); 
		$(document.html).removeEvents('click'); 
		$(document.html).removeEvents('keydown');
		if(fizy.video) fizy.player('video');
		if($('video')) fizy.player('hotkeys');
		//$('fizy').setStyle('overflow','auto');
	},
/*---------------------------------_trackEvent('player', 'play');-----------------*/
//	ALERT	
/*--------------------------------------------------*/
	alert: function(text,loader){
		if(loader) loader.destroy();
		var inner = '<table class="alert" cellpadding="0" cellspacing="0" border="0" height="100"><tr><td style="padding:13px;">'+text+'</td></tr></table>';
		fizy.box('', inner, 0, 400, 100, .6, null, 1);
		return 0;	
	},
/*--------------------------------------------------*/
//	CONFIRM	
/*--------------------------------------------------*/
	confirm: function(text,func){
		var inner = '<table class="confirm" cellpadding="0" cellspacing="0" border="0" height="100"><tr><td style="padding:13px;"><br />'+text+'</td></tr>'
			+'<tr><td class="buttons">'
			+'<input class="button cancel" onclick="fizy.closeBox();" value="'+lang.cancel+'" type="button" tabindex="2" />'
			+'<input id="approve" class="button approve" onclick="fizy.closeBox(); '+func+';" value="'+lang.approve+'" type="button" tabindex="1" />'
			+'</td></tr></table>';
		fizy.box('', inner, 0, 400, 100, .6, 'approve');
		return 0;	
	},
/*--------------------------------------------------*/
//	SORTABLE
/*--------------------------------------------------*/
	sortable: function(ID,handle){
		return new Sortables(ID, {
			handle: handle,	revert: 1, constrain: 1, clone: {opacity: .6}, opacity: .2,
			onStart: function(){ 
				fizy.order = this.serialize().filter(function(item){ return item != null; }); 
			},
			onComplete: function(e){
				e.highlight('#333','#000');
				var order = this.serialize().join(',');
				if(fizy.order.join(',')!=order && fizy.order.length > 0){
					new Request.JSON().post('/fizy::orderSong','PID='+fizy.PID+'&order='+order);
					//pageTracker._trackPageview('/fizy::orderSong::' + fizy.PID);
					if (pageTracker) pageTracker._trackEvent('playlist', 'order');	
				}
			}
		});
	},
/*--------------------------------------------------*/
//	SEARCH	
/*--------------------------------------------------*/
	search: function(p){
		if($('searchQuery').get('value')){
			if(fizy.access){
				// user
				var loader = fizy.loader(1,1).inject($('results').empty());
				if(fizy.searchRequest) fizy.searchRequest.cancel();
				fizy.searchRequest = new Request.JSON({
					onComplete: function(r){
						loader.destroy();
						//ADVERTISEMENT
						if(advertisement){
							var div = new Element('div',{'class':'item advertisement','html':advertisement}).inject('results');
							new Element('span',{'class':'clear'}).inject('results');
						}
						//-------------
						if(r){
							if(r.error) fizy.alert(r.error);
							else r.results.each(function(i){
								if (i.title) {
									var div = new Element('div',{'class':'item'}).inject('results');
									new Element('a',{'class':'song','html':'['+fizy.formatTime(i.duration)+'] '+i.title,'events':{
										'click':function(e) {
											fizy.player('play',i);
										}
									}}).inject(div);
									new Element('a',{'class':'add','text':'+','events':{
										'click':function(e) {
											fizy.addSong(i.ID);
										}
									}}).inject(div);
									new Element('span',{'class':'clear'}).inject(div);
									new Element('span',{'class':'clear'}).inject('results');
								}
							});
							// close video and settings
							var cl;
							if (r.pagination) {
								var pagebr = new Element('br').inject('results');
								var pagediv = new Element('div', {'class':'item'}).inject('results');
								new Element('span', {'class':cl, 'html':r.pagination}).inject(pagediv);
							}
							$('fzPlayer').removeClass('video');
						}
						fizy.adHit();
						if (pageTracker) pageTracker._trackPageview('/?q=' + $('searchQuery').get('value'));
					}
				}).post('/search.php','query='+ ($('searchQuery').get('value').toLowerCase()).replace('&', '%26') + '&p=' + p + '&glx=' + Math.random());
				//pageTracker._trackPageview('/search::' + $('searchQuery').get('value'));
			} else {
				// guest
				location.href = '/q/' + $('searchQuery').get('value').toLowerCase();
				return false;
			}
		}
	},
/*--------------------------------------------------*/
//	PLAYER	
/*--------------------------------------------------*/
	player: function(cmd,a) {
		switch(cmd){
			case 'build':	
				//if(Browser.Plugins.Flash.version<9){ fizy.alert(lang.flashPlayerVersion); return; }
				if(!$('video'))
				new Swiff('/lib/player/fizy.swf?nc=glxx', {
				    id: 'video',
				    width: 450,
				    height: 20,
				    container: 'fzVideo', 
				    params: {
				        allowFullScreen: 'true',
				        scale: 'noborder',
				        align: 'b',
				        wMode: 'window'
				    }
				});
			break;
			case 'ready':
				fizy.player('playingReady');
				$('video').set('spectrum',{'spectrumcolor':'cccccc'});
				if(song.ID) {
					fizy.autoplay = 1;
					fizy.player('play',song);
				}
				fizy.player('hotkeys');
			break;
			case 'playingReady':
				fizy.playerReady = 1;
				//fizy.log('Log: player ready');
			break;			
			case 'play':
				if(fizy.playerReady) fizy.playerReady = 0; else return;
				if(fizy.playReq) fizy.playReq.cancel();
                fizy.playListContinue = a.pLContinue; // continue from playlist  true / false
				fizy.playReq = new Request.JSON({ 
					onRequest: function(s){ 
						setTimeout('fizy.playReq.cancel();',10000);						
					},
					onCancel: function(s){ 
						fizy.player('playingReady');						
					},
					onComplete: function(s){ 
                        if(s){
                        	if (s.error == 'noCountry') {
                        		fizy.alert(lang.noCountry);
                        		fizy.player('playingReady');
                        	} else {
	                            fizy.playing = s;
	                            if($('footer').hasClass('close')&&!fizy.IE){
	                                $('footer').fade('hide');
	                                $('footer').removeClass('close');
	                            }			
	                            $('fzPlayer').removeClass('close');
	                            $('footer').fade('in');		
	                            //playing icon
	                            if($('songs')) $('songs').getElements('li').each(function(s){ s.removeClass('playing') });
	                            if ((fizy.playing) && ($('song'+fizy.playing.ID)))  $('song'+fizy.playing.ID).getParent().addClass('playing');
	                            if($('results')) $('results').getElements('div.item').each(function(s){ s.removeClass('playing') });
	                            if ((fizy.playing) && ($('item'+fizy.playing.ID)))  $('item'+fizy.playing.ID).addClass('playing');
								// playlist youtube item check
								if(s.provider=='youtube' && !fizy.yt) {
									fizy.player('playingReady');
									fizy.player('next');
									return true;
								}
	                            $('video').set('load',s);
	                            $('playingSong').set('html',lang.nowPlaying + s.title);
	                            document.title = unescape(s.title.replace('&amp;', '&').replace('&quot;', '"').replace('&#039;', '\'')) + ' / fizy.';
	                            $('provider').set('src','/themes/'+fizy.theme+'/images/providers/'+s.provider+'.gif');
	                            //$('provider').addEvent('mouseover',function(e){ this.set('src','/themes/'+fizy.theme+'/images/providers/'+s.provider+'Hover.gif'); });
	                            //$('provider').addEvent('mouseout',function(e){ this.set('src','/themes/'+fizy.theme+'/images/providers/'+s.provider+'.gif'); });
                        	}
                        } else fizy.player('playingReady');
                    }
                }).post('/fizy::getSong','SID='+a.ID);
				if (!fizy.autoplay) {
					if (pageTracker) pageTracker._trackPageview('/fizy::getSong::' + a.ID);
				} else fizy.autoplay = 0;
			break;
			case 'stop':
				//if($('songs')) $('songs').getElements('li').each(function(s){ s.removeClass('playing') });
			break;
			case 'next':
				if(!fizy.playing) return;
				if (pageTracker) pageTracker._trackEvent('player', 'next');
                if(fizy.state==1){
                    if(fizy.shuffle){
                        var randomSong = $('songs').getElements('li.').getRandom();
                        if(randomSong){
                            $(randomSong.id).getFirst().getNext().fireEvent('click');
                        }
                    } else {
                        if($('song'+fizy.playing.ID)){
                            if($('song'+fizy.playing.ID).getParent().getNext()){ $('song'+fizy.playing.ID).getParent().getNext().getFirst().getNext().fireEvent('click'); }
                            else if($('songs').getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                        } else if($('songs') && $('songs').getFirst().getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); } //else { $('video').set('stop',{}); }
                    }
                } else {
                    //fizy.log(fizy.playing.ID);
                    if($('item'+fizy.playing.ID)){
                        if($('item'+fizy.playing.ID).getNext().getNext()){ $('item'+fizy.playing.ID).getNext().getNext().getFirst().fireEvent('click'); }
                        //else if($('songs').getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                    } //else if($('songs') && $('songs').getFirst().getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                }
			break;
			case 'pre':
				if(!fizy.playing) return;
				if (pageTracker) pageTracker._trackEvent('player', 'previous');
				if(fizy.shuffle){
					var randomSong = $('songs').getElements('li.').getRandom();
					if(randomSong){
						$(randomSong.id).getFirst().getNext().fireEvent('click');			
					}
				} else {	
					if($('song'+fizy.playing.ID)){
						if($('song'+fizy.playing.ID).getParent().getPrevious()){ $('song'+fizy.playing.ID).getParent().getPrevious().getFirst().getNext().fireEvent('click'); }
						else if($('songs') && $('songs').getLast().getFirst()){ $('songs').getLast().getFirst().getNext().fireEvent('click'); }
					}
				}
			break;
			case 'completed':
			case 'complated':
				if (pageTracker) pageTracker._trackEvent('player', 'completed');	
				
				new Request.JSON({ 
					onRequest: function(s){ setTimeout('fizy.playReq.cancel();',10000);	},
					onComplete: function(s){ }
				}).post('/fizy::completed','SID='+fizy.playing.ID);	
                if(fizy.playListContinue){
                    if(fizy.state==1){
                        if(fizy.shuffle){
                            var randomSong = $('songs').getElements('li.').getRandom();
                            if(randomSong){
                                $(randomSong.id).getFirst().getNext().fireEvent('click');
                            }
                        } else {
                            if($('song'+fizy.playing.ID)){
                                if($('song'+fizy.playing.ID).getParent().getNext()){ $('song'+fizy.playing.ID).getParent().getNext().getFirst().getNext().fireEvent('click'); }
                                else if($('songs').getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                            } else if($('songs') && $('songs').getFirst().getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); } //else { $('video').set('stop',{}); }
                        }
                    } else {
                     //fizy.log(fizy.playing.ID);
                        if($('item'+fizy.playing.ID)){
                            if($('item'+fizy.playing.ID).getNext().getNext()){
                            	$('item'+fizy.playing.ID).getNext().getNext().getFirst().fireEvent('click');
                            	//console.log('hede');
                            }
                            //else if($('songs').getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                        } //else if($('songs') && $('songs').getFirst().getFirst()){ $('songs').getFirst().getFirst().getNext().fireEvent('click'); }
                    }
                }
			break;
			case 'error':
				fizy.player('playingReady');
				if($('song'+fizy.playing.ID)){
					fizy.player('next');
				} else { fizy.alert(lang.fileRemoved); }
				//if(a!=150){ 
					// 150 youtube ülke kapalı olduğunda dönen kod
					new Request.JSON().post('/fizy::errorSong','SID='+fizy.playing.ID);
					if (pageTracker) pageTracker._trackPageview('/fizy::errorSong::' + fizy.playing.ID);
				//}
			break;
			case 'video':
				$('fzPlayer').toggleClass('video');
				if(!a) fizy.video = $('fzPlayer').hasClass('video');
			break;
			case '30sec':
				new Request.JSON().post('/fizy::30sec','SID='+fizy.playing.ID);
			break;
			case 'share':
				if(fizy.playing)
				fizy.boxr('/shareSong/'+fizy.playing.ID);
			break;
			case 'report':
				if(fizy.playing)
					fizy.confirm(lang.reportDesc,'new Request.JSON({ onComplete: function(s){ fizy.alert(s.msg,0); }}).post(\'/fizy::reportSong\',\'SID=\'+fizy.playing.ID); if (pageTracker) pageTracker._trackPageview(\'/fizy::reportSong::\' + fizy.playing.ID);');
			break;
			case 'add':
				if(fizy.playing) {
					if (fizy.access) {
						fizy.addSong(fizy.playing.ID);
					} else {
						fizy.boxr('/signup');
					}
				}
			break;
			case 'embed':
				if(fizy.playing)
				fizy.boxr('/embed/'+fizy.playing.ID,400,100);
			break;
			case 'shuffle':
				fizy.shuffle = fizy.shuffle?0:1;
				if (pageTracker) pageTracker._trackEvent('player', 'shuffle', fizy.shuffle);
			break;
			case 'hotkeys':
				if(fizy.IE){
					$(document.html).addEvent('keydown', function(e){
						if(e.target.toString() == '[object HTMLHtmlElement]'||e.target.toString() == '[object HTMLBodyElement]'){
						   	if(e.key == 'left') fizy.player('pre');
						   	if(e.key == 'right') fizy.player('next');
						   	if((e.key == 'up') && ((e.shift) || (e.control) || (e.alt))) $('video').set('volume_up');
						   	if((e.key == 'down') && ((e.shift) || (e.control) || (e.alt))) $('video').set('volume_down');
						   	if(e.key == 'space') $('video').set('play_pause');
						}
					});					
				} else {
					$(window).addEvent('keydown', function(e){
						if(e.target.toString() == '[object HTMLHtmlElement]'||e.target.toString() == '[object HTMLBodyElement]'){
						   	if(e.key == 'left') fizy.player('pre');
						   	if(e.key == 'right') fizy.player('next');
						   	if((e.key == 'up') && ((e.shift) || (e.control) || (e.alt))) $('video').set('volume_up');
						   	if((e.key == 'down') && ((e.shift) || (e.control) || (e.alt))) $('video').set('volume_down');
						   	if(e.key == 'space') $('video').set('play_pause');
						}
					});					
				}
			break;
		}
	},
/*--------------------------------------------------*/
//	PLAYLIST		
/*--------------------------------------------------*/
	togglePL: function() {
		fizy.player('playingReady');
		$('PL').toggleClass('close');
	},
	song: function(a) {
		var li = new Element('li',{'id':a.ID,'events':{
			'mouseover':function(e){ this.getElement('.del').setStyle('visibility','visible'); },		
			'mouseout':function(e){ this.getElement('.del').setStyle('visibility','hidden'); }			
		}}).inject('songs');
		new Element('label',{'class':'handler','html':'&nbsp;'}).inject(li);
		new Element('span',{'id':'song'+a.ID,'class':'title','html':'['+fizy.formatTime(a.duration)+'] '+a.title,
			'events':{'click':function(){ a.pLContinue = true; fizy.player('play',a); }}}).inject(li);
		new Element('span',{'class':'del','text':'x','events':{'click':function(e){ fizy.removeSong(a.ID) }}}).inject(li);	
		new Element('span',{'class':'clear'}).inject(li);	
		return li;		
	},
	addSong: function(songID) {
		if($('footer').hasClass('close')&&!fizy.IE){
			$('footer').fade('hide');
			$('footer').removeClass('close');
		}			
		$('PL').removeClass('close');
		$('footer').fade('in');
		if($('song'+songID)) { $('song'+songID).getParent().highlight('#333','#000'); return; }
		var loader = this.loader(1).inject('songs');
		if($('songs').getElement('.error')) var error = $('songs').getElement('.error').dispose();	
		new Request.JSON({
			onComplete: function(s){ 
				if(s.error) { fizy.alert(s.error,loader); error.inject('songs'); }
				else fizy.songs.addItems(fizy.song(s).highlight('#333','#000').replaces(loader)); 
				if (pageTracker) pageTracker._trackPageview('/fizy::addSong::' + songID);
			}
		}).post('/fizy::addSong','PID='+this.PID+'&SID='+songID);
	},
	removeSong: function(songID) {
		$('song'+songID).empty();
		this.loader(1).inject('song'+songID);
		new Request.JSON({
			onComplete: function(s){ 
				fizy.songs.removeItems($('song'+s.ID).getParent()).destroy();
				if(!$('songs').getElements('li').length)  new Element('li',{'class':'error','text':lang.playlistHasCleared}).inject('songs');
				if (pageTracker) pageTracker._trackPageview('/fizy::removeSong::' + songID);
			}
		}).post('/fizy::removeSong','PID='+this.PID+'&SID='+songID);
	},
	listSong: function(PID,title){
		if($('footer').hasClass('close')&&!fizy.IE){
			$('footer').fade('hide');
			$('footer').removeClass('close');
		}
		this.PID = PID;
		fizy.playingList(PID,title);
		$('playList').empty();
		var songs = new Element('ul',{'id':'songs'}).inject('playList');
		fizy.songs = fizy.sortable(songs,'label') // sortable
		var loader = fizy.loader(1).inject(songs);
		if(fizy.listSongRequest) fizy.listSongRequest.cancel();
		fizy.listSongRequest = new Request.JSON({
			noCache: true,
			onComplete: function(r){
				loader.destroy();
				if(r==null||!r.length)
					new Element('li',{'class':'error','text':lang.noSongsYet}).inject(songs);
				else if(r.error){
				 	new Element('li',{'class':'error','text':r.error}).inject(songs);
				} else {
					fizy.playList = r;
					r.each(function(s,i){
						fizy.songs.addItems(fizy.song(s)); 
					});
					$('PL').removeClass('close');
					$('footer').fade('in');
				}
				if (pageTracker) pageTracker._trackPageview('/fizy::getSongs::' + PID);
			}
		}).post('/fizy::getSongs','self=1&PID='+PID);
	},
	formatTime: function(time) {
		var retVal = '00:00';
		if (time > 0) {
			retVal = '';
			var sec = (Math.floor(time % 60)).toString();
			var min = (Math.floor(time/60) % 60).toString();
			var hou = (Math.floor(time/3600) % 24).toString();
			sec = (sec.length<2)?'0' + sec:sec;
			min = (min.length<2)?'0' + min:min;
			if (parseInt(hou) > 0) {
				retVal = ((hou.length<2)?'0' + hou:hou) + ':';
			}
			retVal += min + ':' + sec;
		}
		return retVal;
	},
/*--------------------------------------------------*/
//	PLAYLISTS	
/*--------------------------------------------------*/
	noCountry: function() {
		fizy.alert(lang.noCountry);
		fizy.player('playingReady');
	},
	togglePLS: function() {
		$('PLS').toggleClass('close');
	},
	PL: function (ID, title){
		var li = new Element('li',{'id':'pL'+ID,'events':{
			'click':function(){ fizy.listSong(ID,title); },			
			'mouseover':function(e){ this.getElement('.del').setStyle('visibility','visible'); },		
			'mouseout':function(e){ this.getElement('.del').setStyle('visibility','hidden'); }			
		}});
		new Element('span',{'class':'title','html':title}).inject(li);
		new Element('span',{'class':'del','text':'x','events':{'click':function(e){ 
			e.stop(); fizy.confirm(lang.ruSure,'fizy.deletePL('+ID+')'); }}}).inject(li);
		new Element('span',{'class':'clear'}).inject(li);
		return li;
	},
	createPL: function(name){
		var loader = this.loader(1).inject('lists');
		new Request.JSON({
			onComplete: function(p){
				if(p.error) { fizy.alert(p.error,loader); }
				else {
					var pl = fizy.PL(p.ID,p.title).highlight('#333','#000').replaces(loader);
					$('PLS').removeClass('close');
					pl.fireEvent('click');
				}
				if (pageTracker) pageTracker._trackPageview('/fizy::newPLaylist::' + name);
			}
		}).post('/fizy::newPlaylist','name='+name);
	},
	duplicatePL: function(name){
		var loader = this.loader(1).inject('lists');
		new Request.JSON({
			onComplete: function(p){
				if(p.error) { fizy.alert(p.error,loader); }
				else {
					var pl = fizy.PL(p.ID,p.title).highlight('#333','#000').replaces(loader);
					$('PLS').removeClass('close');
					pl.fireEvent('click');
				}
				if (pageTracker) pageTracker._trackPageview('/fizy::copyPlaylist::' + fizy.UPID);
			}
		}).post('/fizy::copyPlaylist','PID='+ fizy.UPID +'&name=' + name);
	},
	setPL: function(name){
		//var loader = this.loader(1).inject('lists');
		new Request.JSON({
			onComplete: function(p){
				if(p.error) { fizy.alert(p.error,loader); }
				else {
					var pl = fizy.PL(p.ID,p.title).highlight('#333','#000').replaces($('pL'+fizy.PID));
					$('PLS').removeClass('close');
					//pl.fireEvent('click');
					$('PLname').set('html',lang.currentPlaylist+': '+p.title);
				}
				if (pageTracker) pageTracker._trackPageview('/fizy::renamePLaylist::' + name);
			}
		}).post('/fizy::renamePlaylist','PID='+fizy.PID+'&name='+name);
	},
	newPL: function(){
		var text = '<label>'+lang.name+' &nbsp;</label><input id="playListName" type="text" onkeypress="if(event.keyCode == 13){ fizy.createPL($(\'playListName\').value); fizy.closeBox(); }" />';
		var inner = '<table class="save" cellpadding="0" cellspacing="0" border="0" height="130"><tr><td style="padding:13px;"><br />'+text+'</td></tr>'
			+'<tr><td class="buttons">'
			+'<input class="button cancel" onclick="fizy.closeBox();" value="'+lang.cancel+'" type="button" tabindex="2" />'
			+'<input id="save" class="button save" onclick="fizy.createPL($(\'playListName\').value); fizy.closeBox();" value="'+lang.save+'" type="button" tabindex="1" />'
			+'</td></tr></table>';
		fizy.box('', inner, 0, 400, 130, .6, 'playListName');
		return 0;
	},
	renamePL: function(){
		var text = '<label>'+lang.name+' &nbsp;</label><input id="playListName" type="text" value="'+fizy.PLname+'" onkeypress="if(event.keyCode == 13){ fizy.setPL($(\'playListName\').value); fizy.closeBox(); }" />';
		var inner = '<table class="save" cellpadding="0" cellspacing="0" border="0" height="130"><tr><td style="padding:13px;"><br />'+text+'</td></tr>'
			+'<tr><td class="buttons">'
			+'<input class="button cancel" onclick="fizy.closeBox();" value="'+lang.cancel+'" type="button" tabindex="2" />'
			+'<input id="save" class="button save" onclick="fizy.setPL($(\'playListName\').value); fizy.closeBox();" value="'+lang.save+'" type="button" tabindex="1" />'
			+'</td></tr></table>';
		fizy.box('', inner, 0, 400, 130, .6, 'playListName');
		return 0;
	},
	copyPL: function(title,PID){
        fizy.UPID = PID;
		var text = '<label>'+lang.name+' &nbsp;</label><input id="playListName" type="text" value="'+title+'" onkeypress="if(event.keyCode == 13){ fizy.duplicatePL($(\'playListName\').value); fizy.closeBox(); }" />';
		var inner = '<table class="save" cellpadding="0" cellspacing="0" border="0" height="130"><tr><td style="padding:13px;"><br />'+text+'</td></tr>'
			+'<tr><td class="buttons">'
			+'<input class="button cancel" onclick="fizy.closeBox();" value="'+lang.cancel+'" type="button" tabindex="2" />'
			+'<input id="save" class="button save" onclick="fizy.duplicatePL($(\'playListName\').value); fizy.closeBox();" value="'+lang.save+'" type="button" tabindex="1" />'
			+'</td></tr></table>';
		fizy.box('', inner, 0, 400, 130, .6, 'playListName');
        //fizy.log(fizy.UPID);
		return 0;
	},
	deletePL: function(ID){
		if(fizy.PID == ID) fizy.alert(lang.playlistDeleteAlert);
		else {
			this.loader(1).inject($('pL'+ID).empty());
			new Request.JSON({
				onComplete: function(p){
					if(p.code == 400) fizy.alert(lang.playlistDeleteAlert); 
					else {
						if(fizy.PID == p.ID) {	
							$('songs').empty(); 
							new Element('li',{'class':'error','text':lang.playlistHasCleared}).inject('songs');
							fizy.PID = 0;
						}
						$('pL'+p.ID).destroy();
					}
					if (pageTracker) pageTracker._trackPageview('/fizy::deletePlaylist::' + ID);
				}
			}).post('/fizy::deletePlaylist','PID='+ID);
		}
	},
	listPL: function(){
		// check
		if(fizy.access){
			if($('playLists')) $('playLists').empty();
			new Element('span',{'class':'close','text':lang.close,'events':{'click':function(){ fizy.togglePLS(); }}}).inject(new Element('div',{'class':'header','html':'&nbsp;'}).inject('playLists'),'top');
			new Element('span',{'class':'clear'}).inject('playLists');
			var lists = new Element('ul',{'id':'lists'}).inject('playLists');
			new Request.JSON({
				onComplete: function(r){
					if(r){ 
						if($('footer').hasClass('close')&&!fizy.IE){
							$('footer').fade('hide');
							$('footer').removeClass('close');
						}
						$('footer').fade('in');
						r.each(function(p){
							if(fizy.PID==0) { fizy.PID = p.ID; fizy.PLtitle = p.title; } 
							else if(fizy.PID==p.ID) { fizy.PLtitle = p.title; }
							fizy.PL(p.ID,p.title).inject(lists);
						});
						$('PL').removeClass('close');
			            $('PL').setStyle('visibility','visible');
						$('PLS').setStyle('visibility','visible');
						$('footer').fade('in');
					} 
					fizy.listSong(fizy.PID,fizy.PLtitle);
					if (pageTracker) pageTracker._trackPageview('/fizy::getPlaylists');
				}
			}).post('/fizy::getPlaylists');
		} else {
			$('PL').setStyle('visibility','hidden');
			$('PLS').setStyle('visibility','hidden');
		}
	},	
	playingList: function(PID,title){
		$('PLname').set('html',lang.currentPlaylist+': '+(PID?title:lang.defaultPlaylist));
		fizy.PLname = title;
		if(!PID) return;
		$('lists').getElements('li').each(function(p){ p.removeClass('playing') });
		if($('pL'+PID)) $('pL'+PID).addClass('playing');
	},
/*--------------------------------------------------*/
//	CHECK YOUTUBE	
/*--------------------------------------------------*/
	youtube: {
		file: new Image(),
		result: new Image(),
		timer: null,
		check:function() {
			fizy.youtube.file.onload = function() {
				clearTimeout(fizy.youtube.timer);
				fizy.youtube.timer = null;
				fizy.youtube.result.src = '/fizy::youtube::true'; // true
				if (pageTracker) pageTracker._trackEvent('youtube', 'true');
				fizy.yt = true;
			};
			//fizy.youtube.file.src = 'http://www.youtube.com/img/pixel.gif';
			fizy.youtube.file.src = 'http://v' + $random(100, 2400) + '.lscache' + $random(1, 8) + '.c.youtube.com/intl/en_com/images/logo_plain.png';
			fizy.youtube.timer = setTimeout('fizy.youtube.fail()',2000);
		},
		fail:function() {
			fizy.youtube.file.src = 'http://v' + $random(1, 24) + '.lscache' + $random(1, 8) + '.c.youtube.com/intl/en_com/images/logo_plain.png';
			fizy.youtube.timer = null;
			fizy.youtube.timer = setTimeout('fizy.youtube.fail2()',2000);
		},
		fail2:function() {
			clearTimeout(fizy.youtube.timer);
			fizy.youtube.timer = null;
			fizy.youtube.file = null;
			fizy.youtube.result.src = '/fizy::youtube::false'; // false
			if (pageTracker) pageTracker._trackEvent('youtube', 'false');
			fizy.yt = false;
		}
	},
/*--------------------------------------------------*/
//	USER
/*--------------------------------------------------*/
	user: {
		PL: function(PID,title){
			$('userPlayLists').getElements('a').each(function(p){ p.removeClass('selected') });
			if($('uPL'+PID)) $('uPL'+PID).addClass('selected');
            //location.href = '#'+title.replace('\'',"'");
			var loader = fizy.loader(1,1).inject($('results').empty());
			if(fizy.user.PLRequest) fizy.user.PLRequest.cancel();
			fizy.user.PLRequest = new Request.JSON({
				onComplete: function(r){
					loader.destroy();
					if(r){
						if(r.error) fizy.alert(r.error);
						else r.each(function(i){
							var div = new Element('div',{'id':'item'+i.ID,'class':'item'}).inject('results');
							new Element('a',{'class':'song','html':'['+fizy.formatTime(i.duration)+'] '+i.title,'events':{
								'click':function(e) {
                                    i.pLContinue= true;
									fizy.player('play',i);
								}
							}}).inject(div);
							new Element('a',{'class':'add','text':'+','events':{
								'click':function(e) {
									fizy.addSong(i.ID);
								}
							}}).inject(div);
							new Element('span',{'class':'clear'}).inject(div);
							new Element('span',{'class':'clear'}).inject('results');
						});
                        //copy playlist
                        new Element('div',{'id':'dotted'}).inject('results');
                        var div = new Element('div',{'class':'item'}).inject('results');
                        new Element('a',{'text':lang.copyPlaylist,'events':{
                            'click':function(e) {
                                fizy.copyPL(title,PID)
                            }
                        }}).inject(div);
						// close video and settings
						$('fzPlayer').removeClass('video');
					} else new Element('div',{'class':'noSongs item','text':lang.thisListIsEmpty}).inject('results');
					if (pageTracker) pageTracker._trackPageview('/fizy::getSongs::' + PID);
				}
			}).post('/fizy::getSongs','PID='+PID);
		},
		rss: function(username){
			$('userPlayLists').getElements('a').each(function(p){ p.removeClass('selected') });
			if($('rss')) $('rss').addClass('selected');
			//location.href = '#rss';
			var loader = fizy.loader(1,1).inject($('results').empty());
			if(fizy.user.PLRequest) fizy.user.PLRequest.cancel();
			fizy.user.PLRequest = new Request.JSON({
				onComplete: function(r){
					loader.destroy();
					if(r){
						if(r.error) fizy.alert(r.error);
						else r.each(function(i){
							var div = new Element('div',{'class':'item'}).inject('results');
							new Element('a',{'class':'song','html':'['+fizy.formatTime(i.duration)+'] '+i.title,'events':{
								'click':function(e) {
									fizy.player('play',i);
								}
							}}).inject(div);
							new Element('a',{'class':'add','text':'+','events':{
								'click':function(e) {
									fizy.addSong(i.ID);
								}
							}}).inject(div);
							new Element('span',{'class':'clear'}).inject('results');
						});
						// close video and settings
						$('fzPlayer').removeClass('video');
					} else new Element('div',{'class':'noSongs','text':lang.thisListIsEmpty}).inject('results');
					if (pageTracker) pageTracker._trackPageview('/fizy::getRSS::' + username);
				}
			}).post('/fizy::getRSS','username='+username);
		}
	},
	login: function(PID,profile){
		//fizy.log(PID);
		fizy.access = true;
		if(fizy.state==1){
			fizy.search();
		} 
		if(fizy.state==2){
			profileAjax();
            if($('results')) $('results').getElement('div.item').getFirst().fireEvent('click');
		} 
		if($('joinus')) $('joinus').destroy();
		$('headMenuProfile').set('href',profile)
		$(document).getElements('.user').each(function(e){ e.setStyle('display','inline') });
		$(document).getElements('.nonuser').each(function(e){ e.setStyle('display','none') });
		fizy.footer(PID);
	},
	logout: function(){
		location.href = '/';
	},
	adHit: function(){
		/*
		var file = new Image();
		file.src = 'http://nanocluster.reklamz.com:80/nano/ri?r=2845&amp;s=1';
		*/
		//fizy.log('Log: ad hit');
	}
});