
/* The xmlHttpRequest object/variable */
var xmlHttpRequest = null;
var READY_STATE_COMPLETE = 4;
var CON = 0;
var month = "";
var year = "";
var xmlreqs = new Array();
var colors = new Array(6);
colors[0] = "maroon";
colors[1] = "green";
colors[2] = "blue";
colors[3] = "pink";
colors[4] = "brown";
colors[5] = "black";

function CXMLReq(type, xmlhttp) 
{
  this.type = type;
  this.xmlhttp = xmlhttp; 
} 


/** Returns the xmlHttpRequest object **/
function getXmlHttpRequest()
{
  if (window.XMLHttpRequest)
    {
      xmlHttpRequest = new XMLHttpRequest();
    }
  else if (typeof ActiveXObject != "undefined")
    {
      xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
  return xmlHttpRequest;
}

function sendEventsHttpRequest(id,domainOrUserId,idb, urlname,domainOrUser, selMonth, selYear)
{
  month = selMonth;
  year = selYear;

  loadingEvents(urlname, id);
  var xmlHttpRequest = false;
  var httpMethod = "POST";
  xmlHttpRequest = getXmlHttpRequest();

  var url = "ProcessXmlRequest?req=903";
  if (xmlHttpRequest != null)
    {
      xmlHttpRequest.onreadystatechange = readyStateChangeCallbackEvent;
      xmlHttpRequest.open("POST", url, true);
      xmlHttpRequest.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');

      xmlHttpRequest.send("&id="+id+"&domainOrUser="+domainOrUser+"&domainOrUserId="+domainOrUserId);
    }
  var xmlreq = new CXMLReq('', xmlHttpRequest);
  xmlreqs.push(xmlreq);
}

function readyStateChangeCallbackEvent()
{
  var readyState = xmlHttpRequest.readyState;

  if (typeof(window['xmlreqs']) == "undefined")
    return;
  for (var i=0; i < xmlreqs.length; i++) 
    {
      if (xmlreqs[i].xmlhttp.readyState == 4) 
	{
	  if (xmlreqs[i].xmlhttp.status == 200 || xmlreqs[i].xmlhttp.status == 304) 
	    {
	      var data = xmlreqs[i].xmlhttp.responseText;
	      // 200 OK
	      // get response info here before splicing - see below on creating an xml object
	      xmlreqs.splice(i,1);
	      i--;

	      handle_response(i,data); 
	    }
	  else 
	    {
	      // error
	      xmlreqs.splice(i,1);
	      i--;
	    }
	}
    }
}

function handle_response(i, data)
{
  var currentDate = new Date();
  var tempMonth = currentDate.getMonth();
  if(tempMonth <= 9)
    {
      tempMonth = "0" + tempMonth;
    }

  var content = xmlHttpRequest.responseText;
  if (data == null)
    {
      var message = "There is a problem reading Feed cache file. Contact your Domain Administrator for more details";
    }
  else
    {
      var divId = "url"+CON;
      var eventDiv = document.getElementById(divId);
      if(eventDiv !=null)
	{
	  eventDiv.style.color = colors[CON];
	  eventDiv.innerHTML=data;
	  if(month == tempMonth && year == currentDate.getFullYear())
	    {
	      findHCalendarEvents();
	    }
	}
      var urlDiv = document.getElementById(CON);
      if(urlDiv != null)
	{
	  var fChild = urlDiv.lastChild;
	  urlDiv.style.color = "green" ;
	  var textvar = document.createTextNode("");
	  //urlDiv.appendChild(textvar);
	  if(fChild != null)
	    {
	      urlDiv.replaceChild(textvar, fChild);
	    }
	  else
	    {
	      urlDiv.appendChild(textvar);
	    }
	}
      CON = CON+1;
    }
}

function loadingEvents(urlname, id)
{
  var urlId = id;
  var urlDiv = document.getElementById(urlId);
  if(urlDiv != null)
    {
      var textVar = document.createTextNode("Loading events");
      urlDiv.appendChild(textVar);
    }
}

function selectCategory(form)
{
  var formName = form.name;
  var max = form.category.length;
  var cats="";
  for (var idx = 0; idx < max; idx++) {
    if (form.category[idx].checked == true) 
      {
	if(cats == "")
	  {
	    cats="/"+form.category[idx].value+"/";
	  }
	else
	  {
	    cats=cats+form.category[idx].value+"/";
	  }
      }
  }
  if(cats == "")
    {
      alert("Select category to publish the pagelet ");
      return;
    }
  form.selCats.value=cats;
  form.submit();
}


