jingleToPlay = "http://stream.evasionfm.com/stream.mp3";
streamUrl = "http://stream.evasionfm.com/stream.mp3"
restartTimer = undefined;
String.prototype.startsWith = function(str) {return (this.match("^"+str)==str)}

var idImage = 4;
var playing = true;

$(document).ready(function() {
	$.get("/services/jingle.php", { date: Math.round((new Date()).getTime() / 1000) }, function(data) {
		jingleToPlay = $(data).find("jingle").text();
	}, "xml");

	$("#jquery_jplayer_1").jPlayer({
		ready: function (event) {
			$("#jquery_jplayer_1").jPlayer("setMedia", {mp3: jingleToPlay}).jPlayer("play");
		
			playing = true;
			activerBtnPlay();
		},
		ended: function(event) {
			$(this).jPlayer("clearMedia");
			$(this).jPlayer("setMedia", {
				mp3: streamUrl
			}).jPlayer("play");
		},
		pause: function (event) {
			// On de-loade le flux, pour être sur de reprendre à l'instant "t"
			$(this).jPlayer("setMedia", {mp3: "http://null"});
		},
		play: function(event) {
			if (restartTimer != undefined) {
				clearInterval(restartTimer);
				restartTimer = undefined;
			}
		},
		error: function(event) {
			if (restartTimer == undefined) {
				restartTimer = setInterval("restartstream()", 10000);
			}
		},
		preload:"none",	
		solution:"html,flash",
		supplied: "mp3",
		swfPath: "./jplayer",
		volume: 1
	});
	
	// On charge la liste des morceaux passé et en cours de diffusion, on met un interval pour le faire toutes les 10s
	getMorceaux();
	setInterval("getMorceaux()", 5000);
});

var restartstream = function() {
	$("#jquery_jplayer_1").jPlayer("setMedia", {
		mp3: streamUrl
	}).jPlayer("play");
}

function changerImageVolume(sens) {
	if (sens == "vol+") {
		$("#jquery_jplayer_1").jPlayer("volume", $("#jquery_jplayer_1").data("jPlayer").status.volume + 0.25);
		idImage = Math.min(idImage + 1, 4);
	} else {
		$("#jquery_jplayer_1").jPlayer("volume", $("#jquery_jplayer_1").data("jPlayer").status.volume - 0.25);
		idImage = Math.max(idImage - 1, 0);
	}

	var img = document.getElementById('imgVolume');
	if (img != undefined) {
		if (img.src != undefined) img.src = img.src.substr(0, img.src.length - 5) + idImage + ".png";
		else {
			img.outerHTML = img.outerHTML.substr(0, img.outerHTML.indexOf('.png') - 1) + idImage + img.outerHTML.substr(img.outerHTML.indexOf('.png'), img.outerHTML.length);
		}
	}
}

function resetBtnVote() {
	changerImage('btnVote', 'player_deja-vote.png', 'player_votez.png');
	changerImage('btnVote', 'player_vote-ok.png', 'player_votez.png');
}

function changerImage(idImg, ancienNom, nouveauNom) {
	var img = document.getElementById(idImg);
	if (img != undefined) {
		var reg = new RegExp("(" + ancienNom + ")", "g");
		if (img.src != undefined) {
			if (img.src.indexOf(ancienNom) > 0) img.src = img.src.replace(reg, nouveauNom);
		} else {
			if (img.outerHTML.indexOf(ancienNom) > 0) img.outerHTML = img.outerHTML.replace(reg, nouveauNom);
		}
	}
}


function ajouterVote() {
	var _xmlHttpCadreInfo = getXMLHTTP();
	if (_xmlHttpCadreInfo) {
		_xmlHttpCadreInfo.open("GET", "http://www.evasionfm.com/V2/voter_pour_" + idMorceauEnCours + ".html", true);
		_xmlHttpCadreInfo.onreadystatechange = function() {
			if ((_xmlHttpCadreInfo.readyState == 4) && (_xmlHttpCadreInfo.responseXML)) {
				traiteResultatVote(_xmlHttpCadreInfo.responseXML);
			}
		}
		// envoi de la requete
		_xmlHttpCadreInfo.send(null);
	}
}

