function updateCartbar(bottle_count, subtotal) {
	if (bottle_count > 0) {
		//$('cartbar').style.display = 'block';
		$('cartbar_items').innerHTML = bottle_count + ' item' + ((bottle_count > 1)? 's' : '' ) + ' totaling';
		$('cartbar_total').innerHTML = '$' + subtotal;
		if ($('cart_top').style.display == 'block')
			manage();
	} else {
		$('cartbar').style.display = 'none';
		$('cartbar_items').innerHTML = '0 items totaling';
	}
}

function addBottle(wine_id, vintage, amount) {
	if (wine_id > 0 && vintage > 0 && amount >= 0) {
		new Ajax.Request('/lib/cart_buy.php?wine_id=' + parseInt(wine_id) + '&vintage=' + parseInt(vintage) + '&add=' + parseInt(amount), {
			method: 'get',
			onSuccess: function(t) {
				eval('var data = ' + t.responseText);
				if (data.error) {
					alert('Error: '+data.error);
				}
				else if (data.bottle_count > 0) {
					invoice = data.invoice.clone();
					theData = {subtotal:data.subtotal,discount:data.discount,discount_percent:data.discount_percent,shipping_cost:data.shipping_cost,total:data.total};
					if ($('cart_top').style.display == 'block' && $('step1').className == 'cart_top_active') chooseStep(1);
				} else {
					invoice = false;
					theData = false;
				}
				updateCartbar(data.bottle_count, data.subtotal);
				secure(true);
		}
		});
	} else {
		alert('Error: incorrect wine id, vintage, or amount.');
	}
}
function emptyCart(supress) {
	if (supress || confirm('Are you sure you want to empty your cart?')) {
		new Ajax.Request('/lib/cart_buy.php?action=empty', {
			method: 'get',
			onSuccess: function(t) {
				eval('var data = ' + t.responseText);
				if (data.error) {
					alert('Error: '+data.error);
				}
				else if (data.bottle_count > 0) {
					$('cartbar').style.display = 'block';
					$('cartbar_items').innerHTML = data.bottle_count + ' item' + ((data.bottle_count > 1)?'s':'') + ' totaling';
					invoice = data.invoice.clone();
					theData = {subtotal:data.subtotal,discount:data.discount,discount_percent:data.discount_percent,shipping_cost:data.shipping_cost,total:data.total};
					if ($('cart_top').style.display == 'block')
						manage();
				} else {
					$('cartbar').style.display = 'none';
					$('cartbar_items').innerHTML = '0 items totaling';
					invoice = false;
					theData = false;
					$('cart_top').style.display = 'none';
					$('cart_body').style.display = 'none';
					$('cart_bottom').style.display = 'none';
					secure(false);
				}
			}
		});
	}
}

function manageCart() {
	if($('cart_top').style.display == 'block' && $('step1').className == 'cart_top_active')
		continueShopping();
	else
		chooseStep(1);
	return false;
}

function checkOut() {
	chooseStep(2);
}

function chooseStep(clicked) {
	var c = parseInt(clicked);
	if (invoice.length) {
		if (c == 1) {
			manage();
			setStep(1);
		} else if (c == 2) {
			bling();
			setStep(2);
		} else if (c == 3) {
			shipping();
			setStep(3);
		} else if (c == 4) {
			confirmation();
			setStep(4);
		}
	} else {
		emptyCart(true);
	}
	return false;
}

function secure(bool) {
	if (bool == true && window.location.href.indexOf('http://') >= 0)
		window.location.replace('https://' + window.location.href.substr(7));
	if (bool == false && window.location.href.indexOf('https://') >= 0)
		window.location.replace('http:' + window.location.href.substr(6));
}

