//Variable globales
var glisteDate = new Array('d_14','d_15','d_16','d_17','d_18');
var glisteJour = new Array('lundi','mardi','mercredi','jeudi','vendredi');
var glisteDay = new Array('14','15','16','17','18');
//var glisteTypeV = new Array('mieuxC','portrait','entreprises','conseils');
//var glisteInputQ = new Array('handicap','situation','emploi','professionnel','handichat_connaissance','participation','posez_question','posez_question_autre','note_chat','commentaire_chat','depot_cv','pourquoi_non_depot_cv','emission','commentaire_handichat');
var gPubChat = new Array();
var gIndexPub = 0;
//champs obligatoires des champs
var gChampsO = new Array();
gChampsO['envoi_cv'] = new Array ('cvemail');
gChampsO['question_avant'] = new Array ('input-pseudo','input-contribution');
//gChampsO['envoi_video'] = new Array ('videopseudo','videodestinataire');

//Initialisation des fonctions javascript
$(document).ready(function() {
	//Ini liens programmes page accueil
	if ($('#progindexdays li').length > 0)
	{
		//switchAgendaDay('');
		for (var i=0;i<glisteJour.length;i++)
			$("#"+glisteJour[i]).click(function(){ return switchAgendaDay($(this).attr('id')); });
	}
	
	
	//Cache des boutons de liste
	$('#submit_css').css('display','none');
	$('#submit_entreprise').css('display','none');
	$('#submit_theme').css('display','none');
	
	inputTextFocus();
	if ($('#img_mise_avant').length >= 1) setTimeout(switchMiseEnAvant, 11000);
	if ($('#table-programme').length >= 1) rolloverAgenda();
	
});


/** Affiche l'agenda du jour souhaité sur page accueil 
*** pDate = date au format YYYY/mm/dd
**/
function switchAgendaDay(pJour)
{
	var $isOk = 0;
	var styleBloc = '';
	for (i=0;i<glisteJour.length;i++)
	{
		if (element = $('#'+glisteDate[i]))
		{
			styleBloc = (glisteJour[i]==pJour?'block':'none');
			element.css('display',styleBloc);
			$('#'+glisteJour[i]).removeClass().addClass(styleBloc=='block'?'on':'');
			if (styleBloc == 'block') 
			{
				$isOk = 1;
				$('#'+glisteJour[i]).attr('title',glisteJour[i]+' '+glisteDay[i]+'  (journée affichée)');
				document.title=('Handichat 2010 (programme du '+glisteJour[i]+' '+glisteDay[i]+' novembre 2010)');
				//if ($('#conseil_date').length > 0) $('#conseil_date').html(glisteJour[i]+' '+(15+i)+' novembre');
			}
			else
				$('#'+glisteJour[i]).attr('title','');
		}
		else $('#'+glisteJour[i]).removeClass().addClass(glisteJour[i]);
	}
	//Affichage par défaut si erreur
	if ($isOk==0) 
	{
		$('#'+glisteDate[0]).css('display','block');
		$('#'+glisteJour[0]).removeClass().addClass('on');
	}
	
	return false;
}


/** Transition entre les pub de chat
**/
function switchMiseEnAvant()
{
	if (gPubChat && gIndexPub>=0)
	{
		gIndexPub++;
		if (!gPubChat[gIndexPub]) gIndexPub=0;
		$('#img_mise_avant').fadeOut(1000,function()
			{
				$('#img_mise_avant').attr('src',gPubChat[gIndexPub][1]);
				$('#img_mise_avant').attr('alt',gPubChat[gIndexPub][2]);
				$('#link_mise_avant').attr('href',gPubChat[gIndexPub][0]);
				$('#img_mise_avant').fadeIn(1000,function()
					{
						setTimeout(switchMiseEnAvant, 9500);
					});
			}
		)		
	}
}


