var listeFamilles = {
  myConn:      false,
  body:        false,
  control:     false,
  target:      false,
  loader:      false,
  init:        function( controlId, sbmtBtnId, targetId ){
    if( !document.getElementById ||
        !document.getElementsByTagName ||
        !document.getElementById( controlId ) ||
        !document.getElementById( sbmtBtnId )  ||
        !document.getElementById( targetId ) ) return;
    listeFamilles.myConn = new XHConn();
    if( !listeFamilles.myConn ) return;
    listeFamilles.body    = document.getElementsByTagName( 'body' )[0];
    listeFamilles.control = document.getElementById( controlId );
    var sbmtBtn = document.getElementById( sbmtBtnId );
    sbmtBtn.parentNode.removeChild( sbmtBtn );
    listeFamilles.target  = document.getElementById( targetId );
    listeFamilles.addEvent( listeFamilles.control,
                          'change',
                          function(){
                            if( this.value != '' ){
                              listeFamilles.getAddress( this.value );
                            } else {
								while(listeFamilles.target.hasChildNodes()){
								listeFamilles.target.removeChild( listeFamilles.target.firstChild );
								}
                            }
                          } );
  },
  getAddress:  function( id ){
    listeFamilles.buildLoader();
    var fnWhenDone = function(oXML) {
		listeFamilles.killLoader();
		while( listeFamilles.target.hasChildNodes() ){
			listeFamilles.target.removeChild( listeFamilles.target.firstChild );
		}
		xml = oXML.responseXML;
		
		var n=0;
		var oNewNodeN = new Array();
		document.getElementById("nbOffres").innerHTML="?";
		while( n<xml.getElementsByTagName('metier').length)
		{
			oNewNodeN[n] = document.createElement("option");
			oNewNodeN[n].value=(xml.getElementsByTagName('metier')[n].childNodes[0].nodeValue).substring(0,3);
			oNewNodeN[n].innerHTML =(xml.getElementsByTagName('metier')[n].childNodes[0].nodeValue).substring(3,100);
			listeFamilles.target.appendChild( oNewNodeN[n] );
			n=n+1;
		}
		
		document.getElementById("nbOffres").innerHTML=xml.getElementsByTagName('offres')[0].childNodes[0].nodeValue;
		if(document.getElementById("nbOffres").innerHTML=="Aucune offre")
		{
			document.getElementById("OffresFamille").style.display="none";
		}
		else{ document.getElementById("OffresFamille").style.display=""; }
    };
    listeFamilles.myConn.connect("ajax/metiers.php", "POST", "idFam="+id, fnWhenDone);
  },
  getNodeValue: function(tree, el){
    return tree.getElementsByTagName(el)[0].firstChild.nodeValue;
  },
  buildLoader: function(){
	document.getElementById("familles").disabled=true;
    listeFamilles.loader = document.createElement( 'div' );
    listeFamilles.loader.setAttribute( 'id', 'loading' );
    listeFamilles.loader.style.position   = 'absolute';
    listeFamilles.loader.style.top        = '50%';
    listeFamilles.loader.style.left       = '50%';
    listeFamilles.loader.style.width      = '300px';
    listeFamilles.loader.style.lineHeight = '100px';
    listeFamilles.loader.style.margin     = '-50px 0 0 -150px';
    listeFamilles.loader.style.textAlign  = 'center';
    listeFamilles.loader.style.border     = '1px solid #870108';
    listeFamilles.loader.style.background = '#fff';
    listeFamilles.loader.appendChild( document.createTextNode( 'Chargement en cours\u2026' ) );
    listeFamilles.body.appendChild( listeFamilles.loader );
  },
  killLoader:  function(){
    listeFamilles.body.removeChild( listeFamilles.loader );
	document.getElementById("familles").disabled=false;
  },
  addEvent: function( obj, type, fn ){  // the add event function
    if (obj.addEventListener) obj.addEventListener( type, fn, false );
    else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() {
        obj["e"+type+fn]( window.event );
      };
      obj.attachEvent( "on"+type, obj[type+fn] );
    }
  }
};
listeFamilles.addEvent( window, 'load', function(){
                                        listeFamilles.init( 'familles',
                                                   'submit',
                                                   'metiers' );
                                      } );