function getCities(symbol,mapId){

	if(symbol == 0){
		return;
	}
		
	d = MochiKit.Async.doSimpleXMLHttpRequest('/ajax/getCities.jsf?' + queryString({'symbol': symbol, 'mapId':mapId}));
	d.addCallbacks(populateCities, failed);
	getRegionAddresses(symbol,mapId);
	
}

function getRegionAddresses(symbol,mapId){

	d = MochiKit.Async.doSimpleXMLHttpRequest('/ajax/getRegionAddresses.jsf?' + queryString({'symbol': symbol, 'mapId':mapId}));
	d.addCallbacks(populateRegionAddresses, failed);
	
}

function showRegion(symbol,mapId){
	getCities(symbol,mapId);
	var regionSelect = getElement('region_select');
	for(var i=0;i<regionSelect.options.length;i++){
		if(regionSelect.options[i].value == symbol){
			regionSelect.options[i].selected = true;
		}
	}
	
	var streetSelect = getElement('street_select');
	setNodeAttribute(streetSelect, 'selectedIndex', 0);
    setNodeAttribute(streetSelect, 'disabled', 'disabled');
    appendChildNodes(streetSelect, OPTION({'value':'0','selected':'true'},'wybierz najpierw miasto'));
}

function getAddress(addressId){

	if(addressId == 0){
		return;
	}
		
	d = MochiKit.Async.doSimpleXMLHttpRequest('/ajax/getAddress.jsf?' + queryString({'addressId': addressId}));
	d.addCallbacks(populateRegionAddresses, failed);
	
}

function populateCities(data) {

	var cities = evalJSONRequest(data);
	
    var oldCitySelect = getElement('city_select');
    var citySelectDiv = getElement('city_select_div');

    if(oldCitySelect!=null){
    	removeElement('city_select');    		
    }
    
    //var testBr
    
	//alert('dodane1' + SELECT({}));
	 
   	var citySelect = SELECT({'id':'city_select','onchange':'getCityAddresses(this.value)'});
    //'type':'select','id':'city_select','onchange':'getCityAddresses(this.value)'
    
    //alert('dodane'+citySelect);
        
    appendChildNodes(citySelectDiv, citySelect);
    
    var streetSelect = getElement('street_select');
    streetSelect.disabled = 'disabled';
    //setNodeAttribute(streetSelect, 'selectedIndex', 0);   
    appendChildNodes(streetSelect, OPTION({'value':'0','selected':'true'},'wybierz najpierw miasto'));
    
    if(cities.length==0){
    	setNodeAttribute(citySelect, 'selectedIndex', 0);
    	setNodeAttribute(citySelect, 'disabled', 'disabled');
    	appendChildNodes(citySelect, OPTION({'value':'0','selected':'true'},'brak miast'));
    }
    
    appendChildNodes(citySelect, OPTION({'value':'0'},'wybierz miasto'));
    
    for (i=0;i<cities.length;i++){
    	appendChildNodes(citySelect, OPTION({'value':cities[i].id},cities[i].name));
    }
    
}

function populateRegionAddresses(data){

	var addresses = evalJSONRequest(data);
	populateAddresses(addresses);
	
}

function populateAddresses(addresses){

	var addressesDiv = getElement('addresses_div');
	
	replaceChildNodes(addressesDiv,null);
	   
	
	   
	for (i=0;i<addresses.length;i++){
    	appendChildNodes(addressesDiv, createAddressDiv(addresses[i]));
    }
}

function createBoldSpan(content){
	return SPAN({'style':'font-weight:bold;'},content);
}

function createAddressDiv(address){

	var addressDiv = DIV({'class':'address_div', 'style': 'width: 620px;'});
	appendChildNodes(addressDiv,H2({'class':'article-header1'},address.name));
	
	appendChildNodes(addressDiv,SPAN(null,createBoldSpan('Adres: '), address.street + ' ' +address.streetNumber + ', '+address.postcode + ' ' + address.city));
	appendChildNodes(addressDiv,BR(null));
	if(address.phone!=null){
		appendChildNodes(addressDiv,SPAN(null,createBoldSpan('Telefon: '), address.phone));
		appendChildNodes(addressDiv,BR(null));
	}
	if(address.openingHours!=null){
		appendChildNodes(addressDiv,SPAN(null,createBoldSpan('Godziny otwarcia: '), address.openingHours));
		appendChildNodes(addressDiv,BR(null));
	}
	
	return addressDiv
	
}

function getCityAddresses(cityId){

	if(cityId == 0){
		return;
	}
		
	d = MochiKit.Async.doSimpleXMLHttpRequest('/ajax/getCityAddresses.jsf?' + queryString({'cityId': cityId}))
	d.addCallbacks(populateAddressesCombobox, failed)
}

function populateAddressesCombobox(data) {

	var streets = evalJSONRequest(data);
	
    var oldStreetSelect = getElement('street_select');
    var streetSelectDiv = getElement('street_select_div');

    if(oldStreetSelect!=null){
    	removeElement('street_select');    		
    }
	
   	var streetSelect = SELECT({'id':'street_select', 'onchange':'getAddress(this.value)'});
    appendChildNodes(streetSelectDiv, streetSelect);
    
    if(streets.length==0){
    	setNodeAttribute(streetSelect, 'selectedIndex', 0);
    	setNodeAttribute(streetSelect, 'disabled', 'disabled');
    	appendChildNodes(streetSelect, OPTION({'value':'0','selected':'true'},'brak ulic'));
    }
    
    appendChildNodes(streetSelect, OPTION({'value':'0'},'wybierz ulicę'));
    
    for (i=0;i<streets.length;i++){
    	appendChildNodes(streetSelect, OPTION({'value':streets[i].id},streets[i].street + ' '+streets[i].streetNumber));
    }
    
    populateAddresses(streets);
    
}

function failed(error) {
	alert('server error' + error)
}
