/* VILLE DE LA ROCHELLE */
/* PUBLICIS MODEM 2008 */

/* Many blocs floating, all same height! */

function sameHeight(myElements){
	var heightBlockMax=0;
	// get max height
	jQuery(myElements).each(function(){ if( jQuery(this).height() > heightBlockMax ) heightBlockMax = jQuery(this).height(); }); 
	// assign max height
	
	jQuery(myElements).each(function(){ jQuery(this).css({ minHeight:heightBlockMax+"px", height:heightBlockMax+"px" }); });
	heightBlockMax=0;
}




function textSize(elt,minusButton,plusButton) {
	/*
	Change the "font-size" of an element which has the class="textSize"
	*/
	// Available sizes : 
	var size0 = "textNormal";
	var size1 = "textBig";
	var size2 = "textBigger";
	
	var txt = jQuery(elt);
	
	if (txt.size() > 0 ) {
		jQuery(minusButton).click(function(){
			if (jQuery(elt).hasClass(size1)) {
				jQuery(elt).removeClass(size1).addClass(size0);
			} else if (jQuery(elt).hasClass(size2)) {
				jQuery(elt).removeClass(size2).addClass(size1);
			}
			return false;
		});
		
		jQuery(plusButton).click(function(){
			if (jQuery(elt).hasClass(size0)) {
				jQuery(elt).removeClass(size0).addClass(size1);
			} else if (jQuery(elt).hasClass(size1)) {
				jQuery(elt).removeClass(size1).addClass(size2);
			} else if (jQuery(elt).hasClass(size2)){
			} else {
				jQuery(elt).addClass(size1);
			}
			return false;
		});
	}
}


function bindLoginForm()
{
	jQuery('.showLoginForm').click(function() {
	    	//bind du thickbox
		tb_show(null, jQuery(this).attr('href'), false);
			
		return false;
	}
	)
	
	
}








/* COMMON - SHOW/HIDE FUNCTION*/
jQuery.fn.showHide = function(eltToShowHide) {		
	jQuery(this).click(function(){			
		jQuery(eltToShowHide).toggle();
	});
};


/* SITE MAP TOGGLE PANEL FUNCTION */
jQuery.fn.togglePanel = function() {		
	jQuery(this).click(function(){			
		if (jQuery(this).parent("li:has(ul)")) {
			jQuery(this).parent("li").children("ul").slideToggle();
			jQuery(this).toggleClass("on");
		}
		return false;
	});
};


var oldValue = "";
var text1Hover = "Tapez un service ou autre mot clé";
var text2Hover = "Tapez le nom de votre élu";
var text3Hover = "Tapez une association ou autre mot clé";


