function showSecondary( elem )
{
	if(elem.checked){
		$('secondary-listings-wrapper').style.display = 'block';	
	}
	else
	{
		$('secondary-listings-wrapper').style.display = 'none';	
	}
	
}

function loadCategories( eleObj, mapToId, parentId, catId )
{
	eleObj.defaultClass = eleObj.className;
	eleObj.className = eleObj.className + ' loading';
	
	document.getElementById('submit-button').disabled = 'disabled';
	
	new Ajax.Request(
		'/members/categories/get', {
	  		method: 'post',
	  		parameters: {
	  			"data[map_to]": mapToId,
	  			"data[id]": catId,
	  			"data[parent_div]": parentId
	  		},
			onSuccess: function(data) {
										
				if (catId)
				{
					setOpen( eleObj );
					
					loadAttributes(document.getElementById(parentId+'Attributes'), mapToId, parentId, catId);
				}
				else
				{
					clearNode(eleObj);
					eleObj.className = eleObj.defaultClass;
				}
				
				if (data.responseXML.getElementsByTagName('ul').length > 0)
				{
					eleObj.appendChild(_importNode(data.responseXML.documentElement, true));
				}
			},
			asynchronous: false
		}
	);
	
	document.getElementById('submit-button').disabled = '';
}

function loadAttributes( eleObj, mapToId, parentId, catId )
{
	clearNode(eleObj);
	
	new Ajax.Request(
		'/members/categories/get_attributes', {
	  		method: 'post',
	  		parameters: {
	  			"data[category_id]": catId,
	  			"data[map_to]": mapToId
	  		},
			onSuccess: function(data) {
				if (data.responseXML.getElementsByTagName('div').length > 0)
				{
					eleObj.appendChild(_importNode(data.responseXML.documentElement, true));
				}
			},
			asynchronous: false
		}
	);

	setOpenClass( document.getElementById(mapToId+catId) );
}

function setCategory( parentId, catValue, eleId )
{	
	// check to see if the category is already open
	if (!document.getElementById(eleId+catValue).open)
	{
		document.getElementById(eleId).value = catValue;
		
		selected = getElementsByClassName( document.getElementById(parentId), 'a', 'selected' );

		for (var i = 0; i < selected.length; i++)
		{
			selected[i].className = '';
		}
		
		// set current class for the selected item
		setSelectedClass( document.getElementById(eleId+catValue).getElementsByTagName('a')[0] );
		setOpenClass( document.getElementById(eleId+catValue) );
		
		// load subcategories
		loadCategories( document.getElementById(eleId+catValue), eleId, parentId, catValue );
	}
	// if so close it
	else
	{
		// clear attributes
		clearNode(document.getElementById(parentId+'Attributes'));
		
		document.getElementById(eleId).value = '';
		
		// set it to closed
		setClosed( document.getElementById(eleId+catValue) ); 
		
		selected = getElementsByClassName( document.getElementById(parentId), 'a', 'selected' );

		for (var i = 0; i < selected.length; i++)
		{
			selected[i].className = '';
		}
		
		// remove the sub categories from the dom
		if (document.getElementById(eleId+catValue).getElementsByTagName('ul').length > 0)
		{
			document.getElementById(eleId+catValue).removeChild(document.getElementById(eleId+catValue).getElementsByTagName('ul')[0]);
		}
		
		// set current class for the selected item
		document.getElementById(eleId+catValue).getElementsByTagName('a')[0].className = '';
		setClosedClass( document.getElementById(eleId+catValue) ); 
	}
}

function checkContactType(value)
{
	document.getElementById('submit-button').disabled = 'disabled';
	
	clearNode(document.getElementById('contact-types'));
	
	new Ajax.Request(
		'/admin/contacts/contact_types/'+(value == ''?'f':'t')+'/inst:contacts', {
	  		method: 'get',
			onSuccess: function(data) {							
					document.getElementById('contact-types').appendChild(_importNode(data.responseXML.documentElement, true));
			},
			asynchronous: false
		}
	);
	
	document.getElementById('submit-button').disabled = '';
}

function setOpen( node )
{
	node.open = true;
}

function setOpenClass( node )
{
	node.className = 'open';
}

function setClosed( node )
{
	node.open = false;
}

function setClosedClass( node )
{
	node.className = 'closed';
}

function setSelectedClass( node )
{
	node.className = 'selected';
}

function setLoading( node )
{
	node.className = 'loading';
}

function checkValues( one, two )
{
	if (document.getElementById('MemberSecondCategory').checked && document.getElementById(one).value == document.getElementById(two).value)
	{
		alert("If you wish to be included in two categories, please select different categories.");
		
		return false
	}
	
	return true;
}

function clearNode( node )
{        
	while (node.hasChildNodes())
	{
		node.removeChild(node.childNodes[0]);
	}    
}

function clearField( fieldId )
{
	document.getElementById(fieldId).value = '';
}

function addTimeSet( eleId, templateId )
{
	document.getElementById(eleId).appendChild(
		_importNode(document.getElementById(templateId).getElementsByTagName('p')[0], true)
	);
}

function deleteTimeSet( eleId, setNode )
{
	document.getElementById(eleId).removeChild( setNode );
}

function calculateDuesOutstanding()
{
	var paid;
	var billed;
	
	if (document.getElementById('PaidDue0Amount').value != '')
	{
		 paid = parseFloat(document.getElementById('PaidDue0Amount').value.replace(/[^0-9.]/,""));
	}
	else
	{
		paid = 0;
	}
	
	if (document.getElementById('BilledDue0BeforeDiscount').value != '')
	{
		 billed = parseFloat(document.getElementById('BilledDue0BeforeDiscount').value.replace(/[^0-9.]/,""));
	}
	else
	{
		billed = 0;
	}
	
	document.getElementById('outstanding-dues').value = (billed-paid).toFixed(2);
}