/* coding: utf-8 */
/* getShowDetails */

var BigBoobsFuckinID = null;

function initSD () {	
	var links = I(document.getElementsByTagName('a'));	
	links.each(
		function(i, a) {
			if(a.rel && a.rel == 'getDetails') {
				Event.add(a, 'click', onReleaseLink);
			}
		}
	);
	
	if(window.location.search != '') {
		// var ref = window.location.search.substring(5); //  5 == "?ref=".length
		var param = getLinkParams(window.location);
		if(param.ref) {		
			createPopIn();
			var xhr = new Ajax('./--data--/spectacles/jsondetails.php', {params:'showID='+(param.ref)});	
			xhr.onComplete = detailsReady;
		}
	}
}

function getLinkParams(aL) {
//get the params of the url		
	var paramsBrut = aL.search.substring(1).split('&');
	var paramsDeta = new Object();	
	paramsBrut.each(
		function(i, a) {
			var _a = a.split('=');
			paramsDeta[_a[0]] = _a[1];
		}
	);
	return paramsDeta;	
}

function createPopIn() {
	E('detailsBox').erase();
	E('popPub').style.display= 'none';
	var detailsBox = E().create('div', {id: 'detailsBox'});
	var scrolls = getScrollPos();
	var bodyDim = getBodyDim();
	var marges = 10;	
	var w = bodyDim[0] - (6* marges);
	var h = bodyDim[1] - (6* marges);	
	var x = (bodyDim[0] - w) - 3* marges + (scrolls[0]);
	var y = (bodyDim[1] - h) - 3* marges + (scrolls[1]);	
	with(detailsBox.style) {
		top  = y.toString()+'px';
		left = x.toString()+'px';
		width = w.toString()+'px';
	}	
	E('detailsBox').innerHTML = '<p>Veuillez patienter...<br />Chargement des données</p>';
	document.body.appendChild(detailsBox);		
}

function onReleaseLink() {
	createPopIn();
	var paramsDeta = getLinkParams(this);
	var xhr = new Ajax('./--data--/spectacles/jsondetails.php', {params:'showID='+(paramsDeta.ref)});	
	xhr.onComplete = detailsReady;	
	return false;
}

function detailsAsk() {
	E('detailsBox').innerHTML = '<p>Chargement des données</p>';
}

