var varName = new Array;

$(document).ready( function(){
    
    /*********
     * MAJ automatique des variables de live score
    *********/
    if( $('span.live_score_var').length > 0 ) {
	// récupération de toutes les valeurs de la page
	$('span.live_score_var').each( function(){
	    varName.push($(this).attr('id'));
	});
	
	// les scores seront MAJ toutes les 60 sec
	setInterval("updateLiveScore('post')", 60000 );
    }
    
    /*********
     * LIVE SCORE HEADER
    *********/
    if( $('div.balls-left, div.balls-right').length > 0 && $('#button-comment-results').length > 0 ) {
	$('div.balls-left.transparent, div.balls-right.transparent').fadeTo(1,0.2);
	// les scores seront MAJ toutes les 10 sec
	setInterval("updateLiveScore('header')", 10000 );
	
	// ouverture de la popup
	$('#button-comment-results, a.popupscore').click( function(e){
	    e.preventDefault();
	    window.open( $(this).attr('href') , '' , 'height=700,width=600,toolbar=no,menubar=no,scrollbars=no,resizable=no,directories=no,status=no');
	});
    }
    
    /*********
     * CHAT
    *********/
    if( $('#chat').length > 0 ) {
	var suffix = $('div.balls-left-popup').length > 0 ? '-popup' : '';
	$('div.balls-left'+suffix+'.transparent, div.balls-right'+suffix+'.transparent').fadeTo(1,0.2);
	setInterval("updateLiveScore('chat')", 6000 );
	// scroll du chat au chargement
	$('#chat').scrollTop($('#chatcontainer').height());
    }
    var pseudo;
    // inscription
    $('#connect').submit( function(e){
	var pseudoRegex = /euro\s*bil+i?ards*/i;
	if( $('#pseudo').val().length >= 3 && $('#pseudo').val().length < 20 && $('#pseudo').val().indexOf(' ') == -1 && !$('#pseudo').val().match(pseudoRegex) ) {
	    pseudo = $('#pseudo').val();
	    $(this).slideUp('def');
	    $('#addcomment').slideDown('def');
	    $('#comment').focus();
	} else {
	    alert('Le pseudo doit faire entre 3 et 20 caractères et ne doit comporter d\'espace.');
	}
	e.preventDefault();
	
    });
    
    $('#addcomment').submit( function(e){
	if( $('#comment').val().length > 0 ) {
	    $.post(templateUrl+'/ajax/get_live_score.php','act=post_comment&comment='+$('#comment').val()+'&pseudo='+pseudo, function(){
		$('#comment').val('');
		//updateLiveScore('chat');
	    });
	} else {
	    alert('Veuillez saisir un message');
	}
	e.preventDefault();
    });
    
    // publication du message sur la touche "entrée"
    // & test sur la longueur : 200 max.
    $('#comment').keypress( function(e){
	// longueur max : 200
	if( $(this).val().length > 200 ) {
	    $(this).val($(this).val().substr(0,200));
	}
	
	// 13 = touche Entrée
	if( e.keyCode == 13 ){
	    $('#addcomment').trigger('submit');
	    return false;
	}
    });
    
});

