$(function() {

	//Change Quantity
	$('.ts-ticketTable select').change(function() { 

		var final_html = $(this).parent().parent().parent().find('tr:last td.ts-totalsCol');
		var final_total = 0;
		
		$('#frmTickets select').each(function() {
		
			var row_html = $(this).parent().next();
			var qty = $(this).val();
			var unit_price = parseFloat($(this).parent().prev().html());
			var row_total = unit_price * qty;
			
			//update row total
			row_html.html(row_total.toFixed(2));
			
			//update final total
			final_total += row_total;
		
		});
				
		//update final total
		final_html.html('$'+final_total.toFixed(2));
	
	});
	
	
	//Add to Cart
	$('a.ts-btnAddToCart').click(function() {
	
		var total = $('div.ts-expander select').size();
		var empty = $('#frmTickets select option:selected[value="0"]').length;
		
		//only run AJAX if quantities have been selected
		if(empty < total) {
		
			$('div.loader').show();
			
			/*------using JSON.stringify (broken in IE7)----------------------------------------
			var dataArray = new Array();
		
			$('#frmTickets select').each(function() {
    			if($(this).val() > 0) {	
    				var data = {id:$(this).attr("name"),qty:$(this).val()};
					dataArray.push(data);	
    			}
			});
			
			$.post("/functions/add_cart.php", {products: JSON.stringify(dataArray)},
 				function(data) {
     				$('div.loader').fadeOut();
     				//update cart panel
     				$('.ts-cartSummary').html(data.items + " item(s) in your cart");
     				$('.ts-totalAmount').html("$" + data.sub_total.toFixed(2));
     				//reset quantities to 0
     				$('#frmTickets select').each(function() {
     					$(this).val(0);
     				});  				
 			}, "json");
 			//------using JSON.stringify (broken in IE7)--------------------------------------*/
 			
 			//works in IE7 using serializeArray
 			var postdata = $('#frmTickets').serializeArray();
 			
 			$.post("/functions/add_cart.php", postdata,
 				function(data) { 
     				$('div.loader').fadeOut();
     				//update cart panel
     				$('.ts-cartSummary').html(data.items + " item(s) in your cart");
     				$('.ts-totalAmount').html("$" + data.sub_total.toFixed(2));
     				$('.ts-totalAmount').html("$" + data.sub_total.toFixed(2));
     				
     				//update row totals
     				$('.row_total').html('0.00');
     				$('.ts-totalsCol').html('$0.00');
     				
     				//reset quantities to 0
     				$('#frmTickets select').each(function() {
     					$(this).val(0);
     				});
     				 				
 			}, "json");
 		
 		}
				
		return false;
	
	});
	
	
	
	//Remove from Cart
	$('a.btn_remove').bind("click",function() {
	
		var row = $(this).parent().parent();
	
		$.post("/functions/remove_cart.php", {id : $(this).attr("rel")},
 			function(data) {
     			
     			//remove row
     			row.fadeOut(function() {
     				row.remove();
     			});
     			
     			//update cart panel
     			$('.ts-cartSummary').html(data.items + " item(s) in your cart");
     			$('.ts-totalAmount').html("$" + data.sub_total.toFixed(2));
     			
     			//update cart summary
     			//$('div.cart_sub_total').html('$'+data.sub_total.toFixed(2));
     			//$('div.cart_gst').html('$'+data.gst.toFixed(2));
     			$('div.cart_total').html('$'+data.sub_total.toFixed(2));
     			
     			//if cart is now empty
     			if(data.items == 0) {
     				$('div.ts-expander table tbody').html('<tr><td colspan="6"><p><strong>You have no products in your Shopping Cart</strong></p></td></tr>');
     				$('div.ts-expander table thead').remove();				
     			}	   			   			
     			
 		}, "json");
 		
 		return false;
	
	});
	
	
	//Update Cart
	$('.ts-checkoutTable select').change(function() { 
	
		var row_qty = $(this).parent().next();
		var qty = $(this).val()
		var row_price = $(this).parent().prev().html();
		
		$.post("/functions/update_cart.php", {id : $(this).attr("name"), qty : $(this).val()},
 			function(data) {
     			
     			//update cart panel
     			$('.ts-cartSummary').html(data.items + " item(s) in your cart");
     			$('.ts-totalAmount').html("$" + data.sub_total.toFixed(2));
     			
     			//update cart summary
     			//$('div.cart_sub_total').html('$'+data.sub_total.toFixed(2));
     			//$('div.cart_gst').html('$'+data.gst.toFixed(2));
     			$('div.cart_total').html('$'+data.sub_total.toFixed(2));
     			
     			//update row total
     			new_price = row_price * qty;
     			row_qty.html('$'+new_price.toFixed(2));   			   			
     			
 		}, "json");
	
	});
	
	//Confirm Order
	$('a.ts-btnLargeConfirmMakePayment').click(function() {
	
		$('div.loader').fadeIn();
 		
 		postdata = "EPS_AMOUNT="+$('input[name="EPS_AMOUNT"]').val()+"&EPS_REFERENCEID="+$('input[name="EPS_REFERENCEID"]').val()+"&EPS_TIMESTAMP="+$('input[name="EPS_TIMESTAMP"]').val();
 		 		
 		$.post("/functions/confirm_order.php", postdata,
 			function(data) {	
     			
     			console.log(data);
     			$('input[name="EPS_FINGERPRINT"]').val(data);
     			$('div.loader').fadeOut();
     			
     			//now to submit the form
     			//$('#frmNABPost').submit();
 		});
	
		return false;
	
	});
	
	
	//Checkout Next Page
	$('a.btnCheckoutNext').bind("click",nextPage);
	//Checkout Previous Page
	$('a.btnCheckoutPrev').bind("click",prevPage);
	
	var current_page = 1;
	
	function nextPage() {
	
		var button = $(this);
		
		var total_width = $('div.checkout_slider').width();
		var page_width = 650;
		var current_margin = parseInt($('div.checkout_slider').css('margin-left'));
		var max_margin = total_width - page_width;
		var new_margin = -650;
		
		//determine whether or not to run validator
		switch(current_page) {
			
			case 1:
				validate = false;
			break;
				
			case 2:
				validate = false;
				//validate = true;
				postdata = {
					txtFirstName : $('input[name="txtFirstName"]').val(),
					txtLastName : $('input[name="txtLastName"]').val(),
					txtPhone : $('input[name="txtPhone"]').val(),
					txtEmail : $('input[name="txtEmail"]').val(),
					txtConfirmEmail : $('input[name="txtConfirmEmail"]').val(),
					txtAddress : $('input[name="txtAddress"]').val(),
					txtSuburb : $('input[name="txtSuburb"]').val(),
					txtPostCode : $('input[name="txtPostCode"]').val(),
					txtUpdates : $('input[name="txtUpdates"]:checked').val(),
					txtTC : $('input[name="txtTC"]:checked').val(),
					page : 2
				};
			break;
			
			case 3:
				validate = false;
				//validate = true;
				postdata = {
					txtCardName : $('input[name="txtCardName"]').val(),
					txtCardNumber : $('input[name="txtCardNumber"]').val(),
					txtCardSecurity : $('input[name="txtCardSecurity"]').val(),
					page : 3
				};
			break;
			
		}
		
		if(current_margin > -max_margin) {
			
			if(validate) {
				
				$.post("/functions/validator.php", postdata,
 					function(data) {
     			
     					//if valid, go to next page
     					if(data.length == 0) {
     						
     						//remove errors
     						$('#frmCheckout').find('li.ts-error').removeClass('ts-error');
     						$('#frmCheckout').find('div.ts-formError').html('').hide();
     						
     						button.unbind('click');
     						new_margin += current_margin;
							$('div.checkout_slider').css('opacity','0.5');
		
							$('div.checkout_slider').animate({
    							marginLeft: new_margin+'px'
  							}, 500, function() {
  								$('div.checkout_slider').css('opacity','1');
  								button.bind('click',nextPage);
  				
  								//update breadcrumbs
  								var current = $('ul.ts-steps li').find('span.ts-current');
								current.removeClass('ts-current');
								current.parent().next().find('span').addClass('ts-current');
								current_page++;
  							}); 
     						
     					} else {
     						
     						//remove errors
     						$('#frmCheckout').find('li.ts-error').removeClass('ts-error');
     						$('#frmCheckout').find('div.ts-formError').html('').hide();
     						
     						for(var i=0;i<data.length;i++) {
     							
     							//add error class to parent li
     							$('#frmCheckout').find('input[name="'+data[i].field+'"]').parent().parent().addClass('ts-error');							
     							//populate and display error message
     							$('#frmCheckout').find('input[name="'+data[i].field+'"]').closest('li').find('div.ts-formError').html(data[i].message).show();
     							
     						}
     						
     					}
     					  				
 				}, "json");
				
			} else {
				
				button.unbind('click');
				new_margin += current_margin;
				$('div.checkout_slider').css('opacity','0.5');
		
				$('div.checkout_slider').animate({
    				marginLeft: new_margin+'px'
  				}, 500, function() {
  					$('div.checkout_slider').css('opacity','1');
  					button.bind('click',nextPage);
  				
  					//update breadcrumbs
  					var current = $('ul.ts-steps li').find('span.ts-current');
					current.removeClass('ts-current');
					current.parent().next().find('span').addClass('ts-current');
					current_page++;
  				});
				
			}		
			
		} else {
				
			$.post("/functions/validator.php", postdata,
 					function(data) {
     			
     					//if valid, go to next page
     					if(data.length == 0) {
     						
     						//goto confirmation page
							$('#frmCheckout').submit();
     						
     					} else {
     						
     						//remove errors
     						$('#frmCheckout').find('li.ts-error').removeClass('ts-error');
     						$('#frmCheckout').find('div.ts-formError').html('').hide();
     						
     						for(var i=0;i<data.length;i++) {
     							
     							//add error class to parent li
     							$('#frmCheckout').find('input[name="'+data[i].field+'"]').parent().parent().addClass('ts-error');							
     							//populate and display error message
     							$('#frmCheckout').find('input[name="'+data[i].field+'"]').closest('li').find('div.ts-formError').html(data[i].message).show();
     							
     						}
     						
     					}
     					  				
 				}, "json");
			
		}
		
		return false;
	
	}
	
	function prevPage() {
	
		var button = $(this);
		
		var total_width = $('div.checkout_slider').width();
		var page_width = 650;
		var current_margin = parseInt($('div.checkout_slider').css('margin-left'));
		var max_margin = 0;
		var new_margin = current_margin + page_width;
		
		if(current_margin < max_margin) {
			
			button.unbind('click');
			$('div.checkout_slider').css('opacity','0.5');
		
			$('div.checkout_slider').animate({
    			marginLeft: new_margin+'px'
  			}, 500, function() {
  				$('div.checkout_slider').css('opacity','1');
  				button.bind('click',prevPage);
  				
  				//update breadcrumbs
  				var current = $('ul.ts-steps li').find('span.ts-current');
				current.removeClass('ts-current');
				current.parent().prev().find('span').addClass('ts-current');
				current_page--;
  			});
		} else {
			//goto home page
			document.location.href = '/';
		}
		
		return false;
	
	}

});
