Effect.CashRegister = Class.create();
Object.extend(Object.extend(Effect.CashRegister.prototype, 
	Effect.Base.prototype), {
		initialize: function(element, price) {
			var options = arguments[2] || {};
			this.element = $(element);
			this.startPrice = parseFloat(this.element.innerHTML.substring(3));
			this.finishPrice = price;
			this.delta = (this.finishPrice-this.startPrice);
			this.start(options);
		},
		update: function(position) {
			var value = (this.startPrice + (this.delta*position)).toString().split('.');
			var cent  = value.length==1 ? '00' : (
				value[1].length == 1 ? value[1]+"0" : value[1].substring(0,2));
				Element.update(this.element, value[0]);
			}
		});	


		String.prototype.in_series_of = function(number)
		{
			result = "";
			for (i = 0; i < this.length; i++)
			{
				c = this.charAt(i);
				if ((i % number) == 0) result += " ";
				result += c;
			}
			return result;
		};


		function swap_card(new_type)	
		{
			$("card_logo").src = "/images/credit_cards/" + new_type + ".gif";
		}
		function mirror_contents_in_fields(target,src)
		{
			if (src == "credit_card_number")
			{
				result = $F(src).in_series_of(4);
			}
			else result = $F(src);
			$(target).value = result;
		}
		Element.toggleClassName = function(element,klass)
		{
			if (Element.hasClassName(element,klass))
			{
				console.debug("Removing class");
				Element.removeClassName(element,klass);
			}
			else
			{
				console.debug("Adding class");
				Element.addClassName(element,klass);
			}
		}
		function update_credit_card_form(skjema)
		{
/*			$("credit_card_type_visa").onchange = function(){swap_card("visa")};
			$("credit_card_type_master").onchange = function(){swap_card("master")};
*/			mirror_contents_in_fields("display_card_number","credit_card_number");
			mirror_contents_in_fields("display_cvc","credit_card_verification_value");
			mirror_contents_in_fields("display_expiry_month","credit_card_month");
			mirror_contents_in_fields("display_expiry_year","credit_card_year");
		}
