function makeHttpRequest(url, callback_function, return_xml)
{
   var http_request = false;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
    //  if (http_request.overrideMimeType) {
      //    http_request.overrideMimeType('text/xml');
   //    }
   } else if (window.ActiveXObject) { // IE
       try {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
           try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
       }
   }

   if (!http_request) {
       alert('Unfortunatelly you browser doesn\'t support this feature.');
       return false;
   }
   http_request.onreadystatechange = function() {
       if (http_request.readyState == 4) {
           if (http_request.status == 200) {
               if (return_xml) {
                   eval(callback_function + '(http_request.responseXML)');
               } else {
                   eval(callback_function + '(http_request.responseText)');
               }
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ') '+url);
           }
       }
   }
   http_request.open('GET', url, true);
   http_request.send(null);
}

function show_regles(object) {
	switch (object) {
		case 'site_titre':
			contenu = '- Le titre doit être le nom de votre site<br>- Votre titre doit être clair<br>- Pas de slogan publicitaire';
			break;
		case 'site_url':
			contenu = '- L\'url de votre site doit répondre<br>- l\'url doit etre de la forme http://...../<br>- L\'url peut renvoyer à un sous dossier<br><br>L\'url doit se terminer par le caractère "/"';
			break;
		case 'site_description':
			contenu = 'La description de votre site doit être un texte lisible bien orthographié et correctement ponctué. Elle ne peut contenir une suite de mots clés.<br>Elle doit contenir un minimum de 100 caractères et un maximum de 350.<br><br>Les retours à la ligne sont interdits.';
			break;
		case 'site_nom':
			contenu = 'Saisissez votre nom. Nous ne le communiquons à aucun organisme quel qu\'il soit.<br><br>Ce nom est utilisé pour vous adresser les mails.<br><br>Votre nom ne peut contenir que des lettre minuscules et majuscules, des espacements et traits d\'union.';
			break;
		case 'site_email':
			contenu = 'Saisissez votre adresse e-mail. Nous ne la communiquons à aucun organisme quel qu\'il soit.<br><br>Nous utilisons cette adresse e-mail pour vous confirmer lla soumission et vous informer lors de sa validation ou de son refus.<br><br>Cette adresse sera aussi utilisé pour identifier votre site. Nous proposerons prochaînement un espace membre vous permettant de modifier votre inscription.';
			break;
	}
	document.getElementById('mini_regles').innerHTML = contenu;
}

function hide_regles(object) {
	document.getElementById('mini_regles').innerHTML = "Cet espace vous donnera au fur et à mesure de la saisie des conseils et vous rappelera les règles à respecter pour une bonne soumission.<br><br>Tous les sites soumis sont visités manuelement et tout site soumis ne respectant pas les règles sera refusé.<br><br>Nous vous souhaitons une bonne soumission.";
}

function check_field(id) {
	document.getElementById(id).className = 'form';
	switch (id) {
		case 'site_titre':
			var regexp = new RegExp("^[^ ].{1,50}$","gi");	
			if (regexp.test(document.getElementById('site_titre').value)) {
				return true;
			}
			break;
		case 'site_url':
			//var regexp = new RegExp("^((http(s?))\:\/\/)?(www.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})\/$","gi");	
			var regexp = new RegExp("^((http(s?))\:\/\/)?(www.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})\/?([a-zA-Z0-9\-\_\.]{2,})\/$","gi");	
			if (regexp.test(document.getElementById('site_url').value)) {
				document.getElementById(id).className = 'form';
				return true;
			}
			break;
		case 'site_description':
			var regexp = new RegExp("^[^ ].{99,350}$","gi");	
			if (regexp.test(document.getElementById('site_description').innerHTML)) {
				return true;
			} else if (regexp.test(document.getElementById('site_description').value)) {
				return true;
			}
			break;
		case 'site_nom':
			var regexp = new RegExp("^[^ ][a-zA-Z -]{1,50}$","gi");	
			if (regexp.test(document.getElementById('site_nom').value)) {
				return true;
			}
			break;
		case 'site_email':
			var regexp = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", "gi" ) ;
			if (regexp.test(document.getElementById('site_email').value)) {
				return true;
			}
			break;
		case 'cat_nom':
			var regexp = new RegExp("^[^ ].{1,50}$","gi");	
			if (regexp.test(document.getElementById('cat_nom').value)) {
				return true;
			}
			break;
		case 'cat_email':
			var regexp = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", "gi" ) ;
			if (regexp.test(document.getElementById('cat_email').value)) {
				return true;
			}
		case 'msg_nom':
			var regexp = new RegExp("^[^ ].{1,50}$","gi");	
			if (regexp.test(document.getElementById('msg_nom').value)) {
				return true;
			}
			break;
		case 'msg_email':
			var regexp = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$", "gi" ) ;
			if (regexp.test(document.getElementById('msg_email').value)) {
				return true;
			}
			break;
		case 'msg_url':
			var regexp = new RegExp("^((http(s?))\:\/\/)?(www.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})\/$","gi");	
			if (regexp.test(document.getElementById('msg_url').value)) {
				document.getElementById(id).className = 'form';
				return true;
			}
			break;
		case 'msg_objet':
			var regexp = new RegExp("^[^ ].{1,75}$","gi");	
			if (regexp.test(document.getElementById('msg_objet').value)) {
				return true;
			}
			break;
		case 'msg_contenu':
			var regexp = new RegExp("^[^ ].{99,350}$","gi");	
			if (regexp.test(document.getElementById('msg_contenu').innerHTML)) {
				return true;
			} else if (regexp.test(document.getElementById('msg_contenu').value)) {
				return true;
			}
			break;
	}
	document.getElementById(id).Focus;
	document.getElementById(id).className = 'form_erreur';
	return false;
}

