/* replaceSelect 

Company : Vente-privee.com
Project : VP4 (Front)

Version : V 1.1
Date : 06 01 2009
Author : Gilles Manzato

*/


// <![CDATA[

	
	function getElementsByClassName(className, tag, elm){
		var testClass = new RegExp("(^|s)" + className + "(s|$)");
		var tag = tag || "*";
		var elm = elm || document;
		var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
		var returnElements = [];
		var current;
		var length = elements.length;
		for(var i=0; i<length; i++){
			current = elements[i ];
			if(testClass.test(current.className)){
				returnElements.push(current);
			}
		}
		return returnElements;
	}
    function selectReplacement(obj) {
      obj.className += ' replaced';
      var ul = document.createElement('ul');
      ul.className = 'selectReplacement';
	  var replaceDollard = obj.id;
	  replaceDollard = replaceDollard.replace(/\$/g, '_') + 'replaced'; 
	  ul.id = replaceDollard;
      var opts = obj.options;
	  var test = document.createElement('li');
	  test.className = 'selectedFirst' ;
	  	  var blabla = document.createTextNode(opts[0].text);
		  test.appendChild(blabla);
		  test.selIndex = opts[0].index;
		  test.selectID = obj.id;
		  test.onclick = function() {
			  		selectMe(this);
			  		obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
			  }
		  ul.appendChild(test);	  
      for (var i=0; i<opts.length; i++) {
        var selectedOpt;
        if (opts[i].selected) {
          selectedOpt = i;
          break;
        } else {
          selectedOpt = 0;
        }
      }		
	  
	  var lengthText = 0;  
      for (var i=0; i<opts.length; i++) {
        var li = document.createElement('li');
		
		if (lengthText < opts[i].text.length) {lengthText = opts[i].text.length;}
		
        var txt = document.createTextNode(opts[i].text);
        li.appendChild(txt);
        li.selIndex = opts[i].index;
        li.selectID = obj.id;
        li.onclick = function() {
          selectMe(this);
        }
        if (i == selectedOpt) {
          li.className = 'selected';
          li.onclick = function() {
            this.parentNode.className += ' selectOpen';
			ul.firstChild.nextSibling.style.borderTop = "#7F9DB9 1px solid";

            this.onclick = function() {
              selectMe(this);
            }
          }
        }
        if (window.attachEvent) {
          li.onmouseover = function() {
            this.className += ' hover';
          }
          li.onmouseout = function() {
            this.className = 
              this.className.replace(new RegExp(" hover\\b"), '');
          }
        }
        ul.appendChild(li);
      }
		lengthText = lengthText*6.5;
		if(lengthText < '207') { lengthText = '207'	}
		obj.parentNode.insertBefore(ul,obj);
	 	var new_rule;
		var new_rule2;
		var nom = "ul#"+ul.id+".selectOpen li";
		var nom2 = "ul#"+ul.id+".selectOpen li.hover";
		var prop =  "width:"+lengthText+"px";
		var prop2 =  "width:"+lengthText+"px!important";
   		new_rule = styleSheet.addRule(nom,prop, 1);
		new_rule2 = styleSheet.addRule(nom2,prop2, 1);
    }
    function selectMe(obj) {

		if((obj.className == "selected"||obj.className == "selected hover") && obj.parentNode.className == "selectReplacement") {
			obj.parentNode.className += ' selectOpen';
			obj.onclick = function() {
				selectMe(this);
				}
			}
		else if(obj.className == "selectedFirst" && obj.parentNode.className == "selectReplacement selectOpen") {
			obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
			obj.onclick = function() {
				selectMe(this);
				}
			}
		else {
		  var lis = obj.parentNode.getElementsByTagName('li');
		  for (var i=0; i<lis.length; i++) {
			if(lis[i].className == "selectedFirst") {
				}
			else {
				if (lis[i] != obj) {
				  lis[i].className='';
				  lis[i].onclick = function() {
					selectMe(this);
					}
				}
				else {
						setVal(obj.selectID, obj.selIndex);
						obj.className='selected';
						
						
						obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
						obj.parentNode.firstChild.innerText = obj.innerText;
						obj.parentNode.firstChild.onclick = function() {
							obj.parentNode.className = obj.parentNode.className.replace(new RegExp(" selectOpen\\b"), '');
						}
						obj.onclick = function() {
							obj.parentNode.className += ' selectOpen';
							
							this.onclick = function() {
								selectMe(this);
							}
						}
				}
			}
		  }
		}
    }
    function setVal(objID, selIndex) {
		var selectID = $('.replaceSelect#'+objID+"> *");
      	var obj = document.getElementById(objID);
      	obj.selectedIndex = selIndex;
		selectID.attr('selected','false');
		var changer = selectID[selIndex].parentNode;
	  	selectID[selIndex].selected = true;
		changer.fireEvent("onchange");
    }
    function setForm() {
		styleSheet = document.createStyleSheet();
		document.body.attachEvent('onclick',send);
		function send(event) {
			
			if(event.srcElement.parentNode.className != "selectReplacement selectOpen"){
				for (var i=0 ; i<s.length ; i++){
						//alert(s[i].previousSibling.className);
						//alert(s[i].previousSibling.className);
						if (s[i].previousSibling.className != "selectReplacement"  ) {
							//alert('ouvert');
							s[i].previousSibling.className = s[i].previousSibling.className.replace(new RegExp(" selectOpen\\b"), '');
						}
					}
				}
			}
      var s=getElementsByClassName('replaceSelect');
      for (var i=0; i<s.length; i++) {
		if(!s[i].disabled){
        	selectReplacement(s[i]);
		}
      }
    }
    window.onload = function() {
		var IE6 = false;
		var strChUserAgent = navigator.userAgent;
		var intSplitStart = strChUserAgent.indexOf("(",0);
		var intSplitEnd = strChUserAgent.indexOf(")",0);
		var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
		
		if(strChMid.indexOf("MSIE 6") != -1) (document.all && !window.print) ? null : setForm();
		if(strChMid.indexOf("MSIE 7") != -1) (document.all && !window.print) ? null : setForm();

    }
    // ]]>


