// JavaScript Document
function swapTab(o)
{
	if(o.className == "tab_unselected")
	{
		o.style.cursor = "hand";
		o.className = "tab_over";
	}
	else if(o.className == "tab_over")
	{
		o.className = "tab_unselected";
	}
	else
	{
		o.style.cursor = "default";
	}

}
function fieldValueBackup(o)
{
	if(o.originalValue || (o.originalValue && o.originalValue == ""))
	{
		//alert("fVB:"+o.value+":\nOriginalValue:"+o.originalValue+":");
		o.lastValue = o.value;
	}
	else
	{
		if(o.originalValue != "")
		{
		//alert("fVB2:"+o.value+":\nOriginalValue:"+o.originalValue+":");
		o.originalValue = o.value;
		}
		o.lastValue = o.value;
	}
}
function checkValueChanged(o)
{
	if(o.originalValue != o.value)
	{
		//alert("HERE");
		//alert("cVC:"+o.value+":\nOriginalValue:"+o.originalValue+":");
		valueChanged(o);
	}
	else
	{
		//alert("cVC2:"+o.value+":\nOriginalValue:"+o.originalValue+":");
		clearInputSignals(o);
	}
}

function valueChanged(o)
{
	//alert("VC:"+o.value+":\nOriginalValue:"+o.originalValue+":");
	getStyleObject(o).border="1px dashed #FFFF00";
}

function backupObject(o)
{
	if(!o.beenHere)
	{
		o.beenHere = true;
		o.oldStyle = o.style;
	}
}
function entryConfirm(storyID) {
var storyPass = storyID;
var confirmDelete = window.confirm("Are you sure you wish to delete this story?");
if (confirmDelete)
	window.location = "delete_story.asp?storyID=" + storyID;
}
function success()
{
	if(success.arguments.length > 0)
		newPage = success.arguments[0];
	else
		newPage = "user_home.asp";
	setTimeout("gotoPage()", 100);
}
function incorrect()
{
	var pass = document.getElementById('password');
	pass.value = "";
	pass.focus();
}

function doOtherStuff()
{

}

