
var request = false;
		
try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
	request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
		try {
			 request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
		 request = false;
		}  
	}
}

function toggleHour(workerId, hour, mysqlDate)
{
	var url = "/scheduler/toggleHour.php?workerID="+workerId+"&hour=" + hour +"&date=" + escape(mysqlDate);
//	document.getElementById('availability-nav').innerHTML = url;
	xmlHttpToggle(url);
}

function toggleDay(workerId,mysqlDate)
{
	var url = "/scheduler/toggleDay.php?workerID="+workerId+"&date=" + escape(mysqlDate);
//	document.getElementById('availability-nav').innerHTML = url;
	xmlHttpToggle(url);
}

function toggleDayDefault(workerId,mysqlDate)
{
	var url = "/scheduler/toggleDayDefault.php?workerID="+workerId+"&date=" + escape(mysqlDate);
//	document.getElementById('availability-nav').innerHTML = url;
	xmlHttpToggle(url);
}

function toggleWeek(workerId,mysqlDate)
{
	
	var url = "/scheduler/toggleWeek.php?workerID="+workerId+"&date=" + escape(mysqlDate);
//	document.getElementById('availability-nav').innerHTML = url;
	xmlHttpToggle(url);
}

function xmlHttpToggle(url)
{
	request.open("GET", url, true);
	
	request.onreadystatechange = grayBoxes;
	
	request.send(null);	
}

function grayBoxes()
{
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			var response = request.responseText.split("|");
			
			if(response[0] != 'onjob')
			{
				var e;
				var changeString;
				
				for(i = 0;i <= response.length; i++)
				{
					e = document.getElementById(response[i]);
//alert(response[i]);					
					i++;
					changeString = response[i];
//alert(changeString);
					if(e)
					{
						if(changeString == 'leave' || changeString == 'working' || changeString == 'no')
							e.className = changeString;
				
						if(changeString == 'checkbox')
							e.checked = !e.checked;
		
					}
				}
			}
			else
				alert('This estimator is scheduled for a job during this time period.');
		}
	}
}

function changeDate(dateString, fieldValue)
{
	document.getElementById('picktime').style.display = 'none';
	
	for(i = 1;i < days.length;i++)
	{
		if(days[i] == fieldValue)
		{	
			if(am[i] <= 0)
			{
				$('am').disabled = true;
				$('amLabel').className = 'disabled';
			}
			else
			{
				$('am').disabled = false;
				$('amLabel').className = '';
			}
			if(pm[i] <= 0)
			{
				$('pm').disabled = true;
				$('pmLabel').className = 'disabled';
			}
			else
			{
				$('pm').disabled = false;
				$('pmLabel').className = '';
			}
		}
	}
		
	document.getElementById('chosenDate').innerHTML = dateString;
	document.getElementById('am').value = fieldValue+'AM';
	document.getElementById('am').checked = false;
	document.getElementById('pm').value = fieldValue+'PM';
	document.getElementById('pm').checked = false;
	new Effect.Appear('picktime');
	
	
}

