//-------------------------------------------
// INIT FUNCTION
//-------------------------------------------
var enterYourMail = "Enter your email";
window.onload = function() {initAll();};
function initAll(){
	// Function called on load
	var newsletterfield = document.getElementById("newsletter_field");
	if (newsletterfield) newsletterfield.value = enterYourMail;
}

//-------------------------------------------
// Autcomplete on playlists page
//-------------------------------------------
function addToPlaylist(recordingId){
	document.getElementById('allTracksHidden').value += "x"+recordingId+"x";
}
function removeFromPlaylist(recordingId){
	document.getElementById('allTracksHidden').value = document.getElementById('allTracksHidden').value.replace("x"+recordingId+"x","");
}

//-------------------------------------------
// FORM HELPERS
//-------------------------------------------

function clearField(obj){
	if(obj.value==enterYourMail){
		obj.value="";
		obj.style.color="#000000";
	}
}
function rollbackField(o){
	if(o.value==""){
		o.value = enterYourMail;
		o.style.color="#666666";
	}
}
function validateNewsletter(o){
	if (isValidEmail(o.value)){
		return true;
	}else{
		document.getElementById("newsletter_error_field").innerHTML = "Please enter a valid email address"
		document.getElementById("newsletter_field").focus();
		return false;
	}
}

//------------------------------------------
// MISC HELPERS
//-------------------------------------------
function stripslashes( str ) {
    return (str+'').replace(/\0/g, '0').replace(/\\([\\'"])/g, '$1');
}

function isValidEmail(str) {
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function open_player(playlist_id, track_id){
	// Open a popup window with a playlist and starts playing a specific track
	var newwindow;
	if(track_id == null) track_id = 0;
	var url = "/player/"+playlist_id+"/"+track_id;
	newwindow=window.open(url,'name','height=470,width=262,resizable=no,scrollbars=no,toolbar=no,status=no,location=no');
	if (window.focus) {newwindow.focus()}
}

var selectedPlaylist = 0;
function setSelected(id){	
	// Set the select playlist style
	var entry = document.getElementById("playlist_"+id);
	var dots = document.getElementById("dots_"+id);
	var oldEntry = document.getElementById("playlist_"+selectedPlaylist);
	var oldDots = document.getElementById("dots_"+selectedPlaylist);
		
	oldEntry.className = "featured_playlist_entry";
	oldDots.style.visibility="hidden";
	
	dots.style.visibility="visible";
	entry.className = "featured_playlist_entry_selected";
	selectedPlaylist = id;
}
function validateSearch(){
	// Validate the search on the homepage
	if (document.getElementById('search_value').value==''){
		document.getElementById('search_value').focus();
		return false;
	}else{
		return true;
	}
}
function incrementSavedSongs(){
	var savedSongsCountSpan = document.getElementById("saved_songs_count");
	savedSongsCount = savedSongsCount + 1;
	savedSongsCountSpan.innerHTML = savedSongsCount;
}
function decrementSavedSongs(){
	var savedSongsCountSpan = document.getElementById("saved_songs_count");
	savedSongsCount = savedSongsCount - 1;
	savedSongsCountSpan.innerHTML = savedSongsCount;
	var saveAndPrint = document.getElementById("save_and_print");
	if (saveAndPrint && savedSongsCount == 0){
		saveAndPrint.innerHTML = "Not Available";
	}
}

function disableEnterKey(e){
	
     var key;
     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox
     if(key == 13)
          return false;
     else
          return true;
}
//-------------------------------------------
// TOOLTIP FUNCTIONS
//-------------------------------------------

function displayTooltip(content){
	var js_mean = content.replace(/#1#/g, "'").replace(/#2#/g, '"');
	var tooltip = document.getElementById("tooltip");
	tooltip.innerHTML = js_mean;
	showTooltip();
}
var currentRecordingTooltip = -1;
function showTooltipRecording(id){
	currentRecordingTooltip = id;
	var tooltip = document.getElementById("tooltip");
	var preloadedTooltip = document.getElementById("preloaded_recording_"+id);
	if (preloadedTooltip.innerHTML == "") {
		new Ajax.Request('/show_tooltip/' + id, {
			method: 'get',
			onSuccess: function(transport){
				var response = transport.responseText || "No tooltip available";
				preloadedTooltip.innerHTML = response;
				if (currentRecordingTooltip==id){
					tooltip.innerHTML = response;
				}
			}
		});
	}else{
		tooltip.innerHTML = preloadedTooltip.innerHTML;
	}
	if (currentRecordingTooltip == id) {
		showTooltip();
	}
}
function showTooltip(){
	var tooltip = document.getElementById("tooltip");
	tooltip.style.display="block";
}
function hideTooltip(){
	var tooltip = document.getElementById("tooltip");
	tooltip.innerHTML = "";
	tooltip.style.display="";
}

// Following the mouse
var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;

function getMouseXY(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
	} else if (e.clientX || e.clientY) {
		posx = e.clientX +  document.documentElement.scrollLeft;
		posy = e.clientY +  document.documentElement.scrollTop;
	}
	posy+=15;
	posx+=15;
	var tooltip = document.getElementById("tooltip");
	var loading_icon = document.getElementById("loading_icon");
	if (tooltip){
		tooltip.style.top = posy + "px";
		tooltip.style.left = posx + "px";
	}
	if (loading_icon){
		loading_icon.style.top = posy + "px";
		loading_icon.style.left = posx + "px";
	}

}
