var sector_list_xml;
var sector_list_xml_is_loaded = false;

var current_first_level_sector = null;
var current_second_level_sector = null;

var error_string = "";

function debug( string ){
	//error_string += "<p>" + string + "</p>";
	//error_div = document.getElementById( "error" );
	//error_div.innerHTML = error_string;
}

function importXML( xmlfilename ){
			
	if (window.XMLHttpRequest) {
    		try {
			sector_list_xml = new XMLHttpRequest();
        	} catch(e) {
			sector_list_xml = false;
        	}
    		
 	 }

	//if (document.implementation && document.implementation.createDocument)
	//{
	//	sector_list_xml = document.implementation.createDocument("", "", null);
	//	sector_list_xml.onload = sector_list_xml_is_ready;
	//}

	else if (window.ActiveXObject) {
		try {
        		sector_list_xml = new ActiveXObject("Msxml2.XMLHTTP");

      		} catch(e) {
        		try {
          			sector_list_xml = new ActiveXObject("Microsoft.XMLHTTP");
        		} catch(e) {
          			sector_list_xml = false;
        		}
		}
	}
	else {
		alert("Please update your browser to Explorer 6.0 or Mozilla Firefox" );
		return;
	}

		sector_list_xml.onreadystatechange = processReqChange;
		sector_list_xml.open("GET", xmlfilename, true);
		sector_list_xml.send("");


}

function processReqChange() {
    // only if sector_list_xml shows "loaded"
    if (sector_list_xml.readyState == 4) {
        // only if "OK"
        if (sector_list_xml.status == 200) {
            // ...processing statements go here...
		sector_list_xml_is_ready();
        } else {
            //alert( "ready state" +  sector_list_xml.readyState );
        }
    }
}

function sector_list_xml_is_ready(){
	sector_list_xml_is_loaded = true;
	//alert("xml is ready");
	//load_first_level_sectors();
}

function load_second_level_sectors( first_level_sector ){

	if( !sector_list_xml_is_loaded ){
		//alert( "sector list xml file not loaded!" );
		return "none";
	}
	//alert( "getting sectors for " + first_level_sector );

	//Amanda: the following line has "responsexml" added to work with safari (and firefox?)

	var first_level_sectors = sector_list_xml.responseXML.getElementsByTagName( "first_level_sector" );

	for( var i = 0; i < first_level_sectors.length; i++ ){
		if( first_level_sectors[i].getAttribute( "name" ) == first_level_sector ){
			//alert( "found sector " + first_level_sectors[i] );

			second_level_sectors = first_level_sectors[i].getElementsByTagName( "second_level_sector" );

			var select = document.sector_browser_form.second_level_sector;
			select.options.length = second_level_sectors.length;
			for( var i = 0; i < select.options.length; i++ ){
				select.options[i] = new Option( second_level_sectors[i].getAttribute("name"), 
												second_level_sectors[i].getAttribute("number") );
			}
			
			return;
		}
	}
	alert( "couldn't find first level sector: " + first_level_sector );
	
	return;
}

function load_second_level_sectors_of_selected_first_level_sector(){
	// figure out which sector was selected
	var select = document.sector_browser_form.first_level_sector;
	
	var selected_sector = select.options[select.selectedIndex].text;

	//alert ( "selected_sector '" + selected_sector + "' index: " + select.selectedIndex );

	// check if current sector has changed
	if( selected_sector == current_first_level_sector ){
		return;
	}
	current_first_level_sector = selected_sector;
	
	// load new current sector
	load_second_level_sectors( current_first_level_sector );
}

function load_sector_description_of_selected_second_level_sector(){
	// find current second level sector code
	var select = document.sector_browser_form.second_level_sector;
	var selected_code = select.options[select.selectedIndex].value;

//load sector description dynamically
   var getDescPage = 'http://www.eiolca.net/cgi-bin/multimatrix/sectormaps/k2/getdescription.pl';

   var descRequest = false;
    
    //handle multiple browsers
    if( window.XMLHttpRequest ){ 

		//alert("inside xmlhttprequest chunk");

		// ask for permission to open external page in mozilla/netscape
		//if( netscape ){
			//alert ("is netscape");

			//try {
				//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			//} catch (e) {
				//alert("Permission UniversalBrowserRead denied.");
			//}

		descRequest = new XMLHttpRequest();
	}
    
	else if( window.ActiveXObject ){
		try {descRequest = new ActiveXObject("Msxml2.XMLHTTP");} 
		catch (e){ try {descRequest = new ActiveXObject("Microsoft.XMLHTTP");} catch (e){}}
    } else {
	document.getElementById('sector_description').innerHTML = 'sorry your browser does not support this function.';
    }

    //fill response into description box
    descRequest.onreadystatechange=function(){
		if( !window.ActiveXObject || sector_list_xml.readyState == 4 ){
			document.getElementById('sector_description').innerHTML = '<pre>'+ descRequest.responseText +'</pre>';
		}
	}

    //send request
    descRequest.open('POST', getDescPage, true);
    descRequest.send(encodeURI('sector='+selected_code));
}