function manage() {
	var temp1 = '';
	for (var i=0;i<invoice.length;i++) {
		temp1 += '<div class="'+((i%2==0)?'even':'odd')+'row">'+
        '<div class="row_a">$'+invoice[i][3]+'</div>'+
        '<div class="row_b1" onclick="managerRemove('+invoice[i][0]+', '+invoice[i][1]+');">remove</div>'+
        '<div class="row_c1" onclick="managerSet('+invoice[i][0]+', '+invoice[i][1]+', '+invoice[i][2]+',\''+invoice[i][1]+' '+invoice[i][4]+'\');">'+ invoice[i][2] +' bottle'+((invoice[i][2]>1)?'s':'')+'</div>'+
        '<div class="row_d">'+ invoice[i][1]+' '+invoice[i][4] +'</div>'+
      	'</div>';
	}
	if (invoice.length) {
		switch(theData.discount_percent) {
			case 5:
				var dText = '6-11';
				break;
			case 10:
				var dText = '12-23';
				break;
			case 15:
				var dText = '24 or more';
				break;
		}
		if (theData.discount_percent) {
			var temp1 = temp1 +
			'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
				'<div class="row_a">-$'+theData.discount+'</div>'+
				'<div class="row_b">'+theData.discount_percent+'% Discount:</div>'+
				'<div class="row_c">'+dText+' bottles purchased</div>'+
			'</div>';
		}
		temp1 +=
		'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
			'<div class="row_a" style="font-size:16px;">$'+theData.subtotal+'</div>'+
			'<div class="row_b" style="font-size:18px; font-weight:bold;">Subtotal:</div>'+
		'</div>';
		$('cart_body').innerHTML = temp1;
		
		var temp2 =
		'<a class="cart_button3" href="#" onclick="chooseStep(2);return false;"><div>Check Out</div></a>'+
		'<a class="cart_button1" href="#" onclick="continueShopping();return false;"><div>Continue Shopping</div></a>'+
		'<a class="cart_button2" href="#" onclick="emptyCart();return false;"><div>Empty Cart</div></a>';
		$('cart_bottom').innerHTML = temp2;
		
		$('cart_top').style.display = 'block';
		$('cart_body').style.display = 'block';
		$('cart_bottom').style.display = 'block';
	}
}

function continueShopping() {
	$('cart_top').style.display = 'none';
	$('cart_body').style.display = 'none';
	$('cart_bottom').style.display = 'none';
}

function managerRemove(wine_id, vintage) {
	if (invoice.length > 0) {
		var temp1 = new Array();
		for (var i=0 ;i<invoice.length;i++)
			if (!(invoice[i][0] == wine_id && invoice[i][1] == vintage))
				temp1.push(invoice[i][0]+':'+invoice[i][1]+':'+invoice[i][2]);
		if (temp1.length > 0) {
			var temp2 = temp1.join(';');
			new Ajax.Request('/lib/cart_buy.php?set='+temp2, {
				method: 'get',
				onSuccess: function(t) {
					eval('var data = ' + t.responseText);
					if (data.error) {
						alert('Error: '+data.error);
					} else if (data.bottle_count > 0) {
						invoice = data.invoice.clone();
						theData = {subtotal:data.subtotal,discount:data.discount,discount_percent:data.discount_percent,shipping_cost:data.shipping_cost,total:data.total};
						if ($('cart_top').style.display == 'block') manage();
					} else {
						invoice = false;
						theData = false;
					}
					updateCartbar(data.bottle_count, data.subtotal);
				}
			});
		} else {
			emptyCart(true);
		}
	}
}

function managerSet(wine_id, vintage, amount, name) {
	if (invoice.length > 0) {
		var prompted = prompt('How many bottles of '+name+' would you like?', amount);
		if (prompted == null) {
			return;
		} else if (parseInt(prompted) > 0) {
			if (parseInt(prompted) > 999) 		p = 999;
			else								p = parseInt(prompted);
		} else if (prompted == 0 || prompted == 'none' || prompted == 'remove' || prompted == 'delete' || prompted == 'zero' ||  prompted == 'zip' || prompted == 'zilch' || prompted == 'nada' || prompted == '') {
			var p = 0;
		} else {
			alert('Please enter a numeric quantity.');
			return;
		}
		
		var temp1 = new Array();
		for (var i=0 ;i<invoice.length;i++)
			if (invoice[i][0] == wine_id && invoice[i][1] == vintage){
				if (p > 0)
					temp1.push(invoice[i][0]+':'+invoice[i][1]+':'+ p);
			} else {
				temp1.push(invoice[i][0]+':'+invoice[i][1]+':'+invoice[i][2]);
			}
		if (temp1.length > 0) {
			var temp2 = temp1.join(';');
			new Ajax.Request('/lib/cart_buy.php?set='+temp2, {
				method: 'get',
				onSuccess: function(t) {
					eval('var data = ' + t.responseText);
					if (data.error) {
						alert('Error: '+data.error);
					} else if (data.bottle_count > 0) {
						invoice = data.invoice.clone();
						theData = {subtotal:data.subtotal,discount:data.discount,discount_percent:data.discount_percent,shipping_cost:data.shipping_cost,total:data.total};
						if ($('cart_top').style.display == 'block') manage();
					} else {
						invoice = false;
						theData = false;
					}
					updateCartbar(data.bottle_count, data.subtotal);
				}
			});
		} else {
			emptyCart(true);
		}
	}
}

