$(function(){ 

	$.fn.delay = function( time, name ) {

	    return this.queue( ( name || "fx" ), function() {
	        var self = this;
	        setTimeout(function() { $.dequeue(self); } , time );
	    } );

	};
		// Initialize history plugin.
		// The callback is called at once by present location.hash. 
		$.historyInit(pageload, "");
		
		//COLORBOX
		//$(".lien_popup_specialite").colorbox({iframe:true, innerWidth:580, innerHeight:450, opacity:0.6});
		//$(".lien_popup_reference").colorbox({iframe:true, innerWidth:700, innerHeight:500, opacity:0.6});
		
		$(".lien_popup_specialite").live("click", function(e){
			$.fn.colorbox({href:$(this).attr("href") ,iframe:true, innerWidth:580, innerHeight:500, opacity:0.5});
			return false;
			
		});
		$(".lien_popup_reference").live("click", function(e){
			$.fn.colorbox({href:$(this).attr("href") ,iframe:true, innerWidth:700, innerHeight:500, opacity:0.5});
			return false;
			
		});
		
		


			
			if(article_select=="menu_2")
			{		
				
				$("#cadre_contenu_article").hide();
				$("#col_gauche").hide();
				$("#col_droite").hide();
				
				
				
					$("#cadre_contenu_article").show(effect,1500,function() {
						
						
						//$("#col_droite").show(effect,1500);
						
					});
					
					if(effect!="")
					{
					$("#col_gauche").delay("800").fadeIn(1000);
					$("#col_droite").delay("800").fadeIn(1000);
					//$("#col_gauche").delay("100").show(effect,500);
					}
					
					if(effect=="")
					{
					$("#col_gauche").show();
					$("#col_droite").show();
					}
				
				
			}
			
		
		
		//$(".cadre_contenu_article").show("fold",2000);
		
		
		//$(".cadre_contenu_article").show("fold");
		



		//GESTION DU MENU DEROULANT : 
		var deroul="";
		var block=false;
		var fixe="non";
		//alert(($("#sous_menudd").attr("id"))==undefined );

		$(".lien_menu").bind("mouseenter", function(e){
		
			
			if( (deroul!=""&&deroul!=$(this).attr("id"))&&fixe!=deroul  )
			{
				$("#on_"+deroul).fadeOut("slow");
			}
			
			if(block==false && $("#on_"+$(this).attr("id"))!=undefined)
			{
				
				$("#on_"+$(this).attr("id")).fadeIn("slow");
				deroul=$(this).attr("id");
			}
			else
				deroul=""
			
		});
		$("#content").bind("mouseenter", function(e){
			
			if( (deroul!=""&&deroul!=$(this).attr("id")))
			{
				$("#on_"+deroul).fadeOut("slow");
				deroul=""
			}
		
		});


			
var article_ajax=false;
var back=true;

var section_change=false;

$(".lien_liste_article").live("click", function(e){
	
	
	
	
	if(article_select=="no_ajax"||ajax==false)
		return true;
	
	var tmp=($(this).attr("id")).split("_");
	var url=$(this).attr("href")+"---ajax=article";
	
	new_article_select="menu_"+tmp[1];
	if(new_article_select!="menu_2")
	{
		fixe=new_article_select;
		block=false;
		deroul="";
		$("#on_"+new_article_select).show();
		//$("#"+new_article_select).hide();
	}
	
	
	//if(!jQuery.support.hrefNormalized)
	//	url=utf8_encode(url);
	
	if(article_select=="menu_"+tmp[1])
		return false;
	
	var hash = url.replace(/^.*#/, '');
	hash=hash.replace("http://"+server_name,"");
	
	back=false;
	$.historyLoad(hash);
	//url=url.replace("---","?");
	//getAjaxArticleArea(url,effect);
	
	return false;
	
	

});


$("a.lien_article").live("click", function(e){
	
	
	
	if(article_select=="no_ajax"||ajax==false)
		return true;
	var url=$(this).attr("href")+"---ajax=articleenfant";
	
	var hash = url.replace(/^.*#/, '');
	hash=hash.replace("http://"+server_name,"");
	back=false;
	$.historyLoad(hash);
	
	return false;

});




function getAjaxArticleArea(url,effect)
{
	//alert(url);
$.ajax({
  			type: "GET",
  			url: url,
  			dataType: "json",
  			cache: false,
  			success: function(json){
  				
				
				var exp= new RegExp("ajax=([a-z]*)");
				var param = exp.exec(url);
				
				
				
			
				var new_article_select=json['article_select'];
				
				document.title=json['title'];
				if(effect!="")
				{
					last_select=article_select;
					if(last_select=="menu_2")
						$(".acc").hide();
					else
					{	
						$("#on_"+last_select).fadeOut();
						$("#"+last_select).show();
					}
					new_article_select="menu_"+new_article_select
					
					
					
					$("#cadre_contenu_article").hide(effect,500, function() {

						if(last_select=="menu_2")
						{
						$(".acc").hide();
						$("#centre").addClass("content_centre");
						$("#centre").removeClass("acc_centre");
						}
						
						$("#cadre_contenu_article").html(json['article']);
						
					});
				}
				else
					$("#cadre_contenu_article").html(json['article']);
					
				
				
				$("#cadre_contenu_article").delay("100").show(effect,500);			
				
			
				article_select=new_article_select;
				
				back=true;
				},
			complete: function(json){
  				//section_change=false;
							
  				},
  			error: function(json){
  				var exp= new RegExp("ajax=([a-z]*)");
				var param = exp.exec(url);
				//alert(url);
				document.location.href=url.replace(param[0],"");
  				}});
}

function pageload(hash) {
		
	//alert("pageload: " + hash);
		// hash doesn't contain the first # character.
		if(hash) {
			// restore ajax loaded state
			
			if($.browser.msie) {
				// jquery's $.load() function does't work when hash include special characters like aao.
				hash = encodeURIComponent(hash);
			}
			
			
			hash=hash.replace("---","?");
			hash=hash.replace(/%2F/g,"/");
			hash=hash.replace("%3D","=");
			//alert(back);
			if(back)
				hash=hash.replace("ajax=article","ajax=article");
			getAjaxArticleArea(hash,effect)
		} else {
			//alert(document.location.href);
			var test=document.location.href;
			test=test.replace("#","");
			//alert(test);
			document.location.href=test;
		}
	}











// Verification des formulaires

$('.ro').each (function (){if( this.value!="") $(this).addClass('rok'); });
$('.so').each (function (){ if( this.value!="0") $(this).addClass('sok'); });
$('.mail').each (function (){ if(!verifemail(this.value)) $(this).removeClass('rok'); });
$('.int').each (function (){ if(isNaN(this.value) )  $(this).removeClass('rok'); });

$(".ro").change( function(e) { 
		
		if($(this).val()!="")
		{
			$(this).addClass("rok");
		}
		if($(this).val()=="")
		{
			$(this).removeClass("rok");
		}
	 } );

$(".mail").change( function(e) { 
		//alert($(this).val());
		if (!verifemail($(this).val()))
  			$(this).removeClass("rok");
		
	 } );
$(".int").change( function(e) { 
		//alert($(this).val());
		if(isNaN($(this).val()) ) 
  			$(this).removeClass("rok");
		
	 } );
$(".so").change( function(e) { 
		//alert($(this).val());
		
		
		if($(this).val()!=0)
		{
			$(this).addClass("sok");
		}
		if($(this).val()==0)
		{
			$(this).removeClass("sok");
		}
	 } );




});





//FORMULAIRE VERIF 

var valide=true;
var message="";
var sub=false;

function verif_valide()
{
	
	if (!valide)
	{
		alert(message);
		valide=true;
		return false;	
	}
	else if(sub)
	{
		sub=false;
		return true;
	}
}

//VALIDATION DU FORMULAIRE
function form_valide()
{
	sub=true;
	message="Attention, certaines informations saisies sont manquantes ou incorrectes : ";
	var err=0;
	$('.so').each (function (){ if( this.value==0){ err++}; });
	if(err>0)
	{
	valide=false;sub=false;
	message=message+"\n\n   - Des listes déroulantes obligatoires n'ont pas été sélectionnées. Elles sont indiquées par un fond rouge.";
	}
	var err=0;
	$('.ro').each (function (){ if( this.value=="") err++;  });
	if(err>0)
	{
		valide=false; sub=false;
		message=message+"\n\n   - Des champs obligatoires n'ont pas été renseignés. Ils sont indiqués par un fond rouge.";
	}
	var err=0;
	$('.mail').each (function (){ if(!verifemail(this.value)) err++; });
	if(err>0)
	{
		valide=false; sub=false;
		message=message+"\n\n   - L'addresse e-mail saisie, n'est saisie n'est pas valide.";
	}
	var err=0;
	$('.int').each (function (){ if(isNaN(this.value)) err++; });
	if(err>0)
	{
		valide=false; sub=false;
		message=message+"\n\n   - Le code postal, saisie n'est pas valide. Il doit être uniquement composé de chiffre.";
	}
	message=message+"\n\n\n Pour valider ce formulaire, vous devez corriger le(s) probléme(s) ci-dessus.";	
}

function verifemail(champ)
{
	if((champ.indexOf("@") != "-1" &&
   			champ.indexOf(".") != "-1" &&
  			champ != ""))
  		return true
  	else
  		return false;
}

 