/** Validation des formulaire en Ajax **
*** pIdForm : id du formulaire à valider
**/
function validation_form(pIdForm)
{
	switch (pIdForm)
	{
		//Etre alerté par mail
		case 'alerte_email' : 
			var typeAjax = 'POST';
			var urlAjax = 'inc/form/alerte-traitement.php';
			var dataAjax = 'alerte_mail='+$('#alerte_email_tbx').val()+'&id_chat='+$('#salonnr_alerte_email').val()+'&passage_alerte=1';
			break;
		//Etre alerté par sms
		case 'alerte_sms' :
			var typeAjax = 'POST';
			var urlAjax = 'inc/form/alerte-traitement.php';
			var dataAjax = 'alerte_sms='+$('#alerte_sms_tbx').val()+'&id_chat='+$('#salonnr_alerte_sms').val()+'&passage_alerte=1';
			break;
		//Etre alerté par sms
		/*case 'alerte_ami' :
			var typeAjax = 'POST';
			var urlAjax = 'inc/form/alerte-traitement.php';
			var dataAjax = 'alerte_ami='+$('#alerte_ami_tbx').val()+'&id_chat='+$('#salonnr_alerte_sms').val()+'&passage_alerte=1';
			break;
		*/
		//Inscription newsletter
		case 'inscription_newsletter':
			var typeAjax = 'POST';
			var urlAjax = 'inc/form/newsletter-traitement.php';
			var dataAjax = 'email='+$('#inputMail').val()+'&passage_newsletter=1';
			break;
		//Questionnaire
		case 'questionnaire':
			var typeAjax = 'POST';
			var urlAjax = 'inc/form/questionnaire-traitement.php';
			var dataAjax = 
				'handicap='+$('input[type=radio][name=handicap]:checked').attr('value')+
				'&situation='+$('input[type=radio][name=situation]:checked').attr('value')+
				'&emploi='+$('input[type=radio][name=emploi]:checked').attr('value')+
				'&professionnel='+$('input[type=radio][name=professionnel]:checked').attr('value')+
				ajaxCheckboxValues('handichat_connaissance')+
				ajaxCheckboxValues('participation')+
				'&posez_question='+$('input[type=radio][name=posez_question]:checked').attr('value')+
				'&posez_question_autre='+$('input[type=text][name=posez_question_autre]').attr('value')+
				ajaxCheckboxValues('note_chat')+
				'&commentaire_chat='+$('textarea[name=commentaire_chat]').val()+
				'&depot_cv='+$('input[type=radio][name=depot_cv]:checked').attr('value')+
				'&pourquoi_non_depot_cv='+$('textarea[name=pourquoi_non_depot_cv]').val()+
				ajaxCheckboxValues('emission')+
				'&commentaire_handichat='+$('textarea[name=commentaire_handichat]').val()+
				'&passage=1';
			break;
	}
	
	//Traitement AJAX du formulaire
	if (urlAjax)
	{
		//Traitement du formulaire en Ajax
		$.ajax({ 
			type: typeAjax,
			url: urlAjax, 
			data: dataAjax+'&is_ajax=1',
			success : function(msg) { feedbackForm(msg) },
			error : function() { feedbackForm('erreur#Erreur lors du traitement de votre demande. Merci de nous contacter afin que nous resolvions ce souci') }
		});
		return false;
	}
	//Traitement classique -- Vérification des champs
	else if (gChampsO[pIdForm])
	{
		var feedbackMsg = '';
		var i = 0;
		while (gChampsO[pIdForm][i])
		{
			var element = $('#'+gChampsO[pIdForm][i]);
			if (trim(element.val())=="" || element.val()==element.attr('title'))
				feedbackMsg += 'Veuillez saisir '+element.attr('title').toLowerCase()+'<br/>';
			else if (element.attr('id')=='input-contribution' && element.val().length>300)
				feedbackMsg += 'Veuillez saisir une question de 300 caractères maximum';
			i++;
		}
		
		//Affichage du feedback négatif
		if (feedbackMsg)
		{
			feedbackForm('erreur#'+feedbackMsg+'#'+pIdForm);
			return false;
		}
		
		if (pIdForm=='question_avant') sendContrib();
	}
}

