
var http_request = false;
var myspan;
var activeRequest = 0;
var call_back;

function makePageRequest(url, parameters, myspan_name,call) {
   http_request = false;
   myspan = myspan_name;
   call_back = call;

   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
         http_request.overrideMimeType('text/xml');
      }
   } 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;
   }else{
  	 activeRequest++;
   }

   http_request.onreadystatechange = alertPageContents;
   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);

//   alert(url+"?"+parameters);

//   http_request.open('GET', url+"?"+parameters, true);
//   http_request.send(null);
}

function alertPageContents() {

	var processor;

   if (http_request.readyState == 4) {
      if (http_request.status == 200) {
//       alert(http_request.responseText);
         result = http_request.responseText;
         processor = call_back+"(result,myspan)";
         eval(processor);
//         processAjax(result,myspan);
         activeRequest--;
         AjaxQueue.processNext();
      } else {
         alert('There was a problem with the request.');
         activeRequest--;
      }
   }
}

function processAjax(result,myspan_name){
	document.getElementById(myspan_name).innerHTML = result;
}

var AjaxQueue = {
	batchSize: 1,
	urlQueue: [],
	elementsQueue: [],
	optionsQueue: [],
	callBackQueue: [],
	setBatchSize: function(bSize){
		this.batchSize = bSize;
	},
	push: function(url, options, elementID,call){
		this.urlQueue.push(url);
		this.optionsQueue.push(options);

		if(call!=null){
			this.callBackQueue.push(call);
		}else{
			this.callBackQueue.push("processAjax");
		}

		if(elementID!=null){
			this.elementsQueue.push(elementID);
//			processAjax("Loading...",elementID)
		} else {
			this.elementsQueue.push("NOTSPECIFIED");
		}

		this.processNext();
	},
	processNext: function() {

		if(activeRequest < this.batchSize)
		{
			if(this.urlQueue != ""){
				makePageRequest(this.urlQueue.shift(), this.optionsQueue.shift(), this.elementsQueue.shift(), this.callBackQueue.shift())
			}
		}
	}
};

function details_submit(frm,url,myspan_name,call) {

      var getstr = "";
      var newgetstr = "";

      for (i=0; i<frm.elements.length; i++) {

      	if (frm.elements[i].tagName == "INPUT") {

	         if ((frm.elements[i].type == "text") || (frm.elements[i].type == "hidden")) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	         }

	         if (frm.elements[i].type == "checkbox") {
	            if (frm.elements[i].checked) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	            } else {
//	               getstr += frm.elements[i].name + "=&";
//	               newgetstr += frm.elements[i].name + "=&";
	            }
	         }
	         if (frm.elements[i].type == "radio") {
	            if (frm.elements[i].checked) {
	               getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
	            }
	         }
      	}
      	if (frm.elements[i].tagName == "TEXTAREA") {
            getstr += frm.elements[i].name + "=" + frm.elements[i].value + "&";
         }
      	if (frm.elements[i].tagName == "SELECT") {
            var sel = frm.elements[i];
            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
         }
      }

//      alert(url+getstr)

      AjaxQueue.push(url,getstr,myspan_name,call);
}


// *******************Archive Search Start ******************

function contents(result,my_span){
		ret_arr = eval(result);
		fillDropDown(ret_arr[0],ret_arr[1]);
   }

   function get(obj,theform) {

//   		document.getElementById('myspan').innerHTML = "<br>Loading data. Please wait...<br>";

      var getstr = "?";
      amp = "";

      hideThem = 1;

//      if(obj == "category"){
//      	getstr += "category=" + theform.elements["category"].value;
//   		amp = "&";
//      	obj = "year";
//      	if(hideThem == 1)
//      		hideAll("category");
//
//      	hideThem = 0;
//      }
//
//      if(obj == "year"){
//      	getstr += amp+"year=" + theform.elements["year"].value;
//   		amp = "&";
//      	obj = "show";
//
//      	if(hideThem == 1)
//      		hideAll("category");
//
//      	hideThem = 0;
//      }
//
//      if(obj == "award"){
//      	getstr += amp+"award=1";
//   		amp = "&";
//      	obj = "show";
//      }
//
//      if(obj == "show"){
//      	getstr += amp+"show=" + theform.elements["show"].value;
//
//      	if(hideThem == 1)
//      		hideAll("year");
//
//      	hideThem = 0;
//      }

	if(obj == "category"){
      	getstr += "category=" + theform.elements["category"].value;
   		amp = "&";
      	obj = "show";
      	if(hideThem == 1)
      		hideAll("award");

      	hideThem = 0;
      }

      if(obj == "award"){
      	getstr += amp+"award=1";
   		amp = "&";
      	obj = "show";
      	hideThem = 0;
      }

      if(obj == "show"){
      	getstr += amp+"show=" + theform.elements["show"].value;
   		amp = "&";
      	obj = "year";

      	if(hideThem == 1)
      		hideAll("show");

      	hideThem = 0;
      }

      if(obj == "award"){
      	getstr += amp+"award=1";
   		amp = "&";
      	obj = "category";
      }

      if(obj == "year"){
      	getstr += amp+"year=" + theform.elements["year"].value;

      	if(hideThem == 1)
      		hideAll("year");

      	hideThem = 0;
      }

//      alert('/get_combo/'+getstr);

		AjaxQueue.push('/get_combo/'+getstr,'','myspan','contents');

   }

   function fillDropDown(dropdown,ret_arr){

   		newOptions = eval(ret_arr);

   		if((newOptions.length > 1) || (dropdown == "year")){

	   		drop = eval("document.search."+dropdown);

			toggleTable('el_'+dropdown,1);

			drop.focus();

			if(dropdown == "show"){
				dropdown_name = "Channel";
			}else{
				dropdown_name = dropdown;
			}

			drop.length = 1;
			drop.options[0] = new Option("- - Select "+dropdown_name+" - -");
		   	drop.options[0].value = '0';
			drop.options[0].selected = true;

			for(var i= 0; i < newOptions.length; i++) {

				drop.length=i+1;
				thisEntry = newOptions[i][1];
				newOption = new Option( thisEntry );
				newOption.value = newOptions[i][0];
				drop.options[i+1] = newOption;
			}
   		}else{
   			document.getElementById('myspan').innerHTML = "";
   		}

//		if(dropdown == "year"){
//			get('award',document.search)
//			if((dropdown == "year") && (newOptions.length == 1)){
//				get('year',document.search);
//			}
//		}else{
		if(dropdown == "category"){
			get('award',document.search)
			if((dropdown == "category") && (newOptions.length == 1)){
				get('category',document.search);
			}
		}else{
			document.getElementById('myspan').innerHTML = "";
		}
	}

	function hideAll(elv){

//		alert(elv);

		elements = new Array("year", "show" , "category","award", "sub_category");
		hide = 0;

		for(var x= 0; x < 5; x++) {
			if(hide == 1){
				toggleTable('el_' + elements[x],0);
				document.search.elements[elements[x]].value = "";
			}

			if(elements[x] == elv){
				hide = 1;
			}
		}
	}
// *******************Archive Search end ******************