function updateLiveScore(emplacement) {

    var script_name = 'get_live_score.php';

    
    if( emplacement == 'post' ) {
	// construction de la chaine à envoyer
	var str = '&emplacement=post';
	for( i = 0 ; i < varName.length ; i++ ) {
	    str += '&var[]='+varName[i];
	}
    } else if( emplacement == 'header' ) {
	var str = '&emplacement=header';
	var script_name = 'get_live_score.php';
    } else if( emplacement == 'chat' ) {
	var script_name = 'chat_live_score.php';
	// récupération du dernier id de message affiché
	var id_message = $('#chat div.message:last').attr('id').split('ssage')[1];
	var str = '&emplacement=chat&lastid='+id_message;
    }
    
    $.ajax({
	type : 'POST',
	url : templateUrl+'/ajax/' + script_name,
	data : 'act=live_score'+str,
	success : function(data){
	    if( emplacement == 'post' ) {
		var varsJson = $.parseJSON( data );
		for( i in varsJson ) {
		    $('#'+i).html(varsJson[i]);
		}
	    } else if( emplacement == 'header' || emplacement == 'chat' ){
		var datas = $.parseJSON( data.split('|$|')[0] );
		//console.log(datas);
		
		for( var key in datas ) {
		    // cas particuliers : avatar, pays, points, quijoue
		    if( key.indexOf('pays') != -1 || key.indexOf('photo') != -1 ) {
			$('#'+key).attr('src' , datas[key]);
		    } else if( key.indexOf('points') != -1 ) {
			$('#'+key).html(datas[key]);
		    } else if( key.indexOf('quijoue') != -1 ) {
			var i = key.split('joue')[1] == 1 ? 0 : 2;
			var suffix = $('div.balls-left-popup').length > 0 ? '-popup' : '';
			if( datas[key] == 1+i ) {
			    $('.results_line'+key.split('joue')[1]+' div.balls-left'+suffix).fadeTo(1,1);
			    $('.results_line'+key.split('joue')[1]+' div.balls-right'+suffix).fadeTo(1,0.2);
			} else if( datas[key] == 2+i ) {
			    $('.results_line'+key.split('joue')[1]+' div.balls-left'+suffix).fadeTo(1,0.2);
			    $('.results_line'+key.split('joue')[1]+' div.balls-right'+suffix).fadeTo(1,1);
			}
		    } else {
			$('#'+key).text(datas[key]);
		    }
		}
		
		// affichage / cachage du 2ème match si nécessaire
		if( datas.joueur3 != '' && datas.joueur4 != '' ) {
		    $('div.results_line2').show();
		    $('div.results-1match').attr('class','results-2matchs');
		} else {
		    $('div.results_line2').hide();
		    $('div.results-2matchs').attr('class','results-1match');
		}
		
		if( emplacement == 'header' ) {
		    var message = $.parseJSON( data.split('|$|')[1] );
		    if( message.status == 1 ) {
			var comm = message.comments;
			$('#pupper span').text(comm[0].date);
			$('#lastmessage').text(comm[0].message);
		    }
		}
		else if( emplacement == 'chat' ) {

		    var nb = $.parseJSON(data.split('|$|')[2]);
		    if (nb >= 5) {
		    	$("#connectes").empty().append(nb + " connectés");
		    } else {
			$("#connectes").empty();
		    }

		    var messages = $.parseJSON( data.split('|$|')[1] );
		    if( messages.status == 1 ) {
			var nb = messages.comments.length;
			var comm = messages.comments;
			codehtml = '';
			// récup de la classe du dernier
			var lastClass = $('#chat .message:last p').attr('class');
			var resModulo = lastClass == 'comment-light' ? 1 : 0;
			for( k=0 ; k < nb ; k++ ){
			    /*
			<p class="comment-<?= $i%2 == 1 ? 'light' : 'dark' ?>"><span><?= stripcslashes( $mess->pseudo ) ?></span> (<?= date( 'H:i' , $mess->date) ?>) :<br />
			<?= stripcslashes( $mess->message ) ?></p> 
			    */
			    codehtml += '<div id="message'+comm[k].id+'" class="message"><p class="'+
					( k%2 == resModulo ? 'comment-light' : 'comment-dark' )
					+'"><span>'+comm[k].pseudo+'</span> ('+comm[k].date+')<br />'+comm[k].message+'</p></div>';
			}
			// on scrolle uniquement si on est dans les 10% les plus en bas
			var hauteur = $('#chatcontainer').height()*0.8;
			$('#chatcontainer').append(codehtml);
			
			if( $('#chat').scrollTop() > hauteur ) {
			    $('#chat').scrollTop($('#chatcontainer').height());
			}
		    }
		}
	    }
	}
    });
}

