// JavaScript Document

//Connexion à un fichier via jQuery
function file(fichier)	{
	var result = jQuery.ajax({
		type: "GET",
		url: fichier,
		async: false
	}).responseText;
	
	return result;
}

//Remplace un char dans une chaine de caractères
function replace_char(string, char, new_char){
	
	var new_string = ""; 
	
	for(var i = 0; i < string.length; i++){
		new_string += string.charAt(i);
	
		if (string.charAt(i) == char){
			new_string = new_string.replace(char, new_char);
		}
	}
	
	return new_string;
	
}

//Vérifie si la chaine contient des caractères spéciaux
function is_special_char(the_string){
	
	var init_length = the_string.length;
	
	if(init_length > 0){
		the_string = replace_char(the_string, ' ', '');
		init_length = the_string.length; //Nouvelle longueur
		
		if(init_length > 0){
			the_string = replace_char(the_string, '+', '');
			the_string = replace_char(the_string, '*', '');
			the_string = replace_char(the_string, '/', '');
			the_string = replace_char(the_string, '\\', '');
			the_string = replace_char(the_string, '$', '');
			the_string = replace_char(the_string, '¤', '');
			the_string = replace_char(the_string, '}', '');
			the_string = replace_char(the_string, '{', '');
			the_string = replace_char(the_string, '[', '');
			the_string = replace_char(the_string, ']', '');
			the_string = replace_char(the_string, '(', '');
			the_string = replace_char(the_string, ')', '');
			the_string = replace_char(the_string, '|', '');
			the_string = replace_char(the_string, '=', '');
			the_string = replace_char(the_string, '#', '');
			the_string = replace_char(the_string, '>', '');
			the_string = replace_char(the_string, '<', '');
			the_string = replace_char(the_string, '~', '');
			the_string = replace_char(the_string, '°', '');
			
			var new_length = the_string.length;
			if(init_length > new_length) return true; //Il y'a des caractères spéciaux
			else return false;
		}
		else return true; //Il n'a mis que des espaces dans le champ
	}
	else return true; //Le champ est vide
	
}

function goToNextFormPartRoutage(type){
	if('next'==type){
		if(document.getElementById('form_type_box')){
			var form_type = document.getElementById('form_type_box').innerHTML;
			if(''==form_type) display_form_type('routage', 'details');
		}
		
		document.getElementById('first_part_form_routage').style.display='none';
		document.getElementById('mr_firts_content_part').style.display='none';
		document.getElementById('second_part_form_routage').style.display='block';
		document.getElementById('mr_firts_second_part').style.display='block';
		document.getElementById('mr_firts_second_part').style.marginLeft='0px';
	}
	else{
		document.getElementById('second_part_form_routage').style.display='none';
		document.getElementById('mr_firts_second_part').style.display='none';
		document.getElementById('first_part_form_routage').style.display='block';
		document.getElementById('mr_firts_content_part').style.display='block';
		document.getElementById('mr_firts_content_part').style.marginLeft='0px';
	}
}

//Affiche le type de formulaire
function display_form_type(page, type){
	
	var result = file('../library/forms_type.php?page='+page+'&type='+type);
	if('' != result){
		document.getElementById('form_table_title').innerHTML = ('details'==type ? '<strong>Formulaire d&eacute;taill&eacute; de demande de devis</strong>' : '<strong>Formulaire simplifi&eacute; de demande de devis</strong>');
		document.getElementById('form_type_box').innerHTML = result;
	}
	
}