jQuery(document).ready(function() {
	/* COMMON - SWAP INPUT VALUES */
	/* 
	   How to use it?
	   In the HTML document, you just need to add this class : 
	   <input class="swapValue" value="value to swap on focus-blur" /> 
	 */
	swapValues = [];
	var inputValue = "";

	jQuery(".swapValue, .swapValues").each(function(i){
		swapValues[i] = jQuery(this).val();
		jQuery(this).focus(function(){
			if (jQuery(this).val() == swapValues[i]) {
				jQuery(this).val("");
			}
		}).blur(function(){
			if ($.trim(jQuery(this).val()) == "") {
				jQuery(this).val(swapValues[i]);
			}
		});
	});
	
	
	/* show/hide options layer */
	jQuery("a#showHidePanel").click(function(){
		jQuery(this).toggleClass("on");
		jQuery("#formPanel, #tx_indexedsearch").slideToggle();
	});
	
	/* SITE MAP only */
	jQuery(".siteMap>li>a").togglePanel();
	jQuery(".siteMap:last").addClass("last");
	
	/* COMMON - Languages - no bg on the first button */
	jQuery("#languages ul li:first").addClass("first");
	
	/* COMMON - Main Footer - no bg on the first button */
	jQuery("#mainFooter ul li:first").addClass("first");
	
	/* HOME ONLY */
	jQuery(".miniFeed:first").addClass("first");
	
	/* RECHERCHE ONLY */
	jQuery(".documents dd:first").addClass("first");
	
	/* TEMPLATE 1 ONLY */
	jQuery("#leftNav ul li ul li a:last").addClass("last");
	
	/* COMMON - EVENTS */
	if (!jQuery(".events").hasClass("noLast")) {
		jQuery(".events .event:last").addClass("last");
	}
	
	/* COMMON - MINI BLOCKS 2 */
	jQuery(".miniBlock2:last").addClass("last");
	
	
	/* COMMON - Languages - Fix ie6 (ul width was 100%) */
	jQuery("#languages").width(jQuery("#languages ul").get(0).offsetWidth);
	
	/* COMMON - Main Nav - Vertical centering for all buttons (one or two lines of text content) */
	jQuery("#mainNav ul li a span").each(function(){
		if(jQuery(this).height()>15) 	jQuery(this).parent("a").addClass("twoLines");
	});
	
	/* COMMON - jQuery tabs  */
	if(jQuery('.uiTabs2 ul').size()>0) {
		jQuery('.uiTabs2 ul').tabs();
	}
	
	/*AGENDA TABS IN RIGHT COLUMN */
	if (jQuery("#panel1, #panel2, #panel3").size()>0){
		jQuery("#panel1").show();
		jQuery("#panel2, #panel3").hide();
	}
	jQuery('#agendaTabs #btSchedule a').click(function(){
		jQuery('#agendaTabs #btSchedule').addClass('ui-tabs-selected');
		jQuery('#agendaTabs #btAboutYou, #agendaTabs #btForecast').removeClass('ui-tabs-selected');
		jQuery("#panel1").show();
		jQuery("#panel3, #panel2").hide();
		return false;
	});
	jQuery('#agendaTabs #btForecast a').click(function(){
		jQuery('#agendaTabs #btForecast').addClass('ui-tabs-selected');
		jQuery('#agendaTabs #btAboutYou, #agendaTabs #btSchedule').removeClass('ui-tabs-selected');
		jQuery("#panel2").show();
		jQuery("#panel1, #panel3").hide();
		return false;
	});
	jQuery('#agendaTabs #btAboutYou a').click(function(){
		jQuery('#agendaTabs #btSchedule, #agendaTabs #btForecast').removeClass('ui-tabs-selected');
		jQuery('#agendaTabs #btAboutYou').addClass('ui-tabs-selected');
		jQuery("#panel1, #panel2").hide();
		jQuery("#panel3").show();
		return false;
	});
	
	
	bindLoginForm();
	
	
	
	/* COMMON - Right and Left Columns same height */
	sameHeight("#rightCol .content, #leftCol .content");
	
	var buttonsTools = jQuery('#buttonsTools');
	if (buttonsTools.size() > 0) {
		var printLink = jQuery("<a>Imprimer cette page</a>").attr("href","#").addClass("btPrint").click(function(){ window.print(); return false; });
		var monLi = jQuery("<li></li>");
		jQuery(monLi).append(printLink);
		jQuery(buttonsTools).append(monLi);
	}
	
	/* CHANGE FONT SIZE */
	initTextSize = textSize("#leftCol",".btFontMinus",".btFontPlus");
	
	/* FAKE TABS */
	if (jQuery("#fakeTabs").size() > 0) {
		jQuery("#fakeTabs .tab1 a").click(function(){
			jQuery("#fakeTabs .tab1 a").addClass("active");
			jQuery("#fakeTabs .tab2 a").removeClass("active");
			jQuery("#formThema").show();
			jQuery("#formKeyWord").hide();
		});
		jQuery("#fakeTabs .tab2 a").click(function(){
			jQuery("#fakeTabs .tab1 a").removeClass("active");
			jQuery("#fakeTabs .tab2 a").addClass("active");
			jQuery("#formThema").hide();
			jQuery("#formKeyWord").show();
		});
	}
	
	jQuery('input[type="text"]').focus(function() {
		if (this.value == text1Hover || this.value == text2Hover || this.value == text3Hover){
			oldValue = this.value;
			this.value = '';
		}
 	});
	
	jQuery('input[type="text"]').blur(function() {
		if (jQuery.trim(this.value) == '' && (oldValue == text1Hover || oldValue == text2Hover || oldValue == text3Hover)){
			this.value = (this.defaultValue ? this.defaultValue : '');
		}
	}); 

	formSubmit();

});

