Event.observe(window,'load',initCountriesBtn);
     
    var lastCountryTohide ='';
    var firstCountryLoad =true; 
     
    function initCountriesBtn()
    {
        if($('countriesContainer') != null)
        {
            addCountries();
            bindCountriesBtn();
            populateRegions();
        }
    }

        function addCountries()
        {                     
            var RegionForCheck = region;
            var CountriesToAdd = GetPaysWhithRegions(pays,RegionForCheck);
            var countriesHolder = $('countriesContainer');
            CountriesToAdd.each(function(oPays){
           
            var idPays = oPays.id;
            var idPays =idPays.toLowerCase(); 
            var nomPays = oPays.text;                   
            var root = new Element('li',{id:idPays});
          	var rootFirstChild ="<a id='link-"+idPays+"' class='countryBtn' href='javascript:;'>"+nomPays+"</a>";
          	var rootLastchild = "<ul id='"+idPays+"_region_container'></ul>"; 
           	root.insert(rootFirstChild);
            root.insert(rootLastchild);
            countriesHolder.insert(root);         
               
            });


        }
        function GetPaysWhithRegions(pays, regions)
        {
            var paysTri = new Array();
            pays.each(function(oPays)
            {           
                var idPays = oPays.id;
                var addIt = false;
                regions.each(function(oRegion)
                {
                        var paysReg = oRegion.id_pays;
                        if(idPays.toLowerCase()==paysReg.toLowerCase()){ addIt =true; return;}
                                   
                    });
           
            if(addIt) paysTri.push(oPays);
                });
           
            return paysTri;
        }

    
    function populateRegions()
    {
         
        var regionsHolder = new Array();
        var countriesToCheck = GetPaysWhithRegions(pays,region);
        countriesToCheck.each(function(oPays){
            var idPays = oPays.id;
            var cntRegions = getRegionsForPays(idPays.toLowerCase());
            var oResult = {id:idPays.toLowerCase(),content:cntRegions};
            regionsHolder.push(oResult);
        });
        appendRegion(regionsHolder);
     
    }
        function appendRegion(regionsHolder)
        {
             regionsHolder.each(function(regions){
             var idElem = regions.id;
             var oRegions = regions.content;
             oRegions.each(function(oRegion){
             var contentToAdd ="<li><a href='" + getBaseLink() + "district/?id="+oRegion.id+"'>"+oRegion.text+"</a></li>";
             $(idElem+'_region_container').insert(contentToAdd);
             });
               
         });
         
        }
      
    function bindCountriesBtn()
    {
        var countryBtn = $$('.countryBtn');
        countryBtn.each(function(element){
        element.observe('click', showRegions);         
    });
    }
     
    function showRegions(e)
    {
        var elID = e.element().id;
        var elInfo = elID.split('-');
        var id = elInfo[1];
        if(lastCountryTohide==id){$(lastCountryTohide).toggleClassName('show'); lastCountryTohide=''; firstCountryLoad='true'; return false;}
         
        afficherRegion(id);
    }
    function afficherRegion(countryCode)
    {
        $(countryCode).toggleClassName('show');
        hideLastLink(countryCode);
        lastCountryTohide = countryCode;
    }
     
    function hideLastLink(code)
    {
        if(firstCountryLoad){firstCountryLoad=false; return false;}
        $(lastCountryTohide).toggleClassName('show');
         
    } 
