/*** local Javascript float routines ***************************************/

var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = qCalendarGetMouseXY;
var qCalendarMouseX = 0;
var qCalendarMouseY = 0;

function qCalendarGetMouseXY(e) {
	if (IE) {
		qCalendarMouseX = event.clientX + document.body.scrollLeft;
		qCalendarMouseY = event.clientY + document.body.scrollTop;
	}
	else {
		qCalendarMouseX = e.pageX;
		qCalendarMouseY = e.pageY;
	}
	return true;
}

function qCalendarDetailsFloatOn(divLongDesc, theme, id) {
	
	// move the div box
	document.getElementById(divLongDesc).style.left=qCalendarMouseX + 'px';
	document.getElementById(divLongDesc).style.top=qCalendarMouseY + 'px';

	// display content
	document.getElementById(divLongDesc).style.visibility='visible';
	qCalendarDetails(divLongDesc, theme, id);
}

function qCalendarAllDetailsFloatOn(divLongDesc, theme, d, m, y, c) {
	// move the div box
	document.getElementById(divLongDesc).style.left=qCalendarMouseX + 'px';
	document.getElementById(divLongDesc).style.top=qCalendarMouseY + 'px';
	
	// display content
	document.getElementById(divLongDesc).style.visibility='visible';
	qCalendarAllDetails(divLongDesc, theme, d, m, y, c);
}

function qCalendarDetailsFloatOff(divLongDesc) {
	// hid float
	document.getElementById(divLongDesc).style.visibility='hidden';
}

/*** AJAX client-side Javascript ********************************************/

function createQCObject() {
   var req;
   if(window.XMLHttpRequest){
	  // Firefox, Safari, Opera...
	  req = new XMLHttpRequest();
   } else if(window.ActiveXObject) {
	  // Internet Explorer 5+
	  req = new ActiveXObject('Microsoft.XMLHTTP');
   } else {
	  alert('Problem creating the XMLHttpRequest object');
   }
   return req;
}

// Make the XMLHttpRequest object
var xhr = createQCObject();

//  qcalendarsyspath is set in controller.php

function displayQCalendar(theme, divCalendar, divLongDesc, d, m, y, c) {
	var ran_no = new Date().getTime();
	xhr.open('get', qcalendarsyspath+'controller.php?theme='+theme+'&divCalendar='+divCalendar+'&divLongDesc='+divLongDesc+'&d='+d+'&m='+m+'&y='+y+'&c='+c+'&ran='+ran_no);
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200) {
			var response = xhr.responseText;
			if(response) {
				document.getElementById(divCalendar).innerHTML = response;
			}
		}
	}
	xhr.send(null);
}

function qCalendarDetails(divLongDesc, theme, id) {
	var ran_no = new Date().getTime();
	xhr.open('get', qcalendarsyspath+'controller.php?theme='+theme+'&id='+id+'&ran='+ran_no);
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200) {
			var response = xhr.responseText;
			if(response) {
				document.getElementById(divLongDesc).innerHTML = response;
				
			}

		}
	}
	xhr.send(null);
}

function qCalendarAllDetails(divLongDesc, theme, d, m, y, c) {
	var ran_no = new Date().getTime();
	xhr.open('get', qcalendarsyspath+'controller.php?theme='+theme+'&d='+d+'&m='+m+'&y='+y+'&c='+c+'&ran='+ran_no);
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200) {
			var response = xhr.responseText;
			if(response) {
				document.getElementById(divLongDesc).innerHTML = response;
			   
				
				   if(document.getElementById('dateer')){
				   document.getElementById('dateer').innerHTML = "";}
			
			    document.getElementById('datec').value = m + '/'+ d +'/' +y;
				document.getElementById('conflocation').value = document.getElementById('semaddress').innerHTML;
				document.getElementById('conftime').value = document.getElementById('time').innerHTML;
		      if(  document.getElementById('filename')){
				initialize('js/' + document.getElementById('filename').innerHTML);}
			}
		}
	}
	xhr.send(null);
}

function hasClass(el, clss)
	{
		var m = reg = new RegExp('(\\s|^)'+clss+'(\\s|$)');
       return	 el.className.match(m);
	 
		}

function addActive(el)
    {
		var clss = "activeDate";
		if(el.parentNode){
			if(! hasClass(el.parentNode, clss))
			{
				restoreTD();
				this.removeClass(el.parentNode, 'withLink');
				el.parentNode.className += " " + clss;
				
			}}
			
	}

function addClass(el, clss)
    {
		
			if(!hasClass(el, clss))
			{
				
				el.className += " " + clss;
				
			}
			
	}

function removeClass(el,clss) {
			if (hasClass(el,clss)) {
						var reg = new RegExp('(\\s|^)'+clss+'(\\s|$)');
                        el.className=el.className.replace(reg,' ');
									}
}
function restoreTD()
{
	
	var cells = document.getElementsByTagName("td");
	if(cells){
	for(var i=0; i< cells.length; i++)
			{
				if (hasClass(cells[i], 'activeDate'))
					{
						removeClass(cells[i], 'activeDate');
						addClass(cells[i], 'withLink');
						}
				}
	}
	}