/* end */


/*  =FORM CHECK ON SUBMIT
----------------------------------------------------------------------------- */
var formSubmit = function(){
	
	jQuery('form').submit(function(){
		
		var hasError = false;
		var myAction = jQuery(this).attr('action');
		var myId = jQuery(this).attr('id');
		
		jQuery('p').removeClass('error');
					
		
		// text inputs
	
		jQuery('#'+myId+' .required').each(function(i){
			
			
			var myVal = jQuery(this).val();
			
			myVal = jQuery.trim(myVal);
			//take the id of every element
			
			//
			if ((myVal == '')||(myVal == jQuery(this).attr('title'))){
				
				jQuery(this).parent('p').addClass('error');
				hasError = true;
				
			}
			
			// email
			
			else if(jQuery(this).hasClass('requiredEmail')){
				
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				
				if (!emailReg.test(myVal)){ 
					
					jQuery(this).parent('p').addClass('error'); 
					hasError = true;
					
				}
			}
			
			// emails collection
			
			else if(jQuery(this).hasClass('requiredEmailCollection')){
				
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				var myValCollection = myVal.split(',');
				
				for (x in myValCollection){
					
					myValCollection[x] = myValCollection[x].replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/^\n+/g,'').replace(/\n+$/g,'');	// clean spaces

					if (!emailReg.test(myValCollection[x])){ 
					
						jQuery(this).parent('p').addClass('error'); 
						hasError = true;
						
					}		
				}
			}
			
			// format date
			
			else if(jQuery(this).hasClass('requiredDate')){
				
				var dateReg = /^\d\d\/\d\d\/\d\d\d\d$/;
				
				if (!dateReg.test(myVal)){ 
					
					jQuery(this).parent('p').addClass('error'); 
					hasError = true;
					
				}
			}
		});
		
		// radio buttons
		
		var myRadioCollection = [];
		
		jQuery('.requiredRadio').each(function(i){
			
			var marked = false;
			
			for (j=0; j<=myRadioCollection.length; j++){
				
				if (myRadioCollection[j] == jQuery(this).attr('name')) marked = true;
				
			}
			
			if (marked == false) myRadioCollection.push(jQuery(this).attr('name'));

		});
		
		for (j=0; j<=myRadioCollection.length; j++){
			
			var checked = false;
			
			jQuery('.requiredRadio[name='+myRadioCollection[j]+']').each(function(j){
				
				if (jQuery(this).attr('checked') == true) checked = true;
				
			});
			
			if (checked == false) jQuery('.requiredRadio[name='+myRadioCollection[j]+']').parent().parent('p').addClass('error');
			
		}
		
		// checkboxes
		
		jQuery('.requiredCheck').each(function(i){
			
			if (jQuery(this).attr('checked') == false) jQuery(this).parent('p').addClass('error');
			
		});
				
		if (hasError) {
			
			jQuery('#'+myId+' #responseArea').fadeIn();
			jQuery('#'+myId+' #responseArea2').fadeIn();
			return false;
		}
		
		else{
			
			// submit - put ajax stuff here if needed
			
			// for the forms inside a popin
			if (myId == 'insidePopinForm'){
				popin1.openPopin(myAction)
			}
		}
	});
}