function detailsReady (xhr, json) {
	if(json.Error_sent) {
		alert(json.Error_message +'\nLa fenêtre de détails va être fermée...');
		closeDetails();
	}
	else {				
		var closer = E().create('a', {href:'#', id: 'closeMe', rel: 'closePoper', title:'Fermer cette fenêtre'});
		closer.innerHTML = '<span>Fermer</span>';
		Event.add(closer, 'click', closeDetails);
		
		
		var box = E().create('div');
		
		var billetterie = (null != json.billetterie) ? 
			'<a href="'+json.billetterie+'" title="achetez vos billets en ligne">\
				<img src="./--img--/billetteries/mediator.2.png" alt="Achetez vos billets" width="128" height="80" /></a>' : '';
				//~ <img src="./--img--/billetteries/mediator.png" alt="Achetez vos billets" width="150" height="190" /></a>' : '';
				
				//~ <a href="http://www.fnacspectacles.com/recherche/rechercheRapide.do?search=EL+MEDIATOR+PERPIGNAN" \
		if( null != json.billFnac && json.billFnac ) {
			//~ var plu = json.nom.indexOf('+');
			//~ var nom = json.nom.substring(0, plu != -1 ? plu : json.nom.length)
			billetterie += ' \
				<a href="http://www.fnacspectacles.com/recherche/rechercheAjax.do?search=mediator&dateDebutStr='+json.frDate+'&dateFinStr='+json.frDate+'" \
				title="achetez vos places sur le site de la FNAC">\
			<img src="./--img--/billetteries/fnac.2.png" alt="Achetez vos billets sur la fnac.com" width="80" height="80" /></a>';
			//~ <img src="./--img--/billetteries/fnac.png" alt="Achetez vos billets sur la fnac.com" width="150" height="150" /></a>';
		}
		//~ var bills = '';
		//~ if(billetterie != '') bills = '\
			//~ <img src="./--img--/billetteries/billets.png" alt="Billetteries en ligne" width="150" height="52" /><br />'+billetterie;
		
		var game  = (null != json.game) ? json.game : '';
		
		// diminue le font size si trop de texte
		var nomCurLen = json.nom.length;
		var nomMaxLen = 50;
		var nomPXSize = '';
		if(nomCurLen > nomMaxLen) {
			var delta = nomCurLen - nomMaxLen;
			var pxSize = Math.max(30 - Math.floor(delta * .5), 15);
			//~ pxSize = pxSize < 15 ? 15 : pxSize;
			nomPXSize = 'style="font-size: '+pxSize+'px;"';
		}
		
		// interreg stuff
		var interreg = '';
		if(null != json.interreg && json.interreg) {
			interreg = '\
				<div id="interregBox"> \
					<a href="./--docs--/ECT_SCT_info.pdf" title="Info sur ECT-SCT: pdf 1,9Mo">\
						<img src="./--img--/interreg/ectsct.png" alt="Logo ECT" width="228" height="80" />\
						<img src="./--img--/interreg/logoFeder.png" alt="Logo Feder" width ="107" height="80"  />\
						<img src="./--img--/interreg/logoCT.png" alt="Coopération Territoriale Espagne - France - Andorre" width ="116" height="80"  />\
						<img src="./--img--/interreg/logoCTP.png" alt="Comunauté de Travail des Pyrénées" width ="94" height="80"  />\
					</a>\
				</div>';
				/*
				
					<p>\
						<strong>Réseau Interreg</strong> \
						<span class="interregThea">Le Théatre</span> \
						<span class="interregCmpl">Camplers</span> \
						<span class="interregGern">Girones</span> \
						<br />\
						<span class="interregElmed">Elmediator</span>\
					</p> \
				*/
		}
		
		
		var tarifs = (json.tarifs == 'Entrée Libre') ? json.tarifs : json.tarifs+' [+ frais de Location]';
		
		var html = '\
			<h2 '+nomPXSize+'>'+json.nom+'</h2> \
			<ul class="details">\
				<li class="qiWhen">'+json.date+' à '+json.heure+'</li>\
				<li class="qiWhere">'+json.lieu+'</li>\
				<li class="qiStyle">'+json.genre+'</li>\
			</ul>\
			<p class="qiPrice"><strong>'+tarifs+'</strong></p>';
			
		html += (billetterie != '' ) ? '<p id="billBar">\
			<span class="billTitle">Billetteries: </span>\
			<span class="billLinks">'+billetterie+'</span>\
			</p>' : '';
		
		html += '\
			<div class="colDetailsInf">\
				<div class="col1">'+json.info+'<br />'+json.prod+'<br />'+game+'</div>';
				//~ <div class="col1">'+bills+' '+json.info+'<br />'+json.prod+'<br />'+game+'</div>';
		
		// .mediaMenu instead of html += '<a href="#img" id="imgM">Photos</a> | <a href="#vid" id="vidM">Vidéos</a> | <a href="#son" id="sonM">Son</a>';
		
		html += '\
				<div class="col2">'+json.desc+'</div>';
		html += '\
				<div class="col3">\
					<div id="mediaMenu"></div>\
				</div>\
				<hr class="clearer" />\
				'+interreg+'\
			</div>';
			
		box.innerHTML = html;
		E('detailsBox').empty();
		E('detailsBox').appendChild(closer);
		E('detailsBox').appendChild(box);
		/*-------------------------------------------------------------*/
		/*
		var aImg = E('imgM');
		var aVid = E('vidM');
		var aSon = E('sonM');
		*/
		BigBoobsFuckinID = json.id;		
		initMedias();
		getVids(json.id);
		/*		
		aImg.onclick = function() {
			initMedias();
			getImg(json.id);
			return false;
		}
		aVid.onclick = function() {
			initMedias();
			getVids(json.id);
			return false;
		}
		aSon.onclick = function() {
			initMedias();
			getAud(json.id);
			return false;
		}*/
	}
}

