	//================================================================================================
	// VARIABLES DECLARATION
	//================================================================================================	
	var deliveryHeight = 0;
	
	//================================================================================================
	// AJAX FUNCTIONS
	//================================================================================================		
	function showBagItems(action, stockID)
	{
		var form = document.checkoutform;
		var div = "div_checkout";
		var qty;
		
		if (action == "update")
		{		
			qty = form['qty_' + stockID].value;
		}
		else
		{
			qty = 0;
		}		



		var url = "get_bagitems.asp";
		var data = "action=" + action;
		data = data + "&stockID=" + stockID;
		data = data + "&qty=" + qty;
		data = data + "&sid=" + Math.random();		
		
		var req = new Request( {method: 'get', url: '' + url, 

			onSuccess: function(txt) {
				$(div).set('html', txt);
				checkDelivery();
				calculateTotals();
			},
			
			// onRequest: function() {
				// $(div).set('html', '<em>Loading items in the shopping bag...</em>');
			// },

			onFailure: function() {
				alert("Error connecting to server. Please refresh this page...");
			}
			
		}).send(data);
	}
	
	function signupNewsletter(listID, fullname, email)
	{
		var url = "process.asp";

		var data = "process=recipient";
		data = data + "&action=add-jax";
		data = data + "&listID=" + listID;
		data = data + "&fullname=" + fullname;
		data = data + "&email=" + email;
		data = data + "&sid=" + Math.random();		
		
		var req = new Request( {method: 'get', url: '' + url, 

			onSuccess: function(txt) {
				alert(txt);
				document.signupform.reset();
			},
			
			onFailure: function() {
				alert("Error connecting to server. Please refresh this page...");
			}
			
		}).send(data);
	}	
	
	function submitFormReply(blogID, fullname, email, comments)
	{
		var url = "process.asp";

		var data = "process=reply";
		data = data + "&blogID=" + blogID;
		data = data + "&fullname=" + fullname;
		data = data + "&email=" + email;
		data = data + "&comments=" + comments;
		data = data + "&sid=" + Math.random();		
		
		var req = new Request( {method: 'get', url: '' + url, 

			onSuccess: function(txt) {
				alert(txt);
				document.replyform.reset();
			},
			
			onFailure: function() {
				alert("Error connecting to server. Please refresh this page...");
			}
			
		}).send(data);
	}	

	function submitPasswordRetrieval(email)
	{
		var url = "process.asp";

		var data = "process=password";
		data = data + "&email=" + email;
		data = data + "&sid=" + Math.random();		
		
		var req = new Request( {method: 'get', url: '' + url, 

			onSuccess: function(txt) {
				alert(txt);				
			},
			
			onFailure: function() {
				alert("Error connecting to server. Please refresh this page...");
			}
			
		}).send(data);
	}	
	
	//================================================================================================
	// FORM FUNCTIONS
	//================================================================================================
	function copyBillingDetails()
	{
		var form = document.customerform;

		if (form.chkSame.checked == true)
		{
			form['d_firstname'].value = form['b_firstname'].value;
			form['d_surname'].value = form['b_surname'].value;
			form['d_address'].value = form['b_address'].value;
			form['d_suburb'].value = form['b_suburb'].value;
			form['d_state'].value = form['b_state'].value;
			form['d_postcode'].value = form['b_postcode'].value;
			form['d_phone'].value = form['b_phone'].value;
			//form['d_country'].value = form['b_country'].value;
		}
		else //reset
		{
			form['d_firstname'].value = "";
			form['d_surname'].value = "";
			form['d_address'].value = "";
			form['d_suburb'].value = "";
			form['d_state'].value = "";
			form['d_postcode'].value = "";
			form['d_phone'].value = "";
			//form['d_country'].value = 0;
		}
	}
	
	function checkDelivery()
	{
		var form = document.checkoutform;
		
		if (form['showdelivery'].value == '1')
		{
			form['postage_option'].disabled = false;
		}
		else
		{
			form['postage_option'][0].selected = "selected";
			form['postage_option'].disabled = true;
		}
	}	
	
	function calculateTotals()
	{
		var form = document.checkoutform;
		var stock_totals = parseInt(form['stock_totals'].value);
		var delivery_cost = parseFloat(form['delivery_cost'].value);
		var num_stocks = parseFloat(form['num_stocks'].value);
		
        var voucher =  document.getElementById("voucherAmountLabel").innerHTML;
        var remainingVoucher = 0;

		$('txt_stock_totals').set('html', stock_totals.toFixed(2));		
		$('txt_bag_items').set('html', num_stocks);
		
		if (form['postage_option'].value == 'Australia Express Post') 
		{
            delivery_cost += 2;
		}
        
        var total_price = stock_totals + delivery_cost
        voucher = parseFloat(voucher);
        if (isNaN(voucher) == false)//(voucher > 0 || voucher != undefined)
        {
            if(voucher > total_price)
            {
                remainingVoucher = voucher - total_price;
                voucher = total_price;
                total_price = 0;
            }
            else
            {
                total_price = total_price - voucher;
                remainingVoucher = 0
            }
        }
        else
        {
            voucher = 0;
            remainingVoucher = 0;
        }
        
		$('txt_total_price').set('html', total_price.toFixed(2));
        $('txt_delivery').set('html', delivery_cost.toFixed(2));
        $('txt_voucher').set('html', voucher.toFixed(2));
        $('voucherRemainingAmountTxt').set('html', remainingVoucher.toFixed(2));
        
		if (stock_totals == 0)
		{
			$('cart_checkout_box').setStyle('display', 'none');
			$('empty_cart_box').setStyle('display', 'block');
		}
		else
		{
			$('cart_checkout_box').setStyle('display', 'block');
			$('empty_cart_box').setStyle('display', 'none');
		}
	}
	
	function submitCustomerLogin()
	{
		var form = document.loginform;
		
		var login_email = form.login_email.value;
		var login_pwd = form.login_pwd.value;
		
		var valid = true;
		
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(login_email)))
		{
			valid = false;
			alert("Please make sure you have entered a valid e-mail address.");
		}		
		else if (login_pwd == "")
		{
			valid = false;
			alert("Please make sure you have entered your password.");
		}

		if (valid == true) 
		{
			form.submit();
		}	
	}		
	
	function submitCustomerDetails()
	{
		var form = document.customerform;
		
		var b_firstname = form.b_firstname.value;
		var b_surname = form.b_surname.value;
		var b_address = form.b_address.value;
		var b_suburb = form.b_suburb.value;
		var b_state = form.b_state.value;
		var b_postcode = form.b_postcode.value;
		var b_phone = form.b_phone.value;
		var b_country = form.b_countryID.value;
		var b_email = form.b_email.value;
		var confirm_email = form.confirm_email.value;
		var b_pwd = form.b_pwd.value;
		var confirm_pwd = form.confirm_pwd.value;
		
		var d_company = form.company.value;
		var d_firstname = form.d_firstname.value;
		var d_surname = form.d_surname.value;
		var d_address = form.d_address.value;
		var d_suburb = form.d_suburb.value;
		var d_state = form.d_state.value;
		var d_postcode = form.d_postcode.value;
		var d_phone = form.d_phone.value;
		var d_country = form.d_countryID.value;		
		
		var valid = true;
		var string_alert = "";
		
		if (b_firstname == "")
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your first name for billing.\n"
		} 
		
		if (b_surname == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your last name for billing.\n"
		} 
		
		if (b_address == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your street address for billing.\n"
		} 
		
		if (b_suburb == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your suburb for billing.\n"
		} 
		
		if (b_state == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your state for billing.\n"
		} 
		
		if (b_postcode == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your postcode for billing.\n"
		} 		
		
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(b_email)))
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered a valid e-mail address.\n"
		}		
		else 
		{		
			if (b_email != confirm_email) 
			{
				valid = false;
				string_alert = string_alert + "Confirm email does not match.\n"
			} 				
		}
		
		if (b_pwd == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered a password.\n"
		} 			
		else
		{
			if (b_pwd != confirm_pwd) 
			{
				valid = false;
				string_alert = string_alert + "Confirm password does not match.\n"
			} 				
		}
		
		if (b_phone == "") 
		{
			valid = false;
			string_alert = string_alert + "Please make sure you have entered your phone to enable us to contact you.\n"
		} 		
				
		//skip delivery checking if chkSame is checked
		if (form.chkSame.checked == false)
		{		
			if (d_firstname == "")
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery first name.\n"
			} 
			
			if (d_surname == "") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery last name.\n"
			} 
			
			if (d_address == "") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery street address.\n"
			} 
			
			if (d_suburb == "") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery your suburb.\n"
			} 
			
			if (d_state == "") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery state.\n"
			} 
			
			if (d_postcode == "")
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery postcode.\n"
			} 		

			if (d_country == "0") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have selected delivery country.\n"
			} 		
			
			if (d_phone == "") 
			{
				valid = false;
				string_alert = string_alert + "Please make sure you have entered delivery phone number.\n"
			} 		
		}
		
		if (valid == true) 
		{
			form.submit();
		}	
		else
		{
			alert(string_alert);
		}
	}	
	
	function submitForgotPassword()
	{
		var form = document.loginform;
		
		var c_email = form.login_email.value;
		
		var valid = true;
		
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(c_email)))
		{
			valid = false;
			alert("Please make sure you have entered a valid e-mail address.");		
		}
		
		if (valid == true) 
		{
			submitPasswordRetrieval(c_email);
		}		
	}		
	
	function submitSignUpNewsletter()
	{
		var form = document.signupform;
		
		var c_listID = form.listID.value;
		var c_fullname = form.fullname.value;
		var c_email = form.email.value;
		
		var valid = true;
		
		if ((c_fullname == "") || (c_fullname == "Your name")) 
		{
			valid = false;
			alert("Please make sure you have entered your full name.");		
		} 
		else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(c_email)))
		{
			valid = false;
			alert("Please make sure you have entered a valid e-mail address.");		
		}
		
		if (valid == true) 
		{
			signupNewsletter(c_listID,c_fullname,c_email);
		}		
	}

	function submitReply()
	{
		var form = document.replyform;
		
		var c_blogID = form.blogID.value;
		var c_fullname = form.fullname.value;
		var c_email = form.email.value;
		var c_comments = form.comments.value;
		
		var valid = true;
		
		if (c_fullname == "")
		{
			valid = false;
			alert("Please make sure you have entered your full name.");		
		} 
		else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(c_email)))
		{
			valid = false;
			alert("Please make sure you have entered a valid e-mail address.");		
		}
		else if (c_comments == "")
		{
			valid = false;
			alert("Please make sure you have entered your comment.");		
		}		

		if (valid == true) 
		{
			submitFormReply(c_blogID, c_fullname,c_email,c_comments);
		}		
	}	
	
	//================================================================================================
	// LAYOUT FUNCTIONS 
	//================================================================================================			
	function toggleDelivery()
	{
		var slide = new Fx.Slide('div_delivery');				
		slide.toggle();
	}
	
	function showGuide(id)
	{
		if ($chk($('guide_' + id)))
		{			
			new Fx.Scroll('scrollable_guides').toElement('guide_' + id);		
		}	
		
		if ($chk($('guide_image_' + id)))
		{			
			new Fx.Scroll('scrollable_images').toElement('guide_image_' + id);		
		}			
	}	
	
	function showImage(img, caption)
	{
		var div = 'main_image';
		var html = '';

		html = '<img src="' + img + '" width="360" />';
			
		if (caption != '')
		{
			html += '<div class="frame_caption_product"><div class="frame_caption_bg"></div><div class="frame_caption_text">' + caption + '</div></div>';
		}
		
		$(div).set('html', html);
	}
	
	function setupSlideshows()
	{
		if ($chk($('home_banner')))
		{			
			var homeShow = new Slideshow('home_banner', false, {delay: 4000, width: 980, height: 400});
		}	
    
    if ($chk($('container_map')))
    {
      var mapShow = new Slideshow('container_map', false, {delay: 4000, width:380, height:225});
    }

		if ($chk($$('.slide_intro')[0])) 
		{
			var introShow = new SimpleSlideShow({
				startIndex: 0,
				slides: $$('.slide_intro')
			});
			
			var play = function() 
			{
				introShow.forward();
			}
			var introTimer = play.periodical(5000);
		}
	}
	
	//================================================================================================
	// EVENTS FUNCTIONS
	//================================================================================================			
	function setupActions()
	{
		if ($chk($$('.imgHover')[0])) 
		{				
			$$('.imgHover').setStyle('opacity', 0.5);
			$$('.imgHover').addEvents({
			
				'mouseover' : function(e) {
					this.setStyle('opacity', 1);
				},
			
				'mouseout' : function(e) {
					this.setStyle('opacity', 0.5);
				}
				
			});					
		}	

		if ($chk($$('.nav_hover')[0])) 
		{				
			$$('.nav_hover').addEvents({
			
				'mouseover' : function(e) {
					var srcURL = this.getProperty('src');
					if ($chk(srcURL))
						this.setProperty('src', srcURL.replace('.png', '_hover.png'));
				},
			
				'mouseout' : function(e) {
					var srcURL = this.getProperty('src');
					if ($chk(srcURL))
						this.setProperty('src', srcURL.replace('_hover.png', '.png'));					
				}
				
			});					
		}		

		if ($chk($('div_delivery'))) 
		{					
			$('chkSame').addEvents({
			
				'click' : function(e) {
					toggleDelivery();
				}
			
			});					
		}			
	}	
	
	function setupCufon()
	{
		Cufon.replace('.gotham_bold', { fontFamily: 'Gotham Black', hover: true });
		Cufon.replace('.gotham_light', { fontFamily: 'Gotham Light' });
		Cufon.replace('.gotham_medium', { fontFamily: 'Gotham Medium', hover: true });
	}	
	
	//================================================================================================
	// START THIS WHEN PAGE DOM READY
	//================================================================================================		
	window.addEvents({
	
		'domready' : function(e) {
			setupActions();
			setupSlideshows();
			//setupCufon();
			
			//always go to first guide when refresh
			if ($chk($('scrollable_guides')))
			{	
				showGuide(1);
			}			
			
			if ($chk($('div_checkout')))
			{	
				showBagItems('default', 0);
			}		
			
		},
		
		'resize' : function() {

		}
		
	});
	
	function CalculateUsingVoucher()
	{
        var form = document.checkoutform;
        
        var stock_totals = parseInt(form['stock_totals'].value);
        var coupon_name = form['voucher_number'].value;
        var url = "process.asp";
		var data = "process=coupon";
        
        if( coupon_name != "")
        {
            data = data + "&vouchername=" + coupon_name;
        }
        else
        {
            alert("You have not entered a valid coupon number");
            return;
        }
        
        var req = new Request( {method: 'get', url: '' + url, 
        
        onSuccess: function(txt) {
                
			   	if (isNaN(parseFloat(txt)) == false)
                {
                    var vouchervalue = parseFloat(txt);
                                            
                    $('amountLabel').setStyle('visibility', 'visible');
                    $('voucherAmountLabel').setStyle('visibility', 'visible');
                    $('remainingBalanceLabel').setStyle('visibility','visible');
                    $('voucherRemainingBlankTR').setStyle('display','table-row');
                    $('voucherAmountBlankTR').setStyle('display','table-row');
                    $('voucherRemainingAmountTxt').setStyle('visibility','visible');
                    $('voucherRemainingTR').setStyle('display','table-row');
                    $('voucherAmountTR').setStyle('display','table-row');
					$('enterVoucherNumberBlankTR').setStyle('display','table-row');
					$('openingBalanceSup').setStyle('visibility','visible');
            		$('closingBalanceSup').setStyle('visibility','visible');
                    $('voucherAmountLabel').set('html', vouchervalue.toFixed(2));
                    $('voucherRemainingAmountTxt').set('html', vouchervalue.toFixed(2));
                    $('txt_voucher').set('html',  parseFloat(txt));
                    calculateTotals();
                }
                else
                {
                    alert(txt);
                    var vouchervalue = 0;
                    
                    $('voucherAmountLabel').set('html', vouchervalue.toFixed(2));
                    $('voucherRemainingAmountTxt').set('html', vouchervalue.toFixed(2));
                    //$('voucher_number').set('value',"");
                    $('voucherRemainingBlankTR').setStyle('display','none');
                    $('voucherRemainingTR').setStyle('display','none');
                    $('voucherAmountBlankTR').setStyle('display','none');
                    $('voucherAmountTR').setStyle('display','none');
                    $('amountLabel').setStyle('visibility', 'hidden');
                    $('enterVoucherNumberBlankTR').setStyle('display','none');
                    $('voucherAmountLabel').setStyle('visibility', 'hidden');
                    $('remainingBalanceLabel').setStyle('visibility','hidden');
                    $('openingBalanceSup').setStyle('visibility','hidden');
            		$('closingBalanceSup').setStyle('visibility','hidden');
                    $('voucherRemainingAmountTxt').setStyle('visibility','hidden');
                    $('')
                    calculateTotals();
                }
                        
		    },
			onFailure: function() {
				alert("Error connecting to server. Please refresh this page...");
			}
			
		}).send(data);
	}
    
    function RemoveVoucher()
    {
        
        var form = document.checkoutform;
        var url = "process.asp";
		var data = "process=removecoupon";
        var req = new Request( {method: 'get', url: '' + url, 
        
        onSuccess: function(txt) {
            $('amountLabel').setStyle('visibility', 'hidden');
            $('voucherAmountLabel').setStyle('visibility', 'hidden');
            $('remainingBalanceLabel').setStyle('visibility','hidden');
            $('voucherRemainingAmountTxt').setStyle('visibility','hidden');
            $('voucherRemainingTR').setStyle('display','none');
            $('voucherAmountTR').setStyle('display','none');
            $('enterVoucherNumberTR').setStyle('display','none');
            $('applyVoucherCheckBox').setStyle('checked','false');
            //$('voucher_number').set('value',"");
            $('voucherAmountLabel').set('html', 0);
            $('voucherRemainingAmountTxt').set('html', 0);
            $('txt_voucher').set('html',  0);

            calculateTotals();
        },
        onFailure: function() {
		    alert("Error connecting to server. Please refresh this page...");
	    }

        }).send(data);

    }
  	
  	function ApplyVoucher(checkbox)
  	{
  		if(checkbox.checked == true) 
  		{
  			$('enterVoucherNumberTR').setStyle('display','table-row');
  			$('enterVoucherNumberBlankTR').setStyle('display','table-row');
  		}
  		else
		{
			RemoveVoucher();
			calculateTotals();
			$('enterVoucherNumberTR').setStyle('display','none');
			//$('amountLabel').setStyle('visibility', 'hidden');
            $('voucherAmountLabel').setStyle('visibility', 'hidden');
            $('remainingBalanceLabel').setStyle('visibility','hidden');
            
            $('voucherRemainingBlankTR').setStyle('display','none');
            $('voucherRemainingAmountTxt').setStyle('visibility','hidden');
            $('voucherRemainingTR').setStyle('display','none');
			$('voucherAmountBlankTR').setStyle('display','none');
            $('voucherAmountTR').setStyle('display','none');

            $('openingBalanceSup').setStyle('visibility','hidden');
            $('closingBalanceSup').setStyle('visibility','hidden');
            $('enterVoucherNumberBlankTR').setStyle('display','none');
            $('enterVoucherNumberTR').setStyle('display','none');
            $('applyVoucherCheckBox').setStyle('checked','false');
            //$('voucher_number').set('value',"");
            //$('voucherAmountLabel').set('html', 0);
            //$('voucherRemainingAmountTxt').set('html', 0);
            //$('txt_voucher').set('html',  0);
		}
	}
			  		
  	function ApplyGiftMsg(checkbox)
  	{
  		if(checkbox.checked == true) 
  		{
  			$('enterGiftMsgTR').setStyle('display','table-row');
  			$('enterGiftMsgBlankTR').setStyle('display','table-row');
  		}
  		else
		{
            $('enterGiftMsgBlankTR').setStyle('display','none');
            $('enterGiftMsgTR').setStyle('display','none');
            $('applyGiftMsgCheckBox').setStyle('checked','false');
		}
	}

    function PaymentViaVoucher()
    {
        var form = document.couponpaymentform;
        form.submit();
    }