function showOtherType()
{
	var rooftype = document.getElementById('rooftype');
	if(rooftype.options[rooftype.selectedIndex].value == 7)
		document.getElementById('othertype').disabled = false;
	else
		document.getElementById('othertype').disabled = true;
}
function roundVal(val, dec){
	var result = Math.round(val*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function commission(jobID)
{
	var net = document.getElementById('net'+jobID);
	var percent = document.getElementById('percent'+jobID);
	var amount = document.getElementById('amount'+jobID);

	amount.value = roundVal(net.value * (percent.value / 100),2);	
}

function percent(jobID)
{
	var net = document.getElementById('net'+jobID);
	var percent = document.getElementById('percent'+jobID);
	var amount = document.getElementById('amount'+jobID);

	percent.value = Math.round((amount.value/net.value*100));	
}

var loadedCustomerIds = new Array();
var loadedCustomerInfo = new Array();

function getCustomerInfo(jobID)
{
	var useAjax = true;
	
	var url = "/scheduler/get-job-info.php?job="+jobID;
	
	request.open("GET", url, true);
	
	request.onreadystatechange = showCustomerInfo;
	
	request.send(null);
	
}

function showCustomerInfo()
{
	document.getElementById('update_status').style.display = 'none';
	
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			var response = request.responseText.split("|");
			
			if(response[0] == 'OK')
			{
				document.getElementById('job_info').innerHTML = response[2];
				document.getElementById('job_info').style.display = 'block';
			}
		}
	}
}
function updateSchedule(boxID)
{
	var box = document.getElementById(boxID);
	var parent = box.parentNode;
	
	if(parent.id.match(new RegExp("drop_slot\\b")))
		var url = '/scheduler/assign-job.php?parent='+parent.id+'&job='+boxID;
	
	if(parent.id.match(new RegExp("apps\\b")))
		var url = '/scheduler/remove-job.php?job='+boxID;
	
	if(parent.id== 'trash')
		var url = '/scheduler/cancel-job.php?job='+boxID;
	
	document.getElementById('update_status').innerHTML = url;
	//new Effect.Appear('update_status');
	
	$('job_info').style.display = 'none';
		
	request.open("GET", url, true);
	
	request.onreadystatechange = updateStatus;
	
	request.send(null);
	
}

function updateStatus()
{
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			var response = request.responseText.split("|");
			
			if(response[0] == 'OK')
			{
				document.getElementById('update_status').innerHTML = response[1];
				new Effect.Appear('update_status');
				
				window.setTimeout('new Effect.Fade(\'update_status\')',1000);
			}
		}
	}
}

function toggleEstimatorFields()
{
	document.getElementById('phone').disabled = !document.getElementById('phone').disabled;
	document.getElementById('startdate').disabled = !document.getElementById('startdate').disabled;
	document.getElementById('bonuspercent').disabled = !document.getElementById('bonuspercent').disabled;
	document.getElementById('bonusinterval').disabled = !document.getElementById('bonusinterval').disabled;
	document.getElementById('startbalance').disabled = !document.getElementById('startbalance').disabled;
}

function showComFields()
{
	if(document.getElementById('buildingtype')[document.getElementById('buildingtype').selectedIndex].value == 1)
		document.getElementById('companyname').disabled = true;
	else
		document.getElementById('companyname').disabled = false;
}

function paymentReport(checkID)
{
	window.open('payment-report.php?check='+checkID,'payment','width=400,height=500,location=no');	
}

function makeSlot(elementID)
{
	lists.push(elementID);
	Sortable.create(elementID, {dropOnEmpty:true, tag: 'p', containment: lists});
}

var selectedBox = null;

function highlight(jobBox, time_now, viewing_time)
{
	if (viewing_time < time_now) {
		return false;
	};
	var currentBox = 0;
	
	if(selectedBox)
	{
		selectedBox.className = selectedBox.className.substr(0,selectedBox.className.length-2);
		currentBox = selectedBox.id;
	}
	
	if(currentBox != jobBox)
	{
		selectedBox = $(jobBox);
		selectedBox.className = selectedBox.className.concat(' na');
		
		var jobIdArray = jobBox.split('_');
		getCustomerInfo(jobIdArray[1]); 
	}
	else
	{
		selectedBox = null;
		$('job_info').style.display = 'none';
	}
}

function assignJobTo(dateBox)
{
	var box = $(dateBox);

	if(selectedBox)
	{
		if(selectedBox.parentNode.id != dateBox)
		{
			box.appendChild(selectedBox);
			updateSchedule(selectedBox.id);
			
			selectedBox.className = selectedBox.className.substr(0,selectedBox.className.length-2);
			selectedBox = null;
		}
	}
}

function enterDate(field)
{
	if(field.value == 'Enter date')
	{
		field.value = '';
		field.className = '';
	}
}