/*************************************************************************
Copyright (c) 2006-2010 by TangoWire Corporation. All Rights Reserved.

You DO NOT have license, verbal, written, or implied, to copy, transfer,
or utilize this source code in any commercial, freeware, shareware, or
any other type of distributed application or documentation.
*************************************************************************/


function LocationListChanged(cID)
{
		if (cID == null) cID = -1;
		var cL = document.getElementById('NearestMajorCityID');
		var lL = document.getElementById('LocationID');
		var CityRow=document.getElementById('CityRow');
		var RadiusRow=document.getElementById('RadiusRow');

		if (lL.value=='-1')
		{
			lL.value='0';
		}

		if (lL.value=='0' || lL.value=='-1')
		{
			CityRow.style.display='none';
			RadiusRow.style.display='none';
		}
		else
		{
			CityRow.style.display='';
			if (cID > 0)
			{
				RadiusRow.style.display='';
			}
		}
		if ((cL != null) && (lL != null)) {
			var select = cL;
			select.style.width = cL.style.width;
			select.onchange = CityListChanged;
			while (select.options.length > 0) {
				var o = select.options[0];
				select.removeChild(o);
			}
			var option;
			option = document.createElement('OPTION');
			option.value = -1;
			option.text  = '';
			if (cID == -1) option.selected = true;
			select.options.add(option);
			var lID = parseInt(lL.value);
			var cs = lm.gC(lID);
			if (cs != null) {
				cs.sort(Ct_sA);
				var c;
				for (var i = 0; i < cs.length; i++) {
					c = cs[i];
					option = document.createElement('OPTION');
					option.value = c.id;
					option.text  = c.nm;
					if ((cID == c.id) || (cs.length == 1)) option.selected = true;
					select.options.add(option)
				}
			}
			select.value = cID;
			CityListChanged();
		}
}

var radiusList;

function Radius(value, text, rkm)
{
		this.value = value;
		this.text = text;
		this.rkm = rkm;
}

function Radius_sort(rA, rB) {
	if (rA == null) return -1;
	if (rB == null) return 1;
	if (rA.rkm == null) return -1;
	if (rB.rkm == null) return 1;
	if (rA.rkm < rB.rkm) return -1;
	if (rB.rkm < rA.rkm) return 1;
	return 0;
}

function CityListChanged()
{
	var CityList=document.getElementById('NearestMajorCityID');
	var RadiusRow=document.getElementById('RadiusRow');

	var cID = parseInt(CityList.value);
	if (cID > 0)
	{
		RadiusRow.style.display='';
		var lL = document.getElementById('LocationID');
		if (lL != null) {
			var c = lm.gIC(parseInt(lL.value), cID);
			if ((c != null) && (radiusList != null)) {
				var rL = document.getElementById('RadiusID');
				var rID = parseInt(rL.value);
				var useDefault = true;
				var select = rL;
				select.style.width = rL.style.width;
				while (select.options.length > 0) {
					var o = select.options[0];
					select.removeChild(o);
				}
				var listSize = 0;
				for (var i = 0; i < radiusList.length; i++) {
					var r = radiusList[i];
					if ((listSize < 4) && (r.rkm >= c.msr)) {
						option = document.createElement('OPTION');
						option.value = r.value;
						option.text  = r.text;
						select.options.add(option);
						listSize++;
						if (rID == r.value) useDefault = false;
					}
				}
				if (useDefault) rID = 40;
				select.value = rID;
			}
		}
	}
	else
	{
		RadiusRow.style.display='none';
	}
}

function ListMgr()
{
		this.list = new Array();
}

function ListMgr_addList(listID, title, formField, allSelectedText, divID)
{
		this.list[listID + ''] = new List(listID, title, formField, allSelectedText, divID);
}
ListMgr.prototype.addList = ListMgr_addList;

function ListMgr_addItem(listID, itemID, text)
{
		var list = this.list[listID + ''];
		if (list == null) {
			alert('You must first invoke the addList method before attempting to add an item to the list for listID: ' + listID);
		}
		list.addItem(itemID, text);
}
ListMgr.prototype.addItem = ListMgr_addItem;

function ListMgr_hideLists()
{
		var list;
		var div;
		for (var i in this.list) {
			list = this.list[i];
			div = document.getElementById(list.divID);
			if (div != null) div.style.display = 'none';
		}
}
ListMgr.prototype.hideLists = ListMgr_hideLists;

function ListMgr_updateHeader(listID)
{
		var list;
		var div;
		if (listID == null) {
			for (var i in this.list) {
				list = this.list[i];
				list.updateHeader();
			}
		} else {
			list = this.list[listID + ''];
			if (list) list.updateHeader();
		}
}
ListMgr.prototype.updateHeader = ListMgr_updateHeader;

function ListMgr_showList(listID)
{
		var list = this.list[listID + ''];
		if (list == null) return;
		var div = document.getElementById(list.divID);
		if (div != null) {
			div.style.display = 'block';
			var header = document.getElementById(list.divID + 'HDR');
			if (header == null) return;
			header.style.color = '#D59F02';
		}
}
ListMgr.prototype.showList = ListMgr_showList;

function ListMgr_getTitle(listID)
{
		var list = this.list[listID + ''];
		if (list == null) return '';
		return list.title;
}
ListMgr.prototype.getTitle = ListMgr_getTitle;

function List(listID, title, formField, allSelectedText, divID)
{
		this.listID = listID;
		this.title = title;
		this.formField = formField;
		this.allSelectedText = allSelectedText;
		this.divID = divID;
		this.list = new Array();
}

function List_addItem(itemID, text)
{
		this.list.push(new ListItem(itemID, text));
}
List.prototype.addItem = List_addItem;

function List_updateHeader()
{
		var header = document.getElementById(this.divID + 'HDR');
		if (header == null) return;
		var hasNoItems = true;
		var hasAllItems = true;
		var listText = new Array();
		for (x = 0; x < this.list.length; x++) {
			var chk = document.getElementById(this.formField + this.list[x].itemID);
			if (chk) {
				if (chk.checked) {
					listText.push(this.list[x].text);
					hasNoItems = false;
				} else {
					hasAllItems = false;
				}
			}
		}
		if (hasAllItems) {
			header.innerHTML = this.allSelectedText;
		} else if (hasNoItems) {
			header.innerHTML = '<SPAN STYLE=\"color:red;font-weight:bold;\">None - must select one item!</SPAN>';
		} else {
			header.innerHTML = listText.join(', ');
		}
		header.style.color = '';
		header.style.fontWeight = 'normal';
}
List.prototype.updateHeader = List_updateHeader;

function ListItem(itemID, text)
{
		this.itemID = itemID;
		this.text = text;
}

var listMgr = new ListMgr();

function CheckAllItems(isChecked, listID)
{
		var x;
		var chk;
		var list = listMgr.list[listID + ''];
		if (list == null) return;
		for (x = 0; x < list.list.length; x++) {
			chk = document.getElementById(list.formField + list.list[x].itemID);
			if (chk) chk.checked = isChecked;
		}

}