/*
Script: form.js
		
License:
        MIT-style license.

About:
		lastelement.js for mootools framework <http://www.mootools.net/> (c) 2007 Valerio Proietti, MIT-style license.
		Class created by Sylvain Barraud, Yvan Cottet and Gregory Paccaud, <http://www.esl.ch/>.
		Last modification, 14 december 2007.

Version: 1.0

Note:
		XHTML doctype is required.
		
*/

/*
Class: LastElement
		
Arguments:

		element		A dom element
		nb_element	A numeric

Example:

		(start code)
		myZebra = new Zebra({
			'list' : $$('#menu a'),
			'class' : 'zebred',
			'onfirst' : true
		});
		(end)
		
Note:
		Don't forget to insert "<script language="Javascript" type="text/javascript" src="js/mootools.js"></script>" into the head page before this js file.
*/
var Form = new Class({

	options: {
		'elements': $$('.others li'),
		'nb_element': 3
	},
	
	initialize : function(options) {
		this.setOptions(options);
		this.parseForm();
	},
	
	// -----------------------------------------------------------------
	parseForm : function() {
		
		/* CORRECTION IE6 */
        if(typeof document.body.style.maxHeight == "undefined"){
        	$$('input[type=text]').each(function(input){
            	input.addClass('typetext');
            });
        }
		
		this.tabSlider = new Array();
		$$('.selectbox').each(function(selectbox){
			var option = $E('.options',selectbox);
			var lists = $ES('li',option);
			var input = $E('.select',selectbox);
			var toggler = $E('.toggler',selectbox);
			var indicator = $E('.indicator',selectbox);
			var mySlider = new Fx.Slide(option,{duration: 500}).hide();
			this.tabSlider.push(mySlider);
			var crt;
			var reopen = false;
			
			/* OPTION DU SELECT (UL)*/
			option.getParent().setStyles({
				'position':'absolute',
				'top':input.getCoordinates().bottom-2,
				'left':input.getCoordinates().left+2
			});
			
			//CORRECTION POUR IE6 
			if(typeof document.body.style.maxHeight == "undefined"){
				option.getParent().setStyle('left',input.getCoordinates().left+33);
			}
			
			
			/* CHAMP CACHE POUR LA VALEUR DU SELECT */
			var hidefld = new Element('input',{
				'name':selectbox.getProperty('id'),
				'type':'hidden',
				'value':'',
				'class':"validate['required']"
			}).injectInside(selectbox);
			
			
			/* OPTIONS  DU SELECT (LI) */
			lists.each(function(list){
			
				list.addEvent('click',function(){
					input.setText(list.getText());
					list.addClass('selected');
					if(!crt){
						indicator.setStyle('visibility','hidden');	
					}
					crt = list;
					hidefld.value = crt.getText();
					mySlider.toggle();
					reopen = false;
				});
			
				list.addEvent('mouseover',function(){
					if(crt && reopen){
						crt.removeClass('selected');
					}
					list.addClass('over');	   
				});
			
				list.addEvent('mouseout',function(){
					list.removeClass('over');
				});
			});
			
			toggler.addEvent('click',function(){
				if($E('.options').getParent().getStyle('height')=='0px') {
					reopen = true;
					if(crt){
						crt.addClass('selected');
					}
				}
				mySlider.toggle();									 
			});
			
			input.cloneEvents(toggler,'click');
			
		}.bind(this));
		
		
		$E('body').addEvent('click',function(){
			this.tabSlider.each(function(slider){
				if(slider.wrapper.getStyle('height')!='0px')
					slider.toggle();
			});							   
		}.bind(this));
		
		$('btn').addEvent('mouseover', function(){
			$('btn').setProperty('src','../img/form/btn_over.jpg');
		});
		
		$('btn').addEvent('mouseout', function(){
			$('btn').setProperty('src','../img/form/btn.jpg');
		});
			
	}
});

Form.implement(new Options);

window.addEvent('domready',function() {
	new Form();
});