//Vérifie les champs de formulaires puis valide
function check_form(form){
	var entreprise = document.getElementById('nom_entreprise').value;
	var nom = document.getElementById('contact').value;
	var tel = document.getElementById('tel').value;
	var email = document.getElementById('email').value;
	var tab_email = email.split('@');
	var test_email = (tab_email[1] ? 'ok':'');
	if(document.getElementById('detail_commande')) var detail_cmd = document.getElementById('detail_commande').value;
	else detail_cmd = 'empty';
	var error_msg = '';
	
	document.getElementById('nom_entreprise').style.border = '1px solid #233674';
	document.getElementById('contact').style.border = '1px solid #233674';
	document.getElementById('tel').style.border = '1px solid #233674';
	document.getElementById('email').style.border = '1px solid #233674';
	if(document.getElementById('detail_commande')) document.getElementById('detail_commande').style.border = '1px solid #233674';
	
	if('' != entreprise && '' != nom && '' != tel && '' != test_email && '' != detail_cmd){
		document.getElementById('form_'+form).submit();
	}
	else{
		if('' == detail_cmd){
			document.getElementById('detail_commande').style.border = '2px solid #FF0000';
			error_msg += '- Le détail de votre demande de devis';
		}
		if('' == entreprise){
			document.getElementById('nom_entreprise').style.border = '2px solid #FF0000';
			error_msg += (''!=error_msg?'\n':'')+'- Nom de votre entreprise'; 
		}
		if('' == nom){
			document.getElementById('contact').style.border = '2px solid #FF0000';
			error_msg += (''!=error_msg?'\n':'')+'- Votre nom';
		}
		if('' == tel){
			document.getElementById('tel').style.border = '2px solid #FF0000';
			error_msg += (''!=error_msg?'\n':'')+'- Votre numero de téléphone';
		}
		if('' == test_email){
			document.getElementById('email').style.border = '2px solid #FF0000';
			error_msg += (''!=error_msg?'\n':'')+'- Votre email semble incorrecte';
		}
		
		alert('Erreur! Remplissez correctement les champs suivants :\n\n'+error_msg);
	}
	
}


/*====================================================================================*/

//Affiche la liste des rubriques d'un thème
function display_theme_rubs(id_box){
	
	if('none'!=document.getElementById(id_box).style.display) document.getElementById(id_box).style.display = 'none';
	else document.getElementById(id_box).style.display = 'block';
	
}


//Valide un nouveau sujet
function add_new_subject(){
	
	var title		= document.getElementById('sujet_titre').value;
	var title_test	= is_special_char(title);
	var desc		= document.getElementById('sujet_desc').value;
	var keywords	= document.getElementById('sujet_mots_cles').value;
	var alert_txt	= '';
	
	//Traitement des mots clés
	if('' != keywords){
		var keywords_tab = keywords.split(',');
		var new_keywords = '';
		for(var i = 0; i < keywords_tab.length; ++i){
			word = replace_char(keywords_tab[i], ' ', '');
			if('' != word) new_keywords += (''!=new_keywords ? ',':'')+word;
		}
		document.getElementById('sujet_mots_cles').value = new_keywords;
	}
	else{ new_keywords = 'empty'; }
	
	keywords_test = is_special_char(new_keywords);
	
	document.getElementById('sujet_titre').style.border = '1px solid #AAA';
	document.getElementById('sujet_desc').style.border = '1px solid #AAA';
	document.getElementById('sujet_mots_cles').style.border = '1px solid #AAA';
	
	if(!title_test && '' != desc && !keywords_test){
		document.getElementById('new_sujet_form').submit(); //Validation du formulaire
	}
	else{
		if(title_test){
			alert_txt += '- Le titre du sujet est incorrect.\nLes caractères suivants sont interdits dans le titre : + * \\ / $ ¤ { } ( ) [ ] | < > = # ~ °\n\n';
			document.getElementById('sujet_titre').style.border = '2px solid #FF0000';
		}
		if(''==desc){
			alert_txt += '- La description du sujet est obligatoire.\n\n';
			document.getElementById('sujet_desc').style.border = '2px solid #FF0000';
		}
		if(keywords_test){
			alert_txt += '- Les mots clés saisis sont incorrectes.\nLes caractères suivants sont interdits dans les mots clés : + * \\ / $ ¤ { } ( ) [ ] | < > = # ~ °';
			document.getElementById('sujet_mots_cles').style.border = '2px solid #FF0000';
		}
		alert(alert_txt);
	}
	
}