function checkCC(s) {
  var i, n, c, r, t;
  r = "";
  for (i = 0; i < s.length; i++) {
    c = parseInt(s.charAt(i), 10);
    if (c >= 0 && c <= 9)
      r = c + r;
  }
  if (r.length <= 1)
    return false;
  t = "";
  for (i = 0; i < r.length; i++) {
    c = parseInt(r.charAt(i), 10);
    if (i % 2 != 0)
      c *= 2;
    t = t + c;
  }
  n = 0;
  for (i = 0; i < t.length; i++) {
    c = parseInt(t.charAt(i), 10);
    n = n + c;
  }
  if (n != 0 && n % 10 == 0)
    return true;
  else
    return false;
}

function yearList(selected) {
	var temp = '<select name="cc_exp_year" type="text" class="field" style="width:100px;" id="cc_exp_year">';
	var d = new Date();
	var year = parseInt(d.getFullYear());
	for (var i=0; i<15; ++i)
		temp += '<option value="'+(year+i)+'"'+((parseInt(selected) == (year+i))?' selected="selected"':'')+'>'+(year+i)+'</option>';
	temp += '</select>';
	return temp;
}

function monthList(selected) {
	var months = [
		'January',
		'February',
		'March',
		'April',
		'May',
		'June',
		'July',
		'August',
		'September',
		'October',
		'November',
		'December'
	];
	var temp = '<select name="cc_exp_month" class="field" id="cc_exp_month" style="width:175px;">';
	for (var i=1; i<=12; ++i) {
		var num = String("0" + i).slice(-2);
		temp += '<option value="'+num+'"'+((selected == num)?' selected="selected"':'')+'>'+num+' - '+months[i-1]+'</option>';
	}
	temp += '</select>';
	return temp;
}

function setStep(int) {
	for (var i=1; i<=4; ++i)
		$('step'+i).className = 'cart_top_inactive';
	$('step'+int).className = 'cart_top_active';
}

