var req;
var homereq;

//Preload images...
var img1 = new Image(); img1.src = "/images/add.gif";
var img2 = new Image(); img2.src = "/images/cancel.gif";
var img3 = new Image(); img3.src = "/images/delete.gif";
var img4 = new Image(); img4.src = "/images/edit.gif";
var img5 = new Image(); img5.src = "/images/match.gif";
var img6 = new Image(); img6.src = "/images/roster.gif";
var img7 = new Image(); img7.src = "/images/save.gif";
var img8 = new Image(); img8.src = "/images/search.gif";
var img9 = new Image(); img9.src = "/images/up_arrow.gif";
var img10 = new Image(); img10.src = "/images/down_arrow.gif";

function callHome()
{
	homereq = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
			homereq = new XMLHttpRequest();
		} catch(e) {
			homereq = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			homereq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				homereq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				homereq = false;
			}
		}
	}
	if(homereq) {
		homereq.onreadystatechange = resetCallHome;
		
		homereq.open("GET", "index.php?act=callHome", true);
		homereq.send("");
	}
}
function resetCallHome()
{
	if (homereq.readyState == 4) {
		// only if "OK"
		if (homereq.status == 200) {
			if (homereq.responseText == "logged in")
			{
				setTimeout('callHome()', 60000);
			}
		}
	}
}

function loadXMLDoc(url, post, callback) {
	req = false;
	// branch for native XMLHttpRequest object
	if(window.XMLHttpRequest) {
		try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
		}
	// branch for IE/Windows ActiveX version
	} else if(window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = false;
			}
		}
	}
	if(req) {
		if (callback == null || callback == '') req.onreadystatechange = processReqChange;
		else req.onreadystatechange = eval(callback);
		
		if (post == '' || post == null)
		{
			req.open("GET", url, true);
			req.send("");
		}
		else
		{
			req.open("POST", url, true);
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		        req.setRequestHeader("Content-length", post.length);
		        req.setRequestHeader("Connection", "close");
			req.send(post);
		}
	}
}


function getObject(objectId) {
  // checkW3C DOM, then MSIE 4, then NN 4.
  //
  if(document.getElementById && document.getElementById(objectId)) {
	return document.getElementById(objectId);
   }
   else if (document.all && document.all(objectId)) {  
	return document.all(objectId);
   } 
   else if (document.layers && document.layers[objectId]) { 
	return document.layers[objectId];
   } else {
	return false;
   }
}

function enableSelection (id, type) {
	var form = null;
	var updateCol = null;
	
	form = getObject ("update"+type+id);
	updateCol = getObject ("updateCol"+type+id);
		
	if (!form) return;
	if (!updateCol) return;
	
	for (i = 0; i < form.length; i++) {
		form[i].disabled = false;
	}
	
	while (updateCol.childNodes.length > 0) {
		updateCol.removeChild(updateCol.childNodes[0]);
	}
	
	var a = document.createElement ("A");
	a.href="javascript:saveRecord("+id+",'"+type+"');";
	var img = document.createElement ("IMG");
	img.src = "/images/save.gif";
	img.border = "0";
	img.alt = "Save";
	img.title = "Save";
	a.appendChild(img);
	
	updateCol.appendChild(a);
	//updateCol.appendChild(document.createElement("BR"));
	
	var b = document.createElement ("A");
	b.href="javascript:cancelUpdate("+id+",'"+type+"');";
	//b.appendChild (document.createTextNode("Cancel"));
	img = document.createElement ("IMG");
	img.src = "/images/cancel.gif";
	img.border = "0";
	img.alt = "Cancel";
	img.title = "Cancel";
	b.appendChild(img);
	updateCol.appendChild(b);

	updateCol.appendChild(document.createElement("BR"));

	if (type == "Location")
	{
		var cmpD = getObject ("complianceDiv"+id);
		if (cmpD)
		{
			cmpD.style.display = "block";
		}
	}
}

function scaleDivUp (id, hgt, perc)
{
	var el = getObject (id);

	if (el)
	{
		el.style.height = hgt + "px";
		if (hgt < el.scrollHeight)
		{
			perc = perc - 5;
			if (perc < 1)
			{
				perc = 5;
			}
			hgt += perc;

			setTimeout ("scaleDivUp('"+id+"',"+hgt+","+perc+")", 20);
		}
	}
}

function scaleDivDown (id, perc)
{
	var el = getObject (id);

	if (el)
	{
		var curHt = parseInt(el.style.height);
		if (curHt > perc)
		{
			curHt -= perc;
			el.style.height = curHt + "px";

			perc -= 5;

			if (perc < 1)
			{
				perc = 5;
			}
			setTimeout ("scaleDivDown('"+id+"',"+perc+")", 20);
		}
		else
		{
			el.style.height = "1px";
			el.style.visibility = "hidden";
			el.style.position = "absolute";
		}
	}
}

function showInfo (id) {
	var col = null;
	var layer = null;
	var current = null;
	
	col = getObject ("visibleInfo");
	layer = getObject (id);
	current = getObject (currentVisible);
	
	if (col == null || layer == null || current == null) return false;
	
	/************
	* Derek Carlson
	* Added: 03/02/08
	* Check if the pane we are navigating away from needs to be saved first, and warn user.
	***/
	
	if (currentVisible == "basic")
	{
		var stillGo = isDirty(document.basicForm);
		
		if (!stillGo) return;
	}
	
	current.className = "hiddenInfoLayer";
	document.body.appendChild (current);
				
	layer.className = "visibleInfoLayer";
	col.appendChild (layer);
	currentVisible = id;
}

function isDirty(frm)
{
	//var frm = document.catForm;
	var notDirty = true;
	for (i = 0; i < frm.elements.length; i++)
	{
		if (frm.elements[i].value != frm.elements[i].defaultValue && frm.elements[i].defaultValue != null) notDirty = false;
		/*var element = frm.elements[i];
        var type = element.type;
        if (type == "checkbox" || type == "radio")
        {
            if (element.checked != element.defaultChecked)
            {
                notDirty = false;
            }
        }
        else if (type == "hidden" || type == "password" || type == "text" ||
                 type == "textarea")
        {
            if (element.value != element.defaultValue)
            {
                notDirty = false;
            }
        }
        else if (type == "select-one" || type == "select-multiple")
        {
            for (var j = 0; j < element.options.length; j++)
            {
                if (element.options[j].selected !=
                    element.options[j].defaultSelected)
                {
                	alert(element.options[j].defaultSelected.value);
                    notDirty = false;
                }
            }
        }*/
	}
	
	if (!notDirty)
	{
		return confirm('Are you sure you want to leave this page without saving first?');
	}
	return notDirty;
}
