$( function() {
	var JqForm = $( '.buygoldform' )
	var JqTotalPrice = $( '.totalprice span', JqForm );
	var JqField = $( '.fieldinput', JqForm );
	var JqHidden = $( '.hidden', JqForm );
	
	var fields = {};
	
	JqField.each( function(){
		var Jq = $(this);
		var money = Jq.attr( "data-money" );
		var price = Jq.attr( "data-price" );
		var JqError = Jq.siblings(".fielderror");
		Jq.attr( "value", "" );
		
		if( !money )
			return;
		
		fields[money] = {};
		fields[money].Jq = Jq;
		fields[money].JqError = JqError;
		
		Jq.bind( "contextmenu", function(){
			return false;
		});
		
		Jq.bind( "focus", function() {
			$.each( fields, function( $money, field ) {
				if( money == $money )
					return;
					
				field.Jq.attr( "value", "" );
				field.JqError.css( "visibility", "hidden" );
			});		
		});
		
		Jq.bind( "click keyup", function() {
			var totalPrice;
			var fieldValue;
			var startFieldValue;
			var error = false;
			JqError.css( "visibility", "hidden" );
			JqHidden.attr( "data-money", "" );

			fieldValue = startFieldValue =  Jq.attr( "value" );
			
			if( fieldValue == "" ) {
				JqTotalPrice.html( "0 " + money );
				return false;
			}
				
			fieldValue = parseFloat( fieldValue );
			if( !isNaN( fieldValue ) ) {
				fieldValue = fieldValue.toFixed(2);
				fieldValue = Math.min( 999, fieldValue );
				fieldValue = Math.max( 0.01, fieldValue );
				
				if( fieldValue != startFieldValue ) {
					JqError.css( "visibility", "visible" );
					error = true;
				}
			}
			else {
				fieldValue = 0;
				JqError.css( "visibility", "visible" );
				error = true;
			}				
				
			if( !error )
				JqHidden.attr( "data-money", money );
				
			
			totalPrice = (fieldValue*price).toFixed(3);			
			JqTotalPrice.html( totalPrice + " " + money );
		});
	});
	
	JqForm.submit( function(){
		if( !JqHidden.attr( "data-money" ) )
			return false;
	});
	
	$.each( fields, function( name, obj ) {
		obj.Jq.focus();
		return false;
	});
});
