
//Create the XML Request object
var xmlhttp = null;
var event_id;
var input_item = "";
var page_item = "";
var key_item = "";
var msg = "";
var dynamic_fields = 0;
var class_id = 0;
var custom_site_id = 0;
var type_collector = "";
var collector_array = new Array();

try{xmlhttp = new XMLHttpRequest();}
catch(trymicrosoft){
	try{xmlhttp = new ActiveXObject("Msxm12.XMLHTTP");}
	catch(othermicrosoft){
		try{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
		catch(fail){xmlhttp = null;}
	}
}
if(xmlhttp == null){alert("Error creating XMLHttpRequest!");}


function send_message(_msg){

	if(_msg != ''){
		document.getElementById("message").innerHTML = _msg;
	}
}

// sets up a timer to call the update function
// sets the function inputs as page values, so directives can be pushed to the update function
function SV_timed_event_handler(input_id, proc_page, input) {

	//kill the handler if dynamic fields are disabled
	if(dynamic_fields==1){
		input_item = input_id;
		page_item  = proc_page;
		input_data = input;
		collector_array = formItemKeeper();
		if(input_item=='class_id'){class_id = input_data; type_collector="";}
		if(input_item=='type')	  {type_collector = input_data;}
		if (event_id) 			  {clearTimeout(event_id);}
		//send_message('input item:' + input_item + "    Key item:" + input_data);
		event_id = setTimeout('SV_update_query()', 300);
	}
	return true;
}

// AJAX update query - retrieves page values (specd. in  SV_timed_event_handler())
//sends asynch requests to the processing page - calls the SV_handle_php_response()
//to dole out the results...calls hide_result() if the input query is empty

function SV_update_query() {

	//if(input_data !== "") {

		try{

		var url = page_item +'?' + input_item +'=' + input_data;

		//----- collector array
		if(collector_array.length > 1){url = url + '&cd=' + collector_array.join(";");}
		if(custom_site_id >0){url = url + '&cus=' + custom_site_id;}
		if(class_id > 0){url = url + '&cs=' + class_id;} // set class
		if(type_collector != ""){url = url + '&type=' + type_collector;}
   		//send_message('url set to: ' +  url );

   		var url_length = url.length;
   		if(url_length>2083){alert("Due to the number of search items that have been entered, you may or may not receive a response to your search inquiry.  It is recommended that you reduce the number of search selections and try your search again.");}

		xmlhttp.open('GET', url, true);
   		xmlhttp.onreadystatechange = SV_handle_php_response; //on state change load the response?>
   		xmlhttp.send(null);

		} catch(err){
			//alert(err);
		}

	//}
}


//AJAX ressponse handler for special variables - sets result_item variable (specd. in  SV_timed_event_handler())
//inserts the result value from the response object into the innerHTML of the specified div obect (specd. in  SV_timed_event_handler())
function SV_handle_php_response() {  //check for a finished response status, then proceed to unpack the data

	if(xmlhttp.readyState == 4) {

		try{
			var xmlDocument = xmlhttp.responseXML;
			var resultArray = xmlDocument.getElementsByTagName("results");
			var divVal = null;
	   		var primaryNode = resultArray[0];

	   		if(primaryNode.hasChildNodes()){
	   			var i = 0;
		   		while(primaryNode.childNodes[i]){
		           // get node
		           xmlChildNode = primaryNode.childNodes[i];
		           var nodename = xmlChildNode.nodeName;
		           var nodeVal = xmlChildNode.firstChild.data
		           if(nodeVal != null){
				   		if(document.getElementById(nodename + "_container")){
				   			document.getElementById(nodename + "_container").innerHTML = nodeVal
				   		}
		           }
		           i++;
		       }
	   		}
   		} catch(err){
   			//alert(err);
   			//send_message(err);
   		}
	}
}

//SCRIPTACULO control functions for list animation
Effect.OpenUp = function(element) {
	if(element != ""){
    	element = $(element);
     	new Effect.BlindDown(element, arguments[1] || {});
	}
}

Effect.CloseDown = function(element) {
 	if(element != ""){
     	element = $(element);
    	new Effect.BlindUp(element, arguments[1] || {duration: .3});
	}
}

var my_type_keeper="";

Effect.Combo = function(element) {

	if(document.getElementById(element) != null){
		var set_item = element
		element = $(element);

		if(element.style.display == 'none') {
			if(my_type_keeper != "" && my_type_keeper != set_item){
				old_element = $(my_type_keeper);
				new Effect.CloseDown(old_element, arguments[1] || {duration: .2});
			}
		    new Effect.OpenUp(element, arguments[1] || {duration: .4});
		}
		my_type_keeper = set_item;
	}
}



//FUNCTIONS to catalog and collect form data to be submitted to the ajax control functions
var itemCollector = ""

function getSelectedValues(select) {

	var r = ""
	if(select){
		for (var i = 0; i < select.options.length; i++){
			if (select.options[i].selected){//&& select.options[i].value != ''
				if(r==""){
					r = select.options[i].value;
				} else {
					r = r + '|' + select.options[i].value;
				}
			}
		} //alert('r val:'+r);
	}
	return escape(r);
}

function getCheckedValues(element_name){

	var r = ""
	if(document.getElementsByName(element_name)){

		var select = document.getElementsByName(element_name);

		for(var i=0; i < select.length; i++) {
			if(select[i].checked && select[i].value !=''){
				if(r==""){
					r = select[i].value;
				} else {
					r = r + '|' + select[i].value;
				}
			}
		} //alert('r val:'+r);
	}
	return escape(r);

}

var indexMem = "";
function checkStatus(sele_obj){

	alert('selectedIndex for ' + sele_obj.value + ' is: '
	 + sele_obj.selectedIndex + ' Old value: ' + indexMem.value + '  Old inex: ' + indexMem.selectedIndex);

	 indexMem = sele_obj;
	 //indexMem.value = sele_obj.value;

}

function swap_style_over(my_item) {
	my_item.className = 'color1' ;
}

function swap_style_out(my_item) {
	my_item.className = '' ;

}