var nav_in_progress = false;
var img_preload = new Image();
img_preload.src = root_href+'images/preloader.gif';

function setNavigatorStatus(status, el) {
	if (status==1) {
		document.getElementById(el).innerHTML = '<br /><img src="'+root_href+'images/preloader.gif" border="0" />';
		document.getElementById(el).style.display = '';
	} else {
		document.getElementById(el).innerHTML = '';
		document.getElementById(el).style.display = 'none';
	}
}

function updateElement(id,html) {
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).innerHTML=html;
}

function changeStyleDisplay(searchClass,display) {
    var el = getElementsByClass(searchClass,document.getElementById('navigator'),null);
    for (var i=0; i<el.length; i++) {
    	el[i].style.display=display;
    }
}

function changeStyleDisplayById(id,display) {
    var obj = document.getElementById(id);
    if (obj!=null) obj.style.display = display;
}

var retryCitiesLoadCount = 5;
function loadCities(id_country) {
    if (nav_in_progress) return;
	setNavigatorStatus(1,'cities_'+id_country);
	nav_in_progress = true;
	AjaxRequest.get({
        'url':base_href+'getdata?type=cities',
        'parameters': {'id_country':id_country},
        'onSuccess': function(req) {
        				setNavigatorStatus(0,'cities_'+id_country);
                        nav_in_progress = false;
                        displayCities(id_country, eval("(" + req.responseText + ")"));
                        retryCitiesLoadCount = 5;
                     },
        'onError': function (req) {
        		nav_in_progress = false;
        		if (retryCitiesLoadCount-- > 0) {
        			loadCities(id_country);
        		}else{
        			setNavigatorStatus(-1,'cities_'+id_country);
        		} 
       		}
    });
}

function displayCities(id_country, data) {
	changeStyleDisplay('country_h','none');
	changeStyleDisplay('country_l','');
	changeStyleDisplay('cities','none');
	changeStyleDisplay('city_h','none');
	changeStyleDisplay('city_l','');
	changeStyleDisplay('parts','none');
    
    changeStyleDisplayById('country_l_'+id_country,'none');
    changeStyleDisplayById('country_h_'+id_country,'');
    
    var cur_block = document.getElementById('cities_'+id_country);

    if (data==null) {
    	if (cur_block.innerHTML.trim()!='') {
	    	cur_country = id_country;
        	cur_block.style.display = '';
        	if (cur_block.x) {
        		displayParts(cur_block.x);
        	}
    	} else {
    		loadCities(id_country);
    	}
    } else {
    	var _html='';
	    //for (i in data) {
	    for (i=0; i<data.length; i++) {
    		var id = data[i].IDCITY;
    		var name = data[i].NAME;
    		var defaultpart = data[i].DEFAULTPART;
			//_html += '<img src="'+root_href+'images/p2.gif" width="10" height="7" border="0" alt="" /><span class="city_l" id="city_l_'+id+'"><a href="'+base_href+'?id_country='+id_country+'&id_city='+id+'" onclick="javascript:displayParts('+id+'); return false;" class="menu">'+name+'</a></span>'+
			_html += '<img src="'+root_href+'images/p2.gif" width="10" height="7" border="0" alt="" /><span class="city_l" id="city_l_'+id+'"><a href="'+base_href+'stickers?id_country='+id_country+'&id_city='+id+'&id_part='+defaultpart+'" onclick="javascript:changeLocation(\''+base_href+'stickers?id_part='+defaultpart+'\','+id_country+','+id+');return false;" class="menu">'+name+'</a></span>'+
			         '<span class="city_h" id="city_h_'+id+'" style="display:none">'+name+'</span><br />'+
					 '<div class="parts" id="parts_'+id+'" style="display:none"></div>';
	    } 
    	cur_block.innerHTML = _html;
	    cur_block.style.display = '';    
	    cur_country = id_country;
	    if (data.length==1) {
	    	displayParts(data[0].IDCITY);
	    	cur_block.x = data[0].IDCITY;
	    }
	}
}

var retryCitiesLoadCount = 5;
function loadParts(id_city) {
    if (nav_in_progress) return;
    setNavigatorStatus(1,'parts_'+id_city);
	nav_in_progress = true;
	AjaxRequest.get({
        'url':base_href+'getdata?type=parts',
        'parameters': {'id_city':id_city},
        'onSuccess': function(req) {
				        setNavigatorStatus(0,'parts_'+id_city);
                        nav_in_progress = false;
                        displayParts(id_city, eval("(" + req.responseText + ")"));
                        retryCitiesLoadCount = 5;
                     },
        'onError': function (req) {        	  
        	 nav_in_progress = false;
        	 if (retryCitiesLoadCount-- > 0) {
        	 loadParts(id_city);
        	 }else{
        	 setNavigatorStatus(-1,'parts_'+id_city);
        	 }
        	 }
    });
}

function displayParts(id_city, data) {
	changeStyleDisplay('parts','none');
	changeStyleDisplay('city_h','none');
	changeStyleDisplay('city_l','');
//	changeStyleDisplay('part_h','none');
//	changeStyleDisplay('part_l','');
    
    if (id_city==0) return;
    
    changeStyleDisplayById('city_l_'+id_city,'none');
    changeStyleDisplayById('city_h_'+id_city,'');
    
    var cur_block = document.getElementById('parts_'+id_city);
    
    if (data==null) {
    	if (cur_block.innerHTML.trim()!='') {
	    	cur_city = id_city; 
        	cur_block.style.display = '';
	    	SetCookie('location',cur_country+'-'+cur_city);
    	} else {
    		loadParts(id_city);
    	}
    } else {
    	var html='';
	    for (i=0; i<data.length; i++) {
			html += '- <span calss="part_l"><a href="'+base_href+'stickers?id_country='+cur_country+'&id_city='+id_city+'&id_part='+data[i].IDPART+'" onclick="javascript:changeLocation(\''+base_href+'stickers?id_part='+data[i].IDPART+'\','+cur_country+','+id_city+');return false;" class="menu">'+data[i].PART+'</a></span><br />';
	    } 
    	cur_block.innerHTML = html;
    
	    cur_city = id_city; 
	    cur_block.style.display = '';
	    
	    SetCookie('location',cur_country+'-'+cur_city);
	}
}

function changeLocation(url,idcountry,idcity){
	SetCookie('location',idcountry+'-'+idcity);
	url += '&id_country='+idcountry+'&id_city='+idcity;	
	window.location = decodeURIComponent(url);
}


