$j(document).ready(function() // get pully container templates
	{
	pullyInit = function()
		{
		pullyContainers = new Object();
		$j('.pullyMaster').each(function(x)
			{
			var pullyName = $j('.pullyMaster').eq(x).attr('name');
			pullyContainers[pullyName] = $j('.pullyMaster[name="' + pullyName + '"]').find('.pullyContainer:first').parent().html();
			})
		}
	pullyInit();
	})

function pullyChange(obj)
	{
	var pullyName = $j(obj).parentsUntil('.pullyMaster').parent().attr('name');
	// $j('.pullyMaster[name="' + pullyName + '"]').find('.pullyContainer:first').parent();
	// pullyContainers[pullyName] = $j('.pullyMaster[name="' + pullyName + '"]').find('.pullyContainer:first').parent().html();
	if ($j(obj).val() == 'other')
		{
		$j(obj).parent().next().show();
		$j(obj).parent().replaceWith($j(obj).parent().next().addClass('focusme'));
		$j('.focusme:visible [type="text"]').focus();
		$j('.focusme').removeClass('focusme');
		}
	}

function pullyAddAnother(obj)
	{
	var valuesArray = new Array();
	var removeText = $j(obj).parentsUntil('.pullyMaster').parent().attr('removetext');
	var pullyName = $j(obj).parentsUntil('.pullyMaster').parent().attr('name');
	// begin: get array of existing selections so we can deselect dupes - tbd
	$j(obj).parentsUntil('.pullyMaster').parent().find('select:visible').each(function(x)
		{
		valuesArray.push($j(obj).parentsUntil('.pullyMaster').parent().find('select:visible').eq(x).val());
		});
	// end: get array of existing selections so we can deselect dupes - tbd
	var updatedPully = $j(obj).parentsUntil('.pullyMaster').parent().find('.pullyContainer:last').after($j(pullyContainers[pullyName]).hide().addClass('slideDown'));
	$j('.slideDown').slideDown('fast');
	$j('.slideDown').removeClass('slideDown');
	$j(updatedPully).parent().find('.pullyContainer').not(":eq(0)").find('.btn').val(removeText);
	}
	
function pullyRemove(obj)
	{
	var pullyTextAddAnother = $j(obj).parentsUntil('.pullyMaster').parent().find('.btn:first').val();
	$j(obj).parentsUntil('.pullyMaster').parent().find('.btn:[value="' + pullyTextAddAnother + '"]').removeClass('disabled');
	// debug($j(obj).parentsUntil('.pullyContainer').remove());
	$j(obj).parent().parent().slideUp('fast',function()
		{
		$j(obj).parent().parent().remove();
		});
	}

function pullyClickedX(obj, event)
	{
	var removeText = $j(obj).parentsUntil('.pullyMaster').parent().attr('removetext');
	var pullyName = $j(obj).parentsUntil('.pullyMaster').parent().attr('name');
	var clickedX = $j(obj).parent().parent().replaceWith($j(pullyContainers[pullyName]).addClass('fixbuttons'));
	$j('.fixbuttons').parent().find('.pullyContainer').not(":eq(0)").find('.btn').val(removeText);
	$j('.fixbuttons').removeClass('fixbuttons');
	}
	
function pullyClickButton(obj)
	{
	var pullyTextAddAnother = $j(obj).parentsUntil('.pullyMaster').parent().find('.btn:first').val();
	var removeText = $j(obj).parentsUntil('.pullyMaster').parent().attr('removetext');
	if (obj.value == pullyTextAddAnother)
		{
		var pullyCount = $j(obj).parentsUntil('.pullyMaster').parent().find('.pullyContainer').length;
		var pullyMaxAllowed = $j(obj).parentsUntil('.pullyMaster').parent().attr('max');
		
		if (pullyCount <= pullyMaxAllowed-1) // is maxed out?
			{
			pullyAddAnother(obj);
			if (pullyCount == pullyMaxAllowed-1) // last one
				{
				$j(obj).parentsUntil('.pullyMaster').parent().find('.btn:[value="' + pullyTextAddAnother + '"]').addClass('disabled');
				}
			}
		else
			{
			// debug(obj);
			}
		}
	else if (obj.value == removeText)
		{
		pullyRemove(obj);		
		}
	}