function bling() {
	if (invoice.length > 0) {
		new Ajax.Request('/lib/cart_buy.php?func=billing', {
			method: 'get',
			onSuccess: function(t) {
				eval('var data = ' + t.responseText);
				if (data.error) {
					alert('Error: '+data.error);
				} else if (data.bottle_count > 0) {
					var temp1 = '<div class="cap"></div><form name="billing" id="billing" method="post" action="/" onsumbit="blingBling(true);return false;"><div id="billing_col1"><div>'+
					'<div class="floater" style="width:172px;">First Name<br /><input name="first" value="" class="field f_inset" style="width:170px;" id="first" /></div>'+
					'Last Name<input name="last" value="" class="field f_inset" style="width:170px; _width:162px;" id="last" /></div>'+
					'<div><br>'+
					'Billing Address<input name="address1" value="" class="field f_inset" style="width:358px;" /><input name="address2" value="" class="field f_inset" style="width:358px; margin-top:0;" />'+
           	  		'<br></div><div><div class="floater" style="width:177px; _width:170px;">City<br /><input name="city" value="" class="field f_inset" style="width:175px; _width:168px;" id="city" /></div>'+
					'State'+stateList(data.billing.state, false) +
					'<br /><br />'+
					'<div class="floater" style="width:152px; _width:145px;"> Zip Code<br /><input name="zip" value="" class="field f_inset" style="width:150px; _width:143px;" id="zip" /></div>'+
					'Phone Number<input name="phone" value="" class="field f_inset" style="width:193px;" id="phone" /></div></div>'+
					'<div id="billing_col2">Credit Card Type<br />'+
					'<a id="card1" href="#" onClick="changeCard(1); return false;" class="creditcard_1" style="background: no-repeat url(/img/layout/card-visa-1.png)"></a>'+
					'<a id="card2" href="#" onClick="changeCard(2); return false;" class="creditcard_0" style="background: no-repeat url(/img/layout/card-mc-1.png)"></a>'+
					'<a id="card3" href="#" onClick="changeCard(3); return false;" class="creditcard_0" style="background: no-repeat url(/img/layout/card-disc-1.png)"></a>'+
					'<a id="card4" href="#" onClick="changeCard(4); return false;" class="creditcard_0" style="background: no-repeat url(/img/layout/card-amex-1.png)"></a><br />'+
					'Credit Card Number<br /><input name="cc_number" value="" class="field f_inset" style="width:288px;" id="cc_number" /><br /><br />'+
					'<div class="floater" style="width:175px;">Exp Month<br />'+ monthList(data.billing.cc_exp_month) +'</select></div>'+
					'Exp Year'+yearList(data.billing.cc_exp_year)+'<br /><br />' +
					'E-mail Address<br /><input name="email" value="" class="field f_inset" style="width:288px;" id="email" />'+
					'<br /></div></form><div class="cap"></div>';
					$('cart_body').innerHTML = temp1;
					
					var temp2 =
					'<a class="cart_button3" href="#" onclick="blingBling(true);"><div>Continue Check Out</div></a>'+
					'<a class="cart_button1" href="#" onclick="blingBling(false);return false;"><div>Continue Shopping</div></a>';
					$('cart_bottom').innerHTML = temp2;

					if (data.billing) {
						var b = document.forms['billing'];
						if (data.billing.first) b.first.value = data.billing.first;
						if (data.billing.last) b.last.value = data.billing.last;
						if (data.billing.address1) b.address1.value = data.billing.address1;
						if (data.billing.address2) b.address2.value = data.billing.address2;
						if (data.billing.city) b.city.value = data.billing.city;
						if (data.billing.zip) b.zip.value = data.billing.zip;
						if (data.billing.phone) b.phone.value = data.billing.phone;
						if (data.billing.cc_number) b.cc_number.value = data.billing.cc_number;
						if(data.billing.cc_type) {
							switch(data.billing.cc_type) {
								case 'visa'	: changeCard(1); break;
								case 'mc'	: changeCard(2); break;
								case 'disc'	: changeCard(3); break;
								case 'amex'	: changeCard(4); break;
							}
						}
						if (data.billing.email) b.email.value = data.billing.email;
					}
					$('cart_top').style.display = 'block';
					$('cart_body').style.display = 'block';
					$('cart_bottom').style.display = 'block';
					
					$('billing').onsubmit = function(t){blingBling(true); return false;};
				} else if (data.bottle_count == 0){
					emptyCart(true);
				}
			}
		});
	}
}
function shipping() {
	if (invoice.length > 0) {
		new Ajax.Request('/lib/cart_buy.php?func=shipping', {
			method: 'get',
			onSuccess: function(t) {
				eval('var data = ' + t.responseText);
				if (data.error) {
					alert('Error: '+data.error);
				} else if (data.bottle_count > 0) {
					var temp1 = '<div class="cap"></div><form name="shipping" id="shipping" method="post" action="/" onsumbit="saveShipping(true);return false;"><div id="billing_col1"><div>'+
					'<div class="floater" style="width:172px;">First Name<br /><input name="first" value="" class="field f_inset" style="width:170px;" id="first" /></div>'+
					'Last Name<input name="last" value="" class="field f_inset" style="width:170px; _width:162px;" id="last" /></div>'+
					'<div><br />'+
					'Shipping Address<input name="address1" value="" class="field f_inset" style="width:358px;" /><input name="address2" value="" class="field f_inset" style="width:358px; margin-top:0;" />'+
           	  		'<br></div><div><div class="floater" style="width:177px; _width:170px;">City<br /><input name="city" value="" class="field f_inset" style="width:175px; _width:168px;" id="city" /></div>'+
					'State'+stateList(data.billing.state, true) +
					'<br /><br />'+
					'<div class="floater" style="width:152px; _width:145px;">Zip Code<br /><input name="zip" value="" class="field f_inset" style="width:150px; _width:143px;" id="zip" /></div>'+
					'Phone Number (opt)<input name="phone" value="" class="field f_inset" style="width:193px;" id="phone" /></div></div>'+
					'<div id="billing_col2">Shipping Method<br />'+
					'<div id="method_wrapper">'+methodList(false,false)+'</div><br />'+
					'Optional Gift Card<br /><textarea name="gift_card" class="field f_inset" id="cc_number" style="width:288px; height:100px"></textarea><br>(200 character limit)'+
					'<br /></div></form><div class="cap"></div>';
					$('cart_body').innerHTML = temp1;
					
					var temp2 =
					'<a class="cart_button3" href="#" onclick="continueToConfirmation();return false;"><div>Continue to Confirmation</div></a>'+
					'<a class="cart_button1" href="#" onclick="saveShipping(false);return false;"><div>Continue Shopping</div></a>';
					$('cart_bottom').innerHTML = temp2;

					if (data.shipping) {
						var b = document.forms['shipping'];
						if (data.shipping.first) b.first.value = data.shipping.first;
						if (data.shipping.last) b.last.value = data.shipping.last;
						if (data.shipping.address1) b.address1.value = data.shipping.address1;
						if (data.shipping.address2) b.address2.value = data.shipping.address2;
						if (data.shipping.city) b.city.value = data.shipping.city;
						if (data.shipping.zip) b.zip.value = data.shipping.zip;
						if (data.shipping.phone) b.phone.value = data.shipping.phone;
						if (data.shipping.gift_card) b.gift_card.value = data.shipping.gift_card;
					} else if (data.billing) {
						var b = document.forms['shipping'];
						if (data.billing.first) b.first.value = data.billing.first;
						if (data.billing.last) b.last.value = data.billing.last;
						if (data.billing.address1) b.address1.value = data.billing.address1;
						if (data.billing.address2) b.address2.value = data.billing.address2;
						if (data.billing.city) b.city.value = data.billing.city;
						if (data.billing.zip) b.zip.value = data.billing.zip;
						if (data.billing.phone) b.phone.value = data.billing.phone;
					}
					$('cart_top').style.display = 'block';
					$('cart_body').style.display = 'block';
					$('cart_bottom').style.display = 'block';
					
					$('shipping').onsubmit = function(t){saveShipping(true); return false;};
					
					if (b.state.value) updateShippingPrices(b.state.value);
			} else if (data.bottle_count == 0){
					emptyCart(true);
				}
			}
		});
	}
}

