
$(document).ready(function(){
	/* This code is executed after the DOM has been completely loaded */
	
	jQuery.fn.exists = function(){return jQuery(this).length>0;}


	// rounded corners
	//$('.module .header').corner("top");
	//$('.module .footer').corner("bottom");
	$('.table-heading1').corner("top");
	
	
	
	/* ******  VALIDATION formulaire register ******************************************/
	// Creation of LiveValidation Objects  
	
	// First test if form exist (if we are on the right page)
	// or else "new LiveValidation('form element that doesn't exist')" ==> error . and the rest of the javascript is not loaded
	if ( $('#form_firstname').exists() ){
		var firstname = new LiveValidation('form_firstname', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		firstname.add( Validate.Presence, { failureMessage: "*" });
		firstname.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var lastname = new LiveValidation('form_lastname', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		lastname.add( Validate.Presence, { failureMessage: "*" });
		lastname.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var company = new LiveValidation('form_company', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		company.add( Validate.Presence, { failureMessage: "*" });
		company.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var address = new LiveValidation('form_address', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		address.add( Validate.Presence, { failureMessage: "*" });
		address.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var city = new LiveValidation('form_city', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		city.add( Validate.Presence, { failureMessage: "*" });
		city.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var country = new LiveValidation('form_country', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		country.add( Validate.Presence, { failureMessage: "*" });
		country.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var phone = new LiveValidation('form_phone', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		phone.add( Validate.Presence, { failureMessage: "*" });
		phone.add( Validate.Length, { minimum: 2, maximum: 40, tooShortMessage: "*", tooLongMessage: "*" } );
		
		var email = new LiveValidation('form_email', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		email.add(Validate.Presence, { failureMessage: "*" });
		email.add( Validate.Email, { failureMessage: "not a valid email address" });
		
		var message = new LiveValidation('form_message', { onlyOnBlur: true, validMessage: " ", onValid: function(){ this.insertMessageWithImage( this.createMessageSpan() ); this.addFieldClass(); } });
		message.add( Validate.Presence, { failureMessage: "*" });
		message.add( Validate.Length, { minimum: 2, maximum: 4000, tooShortMessage: "*", tooLongMessage: "*" } );
	}
	
	
	
	
	
	//Examples of how to assign the ColorBox event to elements
		//si on veut cibler sur le rel ( le rel est utiliser pour grouper les images dans le slideshow )
		//$("a[rel='lightbox']").colorbox({opacity:0.70});
		// a la place, j'utilise une classe, pour pouvoir garder le rel ( et le groupe d'image ) et en meme
		// temps, pourvoir forcer des tailles d'images differentes quand necessaire pour que le title
		// n'empiete pas dasn le cas d'images trop etroites
		$("a.lightbox").colorbox({opacity:0.70});
		$("a.lightbox-500px").colorbox({opacity:0.70, width:"500px"});
		$("a.lightbox-600px").colorbox({opacity:0.70, width:"600px"});
		//$("a[rel='example2']").colorbox({transition:"fade"});
		//$("a[rel='example3']").colorbox({transition:"none", width:"75%", height:"75%"});
		//$("a[rel='example4']").colorbox({slideshow:true});
		//$(".example5").colorbox();
		//$(".example6").colorbox({iframe:true, innerWidth:425, innerHeight:344});
		//$(".example7").colorbox({width:"80%", height:"80%", iframe:true});
		//$(".example8").colorbox({width:"50%", inline:true, href:"#inline_example1"});
		/*$(".example9").colorbox({
			onOpen:function(){ alert('onOpen: colorbox is about to open'); },
			onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); },
			onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); },
			onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); },
			onClosed:function(){ alert('onClosed: colorbox has completely closed'); } 
		});*/
	
	// sub-menu
	
	$('#sub-menu .plusminus').click(function(e){
		
		var src = $(this).children('img').attr("src");
	
		if ( src.indexOf('plus') != -1 ){  // on ouvre la sublist clique
		
			//alert('pass plus');
				
			// ferme les autres sublists et change le minus en plus
			// ca bugge - et ce n'est pas dans le site d'origine
			/*var litoclose = $(this).parent().siblings().filter(".expanded");
			if ( litoclose ) {
				litoclose.removeClass('expanded').addClass('expandable');
				var a = litoclose.children('.plusminus');
				var src = a.children('img').attr("src").replace("minus", "plus");
				a.children('img').attr("src", src);
			}*/
			
			// ouvre cette sublist et change le plus en minus
			var litoopen = $(this).parent();
			litoopen.removeClass('expandable').addClass('expanded');
			var src = $(this).children('img').attr("src").replace("plus", "minus");
			$(this).children('img').attr("src", src);
			
		}else if ( src.indexOf('minus') != -1 ) {   // on ferme la sublist clique
			
			//alert('pass minus');
			// ferme la sublist et change le minus en plus
			var litoclose = $(this).parent();
			litoclose.removeClass('expanded').addClass('expandable');
			var src = $(this).children('img').attr("src").replace("minus", "plus");
			$(this).children('img').attr("src", src);
			
		}

		e.preventDefault();
			/* Prevent the default action of the link */
	});	
	
	
	// customer benefits
	
	
	

	$('h4.benefits a').toggle(
		  function () {
			$(this).parent().next("p").show('fast');
			$(this).removeClass('arrow').addClass('arrow-up');	
		  },
		  function () {
			$(this).parent().next("p").hide('fast');
			$(this).removeClass('arrow-up').addClass('arrow');
		  }
	);
	
	$('a.f3-types').toggle(
		  function () {
			$("a.f3-types.deplie").removeClass('deplie').addClass('replie').text('see the details');
			$("div.f3-types.deplie").hide('slow').removeClass('deplie').addClass('replie');
			$(this).addClass('deplie').removeClass('replie').text('hide the details');
			$(this).parent().next("div.f3-types").show('slow').addClass('deplie').removeClass('replie');
			$(this).removeClass('arrow-down').addClass('arrow-up');
				
		  },
		  function () {
			$("a.f3-types.deplie").removeClass('deplie').addClass('replie').text('see the details');
			$("div.f3-types.deplie").hide('slow').removeClass('deplie').addClass('replie');
			$(this).removeClass('arrow-up').addClass('arrow-down');
		  }
	);
	
	
	
	
});