function form_is_complete() {
	if (check_field('site_titre')) {
		if (check_field('site_url')) {
			if (check_field('site_description')) {
				if (check_field('site_nom')) {
					if (check_field('site_email')) {
						//	alert("form ok");
						submit_form();
					} else {
						alert("Votre adresse e-mail n'est pas valide.");
					}
					
				} else {
					alert("Veuillez fournir votre nom");
				}
			} else {
				alert("Veuillez saisir la description de votre site (100 caractères minimum et 350 au maximum).")
			}
		} else {
			alert("Veuillez verifier l'url de votre site");
		}
	} else {
		alert("Veuillez verifier le titre de votre site");
	}

}

function form_is_complete2() {
	if (check_field('cat_nom')) {
		if (check_field('cat_email')) {
			//alert("form ok");
			submit_form2();
		}
	}
	//alert("form pas ok");
}

function form_is_complete3() {
	if (check_field('msg_nom')) {
		if (check_field('msg_email')) {
			if (check_field('msg_objet')) {
				if (check_field('msg_contenu')) {
				//	alert("form ok");
					submit_form3();
				}
			}
		}
	}
	//alert("form pas ok");
}
function chargement_start() {
	document.getElementById('chargement-div').className = 'chargement-on';
}
function chargement_end() {
	setTimeout('chargement_end2()',1000);
}
function chargement_end2() {
	document.getElementById('chargement-div').className = 'chargement-off';
}
function submit_form() {
	chargement_start();
	var url = '/store_site.php?cat_id='+document.getElementById('cat_id').value+'&site_titre='+document.getElementById('site_titre').value+'&site_url='+document.getElementById('site_url').value+'&site_description='+document.getElementById('site_description').value+'&site_nom='+document.getElementById('site_nom').value+'&site_email='+document.getElementById('site_email').value;
	makeHttpRequest(url, 'form_submitted');
}

function form_submitted(str) {
	if (str == 1) {
		document.getElementById('inscription').innerHTML = "<center>Votre site à bien été soumis à la validation par l'équipe de CRTannuaire.<br><br>Vous recevrez un e-mail à l'adresse que vous nous avez fournie le résultat de la validation de votre site.<br><br>En cas de problème avec votre soumission, vous pouvez nous contacter en utilisant le formulaire présent sur la page de \"contact\" en précisant l'url de votre site.<br><br>Toute l'équipe de CRTannuaire vous remercie de votre participation.<br><br>Si vous souhaitez faire un lien vers CRTannuaire ou plus spécifiquement vers la catégorie ou se trouve votre site, vous pouvez obtenir le code du lien en <a href='/faire-un-lien.php'>cliquant ici</a>.</center>"
	}
	chargement_end();
}

function submit_form2() {
	chargement_start();
	var url = '/store_cat.php?cat_nom='+document.getElementById('cat_nom').value+'&cat_email='+document.getElementById('cat_email').value;
	makeHttpRequest(url, 'form_submitted2');
}

function form_submitted2(str) {
	if (str == 1) {
		document.getElementById('inscription').innerHTML = "<center>Votre suggestion a bien été enregistrée, vous recevrez un mail vous informant de l'issue de la validation.<br><br>Toute l'équipe de CRTannuaire vous remercie de votre participation.</center>"
	}
	chargement_end();
}

function submit_form3() {
	chargement_start();
	var url = '/store_msg.php?msg_nom='+document.getElementById('msg_nom').value+'&msg_email='+document.getElementById('msg_email').value+'&msg_url='+document.getElementById('msg_url').value+'&msg_objet='+document.getElementById('msg_objet').value+'&msg_contenu='+document.getElementById('msg_contenu').value;
	makeHttpRequest(url, 'form_submitted3');
}

function form_submitted3(str) {
	if (str == 1) {
		document.getElementById('inscription').innerHTML = "<center>Votre message à bien été enregistré, nous y répondrons dans les meilleurs délais.<br></center>"
	}
	chargement_end();
}
function update_preview(what,val) {
	//alert(what);
	document.getElementById('prev_'+what).innerHTML = document.getElementById('site_'+what).value;
	if (what == 'url') {
		document.getElementById('prev_titre_a').href = document.getElementById('site_url').value;
		document.getElementById('prev_url_a').href = document.getElementById('site_url').value;
	}
	if (what == 'description') {
		if (document.getElementById('site_description').value.length > 350) {
			document.getElementById('site_description').value = document.getElementById('site_description').value.substr(0,350);
			document.getElementById('prev_description').value = document.getElementById('site_description').value;
		}
		document.getElementById('nb_char_description').innerHTML = 350-document.getElementById('site_description').value.length;
		
	}
}