function initMedias() {
	E('detailsFlashMedia').erase();
	var dFM = E().create('div', {id:'detailsFlashMedia'});
	E('mediaMenu').appendChild(dFM);	
}

function getSwfObjectOpt(obj, swf, fnc) {
	for(var z in obj) {
		if(fnc == 'var') {
			swf.addVariable(z, obj[z]);
		} else if(fnc == 'param') {
			swf.addParam(z, obj[z]);
		}
	}
}

function createFlash(ffile, fname, fwidth, fheight, fbox, fvar, fparam) {
	var swf = new SWFObject(ffile, fname, fwidth, fheight, '8', '#FFFFFF');
	getSwfObjectOpt(fvar, swf, 'var');
	getSwfObjectOpt(fparam, swf, 'param');
	//~ getSwfObjectOpt
	swf.write(fbox);
}

function MakeFlashMedia(swf, box, width, height, wmode, vars) {
	var _wmode = wmode || 'opaque';
	var _vars  = vars || {};
	var params = {
		wmode	: _wmode,
		bgcolor	: '#FFF',
		menu	: "false",
		scale	: "noScale" ,
		align	: "TL"
	};
	
	
	if(box=='vidoBox') {
	
		var oVideo = getMediatorVideo(swf);
		swf		   = oVideo.playerURL;
		if(oVideo.isMediator) {
			_vars.video	= oVideo.videoPath;
		}
	
	}
	
	
	
	swfobject.embedSWF(swf, box, width, height, "9.0.0", "expressInstall.swf", _vars, params);

}

function getAud(ida) {
	var ajaxAud = new Ajax('./--data--/spectacles/getaudio.php', {params:'idShow='+ida});
	ajaxAud.onComplete = audioReady;
}

function getVids(idv) {
	var ajaxVid = new Ajax('./ajaxVideo.php', {params:'idShow='+idv});
	ajaxVid.onComplete = videosReady;
}

function getImg(id) {	
	//~ createFlash('./--swf--/imgView.swf', 'swfMedia', '100%', '400px', 'detailsFlashMedia', {showId: id}, {wmode: 'transparent'});	
	var dfm = E('detailsFlashMedia');	
	var imagesBox = E().create('div', {id:'imagesBox'});
	imagesBox.style.margin = '10px 0';
	dfm.appendChild(imagesBox);
	MakeFlashMedia('./--swf--/imgView.swf', 'imagesBox', '100%', 400, 'transparent', {showId: id} );
}

function audioReady(t, json) {
	var dfm = E('detailsFlashMedia');	
	var audioBox = E().create('div', {id:'audioBox'});
	audioBox.style.margin = '10px 0';
	dfm.appendChild(audioBox);
	json.each(function(i, e) {	
		//~ var audLink = E().create('a', {id:'audioLink_'+i, href: '#', rel:'nom='+e.nom+'&amp;file=./--media--/audio/'+e.file});
		
		var audLink = E().create('a', {
			id:'audioLink_'+i, 
			href: './--media--/audio/'+e.file,
			title:e.nom, 
			rel:'./--media--/audio/'+e.file});
			
		audLink.addText('Extrait de '+e.nom);
		
		if(i>0) dfm.addText(' | ');
		dfm.appendChild(audLink);	
		
		audLink.onclick = function() {
			E('audioBox').empty();
			MakeFlashMedia('./--swf--/mp3.swf', 'audioBox', '100%', 40, 'transparent', {nom: this.title, file: this.rel, autoStart: 'yes'});
			return false;
		}		
	});
	if(!json.isEmpty()) {
		MakeFlashMedia('./--swf--/mp3.swf', 'audioBox', '100%', 40, 'transparent', {nom: json[0].nom, file: './--media--/audio/'+json[0].file, autoStart: 'yes'});
		
	}
}