//valide les infos
function update_infos(){
	
	var nom		= document.getElementById('nom').value;
	var nom_test= is_special_char(nom);
	var pnom	= document.getElementById('pnom').value;
	var pnom_test= is_special_char(pnom);
	var email	= document.getElementById('email').value;
	var email_test= is_special_char(email);
	var adr		= document.getElementById('adresse').value;
	var adr_test= is_special_char(adr);
	var cp		= document.getElementById('cp').value;
	var cp_test	= is_special_char(cp);
	var ville	= document.getElementById('ville').value;
	var ville_test= is_special_char(ville);
	var tel		= document.getElementById('tel').value;
	if(''!=tel){ tel_test = is_special_char(tel); } else{ tel_test = false; }
	var port	= document.getElementById('portable').value;
	if(''!=port){ port_test = is_special_char(port); } else{ port_test = false; }
	var fax		= document.getElementById('fax').value;
	if(''!=fax){ fax_test = is_special_char(fax); } else{ fax_test = false; }
	var alert_txt= '';
	
	if(!nom_test && !pnom_test && !email_test && !adr_test && !cp_test && !ville_test && !tel_test && !port_test && !fax_test){
		document.getElementById('infos_form').submit(); //Validation du formulaire
	}
	else{
		if(nom_test) alert_txt		+= 'nom';
		if(pnom_test) alert_txt		+= (''!=alert_txt?', ':'')+'prénom';
		if(email_test) alert_txt	+= (''!=alert_txt?', ':'')+'email';
		if(adr_test) alert_txt		+= (''!=alert_txt?', ':'')+'adresse';
		if(cp_test) alert_txt		+= (''!=alert_txt?', ':'')+'code postal';
		if(ville_test) alert_txt	+= (''!=alert_txt?', ':'')+'ville';
		if(tel_test) alert_txt		+= (''!=alert_txt?', ':'')+'téléphone fixe';
		if(port_test) alert_txt		+= (''!=alert_txt?', ':'')+'téléphone portable';
		if(fax_test) alert_txt		+= (''!=alert_txt?', ':'')+'fax';
		
		alert('Les champs suivants sont incorrects: '+alert_txt+'.\n\nLes caractères suivants sont interdits : + * \\ / $ ¤ { } ( ) [ ] | < > = # ~ °');
	}
	
}


function update_password(){
	
	var password	= document.getElementById('new_password').value;
	var pwd_test	= is_special_char(password);
	var pwd_tmp		= replace_char(password, ' ', '');
	if(pwd_tmp != password) pwd_test = true;
	var pwd_length	= password.length;
	var c_password	= document.getElementById('c_new_password').value;
	alert_txt		= '';
	
	if(password == c_password && !pwd_test && pwd_length > 5){
		document.getElementById('password_form').submit(); //Validation du formulaire
	}
	else{
		if(pwd_test) alert_txt += '- Le mot de passe est incorrecte.\nLes espaces et les caractères suivants sont interdits : + * \\ / $ ¤ { } ( ) [ ] | < > = # ~ °\n\n';
		if(password != c_password) alert_txt += '- Le mot de passe confirmé est différent du premier.\n\n';
		if(pwd_length<=5) alert_txt += '- Votre mot de passe doit comporter au moins 6 caractères.';
		alert(alert_txt);
	}
	
}


