/*
 * AJAX CONNECTOR FOR SONG UPDATE [ ARTIST - TITLE]
 * DEVELOPED BY CODEART
 *  
 */

//Change for your needs
var assetPath = '/';
var useEffect = true;
var effectLength = 1500; //In miliseconds
var interval = 15000;
var trimTitle = 30;
var trimArtist = 30;
var datafile = '/home/radiodee/public_html/artist_title/playlist.log';


//DON'T TOUCH ANYTHING HEREON - HIGH VOLTAGE.
var currentSong = null;
var firstRun = true;

function updateSong(artistel, titleel)
{
	jQuery.post(assetPath+'artist_title/songRequest.php',
	  { datafile : datafile, trimTitle : trimTitle, trimArtist : trimArtist },
	  	function(data)
	  	{
			var plain = data;
		    var data = explode("~", data);
			//alert($(artistel));
		  	if (useEffect && !firstRun)
		  	{
			  	if  (plain != currentSong)
			  	{
			  		jQuery(artistel).fadeOut(effectLength, function()
					 {
			  			jQuery(artistel).html(data[0]);
			  			jQuery(artistel).fadeIn(effectLength);
					  });
					  
			  		jQuery(titleel).fadeOut(effectLength, function() 
					 {
						 jQuery(titleel).html(data[1]);
						 jQuery(titleel).fadeIn(effectLength);
					  });				  	
					  currentSong = plain;	
			  	}
		  	}
			else
			{
				  jQuery(artistel).html(data[0]);				  
				  jQuery(titleel).html(data[1]);
			}
		  	firstRun = false;
			currentSong = plain;			
		}
	 );
	
	setTimeout("updateSong('"+artistel+"', '"+titleel+"', '"+datafile+"', "+interval+")", interval);
}

//Mootools
/*
function updateSong(artistel, titleel)
{
	var req = new Request(
		  {
			  method: 'post',
			  url: assetPath+'artist_title/songRequest.php',
			  data: { 'datafile' : datafile, 'trimTitle' : trimTitle, 'trimArtist' : trimArtist },
			  onSuccess: function(response) 
			  {
			  	var data = explode("~", response);
			  	
			  	if (useEffect && !firstRun)
			  	{
				  	if  (response != currentSong)
				  	{
				  		var fadeArtist = new Fx.Morph(artistel, {duration: effectLength, transition: Fx.Transitions.Sine.easeOut});
				  		var fadeTitle = new Fx.Morph(titleel, {duration: effectLength, transition: Fx.Transitions.Sine.easeOut});
				  		//var fadeTitle = new Fx.Style(artistel, 'opacity', {duration: 400,transition: Fx.Transitions.Quart.easeInOut} ); 
					  	
				  		fadeArtist.start({'opacity' : 0}).chain(
				  				function()
				  				{
				  					$(artistel).set('text', data[0]);
				  					fadeArtist.start({'opacity' : 1});
				  				}
				  		);
				  		fadeTitle.start({'opacity' : 0}).chain(
				  				function()
				  				{
				  					$(titleel).set('text', data[1]);	
				  					fadeTitle.start({'opacity' : 1});
				  				}
				  		);	  		  	
					  	
				  	}
			  	}
				else
				{
					  $(artistel).set('text', data[0]);
					  $(titleel).set('text', data[1]);
				}
			  	firstRun = false;
				currentSong = response;
			  }
		  }		  
	).send();
	
	setTimeout("updateSong('"+artistel+"', '"+titleel+"', '"+datafile+"', "+interval+")", interval);
}
*/

function explode (delimiter, string, limit) {
    var emptyArray = { 0: '' };
    
    // third argument is not required
    if ( arguments.length < 2 ||
        typeof arguments[0] == 'undefined' ||
        typeof arguments[1] == 'undefined' ) {
        return null;
    }
 
    if ( delimiter === '' ||
        delimiter === false ||
        delimiter === null ) {
        return false;
    }
 
    if ( typeof delimiter == 'function' ||
        typeof delimiter == 'object' ||
        typeof string == 'function' ||
        typeof string == 'object' ) {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
    
    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

//Shouldn't be here, but fck it
function openPlayer()
{ 
	window.open('/player/index.php','_blank','width=420,height=220,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,copyhistory=0, resizable=no');	
}