/** Affichage - Disparition des message de retour de traitement des formulaires
*** pRetour : retour Ajax sous la form classCss#message_a_afficher (classCss : erreur ou ok)
**/
function feedbackForm(pRetour)
{
	var retour = pRetour.split('#');
	switch(retour[2])
	{
		case 'alerte_mail' : 
			$('#retour_alertes').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			if (retour[1]=='ok') $('#alerte_email_tbx').val('');
			break;
		case 'alerte_sms' : 
			$('#retour_alertes').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			if (retour[1]=='ok') $('#alerte_sms_tbx').val('');
			break;
		case 'envoi_cv' : 
			$('#retour_cv').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			break;
		case 'inscription_newsletter' : 
			$('#retour_newsletter').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			if (retour[1]=='ok') $('#inputMail').val('');
			break;
		case 'question_avant' :
			$('#retour_question_avant').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			break;
		case 'questionnaire' : 
			$('#retour_questionnaire').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast');
			$('#retour_questionnaire2').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
			if (retour[1]=='ok') unsetQuestionnaireValues();
			break;
		case 'envoi_video' :
			$('#retour_question_video').html(retour[1]).removeClass('erreur ok').addClass(retour[0]).slideDown('fast').delay(2000).slideUp('slow');
	}
}

/** Initialise le fonctionnement des textbox (si titre = valeur, quand on focus le champs, il se vide) ***
**/
function inputTextFocus()
{
	
	$('input[type="text"]').each( function () {
		if ($(this).attr('title')!='' && $(this).attr('title')==$(this).val()) 
			$(this).focus( function() { $(this).val('') });
		}
	);
	$('textarea').each( function () {
		if ($(this).attr('title')!='' && $(this).attr('title')==$(this).val()) 
			$(this).focus( function() { $(this).val('') });
		}
	);
}

/** Retourne l'ensemble des valeur checké pour un input donné
** nameInput : nom des checkboxs à verifier 
**/
function ajaxCheckboxValues(nameInput)
{
	var returnVal = '';
	var i = 1;
	element = $('[name='+nameInput+'['+i+']]');
	while (element.length > 0)
	{
		if (element.attr('checked') || ((element.attr('type')=='text' || element.attr('type')=='textarea') && element.val()!=''))
			returnVal += '&'+nameInput+'['+i+']='+element.val();
		i++;
		element = $('[name='+nameInput+'['+i+']]');
	}
	return returnVal;
}

/** Vide le questionnaire de la page questionnaire
** 
**/
function unsetQuestionnaireValues()
{
	
	for (var z=0; z<glisteInputQ.length; z++)
	{
		var i = 0;
		element = $('[name='+glisteInputQ[z]+']');
		if (element.length == 0)
		{
			i = 1;
			element = $('[name='+glisteInputQ[z]+'['+i+']]');
		}
		while (element.length > 0)
		{
			element.removeAttr('checked');
			if (element.attr('type')=='text' || element.attr('type')=='textarea') element.val('');
			i++;
			element = $('[name='+glisteInputQ[z]+'['+i+']]');
		}
	}
}


/** Valider une contribution pour le chat ***
**/
function sendContrib()
{
	if (navigator.appName=="Microsoft Internet Explorer")
	{
		document.getElementById("input-pseudo").value = encode_utf8(document.getElementById("input-pseudo").value);
		document.getElementById("input-contribution").value = encode_utf8(document.getElementById("input-contribution").value);
	}
	return true;
}

/** Equivalent au trim php
*** s : string a transformer
**/
function trim(s)
{
	return s.replace(/^\s+/g,'').replace(/\s+$/g,'')
}

/** Encode en UTF-8 **
*** s : string à transformer
**/
function encode_utf8(s) 
{
	string = s.replace(/\r\n/g,"\n");
	var utftext = "";
	for (var n = 0; n < string.length; n++) 
	{
 		var c = string.charCodeAt(n);
 		if (c < 128) utftext += String.fromCharCode(c);
		else if((c > 127) && (c < 2048)) 
		{
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else 
		{
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}
	}
 	return utftext;
}

function rolloverAgenda()
{
	$('#table-programme tr td').hover( 
		function() {
			element = $(this);
			if (element.hasClass('jour')) element.addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	)
}