//Supprime une rubrique
function delete_rub(idr){
	
	if(window.confirm('Voulez-vous supprimer cette rubrique et tous le sujets qu\'elle contient ?')){
		var result = file('../forum/manage_forum.php?act=del_rub&idr='+idr);
		if('done'==result){
			document.getElementById('theme_rub_title'+idr).style.display='none';
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
	}
	else{
		return false;
	}
	
}


//Supprime un sujet
function delete_subject(ids){
	
	if(window.confirm('Voulez-vous supprimer ce sujet et tous les commentaires qu\'il contient ?')){
		var result = file('../forum/manage_forum.php?act=del_suj&ids='+ids);
		if('done'==result){
			document.getElementById('sujet_list_box'+ids).style.display='none';
			document.getElementById('sujet_list_date'+ids).style.display='none';
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
	}
	else{
		return false;
	}
	
}


//Supprime un commentaire
function delete_com(idc){
	
	if(window.confirm('Voulez-vous supprimer ce commentaire ?')){
		var result = file('../forum/manage_forum.php?act=del_com&idc='+idc);
		if('done'==result){
			document.getElementById('comment_box'+idc).style.display='none';
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
	}
	else{
		return false;
	}
	
}


//Supprime une idée
function delete_idea(idi){
	
	if(window.confirm('Voulez-vous supprimer cette idée ?')){
		var result = file('../forum/manage_forum.php?act=del_idea&idi='+idi);
		if('done'==result){
			document.getElementById('theme_idea_title'+idi).style.display='none';
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
	}
	else{
		return false;
	}
	
}


//Affiche les rubriques du thème sélectionné
function display_rub_for_moving(id_theme, ids){
	
	if('0'!=id_theme){
		
		var result = file('../forum/manage_forum.php?act=get_rub&idt='+id_theme);
		if(''!=result){
			document.getElementById('move_select_rub'+ids).innerHTML=result;
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
		
		document.getElementById('move_form_rub'+ids).style.display='block';
		
	}
	else{
		document.getElementById('move_form_rub'+ids).style.display='none';
	}
	
}


//Déplace un sujet vers une autre rubrique
function move_subject(idr, ids){
	
	if('0'!=idr){
		if(window.confirm('Voulez-vous déplacer ce sujet vers la rubrique sélectionnée ?')){
			var result = file('../forum/manage_forum.php?act=move_sujet&idr='+idr+'&ids='+ids);
			if('done'==result){
				document.getElementById('sujet_list_box'+ids).style.display='none';
				document.getElementById('sujet_list_date'+ids).style.display='none';
				alert('Le sujet a été déplacé !');
			}
			else{
				alert('L\'action a échoué, merci de reessayer ultérieurement !');
			}
		}
		else{
			return false;
		}
	}
	
}


//Permet de citer un texte
function quote_this(ind){
	
	var login = document.getElementById('quote_login'+ind).value; //Login du membre cité
	var quote = document.getElementById('quote_text'+ind).value; //Texte cité
	var comment = document.getElementById('commentaire').value; //Commentaire
	
	document.getElementById('commentaire').value = comment+(''!=comment?'\n':'')+'[quote]\n'+login+' a dit : '+quote+'\n[/quote]';
	
	alert('Vous venez de citer le message de '+login+'.\nMerci de ne pas supprimer les balises [quote] et [/quote] si vous voulez que votre citation soit mise en forme.\n');
	
}


//Supprime un fichier du forum
function delete_file(idf){
	if(window.confirm('Voulez-vous supprimer ce fichier définitivement ?')){
		var result = file('../forum/manage_forum.php?act=del_file&idf='+idf);
		if('done'==result){
			document.getElementById('file_box'+idf).style.display='none';
		}
		else{
			alert('L\'action a échoué, merci de reessayer ultérieurement !');
		}
	}
	else{
		return false;
	}
}

function display_event_form(){
	$('#event_form').fadeIn('normal');
}

//Affiche les programmes du jour
function display_day_progs(type, event_date){
	
	var result = file('calendar_prog.php?a='+type+'&d='+event_date);
	if('' != result){
		document.getElementById('event').innerHTML = result;
		$('#calendar').fadeOut('normal', function(){ $('#event').fadeIn('normal'); });
	}
	else alert('Une erreur s\'est produite, merci de reessayer dans quelques instants.');
	
}

//Supprime un programme
function delete_calendar_prog(id, idc){
	
	var r = file('manage_forum.php?act=delete_calendar_prog&id='+id+'&idc='+idc);
	if('done'==r){
		document.getElementById('cp_options'+id).style.display = 'none';
		document.getElementById('cp_box'+id).style.display = 'none';
	}
	else alert('Une erreur s\'est produite, merci de reessayer dans quelques instants.');
	
}

//Ajoute un evenement
function verif_event_form(){
	
	var title = $('#event_title').val();
	var desc = $('#event_desc').val();
	var e_date = $('#event_date').val();
	var e_time = $('#event_time').val();
	var e_repeat = document.getElementById('event_repeat').checked ? 'oui':'non';
	var error = '';
	var is_error = false;
	
	document.getElementById('event_title').style.border = '1px solid #AAA';
	document.getElementById('event_desc').style.border = '1px solid #AAA';
	document.getElementById('event_date').style.border = '1px solid #AAA';
	document.getElementById('event_time').style.border = '1px solid #AAA';
	
	if(replace_char(title, ' ', '')=='' || is_special_char(title)){
		is_error = true;
		error += 'Le titre semble incorrecte.\n';
		document.getElementById('event_title').style.border = '2px solid #FF0000';
	}
	if(replace_char(desc, ' ', '')==''){
		is_error = true;
		error += 'La description semble incorrecte.\n';
		document.getElementById('event_desc').style.border = '2px solid #FF0000';
	}
	if(replace_char(e_date, ' ', '')=='' || e_date.length<10){
		is_error = true;
		error += 'La date semble incorrecte.\n';
		document.getElementById('event_date').style.border = '2px solid #FF0000';
	}
	if(replace_char(e_time, ' ', '')=='' || e_time.length<5){
		is_error = true;
		error += 'L\'heure semble incorrecte.';
		document.getElementById('event_time').style.border = '2px solid #FF0000';
	}
	
	if(is_error){
		alert(error);
		return;
	}
	else{
		var tab			= e_date.split('/');
		var date_time	= tab[2]+'-'+tab[1]+'-'+tab[0]+' '+e_time;
		
		var r = file('manage_forum.php?act=check_date&d='+date_time);
		if('ok'==r){
			date_time	= ('oui'==e_repeat ? '0000-'+tab[1]+'-'+tab[0]+' '+e_time : date_time);
			
			//Valide le form
			document.getElementById('event_date_time').value = date_time;
			document.getElementById('create_event_form').submit();
		}
		else{
			document.getElementById('event_date').style.border = '2px solid #FF0000';
			document.getElementById('event_time').style.border = '2px solid #FF0000';
			alert('La date saisie est incorrecte.');
		}
		
	}
	
}

//Recharge le calendier
function reload_calendar(action, type){
	
	var calendar_month = document.getElementById('calendar_month').value;
	calendar_month = parseInt(calendar_month, 10); //Numérise la chaine de caractères
	var calendar_year = document.getElementById('calendar_year').value;
	calendar_year = parseInt(calendar_year, 10); //Numérise la chaine de caractères
	
	if('next' == action){
		var month = (12!=calendar_month ? calendar_month+1 : 1);
		var year = (12==calendar_month ? calendar_year+1 : calendar_year);
	}
	else if('prev' == action){
		var month = (1!=calendar_month ? calendar_month-1 : 12);
		var year = (1==calendar_month ? calendar_year-1 : calendar_year);
	}
	else{
		var month = '';
		var year = '';
	}
	
	type = (''!=type) ? type : document.getElementById('calendar_type').value;
	
	var result = file('get_calendar.php?action=reload&type='+type+'&y='+year+'&m='+month);
	if('' != result){
		document.getElementById('calendar_content').innerHTML = result;
	}
	else alert('Une erreur s\'est produite, merci de reessayer dans quelques instants.');
	
}
