window.addEvent('domready',function(){
    var selectedCountryClassName='',selectedRegionClassName='',selectedCityClassName='';
    
    function clearAll(preserveSelections){
        $each($$('.ui-relatedlists-regions li'),function(el){
            el.setStyle('display','none');
        });
        
        $each($$('.ui-relatedlists-cities li'),function(el){
            el.setStyle('display','none');
        });
        
        if(preserveSelections==true){
            var selectedCountry='',selectedRegion='',selectedCity='';
            
            tmpHttp=(location.href).split('?');
            tmpValues=(tmpHttp[tmpHttp.length-1]).split('&');
            for(i=0;i<=tmpValues.length-1;i++){
                if((tmpValues[i]).search('rl-country=')>-1)selectedCountry=(tmpValues[i]).replace('rl-country=','');
                if((tmpValues[i]).search('rl-region=')>-1)selectedRegion=(tmpValues[i]).replace('rl-region=','');
                if((tmpValues[i]).search('rl-city=')>-1)selectedCity=(tmpValues[i]).replace('rl-city=','');
            }
            
            $each($$('.ui-relatedlists-regions li'),function(el){
                if(el.id==selectedCountry)el.setStyle('display','block');
            });
            
            $each($$('.ui-relatedlists-cities li'),function(el){
                if(el.id==selectedCountry+'-'+selectedRegion)el.setStyle('display','block');
            });
            
            selectedCountryClassName=selectedCountry;
            selectedRegionClassName=selectedCountry+'-'+selectedRegion;
            selectedCityClassName=selectedCountry+'-'+selectedRegion+'-'+selectedCity;
            makeSelection();
        }
    }
    
    function makeSelection(){
        $each($$('.ui-relatedlists li'),function(el){
            if(el.getProperty('name')==selectedCountryClassName||el.getProperty('name')==selectedRegionClassName||el.getProperty('name')==selectedCityClassName){
                el.addClass('ui-relatedlists-selected-items');
            }else{
                el.removeClass('ui-relatedlists-selected-items');
            }
        });
        
        if(selectedCityClassName==''){
            $each($$('.ui-relatedlists-cities li'),function(el){el.setStyle('display','none');});
        }    
    }
    
    //
    // set up main global styles...
    //
    $each($$('.ui-relatedlists ul'),function(el){
        el.setStyles({
            float: 'left',
            margin: 1,
            padding: 3,
            width: 227,
            height: 70,
            listStyleType: 'none',
            overflowY: 'auto'
        });
    });
    
    $each($$('.ui-relatedlists ul li'),function(el){
        el.setStyles({
            cursor: 'pointer',
            margin: 1,
            padding: 3
        });
    });
    
    //
    // hide all li's sub-elements...
    //
    clearAll(true);
    
    //
    // set up and events...
    //
    $each($$('.ui-relatedlists-countries li'),function(el){
        el.addEvents({'click':function(){
            selectedCountryClassName=el.getProperty('name');
            selectedRegionClassName='';
            selectedCityClassName='';
            makeSelection();
            
            $each($$('.ui-relatedlists-regions li'),function(subEl){
                if(subEl.id==el.getProperty('name')){
                    subEl.setStyle('display','block');
                }else{
                    subEl.setStyle('display','none');
                }
            });
        }});
    });
    
    $each($$('.ui-relatedlists-regions li'),function(el){
        el.addEvents({'click':function(){
            selectedRegionClassName=el.getProperty('name');
            selectedCityClassName='';
            makeSelection();
            
            $each($$('.ui-relatedlists-cities li'),function(subEl){
                if(el.getProperty('name')=='--show-all-items'){
                    if((subEl.id).search(el.id+'-')>-1){
                        subEl.setStyle('display','block');
                    }else{
                        subEl.setStyle('display','none');
                    }
                }else{
                    if(subEl.id==el.getProperty('name')){
                        subEl.setStyle('display','block');
                    }else{
                        subEl.setStyle('display','none');
                    }
                }
            });
        }});
    });
    
    $each($$('.ui-relatedlists-cities li'),function(el){
        el.addEvents({'click':function(){
            var url="?";
            
            tmpHttp=(location.href).split('?');
            if(tmpHttp.length>1){
                if(tmpHttp[1]!=""){
                    tmpValues=tmpHttp[1].split('&');
                    for(i=0;i<=tmpValues.length-1;i++){
                        if(tmpValues[i].search('rl-country=')==-1&&tmpValues[i].search('rl-region=')==-1&&tmpValues[i].search('rl-city=')==-1)url+=tmpValues[i]+'&';
                    }
                }
            }
            
            tmpArray=(el.getProperty('name')).split('-');
            url+='rl-country='+tmpArray[0]+'&rl-region='+tmpArray[1]+'&rl-city='+tmpArray[2];
            
            location.href=url;
        }});
    });
});
