/*--------------------------------------------------------------------------*
 * 
 * Copyright (C) 2011 Brand Labs LLC
 * 
 *--------------------------------------------------------------------------*/

var ShoppingCart = {
	TOP_HTML: '<div id="shopping_cart_top">'
		+'	<div class="shopping_cart_top_left"><img title"ShoppingCart" alt="ShoppingCart" src="/v/custom-pages/images/shoppingcart.gif" /></div>'
		+'  <div class="shopping_cart_top_right"><form action="/login.asp" method="post" name="Proceed_To_Checkout_Form"><input type="image" src="/v/custom-pages/images/checkout_btn.gif" name="btn_checkout_guest" title="CheckOut" alt="CheckOut" /></form></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="shopping_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{
			ShoppingCart.ContentArea = $('content_area');
			if(ShoppingCart.ContentArea == undefined || ShoppingCart.ContentArea == null){
				return;
			}
			
			//Check for error table
			var sib = ShoppingCart.ContentArea.down('table').down('table').siblings();
			if(sib.size() < 5){
				ShoppingCart.Table = ShoppingCart.ContentArea.down('table').down('table').down('table');
			}else{
				ShoppingCart.Table = ShoppingCart.ContentArea.down('table').down('table').next('table').down('table');
			}
			
			// Set table width to 100%
			ShoppingCart.Table.writeAttribute({
				width: '100px'
			});
			
			ShoppingCart.Table.up('form').next('br').remove();
			ShoppingCart.Table.up('form').next('br').remove();
			
			// Add Shopping Cart Image and CheckOut Button to top 
			ShoppingCart.ContentArea.down('br').remove();
			ShoppingCart.ContentArea.down('div').remove();
			ShoppingCart.ContentArea.insert({
				top: ShoppingCart.TOP_HTML
			});
			
			//Remove Coupon Section
			$$('input[name="CouponCode"]').first().up('table').remove();
			
			// Replace cart dividing horizontal lines
			var cartRows = ShoppingCart.Table.down('tr').siblings();
			cartRows.each(function(row){
				var colspan = row.down('td').readAttribute('colspan');
				if(colspan == '12'){
					row.down('td').update('<img height="2px" src="/v/custom-pages/images/thin_blackline.gif" />');
				}
			});
			
			// Style empty my cart section and add Keep Shopping button and Update Cart button
			var emptyCart = $$('a[href="ShoppingCart.asp?ClearCart=Y"]').first();
			var emptyCartInner = emptyCart.up('font').innerHTML;
			var emptyCartContainer = emptyCart.up('td');
			emptyCartContainer.update();
			emptyCartContainer.insert('<div class="shopping_cart_empty_cart">' + emptyCartInner + '</div>');
			
			var reCalcShipping = emptyCartContainer.next('td',1).down('table').innerHTML;
			emptyCartContainer.next('td').remove();
			emptyCartContainer.next('td').remove();
			emptyCartContainer.next('td').remove();
			emptyCartContainer.writeAttribute({
				colspan: '12'
			});
			
			emptyCartContainer.insert({
				bottom: ShoppingCart.UPDATE_CART_BUTTON_HTML
			});
			
			// Add Discount Box and Recalculate Shipping Rates
			emptyCartContainer.up('tr').insert({
				after: '<tr><td></td><td></td><td class="shopping_cart_discount_row" colspan="3"><div class="shopping_cart_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></td><td class="shopping_cart_discount_row" colspan="6"><table align="right" cellspacing="0" cellpadding="3" border="0">' + reCalcShipping + '</table></td><td></td></tr>' 
			});
			
			//Style product names
			var products = $$('a[class="carttext colors_productname"]');
			products.each(function(ele){
				var href = ele.readAttribute('href');
				var inner = ele.innerHTML.stripTags();
				ele.up('td').addClassName('shopping_cart_product_name');
				ele.up('td').insert('<a href="' + href + '">' + inner + '</a>');
				ele.up('td').down('font').remove();
			});
			
			//Remove set widths for last column
			emptyCartContainer.up('tr').next('tr',1).down('table').writeAttribute({
				width:'100%px',
				height:'23px'
			});
			emptyCartContainer.up('tr').next('tr',1).down('table').down('td').writeAttribute({
				width:'90%'
			});
			emptyCartContainer.up('tr').next('tr',1).down('table').down('td').addClassName('shopping_cart_totals');
			
			emptyCartContainer.up('tr').next('tr',2).down('td').next('td',3).down('table').writeAttribute({
				width:'100%px'
			});
			emptyCartContainer.up('tr').next('tr',2).down('td').next('td',3).down('table').down('td').writeAttribute({
				width:'90%'
			});
			emptyCartContainer.up('tr').next('tr',2).down('td').next('td',3).down('table').down('td').addClassName('shopping_cart_grand_total');
			var total = emptyCartContainer.up('tr').next('tr',2).down('td').next('td',3).down('table').down('td').innerHTML.stripTags().strip();
			
			emptyCartContainer.up('tr').next('tr',3).remove();
			
			var temp = $$('font[class="carttext colors_text"]');
			temp.each(function(ele){
				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)) + discount;
			
			
			//Add and Style Tax, Subtotal, Discount Section
			emptyCartContainer.up('tr').next('tr',1).down('td').next('td').insert({
				after: '<td></td><td></td>'
			});
			emptyCartContainer.up('tr').next('tr',1).down('td').next('td',3).writeAttribute({
				colspan: '1'
			});
			emptyCartContainer.up('tr').next('tr',1).down('td').next('td',3).down('div').writeAttribute({
				align: 'left'
			});
			emptyCartContainer.up('tr').next('tr',1).down('td').next('td',3).down('div').addClassName('shopping_cart_totals_tax');
			
			emptyCartContainer.up('tr').next('tr',1).insert({
				after: '<tr><td colspan="8"></td><td class="shopping_cart_totals_subtotal">SubTotal:</td><td width="1"></td><td align="center"><table width="100%px" height="23px" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="shopping_cart_totals" width="90%" align="right"><b>$' + subTotal.toFixed(2) + '</b></td><td width="10">&nbsp;</td></tr></tbody></table></td></tr>' 
			});
			emptyCartContainer.up('tr').next('tr',2).insert({
				after: '<tr><td colspan="8"></td><td class="shopping_cart_totals_subtotal">Discount:</td><td width="1"></td><td align="center"><table width="100%px" height="23px" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="shopping_cart_totals" width="90%" align="right"><b>-$' + discount.toFixed(2) + '</b></td><td width="10">&nbsp;</td></tr></tbody></table></td></tr>' 
			});
			
			$('shopping_cart_grandtotal_title').up('td').addClassName('grand_total_container');
			$('shopping_cart_grandtotal_title').up('div').writeAttribute({
				align: 'right'
			});
			$('shopping_cart_grandtotal_title').up('tr').down('td').writeAttribute({
				rowspan: '1'
			});
			
			emptyCartContainer.up('tr').next('tr',5).remove();
			emptyCartContainer.up('tr').next('tr',5).remove();
			emptyCartContainer.up('tbody').insert({
				bottom: '<tr><td colspan="5"></td><td class="shopping_cart_lines" colspan="6"></td><td></td></tr>'
			});
			
			//Style title row of table
			ShoppingCart.Table.down('tr').remove();
			ShoppingCart.Table.down('tr').update();
			ShoppingCart.Table.down('tr').insert(ShoppingCart.TITLE_ROW_HTML);
			
			var temp = $$('select[name="ShippingSpeedChoice"]');
			if(temp.size() < 1){
				// Add Caluclate Shipping text to update shipping address
				emptyCartContainer.up('tr').next('tr').insert({
					after: '<tr><td style="padding:0px 0px 0px 0px !important" colspan="8"></td><td style="padding:0px 0px 0px 0px !important" colspan="4"><a href="javascript:void(0)" class="shoppingcart_apply_button" border="0" alt="Calculate Shipping">Calculate Shipping</td></tr>'
				});
				
				var recalculate = $$('a[class="shoppingcart_apply_button"]');
				recalculate.each(function(ele){
					Event.observe(ele, 'click', function(){
						$$('form[name="form"]').first().submit();
					});
				});
			}
			
			// Style bottom check out button
			var button = $$('input[name="btn_checkout_guest"]');
			button.last().writeAttribute({
				src: '/v/custom-pages/images/checkout_btn.gif'
			});
			button.last().up('td').writeAttribute({
				align: 'right'
			});
					
			// add roll over effects to buttons and pre-load images
			new Element('img', {src: '/v/custom-pages/images/checkout_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 checkoutButtons = $$('input[name="btn_checkout_guest"]');
			checkoutButtons.each(function(ele){
				Event.observe(ele, 'mouseover', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/checkout_btn_hover.gif'
					});
				});
				
				Event.observe(ele, 'mouseout', function(){
					ele.writeAttribute({
						src: '/v/custom-pages/images/checkout_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'
				});
			});
			
			ShoppingCart.Table.up('table').next('table').hide();
			
		}catch(e){/*Ignore*/}	
	}	
};

try {
	document.observe('dom:loaded', function(){
		if(location.pathname.toLowerCase() == '/shoppingcart.asp'){
			ShoppingCart.load();
		}
	});
} catch(e) {/*Ignore*/}
