// ArtSelect v1
// Basé sur Niceforms de Lucian Slatineanu (http://www.badboy.ro/)

var ArtSelect = new Class({
	initialize: function(id){
		if($chk($(id)))
		{
			this.id = id;
			this.select = $(this.id);
			this.createHTML();
		}
	},
	createHTML: function(){
		var oArtSelect = this;
		// Creation de la selection de la liste de choix
		var left = new Element('div', { 'class':'left' }); 
		var right = new Element('div', { 'class':'right' }); 
		var center = new Element('div', { 'class':'center', 'id':'ArtSelectText'+this.id }); 
		center.setText(this.select.options[this.select.selectedIndex].text);
		var selectArea = new Element('div', { 
			'id':'ArtSelect'+this.id,
			'events':{
				'click':function(evt){
					oArtSelect.showOptions(this.id+"Options");
				}
			},
			'class':'ArtSelect',
			'styles':{
				'width':$(this.id).getSize().size.x
			}
		}); 
		left.injectInside(selectArea);
		right.injectInside(selectArea);
		center.injectInside(selectArea);
		
		// On masque la liste existante
		this.select.setStyle("display","none");

		// Construction de la liste de choix
		var optionsDiv = new Element('div', { 
			'class':'ArtSelect_VisibleFalse', 
			'id':'ArtSelect'+this.id+'Options'
		}); 
		
		// Ajout des options de la liste de choix
		for(var i=0; i < this.select.options.length; i++)
		{
			var optionHolder = new Element('p');
			var optionIndex = i;
			if (i%2 == 0)
			{
				var optionLink = new Element('a', {
					'href':'#',
					'events':{
						'click':function(){
							oArtSelect.selectOption(this);
							oArtSelect.onchange();
						}
					},
					'class':'ArtSelectOption1',
					'rel':optionIndex
				});
			}
			else
			{
				var optionLink = new Element('a', {
					'href':'#',
					'events':{
						'click':function(){
							oArtSelect.selectOption(this);
							oArtSelect.onchange();
						}
					},
					'class':'ArtSelectOption2',
					'rel':optionIndex
				});
			
			}
			
			optionLink.setText(this.select.options[i].text);
			optionLink.injectInside(optionHolder);
			optionHolder.injectInside(optionsDiv);
		}
		
		optionsDiv.injectInside(selectArea);
		selectArea.injectBefore(this.select);
	},
	showOptions: function(optionsId) {
		var options = $(optionsId);
		options.setStyle("width",$('ArtSelectText'+this.id).getStyle('width'));
		options.toggleClass("ArtSelect_VisibleFalse");
		options.toggleClass("ArtSelect_VisibleTrue");
	},
	selectOption:function(linkNo) {
		selectField = this.select;
		linkNo = linkNo.rel;
		for(var k = 0; k < selectField.options.length; k++) 
		{
			if(k==linkNo) 
				selectField.options[k].selected = "selected";
			else 
				selectField.options[k].selected = "";
		}
		// Affiche l'intitule de l'option selectionnee
		$("ArtSelectText"+this.id).setText(this.select.options[linkNo].text);
	},
	onchange: function(){
		// On recupere l'action onchange sur le select
		var str = this.select.onchange.toString();
		str = str.substring(str.indexOf("{",0)+1, str.indexOf("}",0));
		str = str.substring(str.indexOf(":",0)+1, str.length);
		var regexp = new RegExp("this");
		while(regexp.test(str))
			str = str.replace(regexp, "document.getElementById('"+this.id+"')");
		eval(str);
	}
});