function continueToConfirmation() {
	if (confirm("All online orders are submitted to our Winery Ambassadors for processing, and a phone call confirming your order will be made to the provided phone number by the next business day. If you are a wine club member, your 20% discount will be calculated at that time. \n\nIf you would like information on how to become a wine club member, please visit www.wvv.com/owg or contact us at 800-344-9463.")) {
		saveShipping(true);	
	}
}


function stateList(selected, updates) {
		var bool_ship = false;
		var yes = [
			['AZ','Arizona'],
			['CA','California'],
			['CO','Colorado'],
			['CT','Connecticut'],
			['DC','District of Columbia'],
			['FL','Florida'],
			['IA','Iowa'],
			['ID','Idaho'],
			['IL','Illinois'],
			['KS','Kansas'],
			['MI','Michigan'],
			['MN','Minnesota'],
			['MO','Missouri'],
			['MT','Montana'],
			['NC','North Carolina'],
			['ND','North Dakota'],
			['NE','Nebraska'],
			['NH','New Hampshire'],
			['NM','New Mexico'],
			['NV','Nevada'],
			['NY','New York'],
			['OH','Ohio'],
			['OR','Oregon'],
			['RI','Rhode Island'],
			['SC','South Carolina'],
			['TN','Tennessee'],
			['TX','Texas'],
			['VA','Virginia'],
			['VT','Vermont'],
			['WA','Washington'],
			['WI','Wisconsin'],
			['WV','West Virginia'],
			['WY','Wyoming']
		];
		var call = [	
			['AK','Alaska'],
			['HI','Hawaii']
		];
		var no = [
			['AL','Alabama'],
			['AR','Arkansas'],
			['DE','Delaware'],
			['GA','Georgia'],
			['IN','Indiana'],
			['KY','Kentucky'],
			['LA','Louisiana'],
			['MA','Massachusetts'],
			['ME','Maine'],
			['MD','Maryland'],
			['MS','Mississippi'],
			['NJ','New Jersey'],
			['OK','Oklahoma'],
			['PA','Pennsylvania'],
			['SD','South Dakota'],
			['UT','Utah']
		];
		var temp = '<select name="state" id="state" class="field" style="width:176px;"'+ ((updates == true)?' onchange="if (this.value.length==2) updateShippingPrices(this.value)"':'')+'>';
		temp += '<optgroup label="No Restrictions">';
		for (var i=0; i<yes.length; i++)
			temp += '<option value="'+yes[i][0]+'"'+((yes[i][0]==selected)?' selected="selected"':'')+'>'+yes[i][1]+'</option>';
		temp += '</optgroup><optgroup label="Call After Order">';
		for (var i=0; i<call.length; i++)
			temp += '<option value="'+call[i][0]+'"'+((call[i][0]==selected)?' selected="selected"':'')+'>'+call[i][1]+'</option>';
		temp += '</optgroup>';
		if (!bool_ship) {
			temp += '<optgroup label="Cannot Ship To">';
			for (var i=0; i<no.length; i++)
				temp += '<option value="'+no[i][0]+'"'+((no[i][0]==call)?' selected="selected"':'')+'>'+no[i][1]+'</option>';
			temp += '</optgroup>';
		}
		temp += '</select>';
		return temp;
}