function videosReady(t, json) {
	var dfm = E('detailsFlashMedia');
	var l = json.length;
	
	var medVid = /^--swf--\/player.swf\?vid=.?/;	
	var medVid2 = /^http:\/\//;
	
	var idDiv = '__FLV__';	
	if(l==0) {
		initMedias();
		getImg(BigBoobsFuckinID);
		getAud(BigBoobsFuckinID);
		return false;
	}	
	var vidoBox = E().create('div', {id:'vidoBox'});
	vidoBox.style.margin = '10px 0';	
	dfm.appendChild(vidoBox);	
	json.each(
		function(i, e) {		
			var n = e.nom;
			var f = e.file;		
			var vidLink = E().create('a', {id:'videoLink_'+i, href: '#', rel:f});
			vidLink.addText('Vidéo de '+n);
			if(i>0) dfm.addText(' | ');
			dfm.appendChild(vidLink);			
			vidLink.onclick = function() {
				E('vidoBox').empty();
				var _f = this.rel;
				// compabilité old version
				/*var tester = medVid.test(_f);
				if(tester) {
					var ff = _f.substring(24); // 24 ==  "--swf--/player.swf?vid=/".length
					if(medVid2.test(ff)) _f = ff;
					else _f = './../'+ff;
					
				}
				if(tester) {
					createFlash('./--swf--/vidPlayer.swf', '__VID__', '100%', '400px', 'vidoBox', {vidFile: _f}, {wmode: 'transparent'});	
				} else {
				*/
					//~ createFlash(_f, '__VID__', '100%', '400px', 'vidoBox', {}, {wmode: 'transparent'});
				//}
				MakeFlashMedia(_f, 'vidoBox', '100%', 400, 'transparent');
				return false;
			}		
		}
	);	
	
	var f2 = json[0].file;
	//~ var tester = medVid.test(f2);
	
	
	MakeFlashMedia(f2, 'vidoBox', '100%', 400, 'transparent');	

}

/// test si la video est sur elmediaor
/// retourne la video avec le nouveau player(Plugin.swf) si oui
/// sinon retourne le lien de la video sans changement
function getMediatorVideo(v) {

	var medVid = /^--swf--\/player.swf\?vid=.?/;	
	var medVid2 = /^http:\/\//;
	
	if(medVid2.test(v))
		return {playerURL: v, isMediator: false};		
	else if(medVid.test(v)) {
		//~ return './--swf--/VideoPlugin.swf?video='+v.substring(24);
		return {playerURL: './--swf--/VideoPlugin.swf', isMediator: true, videoPath: 'http://www.elmediator.org/'+v.substring(24)};		
	} else
		return {playerURL: v, isMediator: false};		
	//~ ./--swf--/VideoPlugin.swf

}

function closeDetails() {
	E('detailsBox').erase();
	E('popPub').style.display= 'block';
	return false;
}

function getMouseXY(e) {
  if (UA.msie) { // grab the x-y pos.s if browser is IE
    tempX = e.clientX + document.body.scrollLeft
    tempY = e.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
    tempY = e.pageY
  }  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}
  if (tempY < 0){tempY = 0}  
  // show the position values in the form named Show
  // in the text fields named MouseX and MouseY
  //document.Show.MouseX.value = tempX
  //document.Show.MouseY.value = tempY
  return [tempX, tempY];
}

function getScrollPos() {
	var sx, sy;
	if (window.pageYOffset)	{
		sy = window.pageYOffset;
		sx = window.pageXOffset; 
	} else if (document.documentElement && document.documentElement.scrollTop)	{
		sy = document.documentElement.scrollTop;
		sx = document.documentElement.scrollLeft;
	} else if (document.body) {
		sy = document.body.scrollTop;
		sx = document.body.scrollLeft;		
	}
	return [sx, sy];
}

function getBodyDim() {
	var bw, bh;
	if (window.innerWidth && !UA.mozilla && !UA.opera) {		
		bw = window.innerWidth;
		bh = window.innerHeight;
	} else if (document.documentElement && document.documentElement.clientWidth) {		
		bw = document.documentElement.clientWidth;
		bh = document.documentElement.clientHeight;
	} else if (document.body) {
		bw = document.body.clientWidth;
		bh = document.body.clientHeight;
	}
	return [bw, bh];
}

Event.add(window, 'load', initSD);