// AJAX REQUEST
var req=false;
function create_request(fhandle){
	try{
		req = new XMLHttpRequest(); // Opera 8.0+, Firefox, Safari
		req.onreadystatechange=fhandle;
	}catch (e){
		try{ // IЕ
			req = new ActiveXObject("Msxml2.XMLHTTP");
			req.onreadystatechange=fhandle;
		}catch(e){
			try{
				req= new ActiveXObject("Microsoft.XMLHTTP");
				req.onreadystatechange=fhandle;
			} catch (e){ // Something went wrong
				alert("Моля използвайте някои от следните браузъри: Konqueror, IExplorer 5.0+, Mozilla 1.0+, Netscape 7.1+, Safari 1.2+, Opera 7.6+");
				return false;
			}
		}
	}
}

function get_content(file,paramstr,fhandle){
	create_request(fhandle);
	req.open('GET', file + '?rand=' + Math.floor(Math.random()*100000) + '&' + encodeURI(paramstr), true);
	req.send(null);
}


// AJAX COMBOS
var master_combo;
var details_combo;

combosObject = new Object();
combosObject.main_combo_id = 'region_id';
combosObject.detail_combo_id = 'municipality_id';
combosObject.detail_selected_id = 0;
combosObject.get_details_script = '';
combosObject.load_details_handle = null;
combosObject.create_header_item = false;
combosObject.create_footer_item = false;
combosObject.header_item_caption = '';
combosObject.footer_item_caption = '';

function loadDetails(cObject){
	combosObject = cObject;
	master_combo = document.getElementById(combosObject.main_combo_id);

	if(master_combo.value == 0){
		return;
	}
	details_combo = document.getElementById(combosObject.detail_combo_id);
	
	details_combo.disabled = true;
	if (details_combo.options.length > 0){
		details_combo.options[0].text = ' Зареждане ...';
	}
	get_content(combosObject.get_details_script, "id=" + master_combo.value, getDetails);
}

function clearCombo(cb){
	cb.innerHTML = '';
}

function getDetails(){
	var no_selected = true;
	if (req.readyState == 4){
		if (req.status == 200) {
			details_combo.innerHTML = '';
			if(combosObject.create_header_item){
				var oOption = document.createElement('option');
				oOption.value = 0; 
				oOption.innerHTML = combosObject.header_item_caption;
				details_combo.appendChild(oOption);
			}

			if(req.responseText != ''){
				var oJSON = eval(req.responseText);
				var oGroup = null;
				for( nOpt=0;nOpt<oJSON.length;nOpt++) {
					if(oJSON[nOpt].type == 0){
						if(oGroup != null){
							details_combo.appendChild(oGroup);
						}
						oGroup = document.createElement('optgroup');
						oGroup.label =  oJSON[nOpt].text;
					}else if(oJSON[nOpt].type == 10){
						oOption = document.createElement('option');
						oOption.value = oJSON[nOpt].value; 
						oOption.innerHTML = oJSON[nOpt].text;
						if(combosObject.detail_selected_id == oOption.value){
							oOption.selected = true;
							no_selected = false;
						}
						if(oGroup == null){
							details_combo.appendChild(oOption);
						}else{
							oGroup.appendChild(oOption);
						}
					}
				};
				if(oGroup != null){
					details_combo.appendChild(oGroup);
				}
			}

			if(combosObject.create_footer_item){
				var oOption = document.createElement('option');
				oOption.value = -1; 
				oOption.innerHTML = combosObject.footer_item_caption;
				details_combo.appendChild(oOption);
			}

			details_combo.disabled = false;

			if(combosObject.load_details_handle != null){
				combosObject.load_details_handle();
			}
		}else {
			alert('Възникна проблем при изпълнение на заявка! Моля опитайте по-късно.');
			details_combo.disabled = false;
		}
	}
}