//**************************************************************
//* GLOBALS
//**************************************************************
var homeURL       = top.location.href;
var windowStatus  = "BADGES BY KEN";
var NETSCAPE      = (document.all == null)? true:false;
var NETSCAPEPAD   = 0;
var moreWin       = null;
var helpWin       = null;
//**************************************************************

//**************************************************************
//INITS
//**************************************************************
var pos = homeURL.lastIndexOf("/")
if ( pos <= 0 )
{
	pos = homeURL.lastIndexOf("\\")
}
homeURL = homeURL.substr(0,pos);
//**************************************************************


//**************************************************************
//* FUNCTION: AddNames
//**************************************************************
function AddNames(addNamesFlag,addTitlesFlag,addEscortFlag)
{
	var height = 400;
	var width = 620;

	var moreLocation;
	var webArgs = "?addNamesFlag=" + addNamesFlag + "&addTitlesFlag=" + addTitlesFlag + "&addEscortFlag=" + addEscortFlag;
	var moreLocation  = "../options/moreNames.htm" + webArgs;
	
	if (moreWin == null)
	{
		if (NETSCAPE)
		{
			height = height + 20;
		}
		moreWin = window.open(moreLocation,"moreWin",'toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,status=no,resizable=0,width=' + width + ',height=' + height)
	}
	else
	{
		moreWin.focus();
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: AddNamesToOrder
//**************************************************************
function AddNamesToOrder(list)
{
	var numNames = list.length;
	var header   = FindHeader();
	var names    = new Array();
	
	if (numNames > 0)
	{	
		if (header != null)
		{
			for (index = 0; index < numNames; index++)
			{
				//alert ("ADDING NAME: " + list.options[index].text + " TO ORDER");
				names[index] = list.options[index].text;
			}
			header.SaveNames(names);		
		}
	}
	else
	{
		header.SaveNames(null);
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: ChangeText
//**************************************************************
function ChangeText(id,str)
{
	if (NETSCAPE)
	{
		curLayer = id.indexOf('.') != -1 ? eval(id) : document[id];
		if (!curLayer.newLayer)
		{
			var newLayer = curLayer.newLayer = new Layer (curLayer.clip.width, curLayer);
			newLayer.clip.width = curLayer.clip.width;
			newLayer.clip.height = curLayer.clip.height;
			newLayer.bgColor = curLayer.bgColor;
			curLayer.visibility = 'hide';
			newLayer.visibility = 'show';
		}
		var newLayer = curLayer.newLayer;
		newLayer.document.open();
		newLayer.document.write(str);
		newLayer.document.close();
	} 
	else
	{
		document.all[id].innerHTML = str;
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: FindFooter
//**************************************************************
function FindFooter()
{
	var win = window;
	var counter = 0;
	while ( (win.footer == null) && (counter++ < 5) )
	{
		win = win.parent;
	}

	return (win.footer);
}
//**************************************************************

//**************************************************************
//* FUNCTION: FindHeader
//**************************************************************
function FindHeader()
{
	var win = window;
	var counter = 0;
	while ( (win.header == null) && (counter++ < 5) )
	{
		win = win.parent;
	}

	return (win.header);
}
//**************************************************************

//**************************************************************
//* FUNCTION: FindMain
//**************************************************************
function FindMain()
{
	var win = window;
	var counter = 0;
	while ( (win.MAIN == null) && (counter++ < 5) )
	{
		win = win.parent;
	}

	return (win.MAIN);
}
//**************************************************************

//**************************************************************
//* FUNCTION: FindTOC
//**************************************************************
function FindTOC()
{
	var win = window;
	var counter = 0;
	while ( (win.TOC == null) && (counter++ < 5) )
	{
		win = win.parent;
	}

	return (win.TOC);
}
//**************************************************************


//**************************************************************
//* FUNCTION: FinishOrder
//**************************************************************
function FinishOrder(nextPage, changeLocation)
{
	var header    = FindHeader();
	var toc       = FindTOC();
	var numInputs = 0;
	var order     = new Array();

	var allForms     = document.forms;
	var allLayers    = document.layers;
	var curForm      = null;

	if (moreWin	!= null)
		moreWin.close();

	if (helpWin != null)
		helpWin.close();		

	if (allForms.length <= 0)
	{
		if (NETSCAPE)
		{
			var allLayers = document.layers;
			for (var index=0; index<allLayers.length;index++)
			{
				allForms = document.layers[index].document.forms;
				for (var subIndex=0; subIndex<allForms.length; subIndex++)
				{
					curForm   = allForms[subIndex];
					order     = ProcessForm(curForm,order,numInputs);
					numInputs = order.length;
				}
			}
		}
	}
	else
	{
		for (var index=0; index<allForms.length; index++)
		{
			curForm   = allForms[index];
			order     = ProcessForm(curForm,order,numInputs);
			numInputs = order.length;
		}
	}
	if (header != null)
	{
		header.SaveOrder(order);
	}

	if (nextPage == null)
	{
		PrepareForNextOrder(changeLocation);
	}
	else
	{
		window.location.href = nextPage;
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: GetNameValues
//**************************************************************
function GetNameValues()
{
	var header = FindHeader();

	if (header != null)
	{
		return (header.glNames);
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: GetOrderValues
//**************************************************************
function GetOrderValues(valueToGet, OrderNumber)
{
	var header      = FindHeader();
	var Order       = null;
	var OrderInfo   = null;
	var foundValues = null;
	var numFound    = 0;

	if (OrderNumber == null)
	{
		OrderNumber = header.glCurOrderNum;
	}
	Order = header.glOrders[OrderNumber];
	
	if (Order != null)
	{
		for (var index=0; index<Order.length; index++)
		{
			OrderInfo = Order[index].split("=")
			if (OrderInfo[0] == valueToGet)
			{
				if (foundValues == null)
				{
					foundValues = new Array();
				}
				foundValues[numFound++] = OrderInfo[1];
			}
		}
	}
	else
	{
		//alert ("Hitting the back button may put your order in an unusual state.");
	}
	return (foundValues);
}
//**************************************************************



//**************************************************************
//* FUNCTION: getParams
//*  sample: url=:www.foo.com?addNamesFlag=1&addTitlesFlag=0
//*
//*		params = getParams()
//*		namesFlag = params['addNamesFlag'];
//*  	titleFlag = params['addTitlesFlag'];
//**************************************************************
function getParams() 
{
	var idx = document.URL.indexOf('?');
	var params = new Array();
	if (idx != -1) 
	{
		var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
		for (var i=0; i<pairs.length; i++) 
		{
			nameVal = pairs[i].split('=');
			params[nameVal[0]] = nameVal[1];
		}
	}
	return params;
}
//**************************************************************

//**************************************************************
//* FUNCTION: glResetTheOrder
//**************************************************************
function glResetTheOrder()
{
	var header      = FindHeader();
	if (header != null)
	{
		header.glNames = null;
	}	
}
//**************************************************************

//**************************************************************
//* FUNCTION: help
//**************************************************************
function help(helpPage)
{
	var height = 400;
	var width = 620;

	if (helpWin != null)
	{
		helpWin.close();
		helpWin = null;
	}	
	if (NETSCAPE)
	{
		height = height + 20;
	}
	helpWin = window.open(helpPage,"helpWin",'toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,status=no,resizable=0,width=' + width + ',height=' + height)
}
//**************************************************************

//**************************************************************
//* FUNCTION: PleaseWait
//**************************************************************
function PleaseWait()
{
	if (document.getElementById) 
	{ 
		document.getElementById('hidepage').style.visibility = 'hidden';
	}
	else 
	{
		if (NETSCAPE) 
		{
			document.hidepage.visibility = 'hidden';
		}
		else 
		{
			document.all.hidepage.style.visibility = 'hidden';
		}
	}
}
//**************************************************************

//**************************************************************
//* FUNCTION: PrepareForNextOrder
//**************************************************************
function PrepareForNextOrder(changeLocation)
{
	var header = FindHeader();
	if (header != null)
	{
		if (NETSCAPE)
		{
			header.document.CheckOutButton.visibility="show";
			header.document.PrintButton.visibility = "hide";
		}
		else
		{
			header.CheckOutButton.style.visibility="visible";
			header.PrintButton.style.visibility="hidden";
		}

		if (header.glCurHomeButton == null)
		{
			header.glCurHomeButton = 1;
		}
		if (changeLocation == null) {
			changeLocation = true;
		}
		if (changeLocation == true) {
			top.TOC.ChangeFrame(header.glCurHomeButton,'HOME');
			top.TOC.ResetMenuButtons();
			top.TOC.SetActiveButton(1);
			//top.TOC.ChangeFrame(1,'HOME');
			//toc.Home.onclick();
		}
	}
}
//**************************************************************


//**************************************************************
//* FUNCTION: ProcessForm
//**************************************************************
function ProcessForm(curForm,order,numInputs)
{
	var value        = null;
	var name         = null;
	var curInput     = null;
	var curInputType = null;
	var curOption    = null;

	for (var subIndex=0; subIndex<curForm.length;subIndex++)
	{
		curInput     = curForm[subIndex];
		curInputType = curInput.type.toLowerCase();
		value        = null;
		name         = curInput.name;
		switch (curInputType)
		{
			case "radio":
				if (curInput.checked == true)
				{
					value = curInput.value;
					name  = curInput.name;
				}
				break;
			case "text":
			case "hidden":
				value = curInput.value;
				break;
			case "select":
			case "select-one":
			case "select-multiple":
				for (var option=0; option<curInput.options.length;option++)
				{
					curOption = curInput.options[option];
					if (curOption.selected == true)
					{
						if (value == null)
						{
							value = curOption.text;
						}
						else
						{
							value = value + " " + curOption.text;
						}
					}
				}
				break;
			default:
				break;
		}
		if ( value != null )
		{
			if ( value.length > 0 )
			{
				order[numInputs++] = name + "=" + value;
			}
		}
	} 

	return (order);
}

//**************************************************************
//* FUNCTION: getOrderNumber
//**************************************************************
function getOrderNumber() {
	var today    = new Date();
	var orderNum = "";
	var year     = today.getFullYear();
	var month    = today.getMonth()+1;
	var day      = today.getDate();
	var seconds  = today.getSeconds();
	var hours    = today.getHours();
	var minutes  = today.getMinutes();
	
	if (month < 10)
	{
		month = "0" + month;
	}
	if (day < 10)
	{
		day = "0" + day;
	}
	if (hours < 10)
	{
		hours = "0" + hours;
	}
	if (minutes < 10)
	{
		minutes = "0" + minutes;
	}
	if (seconds < 10)
	{
		seconds = "0" + seconds;
	}
	
	orderNum += year  + "-" + month    + "" + day     + "-";
	orderNum += hours + ""  + minutes  + "" + seconds;

	return (orderNum);
}


//**************************************************************
//* FUNCTION: SetBadgeColor
//**************************************************************
function SetBadgeColor(orderNumber, badgeColor, changeLocation)
{
	var header = FindHeader();
	
	header.UpdateOrder(orderNumber, "BadgeColor=" + badgeColor);
	PrepareForNextOrder(changeLocation);
}
//**************************************************************

//**************************************************************
//* FUNCTION: SetTitle
//**************************************************************
function SetTitle(msg)
{
	var htmlText;

	htmlText = ColorTheMessage(msg);
	document.write(htmlText);
}

//**************************************************************
//* FUNCTION: ColorTheMessage
//**************************************************************
function ColorTheMessage(msg) {
	var len,c
	var color;
	var htmlText;
			
	len = msg.length;
	htmlText = "";
	for (c=0 ; c < len ; c++ )
	{
		thisChar = msg.charAt(c);
				
		color = c % 4;

		switch (color)
		{
			case 0:
				color="red";
				break;
			case 1:
				color="blue";
				break;
			case 2:
				color="green";
				break;
			case 3:
				color="black";
				break;
			default:
				color="yellow";
				break;
		}

		if (thisChar != "\n")		
			htmlText += "<FONT COLOR=\"" + color + "\">" + thisChar + "</FONT>"
		else
			htmlText += "<BR>"
	}
	return (htmlText);
}

//**************************************************************
//* FUNCTION: Trim
//**************************************************************
function Trim(string)
{
	var stringLength = string.length;
	var returnString = "";
	var beginPos = 0;
	var endPos = stringLength;
	var index;

	for (index = stringLength-1; index > 0, string.charAt(index) == " ";index--);
	endPos = index+1;
	
	if (endPos != 0)
	{
		for (index = 0; index < stringLength, string.charAt(index) == " ";index++);
		beginPos = index;
		returnString = string.substring(beginPos,endPos);
	}
	else
	{
		returnString = ""; //the entire string is blank.
	}		

	return (returnString);
}
//**************************************************************

