Element.addMethods({ 
	getError: function (element) {
		var item = $(element);
		while (item.parentNode != document) {
			item = $(item.parentNode)
			if (item.hasClassName('error')) { return item; }
		}
		return $(element);
	},
	check: function (element) {
		if (!(element = $(element))) return;
		if (element.type=='radio' || element.type=='checkbox') return $A(document.getElementsByName(element.name)).any(function(e) {return e.checked});
		return $F(element);
	}
});

function getPrice(offer) {
  new Ajax.Updater('price','get_price.php', {
		parameters: { offer: offer }
  });
	setTimeout (fixButtons,500);
}
function fixButtons() {
	if ($$('input[type=hidden].free')[0]) {
		$('submit').innerHTML = '<table width="512" class="submit border"><tr><td><input type=submit value=Submit></td></tr>\n<tr><td>Click here to recieve your free copies</td></tr>';
	} else {
		$('submit').innerHTML = '<table width="512" class="submit border"><tr><td><input type="submit" value="Invoice Me" name="invoice"></td><td><input type="image" value="Pay Now" name="paypal" src="https://www.paypal.com/en_US/i/btn/btn_paynow_SM.gif" id=pp></td></tr>\n<tr><td>Receive Invoice via Email</td><td>Pay now via PayPal</td></tr>\n<tr><td colspan=2 class="gst">GST# 13607 4085 RT0001</td></tr></table>'
	}
}

function enable() {
	if (document.order) {
		$('nojs').innerHTML="";
		document.order.action = document.order.title;
		getPrice('can');
		document.order.observe('submit',function (event) {verify(event);},false);
	}
}


function checkRadio(radio) {
	if (radio.length) {
		for (i=0; i<radio.length; i++) { if (radio[i].checked) { break; } }
		if (i==radio.length) { return false; } 
	} else { if (!radio.checked) return false; }
	return true;
}

function verify(event) {
	var elements = $A(event.target.elements),
		exclude = [
			'offer',
			'club_name',
			'invoice',
			'fax',
			'dfax',
			'dclub_name'
		],
	  list = $H({
	  	'sub' : 'Subscription\n', 
	  	'firstname' : 'First Name\n', 
	  	'lastname' : 'Last Name\n', 
	  	'address' : 'Address\n', 
	  	'city' : 'City\n', 
	  	'postcode' : 'Postal Code\n', 
	  	'prov' : 'Province\n', 
	  	'phone' : 'Phone\n', 
	  	'email' : 'E-mail\n', 
	  	'dfirstname' : 'Donor First Name\n', 
	  	'dlastname' : 'Donor Last Name\n', 
	  	'daddress' : 'Donor Address\n', 
	  	'dcity' : 'Donor City\n', 
	  	'dpostcode' : 'Donor Postal Code\n', 
	  	'dprov' : 'Donor Province\n', 
	  	'dphone' : 'Donor Phone Number\n', 
	  	'demail' : 'Donor Email Address\n'
	  }),
  fieldList='', failed = false;
	elements.each(function(item, index) {
		if (item.name && exclude.indexOf(item.name) == -1 && item.type != 'hidden' && (index==0 || item.name != elements[index-1].name)) {
			if ( !item.check() ) { 
				fieldList += list.get(item.name);
				failed = true;
			}
		}
	});
	if (failed) {
	  alert("Please fill out the following fields:\n\n"+fieldList);
		event.preventDefault();	
	}
};


