//var PPVAdded = false;

function PPValidate( domForm ){
	while( domForm.tagName != 'FORM' ){
		domForm = domForm.parentNode;
	}

	domForm.item_name.value = domForm.item_name_base.value;

	if( parseInt( domForm.quantity.value ) == 0 ){
		alert( "'" + domForm.elements[ 'quantity' ].value + "' is not a valid quantity." );
		return false;
	}


	var amtInput = null;
	var inputs = domForm.getElementsByTagName( 'input' );
	for( var i = 0; i < inputs.length; i++ ){
		var inp = inputs[ i ];
		if( inp.name == 'amount' ){
			amtInput = inp;
			break;
		}
	}

	var amtSelect = null;
	var selects = domForm.getElementsByTagName( 'select' );
	for( var i = 0; i < selects.length; i++ ){
		var sel = selects[ i ];
		if( sel.name == 'amount' ){
			amtSelect = sel;
			break;
		}
	}

	if( amtSelect ){
		var idx = amtSelect.selectedIndex;
		var val = amtSelect.options[ idx ].value;
		var lbl = amtSelect.options[ idx ].firstChild.nodeValue;
			
		var lblEnd = lbl.lastIndexOf( '-' ) - 1;
		var newName = lbl.substr( 0, lblEnd );
		domForm.item_name.value += ' ' + newName;

		if( amtInput ){
			amtInput.value = val;
		}
	}

	if( domForm.amount_mod && domForm.amount_mod.checked ){
		var val = domForm.amount_mod.value
		var lblEnd = val.lastIndexOf( '-' );
		var modStart = lblEnd + 1;
	
		var addText = val.substr( 0, lblEnd );
		var addCost = val.substr( modStart, val.length - modStart );
		addCost = parseFloat( addCost );

//		if( !PPVAdded ){
			if( amtInput ){
				amtInput.value = parseFloat( amtInput.value ) + addCost;
			}else{
				var idx = amtSelect.selectedIndex;
				var text = amtSelect.options[ idx ].firstChild.nodeValue;
				var val = text.match( /\d+\.\d\d$/ );
				val = parseFloat( val[0] );

				amtSelect.options[ idx ].value = val + addCost;
			}
			
//			PPVAdded = true;
//		}

		domForm.item_name.value += ' [' + addText + ']';
	}

	var selects = domForm.getElementsByTagName( 'SELECT' );
	for( var idx = 0; idx < selects.length; idx++ ){
		var sel = selects[ idx ];
		if( sel == amtSelect )
			continue;

		var size = sel.getAttribute( 'count' );
		size = parseInt( size );

		if( size && size > 1 ){
			var items = [];
			for( var i = 0; i < sel.options.length; i++ ){
				var opt = sel.options[ i ];
				if( opt.selected ){
					items.push( opt.value );
					if( items.length >= size ){
						break;
					}
				}
			}

			domForm.item_name.value += '{ '+ items.toString() +' }';
		}
	}

	domForm.submit();
}



function GetSelect( domSelect ){
	if( domSelect.tagName == 'SELECT' ){
		return domSelect;
	}

	for( var i = 0; i < domSelect.length; i++ ){
		var sel = domSelect[ i ];
	
		if( sel.tagName == 'SELECT' ){
			return sel;
		}
	}
}
