// JavaScript Document

(function($){  
 $.fn.paymentoptions = function(settings) {  
  	var defaults = {  
	  	images: {
				MasterCard:	'app_images/mastercard2.gif',
				Visa:		'app_images/visa2.gif',
				Amex:		'app_images/amex2.gif',
				Discover:	'app_images/discover2.gif',
				PayPal:		'https://www.paypal.com/en_US/i/logo/PayPal_mark_180x113.gif'
				}
	}; 
	var settings = $.extend(defaults, settings); 
	var group = this;	
	return group.not(".paymentoptions_inited")
			.addClass("paymentoptions_inited")
			.parents("form").find("#cctype").hide().after("<span id=\"cctypeDisplay\"></span>").end().end()
			.children("li")
			.css({'cursor':'pointer'})
			.each(function() {  
				var rad = $(":radio",$(this)).unbind("click").css({"visibility":"hidden"});
				var img = '<img src="'+settings.images[rad[0].value]+'" width="80" border="0" /><br />';
				var lbl = $("label",$(this)).unbind("click").prepend(img);
			})
			.bind("click.po", function(e){
				stopDef(e);				   	
				var rad = $(this).addClass("selected")
					.siblings().removeClass("selected").find(":radio").removeAttr("checked").end().end()
					.find(":radio").attr("checked","checked");
				var frm = $(this).parents("form");
				var cctype  = frm.find(":input[name=creditCardType]").val(rad.val());
				$("#cctypeDisplay").text($(this).text());
				var ccnum 	= frm.find(":input[name=creditCardNumber]").filter(function(){ return $.trim($(this).val()) >0 });
				if(ccnum.size()) frm.validate().element(":input[name=creditCardNumber]");
				//alert(cctype.val());
				var ccinfo 	= frm.find("fieldset.pp-ccinfo").next().andSelf();
				//alert(ccinfo.size());
				if(rad.val()!="PayPal"){
					ccinfo.slideDown(300,function(e){ initInputTypes($(this)); });
				} else {
					ccinfo.remove();
					//alert($(this).siblings().andSelf().size());
					$(this).siblings().andSelf().unbind("click.po").find(":radio").attr("disabled","disabled");
					
					//initInputTypes(ccinfo);
					//alert($(this).parents("form").find("input[type=submit]").size());
					frm.find("input[type=submit]").trigger("click").attr("disabled","disabled");
				}	
				return false;			
			})
			.filter(":has(:input:checked)").addClass("selected")
			.filter( function(){ 
					$("#cctypeDisplay").text($(this).text());  
					return false; 
					} )
				.end();
			//.filter;
			//$("#cctypeDisplay").text($(this).text());
 };  
})(jQuery);  
