function BuildCategoriesDropdowns( SelectedID ){
/*
	Заранее заданные массивы:
	var Categories
*/
	if ( Categories == undefined ) return;
	if ( Categories.length == 0 ) return;
	
	var catObj = document.getElementById('id_category');
	if ( catObj == undefined ) throw new Error("No categories Object");
	
	var cid = Categories[0].id;
	
	for ( var i=0; i < Categories.length; i++ ){
		var newElement = document.createElement('option');
		newElement.value = Categories[i].id;
		newElement.innerHTML = Categories[i].name;
		if ( SelectedID == Categories[i].id ) {
			newElement.selected = true;
			cid = Categories[i].id;
		}
		catObj.appendChild( newElement );
	}
	
	ChangeSubcategoriesList( cid );
}

function ChangeSubcategoriesList( ChosenCategoryID ){

	var catObj = document.getElementById('id_subcategory');
	if ( catObj == undefined ) throw new Error("No subcategories Object");
	catObj.innerHTML = ''; // Cool child removal tool
	// Ищем категорию с нужным ID
	for ( var i=0; i < Categories.length; i++ ){
		if ( Categories[i].id == ChosenCategoryID ){
			for ( var j=0; j < Categories[i].subcategories.length; j++ ){
				var newElement = document.createElement('option');
				newElement.value = Categories[i].subcategories[j].id;
				newElement.innerHTML = Categories[i].subcategories[j].name;
				catObj.appendChild( newElement );
			}
			break;
		}
	}
}



function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
}

function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
         	var EObj = document.getElementById('merge_fetch_error');
         	try {
            	var result = eval( '('+http_request.responseText+')' );
            } catch( e ){
            	EObj.innerHTML = 'Ошибка обработки информации от сервера - "'+e.message+'"';
            	return;
            }
            //alert( result.status );
            if ( result == undefined || result.status == undefined || result.status == "error" ){
            	
            	if ( result == undefined || result.status == undefined || result.description == undefined ){
            		EObj.innerHTML = 'Ошибка получения информации от сервера';
            	} else {
            		EObj.innerHTML = result.description;
            	}
            }else {
            	handleAjaxReply( result.data );
            }
         } else {
         	
         }
      }
}

function handleAjaxReply( dataObject ){
	for ( var i=0; i<dataObject.length; i++ ){
		switch( dataObject[i].type ){
			case 'blmerge_suggest':
				handleBuglistMerge( dataObject[i].data );
				break;
		}
	}
}

function handleBuglistMerge( rows ){
	var cObj = document.getElementById('fetched_results');
	cObj.innerHTML = '';

	document.getElementById('merge_fetch_error').innerHTML = '';

	if ( rows.length == 0 ){
		document.getElementById('merge_fetch_error').innerHTML = 'по фильтру ничего не найдено';
	}
	
	for ( var i=0; i<rows.length; i++ ){
		var newObj = document.createElement('li');
		newObj.id = 'bl_suggest_'+rows[i].id;
		newObj.pure_id = rows[i].id;
		newObj.innerHTML = '<input type="radio" onclick="BuglistMergeChoose(\''+newObj.id+'\', this);" /><b>#'+rows[i].id+'</b> <a target="_blank" href="/bug/'+rows[i].id+'/">'+rows[i].title+'</a><br /><i>'+rows[i].text+'</i>';
		
		cObj.appendChild( newObj );
	}
	
}

function BuglistMergeChoose( objectID, obj ){
	var cObj = document.getElementById(objectID);
	var text = cObj.getElementsByTagName('a')[0].innerHTML;
	
	if ( !confirm(really_merge_txt+'"'+text+'"?') ){
	 obj.checked = false;
	 return null;
	}
	
	document.location = '/bug/'+document.getElementById('current_id').value+'/merge/'+cObj.pure_id; 
}


function requestForReports(){
	makePOSTRequest( '/ajax/', 'Request=BuglistForMerge&skip='+document.getElementById('current_id').value+'&filter='+document.getElementById('filter').value );
}