function traiteResultatVote(dataXML) {
	var retour = dataXML.getElementsByTagName('retour');

	if (retour[0].firstChild.data == "1") {
		changerImage('btnVote', 'player_votez.png', 'player_vote-ok.png');
	} else {
		changerImage('btnVote', 'player_votez.png', 'player_deja-vote.png');
	}
	
	setTimeout("resetBtnVote()", 5000);
}



function rollOverBtnPlay() {
	if (playing) changerImage('btnPlay', 'player_play-active.png', 'player_play-active-over.png');
	else changerImage('btnPlay', 'player_play.png', 'player_play-over.png');
}
function rollOutBtnPlay() {
	if (playing) changerImage('btnPlay', 'player_play-active-over.png', 'player_play-active.png');
	else changerImage('btnPlay', 'player_play-over.png', 'player_play.png');
}

function rollOverBtnPause() {
	if (!playing) changerImage('btnPause', 'player_pause-active.png', 'player_pause-active-over.png');
	else changerImage('btnPause', 'player_pause.png', 'player_pause-over.png');
}
function rollOutBtnPause() {
	if (!playing) changerImage('btnPause', 'player_pause-active-over.png', 'player_pause-active.png');
	else changerImage('btnPause', 'player_pause-over.png', 'player_pause.png');
}

function rollOverBtn(idImg, type) {
	changerImage(idImg, 'player_' + type + '.png', 'player_' + type + '-over.png');
}
function rollOutBtn(idImg, type) {
	changerImage(idImg, 'player_' + type + '-over.png', 'player_' + type + '.png');
}


function activerBtnPlay() {
	changerImage('btnPlay', 'player_play-over.png', 'player_play-active.png');
	changerImage('btnPlay', 'player_play.png', 'player_play-active.png');
	changerImage('btnPause', 'player_pause-active.png', 'player_pause.png');
}
function activerBtnPause() {
	changerImage('btnPlay', 'player_play-active.png', 'player_play.png');
	changerImage('btnPause', 'player_pause-over.png', 'player_pause-active.png');
	changerImage('btnPause', 'player_pause.png', 'player_pause-active.png');
}

function play() {
	if (!playing) {
		$("#jquery_jplayer_1").jPlayer("setMedia", {mp3: "http://stream.evasionfm.com/stream.mp3"}).jPlayer("play");
		
		playing = true;
		activerBtnPlay();
	}
}

function stop() {
	if (playing) {
		$("#jquery_jplayer_1").jPlayer("setMedia", {mp3: "http://null"});
		
		playing = false;
		activerBtnPause();
	}
}

function afficherTexteTaille(texte, taille) {
	if ((texte.lengt) > taille) {
		return texte.substr(0, taille) + '..';
	} else {
		return texte;
	}
}

var getMorceaux = function() {
	// Via Ajax jquery, on récupère les informations de diffusion du serveur
	$.get("/cache/morceaux.xml", { date: (new Date()).getTime() }, function(data) {
		var isFirst = true;
		var previous = "";
		var i = 0;
		var obj = null;
		$(data).find("morceau").each(function() {
			if (i == 0) obj = document.getElementById('ev_onair');
			else if (i == 1) obj = document.getElementById('ev_titreavant-a');
			else obj = document.getElementById('ev_titreavant-b');
			
			if (i == 0) {
				obj.innerHTML = afficherTexteTaille($(this).find("artiste").text() + ' / ' + $(this).find("titre").text(), 25);
				obj = document.getElementById('ev_disque');
				obj.innerHTML = '<img src="' + $(this).find("pochette125").text() + '" width="140" height="140" />';
			}
			else obj.innerHTML = afficherTexteTaille($(this).find("heure").text() + ' : ' + $(this).find("artiste").text() + ' / ' + $(this).find("titre").text(), 25);

			i++;
		});
		
	}, "xml");
}