function blingBling(cont) {
	if (true || invoice && invoice.length > 0) {
		var b = document.forms['billing'];
		var card = (($('billing_col2').getElementsByClassName('creditcard_1').length > 0)?$('billing_col2').getElementsByClassName('creditcard_1')[0].id:0);
		switch (card) {
			case 'card1':	var card_type = 'visa';		break;
			case 'card2':	var card_type = 'mc';		break;
			case 'card3':	var card_type = 'disc';		break;
			case 'card4':	var card_type = 'amex';		break;
		}
		var perams = {
			'first': b.first.value,
			'last': b.last.value,
			'address1': b.address1.value,
			'address2': b.address2.value,
			'city': b.city.value,
			'state': b.state.value,
			'zip': b.zip.value,
			'phone': b.phone.value,
			'cc_type': card_type,
			'cc_number': b.cc_number.value,
			'cc_exp_month': b.cc_exp_month.value,
			'cc_exp_year': b.cc_exp_year.value,
			'email': b.email.value
		};
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		var emailtest = (filter.test(perams.email))?true:false;
		if (perams.first == '') {
			alert('Please enter a first name.');
			b.first.focus();		return false;
		} else if (perams.last == '') {	
			alert('Please enter a last name.');
			b.last.focus();			return false;
		} else if (perams.address1 == '') {	
			alert('Please enter an address.');
			b.address1.focus();		return false;
		} else if (perams.city == '') {	
			alert('Please enter a city.');
			b.city.focus();			return false;
		} else if (perams.zip == '') {	
			alert('Please enter a zip code.');
			b.zip.focus();			return false;
		} else if (perams.phone == '') {	
			alert('Please enter a phone number.');
			b.phone.focus();		return false;
		} else if (checkCC(perams.cc_number) == false) {	
			alert('Please enter a valid credit card number.');
			b.cc_number.focus();	return false;
		} else if (emailtest == false) {	
			alert('Please enter a valid email address.');
			b.email.focus();	return false;
		}
		new Ajax.Request('/lib/cart_buy.php?func=billing', {
			method: 'post',
			parameters: perams,
			onSuccess: function(t) {
				if (cont)
					chooseStep(3);
				else
					continueShopping();
			}
		});
	}
}

