function getitPlayPreview(myserver, filename,elm) {
    
    var btn = $(elm);
    var player = $('player');
    if (btn.hasClassName('loading'))
	{
		player.update();
		btn.removeClassName('loading');
    }
	else if(btn.hasClassName('playing'))
	{
        player.update();
        btn.removeClassName('playing');
    }
	else
	{
        btn.addClassName('loading');
        
		new Ajax.Request(myserver+'/check_preview.html?path='+filename,
		{
			method: 'get',
			onSuccess: function(transport)
			{
				player.update('<object width="0" height="0">' +
							  '<param name="movie" value="'+filename+'">'+
							  '<embed src="'+filename+'" width="0" height="0" hidden="true" autostart="true" loop="false">'+
							  '</embed></object>');
				btn.removeClassName('loading');
				btn.addClassName('playing');
			},
			onFailure: function(transport)
			{
				player.update();
				btn.removeClassName('loading').removeClassName('playing');
			}
		
        });
    }
}


clickCatch = function(event)
	{
		
		var position = { x: Event.pointerX(event), y: Event.pointerY(event) };
		var position = setPosition(position)
		var container = $('playerContainer');
		var elm = Event.element(event);
		// get the data from the element fired the event
		var rawData = extractMetaData(elm)
		var metaData = ConvertToJason(rawData)
		// copy the data to the popup container
		container.writeAttribute("extrainfo",rawData)
		//insert metadate into the container
		populateDataInDiv(metaData)
		container.setStyle(
		{
			left: position.x + "px",
			top: position.y + "px"
			
		});
		container.absolutize()
		container.setStyle({opacity:0});
		container.show();
		new Effect.Opacity(container, { from: 0, to: 1, duration: 0.4 });
		
	}
			
Event.observe(window, "load", function()
{
	$$(".playeropener").each(function(item)
	{
		Event.observe(item, "click", clickCatch);
	});
	//Close click handler
	Event.observe("playerClose", "click", function (event) {closePopUP()});
	Event.observe("pp_player_play","click",  function (event){prepareforpreview()});  
});
	  function setPosition(pos)
	  {
	  	pos.y =pos.y - 50;
	  	pos.x =pos.x - 50;
		return pos;
	  }
	  function closePopUP()
	  {
	  	var player = $('player');
	  	player.update();
	   $('playerContainer').hide();
	  }
	  
	  function extractMetaData(elm)
	  {
		makeElement = $(elm)
		dataContainer = Element.readAttribute(makeElement,'extrainfo')
	  	return dataContainer
	  }
	  
	  // Convert to JSON
	  function ConvertToJason(data)	{
		try
		{
			oJson = makeJason(dataContainer);
		}
		catch(err)
		{
			oJson = err;
		}
		return oJson
	  }
	  
	  function makeJason(data)
	  {
		return data.evalJSON()
	  }
	  
	  function populateDataInDiv(metaData)
	  {
		if (metaData.img)
		{
			$('preview-image').src = metaData.img;
		}
		else
		{
			$('preview-image').src = "about:blank"
		}
		if (metaData.title)
		{
			$('title').innerHTML = metaData.title;
		}
		else
		{
			$('title').innerHTML = "N/A"
		}
		if (metaData.artistname)
		{
			$('artistname').innerHTML = metaData.artistname;
		}
		else
		{
			$('artistname').innerHTML = "N/A"
		}
		
		if (metaData.credits)
		{
			$('credits').innerHTML = metaData.credits;
		}
		else
		{
			$('credits').innerHTML = "N/A"
		}
		if (metaData.getit)
		{
			$('pp_getit_btn').href = metaData.getit;
		}
		else
		{
			$('pp_getit_btn').href = "#";
		}
	  }
	  
	function prepareforpreview()
	{
		var container = $('playerContainer');
		var rawData = extractMetaData(container)
		var metaData = ConvertToJason(rawData)
		getitPlayPreview(metaData.baseurl,metaData.preview,"pp_player_play")
	}
	
	
	var PlayerStatus = 0
	function PlayPreview(filename,elmn){
		var elmn = $(elmn);
		var mPlayer = $('player');
		clearButtonStatus();
		try{
			if(PlayerStatus==0){
				mPlayer.innerHTML="<embed width=0 height=0 src='"+filename+"' hidden=true autostart=true loop=false>";
				elmn.className = '';
				elmn.className = "ringtone-stop-preview";
				PlayerStatus = 1;
			}else{
				mPlayer.innerHTML="<embed width=0  height=0 src='' hidden=true autostart=true loop=false>";
				elmn.className = '';
				elmn.className = "ringtone-preview";
				PlayerStatus = 0;
			}
		}catch(e){;return;}
	}
	
	function clearButtonStatus() {
            for(var i=0; i<=document.links.length-1; i++) {
                var el = document.links[i];
                if (el.className=="ringtone-stop-preview")
                    el.className="ringtone-preview";
            }
        }