function verifyFields(form)
{
	if(!validationOverride)
	{
		var ret = true;
		submittedForm = form;
		//var errors = new Array();
		var msg = "<font color='#FF0000'>";
		var tempName;
		
		var collections = new Array(form.elements);
		var collectionTypes = new Array("form");
		
		/*
		var fieldsets = document.getElementsByTagName("fieldset");
		for(var i = 0; i < fieldsets.length; ++i)
		{
			//alert("Adding fieldset collection.");
			if(fieldsets[i].childNodes)
			{
			collections[collections.length] = fieldsets[i].childNodes;
			collectionTypes[collectionTypes.length] = "fieldset";
			}
		}
		*/
		//alert(collections.length);
		
		for(var i = 0; i < collectionTypes.length; ++i)
		{
			//alert(collectionTypes[i] + ": " + collections[i].length);
		}
		
		for(var k = 0; k < collectionTypes.length; ++k)
		{
		//alert("k:"+k);
		var collection = collections[k];
		//alert(k + ": " + collection.length);
		
		//alert(form.elements.length);
		for(var i = 0; i  < collection.length; ++i)
		{
			if(collection[i].name && collection[i].type)
			{
			//alert(i+":"+collection[i].name);
			var type = (collection[i].type).toLowerCase();
			//alert(type);
			var ignore = collection[i].getAttribute("ignoreValidation");
			if(type != "hidden" && type != "" && !ignore)
			{			
				var inputID = collection[i].id;
				if(inputID)
					if(inputID.search("_other") != -1)
						continue;
				var r = true;
				backupObject(collection[i].parentNode);
				//Perform validations on current element
				if(collection[i].getAttribute('required') && collection[i].getAttribute('required').toLowerCase() == "true")
					if(collection[i].value == "")
					{	
						//alert(collection[i].name);
						msg += "<a onclick='gotoFormElement(" + i + ");'><b>" + collection[i].getAttribute('label') + "</b> is a required field.</a><br>";
						//alert(collection[i].getAttribute("name")+":"+collection[i].required+":");
						r = r && false;
					}
					else if(type == "radio" || type == "checkbox")
					{

						if(collectionTypes[k] == "fieldset")
							alert("Checking " + collection[i].name);
							
						var tmpRad = null;
						if(collectionTypes[k] == "form")
							tmpRad = eval("document."+form.name+"."+collection[i].name);
						else if(collectionTypes[k] == "fieldset")
							tmpRad = eval("document."+collection[i].name);
							
						if(tmpRad)
						if(!tmpRad.alreadyChecked)
						{
							tmpRad.alreadyChecked = true;
							if(NoneWithCheck(tmpRad))
							{
								msg += "<a onclick='gotoFormElement(" + i + ");'><b>" + collection[i].getAttribute('label') + "</b> is a required field.</a><br>";
								r = r && false;
							}
						}
						else
						{
							continue;
						}




					/*
						if(!(collection[i][0].getAttribute("alreadyChecked")))
						{
							var selected = false;
							alert(collection[i].length);
							for(var j = 0; j < collection[i].length; ++i)
							{
								var temp = collection[i][j];
								var tempType = (temp.type).toLowerCase();
								if(tempType == "radio" && temp.name == collection[i].name)
								{
									temp.setAttribute("alreadyChecked", true);
									if(temp.checked)
										selected = true;
								}
							}
							if(!selected)
							{
								msg += "<a onclick='gotoFormElement(" + i + ");'><b>" + collection[i].getAttribute('label') + "</b> is a required field.</a><br>";
								//alert(collection[i].name+":"+collection[i].required+":");
								r = r && false;
							}
						}
						*/
					}
				
				if(collection[i].getAttribute('compareto') && collection[i].getAttribute('compareto') != "")
				{
					//alert("HERE:"+collection[i].name);
					if(collection[i].value != "")
						if(!(new RegExp(collection[i].getAttribute('compareto'))).test(collection[i].value))
						{
							msg += "<a onclick='gotoFormElement(" + i + ");'><b>" + collection[i].getAttribute('label') + "</b> contains an inappropriate value.</a><br>";
							//alert(collection[i].name+"::"+collection[i].value+"::");
							r = r && (new RegExp(collection[i].getAttribute('compareto'))).test(collection[i].value);
						}
				}
				if(collection[i].getAttribute('sameas'))
					if(collection[i].value != collection[i+1].value)
					{
							msg += "<a onclick='gotoFormElement(" + i + ");'><b>" + collection[i].getAttribute('label') + "</b> does not verify correctly.</a><br>";
						//alert(collection[i].name+":::"+collection[i].value+":::");
						r = r && false;
					}
				
				//Apply or clear signals for current element
				if(r)
				{
					var elp = collection[i].parentNode;
					if(type == "radio")
						elp = collection[i].parentNode.parentNode.parentNode.parentNode;
					else if(type == "checkbox")
						elp = collection[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
					clearInputSignals(elp);
				}
				else
				{
					var elp = collection[i].parentNode;
					if(type == "radio")
						elp = collection[i].parentNode.parentNode.parentNode.parentNode;
					else if(type == "checkbox")
						elp = collection[i].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
						
					if(!getStyleObject(elp).backgroundColor)
						elp.backupBackground = "NONE";
					else
						elp.backupBackground = getStyleObject(elp).backgroundColor;
					
					getStyleObject(elp).backgroundColor = "#FBFF88";
					//alert(collection[i].parentNode.className);
					if(verifyFields.arguments.length > 1)
					{
						var a = (verifyFields.arguments[1]);
						a[a.length] = collection[i];
						//alert(a.length);
					}
				}
		
				ret = ret && r;
			}
			}
		}
		}

		if(!ret)	
		{
			alert("The field(s) indicated in yellow require(s) your attention before submitting. The field(s) may be required.");
			updateErrors(msg+"</font>");
			showErrorLog();
		}
		return ret;
	}
	else
		return true;
}
function clearInputSignals(o)
{
	var bb = o.getAttribute("backupBackground");
	
	if(bb && bb != "NONE")
	{
		getStyleObject(o).backgroundColor = bb;
	}
	else if(bb == "NONE")
		getStyleObject(o).backgroundColor = "";
	//else
		//o.removeAttribute("style");
}
var images = new Array(3);
images[0] = new Image();
images[1] = new Image();
//images[2] = new Image();

images[0].src = "/images/minus.gif";
images[1].src = "/images/plus.gif";
//images[2].src = "images/dot.gif";


function collapseExpand2(o)
{
	
	var num = o.id.replace("control_", "");
	var id = o.id;
	var node = getObject("node_container_"+num);
	var obj = getStyleObject(node);
	if(collapseExpand2.arguments.length > 1)
	{
		var forcedVal = collapseExpand2.arguments[1];
		if(obj)
		if(forcedVal == "none")
		{
			imageSwap(id, 1);
			obj.display = "none";
			//window.status = forcedVal;
		}
		else
		{
			imageSwap(id, 0);
			obj.display = ""; //"block";
		}
	}
	else
	{
		if(obj)
		if(obj.display == "none")
		{
			obj.display = ""; //"block";
			imageSwap(id, 0);
		}
		else
		{
			obj.display = "none";
			imageSwap(id, 1);
		}
	}
}
function imageSwap(id, index)
{
	var obj = getObject(id, false);
	obj.src = images[index].src;
}
function enableField()
{
	
	if(document.createUserForm.overAge.checked)
	{
		document.createUserForm.familyFilter.disabled=false;
	}
	else
	{
		document.createUserForm.familyFilter.checked = true;
		document.createUserForm.familyFilter.disabled=true;
	}
}


function birthField()
{
	var currentTime = new Date()
	
	if(currentTime - document.createUserForm.userBirth >= 18)
	{
		document.createUserForm.familyFilter.disabled=false;
	}
	else
	{
		document.createUserForm.familyFilter.checked = true;
		document.createUserForm.familyFilter.disabled=true;
	}
}


var to = null;
var badge_full = new Image();
badge_full.src = "/images/shield_full.gif";

var badge_empty = new Image();
badge_empty.src = "/images/shield_empty.gif";

var badge_half = new Image();
badge_half.src = "/images/shield_half.gif";

function changeBadges(badge)
{
	clearBadgeTO();
	for(var i = 1; i<=5; ++i)
	{
		if(i <= badge)
			getObject("badge_" + i).src = badge_full.src;
		else
			getObject("badge_" + i).src = badge_empty.src;
	}
}

function clearBadgeTO()
{
	if(to)
	{
		clearTimeout(to);
		to = null;
	}
}

function callClearBadges()
{
	if(!to)
	to = setTimeout("clearBadges(5)",50);
}

function clearBadges(badge)
{
	for(var i = 1; i<=5; ++i)
	{
		switch(resetBadgeState[i-1])
		{
			case 0:
				getObject("badge_" + i).src = badge_empty.src;
				break;
			case 1:
				getObject("badge_" + i).src = badge_full.src;
				break;
			case 2:
				getObject("badge_" + i).src = badge_half.src;
				break;
		}
	}
}
function reloadImage()
{
	// Create a new Date object
	theDate = new Date();

	// Refresh the image src to the image_car.asp "image", with the time on the end to force a refresh
	document["ver_code"].src = "imageVerification.asp?" + theDate.getTime();
}
function insertInputAtEnd()
{
	var o = getObject('form_inputs_container');
	o.appendChild(getNewInput());
}
function getNewInput()
{
	var iCount = getObject('inputCount');
	var iList = getObject('inputList');
	var proto = getObject('input_prototype');
	var c = parseInt(iCount.value);
	iCount.value = ++c;
	iList.value = iList.value + c + ",";

	getObject('field_name_container_prototype').innerHTML = "Input: " + c;
	var tmp = getObject('inputType_prototype');
	//alert(tmp);
	if(tmp)
		changeVisibleFields(tmp);
	//else
		//alert("I DON'T THINK SO!:"+"inputTypeID_"+c+":");
	var o2 = proto.cloneNode(true);
	getStyleObject(o2).display = ""; //"block";
	renameChildren(o2, "_prototype", "_"+c);
	return o2;
}



function enableChecked(checkBoxes, allCheck)
{
	for(var i = 0; i < checkBoxes.length; ++i)
	{
		checkBoxes[i].checked=allCheck.checked;
	}
	
//	if(document.emailUpdateForm.allPolice.checked)
//	{
//		
//		document.emailUpdateForm.policeStory.checked=true;
//	}
//	else if(document.emailUpdateForm.allFire.checked)
//	{
//		document.emailUpdateForm.fireStory.checked = true;
//	}
//	else if(document.emailUpdateForm.allDispatch.checked)
//	{
//		document.emailUpdateForm.dispatchStory.checked = true;
//	}
}