function saveShipping(cont) {
	if (true || invoice && invoice.length > 0) {
		var b = document.forms['shipping'];
		var perams = {
			'first': b.first.value,
			'last': b.last.value,
			'address1': b.address1.value,
			'address2': b.address2.value,
			'city': b.city.value,
			'state': b.state.value,
			'zip': b.zip.value,
			'phone': b.phone.value,
			'shipping_method': b.shipping_method.value,
			'gift_card': b.gift_card.value
		};
		if (perams.first == '') {
			alert('Please enter a first name.');
			b.first.focus();		return false;
		} else if (perams.last == '') {	
			alert('Please enter a last name.');
			b.last.focus();			return false;
		} else if (perams.address1 == '') {	
			alert('Please enter an address.');
			b.address1.focus();		return false;
		} else if (perams.city == '') {	
			alert('Please enter a city.');
			b.city.focus();			return false;
		} else if (perams.zip == '') {	
			alert('Please enter a zip code.');
			b.zip.focus();			return false;
		} else if (perams.shipping_method == 0) {
			alert('Cannot ship to the selected state.'); return false;
		}
		new Ajax.Request('/lib/cart_buy.php?func=shipping', {
			method: 'post',
			parameters: perams,
			onSuccess: function(t) {
				if (cont) {
					chooseStep(4);
				} else
					continueShopping();
			}
		});
	}
}

function changeCard(id) {
	for (var i=1;i<=4;i++) {
		if (i == id) {
			$('card'+i).className = 'creditcard_1';
		} else {
			$('card'+i).className = 'creditcard_0';
		}
	}
}

function methodList(prices, selected) {
	if (prices[0] || prices[1] || prices[2]) {
		var temp = '<select name="shipping_method" class="field" id="shipping_method" style="width:288px;">';
		if (parseInt(prices[0]) > 0)
			temp += '<option value="1"'+((parseInt(selected) == 1)?' selected="selected"':'')+'>$'+prices[0]+'.00 - Ground Shipping</option>';
		if (parseInt(prices[1]) > 0)
			temp += '<option value="2"'+((parseInt(selected) == 2)?' selected="selected"':'')+'>$'+prices[1]+'.00 - Second Day Shipping</option>';
		if (parseInt(prices[2]) > 0)
			temp += '<option value="3"'+((parseInt(selected) == 3)?' selected="selected"':'')+'>$'+prices[2]+'.00 - Next Day Air Shipping</option>';
		temp += '</select>';
	} else {
		var temp = '<select name="shipping_method" class="field" id="shipping_method" style="width:288px;">'+
		'<option value="0">Please call WVV for assistance</option>'+
		'</select>';
	}
	return temp;
}

function updateShippingPrices(state) {
	new Ajax.Request('/lib/cart_buy.php?func=shipping_prices&state='+state, {
		method: 'get',
		onSuccess: function(t) {
			eval('var data = ' + t.responseText);
			if (data.error) {
				alert('Error: '+data.error);
			} else {
				if (data.prices != false)
					$('method_wrapper').innerHTML = methodList(data.prices, data.selected);
				else
					$('method_wrapper').innerHTML = methodList(false, false);
			}
		}
	});
}

