/*--------------------------------------------------------------------------*
 * 
 * Copyright (C) 2011 Brand Labs LLC
 * 
 *--------------------------------------------------------------------------*/

var CheckOut = {
	TOP_HTML: '<div id="checkout_top">'
		+'	<div class="checkout_top_left"><img title"Checkout" alt="Checkout" src="/v/custom-pages/images/checkout.gif" /></div>'
		+'</div><div class="clearfloat"></div>',
		
	TITLE_ROW_HTML: '<td valign="top" colspan="2"></td>'
		+'<td><img width="1" height="1" alt="" src="v/vspfiles/templates/gamago/images/clear1x1.gif"></td>'
		+'<td colspan="2"><div class="shopping_cart_text_description">Description</div></td>'
		+'<td width="1"><img width="1" height="1" alt="" src="v/vspfiles/templates/gamago/images/clear1x1.gif"></td>'
		+'<td><div class="shopping_cart_text_qty">Qty</div></td>'
		+'<td width="1"><img width="1" height="1" alt="" src="v/vspfiles/templates/gamago/images/clear1x1.gif"></td>'
		+'<td><div class="shopping_cart_text_item">Item</div></td>'
		+'<td width="1"><img width="1" height="1" alt="" src="v/vspfiles/templates/gamago/images/clear1x1.gif"></td>'
		+'<td><div class="shopping_cart_text_total">Total</div></td>'
		+'<td></td>',
		
	UPDATE_CART_BUTTON_HTML: '<div class="checkout_cart_buttons"><a title="Continue Shopping" href="/"><img id="keepshopping_btn" src="/v/custom-pages/images/keepshopping.gif" /></a><input id="btnRecalculate" type="image" border="0" name="btnRecalculate" src="/v/custom-pages/images/updatecart.gif" alt="Recalculate Totals" /></div>',
		
	load: function(){
		try{
			CheckOut.ContentArea = $('content_area');
			if(CheckOut.ContentArea == undefined || CheckOut.ContentArea == null){
				return;
			}
			
			// Set table width
			CheckOut.ContentArea.down('form').down('table').writeAttribute({
				width: '647px',
				cellspacing: '0',
				id: 'checkout_table'
			});
									
			CheckOut.ContentArea.down('form').down('table').down('td').down('br').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('br').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('br').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('a').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('a').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('div').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').down('input').remove();
			CheckOut.ContentArea.down('form').down('table').down('td').insert({
				top: CheckOut.TOP_HTML
			});
			
			// IE issue
			CheckOut.ieAppVersion = null;
			CheckOut.url = '';
			if (Prototype.Browser.IE) {
				var userAgent = navigator.userAgent;
				var matches = null;
		
				matches = userAgent.match(/MSIE (\d+\.\d+);/);
				if(matches != null && matches.length >= 2) {					
					CheckOut.ieAppVersion = new Number(matches[1]);
				}
				if(CheckOut.ieAppVersion < 8){
					CheckOut.url = location.protocol + '//' + location.host + '/';
				}
			}	
			
			// Replace 1 Billing Info and 2 Shipping Info Images
			var billingImage = $$('img[src="' + CheckOut.url + 'v/vspfiles/templates/gamago/images/headings/one-page-checkout_billing.gif"]').first();
			billingImage.writeAttribute({
				src: '/v/custom-pages/images/checkout_billing.gif'
			});
			var shippingImage = $$('img[src="' + CheckOut.url + 'v/vspfiles/templates/gamago/images/headings/one-page-checkout_shipping.gif"]').first();
			shippingImage.writeAttribute({
				src: '/v/custom-pages/images/checkout_shipping.gif'
			});
			
			// Add "* denotes required field"
			billingImage.up('tr').insert({
				after: '<tr><td class="checkout_required" width="50%" valign="top" style="border-right:1px solid #aaaaaa"><span>*</span> denotes required field</td><td></td></tr>'
			}); 	
			
			// Remove saved address drop down
			var addressDropDown = $$('select[name="My_Saved_Billing"]');
			if(addressDropDown.size() > 0){
				addressDropDown.first().up('table').up('tr').remove();
			}
			
			// Replace 3 Select Shipping image
			var shippingImage = $$('img[src="' + CheckOut.url + 'v/vspfiles/templates/gamago/images/headings/one-page-checkout_shipmeth.gif"]').first();
			shippingImage.writeAttribute({
				src: '/v/custom-pages/images/shippingmethod.gif'
			});
			
			var inner = shippingImage.up('table').down('tr').next('tr').down('td').next('td').innerHTML;
			shippingImage.up('table').down('tr').next('tr').down('td').next('td').down('div').remove();
			
			// Replace 4 Payment image
			var paymentImage = $$('img[src="' + CheckOut.url + 'v/vspfiles/templates/gamago/images/headings/one-page-checkout_payment.gif"]').first();
			paymentImage.writeAttribute({
				src: '/v/custom-pages/images/payment.gif'
			});
			
			CheckOut.PaymentSection = paymentImage.up('table');
			CheckOut.PaymentSection.down('tr').down('td').writeAttribute({
				colspan: '2'
			});
			CheckOut.PaymentSection.down('tr').next('tr').down('td').writeAttribute({
				width: '418px'
			});
			
			// Add cart totals to Payment section
			CheckOut.PaymentSection.down('tr').next('tr').insert({
				bottom: '<td id="checkout_totals" width="227px">' + inner + '</td>'
			});
			$('checkout_totals').down('table').writeAttribute({
				align: 'left'
			});
			
			CheckOut.PaymentSection.down('tr').next('tr').down('td').down('table').next('table').remove();
			CheckOut.PaymentSection.down('tr').next('tr').down('td').insert({
				bottom: '<div class="checkout_coupon">Discount Code:<br /><span>Enter your coupon code if you have one.</span></div><div class="shopping_cart_discount_inputs"><input type="text" maxlength="25" size="8" name="CouponCode"><input class="discount_button" type="image" border="0" name="btnCouponCode" src="/v/custom-pages/images/apply.gif" alt="Apply Coupon Code"></div>'
			});
			
			// Add Order Comments text box
			CheckOut.PaymentSection.down('tbody').insert({
				bottom: '<tr><td class="order_comments">Order Comments:<br><span>(Optional)</span></td><td></td></tr><tr><td><textarea cols="43" rows="3" name="Order_Comments"></textarea></td><td></td></tr>'
			});
			
			// Style Pricing Section
			CheckOut.TotalsTable = $('checkout_totals').down('table').down('table');
			CheckOut.TotalsTable.writeAttribute({
				width: '100%'
			});

			CheckOut.TotalsTable.down('tr').down('td').update('<div class="checkout_totals">SubTotal:</div>');
			CheckOut.TotalsTable.down('tr').next('tr').down('td').update('<div class="checkout_totals">Shipping:</div>');
			var shipping = CheckOut.TotalsTable.down('tr').next('tr').down('td').next('td').down('b').innerHTML.strip();
			CheckOut.TotalsTable.down('tr').next('tr').down('td').next('td').update('<div class="checkout_money">' + shipping + '</div>');
			CheckOut.TotalsTable.down('tr').next('tr',1).down('td').update('<div class="checkout_totals">Tax:</div>');
			inner = CheckOut.TotalsTable.down('tr').next('tr',1).down('td').next('td').down('b').innerHTML;
			CheckOut.TotalsTable.down('tr').next('tr',1).down('td').next('td').update('<div class="checkout_money">' + inner + '</div>');
			CheckOut.TotalsTable.down('tr').next('tr',2).remove();
			CheckOut.TotalsTable.down('tr').next('tr',2).down('td').update('<div class="checkout_grandtotal">Grand Total:</div>');
			var total = CheckOut.TotalsTable.down('tr').next('tr',2).down('td').next('td').down('b').down().innerHTML.strip();
			CheckOut.TotalsTable.down('tr').next('tr',2).insert({
				after: '<tr><td class="checkout_lines" colspan="2"></td></tr><tr><td colspan="2"><input id="btnSubmitOrder" type="Image" border="0" src="/v/custom-pages/images/placeorder_btn.gif" name="btnSubmitOrder" alt="Click to submit your order"></td></tr>'
			});
			CheckOut.TotalsTable.down('tr').next('tr',2).down('td').next('td').update('<div class="checkout_grandtotal_price">' + total + '</div>');
			inner = CheckOut.TotalsTable.down('tr').next('tr',1).innerHTML;
			CheckOut.TotalsTable.down('tr').next('tr',1).remove();
			CheckOut.TotalsTable.down('tr').insert({
				after: '<tr>' + inner + '</tr>'
			});
			
			// Move Shopping cart
			inner = $('table_checkout_cart1').innerHTML;			
			$('checkout_top').next('div').insert({
				after: '<table id="table_checkout_cart1" width="100%" cellspacing="0" cellpadding="0" border="0">' + inner + '</table>'
			});
			
			// Delete old cart at bottom of page
			CheckOut.Cart = $('table_checkout_cart1');
			$('table_checkout_cart0').remove();
			
		
			// Replace cart dividing horizontal lines
			var cartRows = CheckOut.Cart.down('table').down('tr').siblings();
			cartRows.each(function(row){
				var colspan = row.down('td').readAttribute('colspan');
				if(colspan == '12'){
					row.down('td').update('<img height="17px" src="/v/custom-pages/images/blackline.gif" />');
				}
			});
			
			// Style top titles of cart
			CheckOut.Cart.down('table').down('tr').next('tr').update(CheckOut.TITLE_ROW_HTML);
			
			// Style Update Cart and Keep Shopping Buttons
			$$('input[id="btnRecalculate"]').first().up('table').up('tr').update('<td colspan="12">' + CheckOut.UPDATE_CART_BUTTON_HTML + '</td>');
			
			// Style product names and prices and remove set width in last column of cart table
			var temp = $$('font[class="carttext colors_text"]');
			temp.each(function(ele){
				
				if(ele.up('td').siblings().size() != '1'){
					ele.up('td').update('<div class="checkout_product_name">' + ele.innerHTML.stripTags() + '</div>');
					
				}else {
					try{					
						var inner = ele.down('b').innerHTML;
						var container = ele.up('td');
						container.update();
						container.insert('<div class="shopping_cart_product_total">' + inner + '</div>');
						container.writeAttribute({
							width: '90%'
						});
						container.up('table').writeAttribute({
							width: '100%'
						});
					}catch(e){
						var container = ele.up('td');
						container.update();
						container.insert('<div class="shopping_cart_product_price">' + ele.innerHTML + '</div>');
						container.writeAttribute({
							width: '85px'
						});
						container.up('table').writeAttribute({
							width: '100%'
						});
					}
				}
			});
			
			// Calculate Discount and Subtotal
			var prices = $$('div[class="shopping_cart_product_price"]');
			var discount = 0.00;
			prices.each(function(ele){
				var location = ele.innerHTML.strip().indexOf('-');
				if(location != -1){
					discount = discount + Number(ele.innerHTML.strip().substr(location+2));
				}			
			});
			var subTotal = Number(total.substr(1)) - Number(shipping.substr(1)) + discount;
			CheckOut.TotalsTable.down('tr').next('tr').insert({
				after: '<tr><td class="checkout_totals">Discount:</td><td align="right"><div class="checkout_money">-$' + discount.toFixed(2) + '</div></td></tr>'
			});
			CheckOut.TotalsTable.down('tr').down('td').next('td').update('<div class="checkout_money">$' + subTotal.toFixed(2) + '</div>');
						
			// Uncheck and hide 'keep payment method on file'
			var paymentCheckBox = $$('input[name="Keep_Payment_Method_On_File_CCard"]').first();
			paymentCheckBox.writeAttribute({
				value:'N',
				checked: false
			});
			paymentCheckBox.up('tr').hide();
			
			// Uncheck and hide email sign up
			var emailSignUp = $$('input[name="emailsubscriber"]');
			if(emailSignUp.size() > 0){
				emailSignUp.first().writeAttribute({
					value:'N',
					checked: false
				});
				$$('input[name="EmailSubscriberHidden"]').first().writeAttribute({
					value:'N'
				});			
				emailSignUp.first().up('table').hide();
			}
			
			// add roll over effects to buttons and pre-load images
			new Element('img', {src: '/v/custom-pages/images/placeorder_btn_hover.gif'});
			new Element('img', {src: '/v/custom-pages/images/apply_hover.gif'});
			new Element('img', {src: '/v/custom-pages/images/updatecart_hover.gif'});
			new Element('img', {src: '/v/custom-pages/images/keepshopping_hover.gif'});
			
			var placeOrderButtons = $$('input[name="btnSubmitOrder"]');
			placeOrderButtons.each(function(ele){
				Event.observe(ele, 'mouseover', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/placeorder_btn_hover.gif'
					});
				});
				
				Event.observe(ele, 'mouseout', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/placeorder_btn.gif'
					});
				});
			});
			
			var applyButtons = $$('input[name="btnCouponCode"]');
			applyButtons.each(function(ele){
				Event.observe(ele, 'mouseover', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/apply_hover.gif'
					});
				});
				
				Event.observe(ele, 'mouseout', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/apply.gif'
					});
				});
			});
						
			var updateButton = $('btnRecalculate');
			Event.observe(updateButton, 'mouseover', function(){
				updateButton.writeAttribute({
					src: '/v/custom-pages/images/updatecart_hover.gif'
				});
			});
			
			Event.observe(updateButton, 'mouseout', function(){
				updateButton.writeAttribute({
					src: '/v/custom-pages/images/updatecart.gif'
				});
			});
			
			var keepshoppingButton = $('keepshopping_btn');
			Event.observe(keepshoppingButton, 'mouseover', function(){
				keepshoppingButton.writeAttribute({
					src: '/v/custom-pages/images/keepshopping_hover.gif'
				});
			});
			
			Event.observe(keepshoppingButton, 'mouseout', function(){
				keepshoppingButton.writeAttribute({
					src: '/v/custom-pages/images/keepshopping.gif'
				});
			});
		
		}catch(e){/*Ignore*/}
	}	
}
try {
	document.observe('dom:loaded', function(){
		if(location.pathname.toLowerCase() == '/one-page-checkout.asp'){
			CheckOut.load();
		}
	});
} catch(e) {/*Ignore*/}