function confirmation() {
	if (invoice.length > 0) {
		new Ajax.Request('/lib/cart_buy.php?func=confirm', {
			method: 'get',
			onSuccess: function(t) {
				eval('var data = ' + t.responseText);
				if (data.error) {
					alert('Error: '+data.error);
				} else if (data.bottle_count > 0) {
					if (!data.billing || !data.shipping) {
						alert('Please fill out both billing and shipping information before proceeding.');
						chooseStep(((data.billing)?3:2));
						return false;
					}
					switch(data.billing.cc_type) {
						case 'visa':	var cType = 'Visa';				break;
						case 'mc':		var cType = 'Mastercard';		break;
						case 'disc':	var cType = 'Discover Card';	break;
						case 'amex':	var cType = 'American Express';	break;
					}
					var temp1 = '';
					temp1 += '<div id="confirmation_segment">';
					temp1 += '<div id="confirmation_col1">'+
					'<h2>Billing Address</h2><p>'+
					data.billing.first+' '+data.billing.last+' ('+data.billing.email+')<br />'+
					data.billing.address1+((data.billing.address2.length>0)?'<br />'+data.billing.address2:'')+'<br />'+
					data.billing.city+', '+data.billing.state+' '+data.billing.zip+
					((data.billing.phone.length>0)?'<br />'+data.billing.phone:'')+
					'</p>'+
					'<h2>Credit Card Information</h2><p>'+
					data.billing.cc_number+'<br />'+cType+', Expires '+data.billing.cc_exp_month+'/'+data.billing.cc_exp_year+
					'</p></div>';
					temp1 += '<div id="confirmation_col2">'+
					'<h2>Shipping Address</h2><p>'+
					data.shipping.first+' '+data.shipping.last+'<br />'+
					data.shipping.address1+((data.shipping.address2.length>0)?'<br />'+data.shipping.address2:'')+'<br />'+
					data.shipping.city+', '+data.shipping.state+' '+data.shipping.zip+
					((data.shipping.phone.length>0)?'<br />'+data.shipping.phone:'')+
					'</p>'+
					'<h2>Gift Card Text (optional)</h2><p>'+
					((data.shipping.gift_card.length > 0)?data.shipping.gift_card:'<i>no gift card text requested</i>')+
					'</p></div>';
					temp1 += '<div style="clear:both; height:0; overflow:hidden;"></div>';
					temp1 += '</div>';
					for (var i=0;i<invoice.length;i++) {
						temp1 += '<div class="'+((i%2==0)?'even':'odd')+'row">'+
						'<div class="row_a">$'+invoice[i][3]+'</div>'+
						'<div class="row_e" >'+ invoice[i][2] +' bottle'+((invoice[i][2]>1)?'s':'')+'</div>'+
						'<div class="row_d">'+ invoice[i][1]+' '+invoice[i][4] +'</div>'+
						'</div>';
					}
					if (invoice.length) {
						switch(data.discount_percent) {
							case 5:
								var dText = '6-11';
								break;
							case 10:
								var dText = '12-23';
								break;
							case 15:
								var dText = '24 or more';
								break;
						}
						switch(data.shipping.shipping_method) {
							case 1: case "1":
								var sText = 'Ground';
								break;
							case 2: case "2":
								var sText = 'Second Day';
								break;
							case 3: case "3":
								var sText = 'Next Day Air';
								break;
						}
						
						if (data.discount_percent) {
							temp1 +=
							'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
								'<div class="row_a">-$'+data.discount+'</div>'+
								'<div class="row_b">'+data.discount_percent+'% Discount:</div>'+
								'<div class="row_c">'+dText+' bottles purchased</div>'+
							'</div>';
						}
						temp1 +=
						'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
							'<div class="row_a" style="font-size:16px;">$'+data.subtotal+'</div>'+
							'<div class="row_b" style="font-size:18px; font-weight:bold;">Subotal:</div>'+
						'</div>';
						$('cart_body').innerHTML = temp1;
						temp1 +=
						'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
							'<div class="row_a">+$'+data.shipping_cost+'</div>'+
							'<div class="row_b">Shipping to '+data.shipping.state+' via '+sText+':</div>'+
						'</div>';
						temp1 +=
						'<div class="oddrow" style="color:#A1AFC9; background-color:#354157;">'+
							'<div class="row_a" style="font-size:16px;">$'+data.total+'</div>'+
							'<div class="row_b" style="font-size:18px; font-weight:bold;">Total:</div>'+
						'</div>';
						$('cart_body').innerHTML = temp1;
						
						var temp2 =
						'<a class="cart_button3" href="#" onclick="completeOrderConfirmation();return false;"><div>Complete Order</div></a>'+
						'<a class="cart_button1" href="#" onclick="continueShopping();return false;"><div>Continue Shopping</div></a>';
						$('cart_bottom').innerHTML = temp2;
						
						$('cart_top').style.display = 'block';
						$('cart_body').style.display = 'block';
						$('cart_bottom').style.display = 'block';
					}
				} else if (data.bottle_count == 0){
					emptyCart(true);
				}
			}
		});
	}
}

function completeOrder() {
	new Ajax.Request('/lib/cart_buy.php?func=confirm&finish=1', {
		onSuccess: function(t) {
			eval('var data = ' + t.responseText);
			if (data.error) {
				alert('Error: '+data.error);
			} else {
				alert('Your order is complete! You should receive an email shortly, detailing your purchase. Thank you!'+((data.call)?"\n\nIMPORTANT!\nThis shipping address requires that you call to complete the order:\n1-800-344-9463\n(Refer to your confirmaton email for your order number)":''));
				emptyCart(true);
			}
		}
	});
}

function completeOrderConfirmation() {
	if (confirm("Orders received after 12:00pm PST will be processed on the following business day. You must be 21 years of age to purchase wine, therefore someone 21 or older will be required to sign for wine at the time of delivery. \n\nIf you have any questions, please contact us at 800-344-9463. Thank you for your order.")) {
		completeOrder();	
	}
}










