var get_products = function(){
	var names = $('.update_name');
	var brands = $('.update_brand');
	var descs = $('.update_desc');
	var codes = $('.update_code');
	var parts = $('.update_part');
	var quants = $('.update_quant');
	var prices = $('.cartitems li.price.smalltext');
	var name_a = new Array();
	var brand_a = new Array();
	var desc_a = new Array();
	var code_a = new Array();
	var part_a = new Array();
	var quant_a = new Array();
	var price_a = new Array();

	
	var i = 0;
	$.each(names, function(){
		name_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(brands, function(){
		brand_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(descs, function(){
		desc_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(codes, function(){
		code_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(parts, function(){
		part_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(quants, function(){
		quant_a[i] = $(this).val();
		i++;
	});
	i = 0;
	$.each(prices, function(){
		price_a[i] = $(this).html();
		i++;
	});
	for(var c = 0; c < i ; c++){
		//alert("code: " + prod_a[c] + "\npart: "
		//						  + part_a[c] + "\nquant: " + quant_a[c] + "\nprice:" + price_a[c]);
	}
	var ret = new Array(name_a,brand_a,desc_a,code_a,part_a,quant_a,price_a);
	
	return ret;
}

var get_prize_draws = function(){
	var prize_draws = $('input[name|=active_draw]');
	var draws_a = new Array();
	var i = 0;
	$.each(prize_draws, function(){ 
		draws_a[i] = $(this).val();
		i++;
	});
	
	return draws_a;
}

var check_gifts = function(){
	var no_gifts = $('input[name=no_gifts]').val();
	if(no_gifts == "" || no_gifts == 0 || no_gifts == false || no_gifts == undefined){
		return true;
	}
	if(!$('#free-gifts').hasClass('done')){
		alert('You have '+no_gifts+' free gift(s)!  Please select your free gifts!');
		return false;
	}
	var gifts = new Array();
	sel_gifts = $('select.select-gifts');
	var c = 0;
	$.each(sel_gifts, function(){
			c++;
			gifts[c] = $(this).val();
		});
	return gifts;
}

var updateOrder = function(codes,parts,quants){
	$.ajax({
		type: 'POST',
		url: 'http://www.oaeyewear.com/ajax/update-order.php',
		data: codes+parts+quants,
		success: function(data){
			alert(data);
			window.location.reload();
		}
	});
}

var check_address = function(){
	var invoice = new Array();
	var delivery = new Array();
	
	invoice['name'] = $('input[name=invoice-firstname]').val();
	invoice['company'] = $('input[name=invoice-company]').val();
	invoice['add1'] = $('input[name=invoice-add1]').val();
	invoice['add2'] = $('input[name=invoice-add2]').val();
	invoice['add3'] = $('input[name=invoice-add3]').val();
	invoice['city'] = $('input[name=invoice-city]').val();
	invoice['postcode'] = $('input[name=invoice-postcode]').val();
	invoice['tel'] = $('input[name=invoice-tel]').val();
	
	delivery['name'] = $('input[name=delivery-firstname]').val();
	delivery['company'] = $('input[name=delivery-company]').val();
	delivery['add1'] = $('input[name=delivery-add1]').val();
	delivery['add2'] = $('input[name=delivery-add2]').val();
	delivery['add3'] = $('input[name=delivery-add3]').val();
	delivery['city'] = $('input[name=delivery-city]').val();
	delivery['postcode'] = $('input[name=delivery-postcode]').val();
	delivery['tel'] = $('input[name=delivery-tel]').val();
	
	if(invoice['name'] == "" || invoice['add1'] == "" || invoice['city'] == "" || invoice['postcode'] == "" || invoice['tel'] == ""){
		alert('Invoice address is incomplete, please enter all required fields.');
		return false;
	}
	if(delivery['name'] == "" || delivery['add1'] == "" || delivery['city'] == "" || delivery['postcode'] == "" || delivery['tel'] == ""){
		alert('Delivery address is incomplete, please enter all required fields.');
		return false;
	}
	var add = new Array(invoice,delivery);
	return add;
}

jQuery.fn.center = function(){
	this.css("position", "absolute");
	this.css("top", ( $(window).height() - this.height() ) / 2 + $(window).scrollTop() + "px");
	this.css("left", ( $(window).width() - this.width() ) / 2 + $(window).scrollLeft() + "px");
}

var place_order = function(addresses,
						   products,
						   gifts,
						   sub_total,discount,total,
						   user_id,user_account,user_email,user_name,
						   prize_draws){
	// set address info
	var inv_address, del_address;
	// invoice info
	inv_address = "&inv[name]=" + addresses[0]['name'];
	inv_address += "&inv[company]=" + addresses[0]['company'];
	inv_address += "&inv[add1]=" + addresses[0]['add1'];
	inv_address += "&inv[add2]=" + addresses[0]['add2'];
	inv_address += "&inv[add3]=" + addresses[0]['add3'];
	inv_address += "&inv[city]=" + addresses[0]['city'];
	inv_address += "&inv[postcode]=" + addresses[0]['postcode'];
	inv_address += "&inv[tel]=" + addresses[0]['tel'];
	// delivery info
	del_address = "&del[name]=" + addresses[1]['name'];
	del_address += "&del[company]=" + addresses[1]['company'];
	del_address += "&del[add1]=" + addresses[1]['add1'];
	del_address += "&del[add2]=" + addresses[1]['add2'];
	del_address += "&del[add3]=" + addresses[1]['add3'];
	del_address += "&del[city]=" + addresses[1]['city'];
	del_address += "&del[postcode]=" + addresses[1]['postcode'];
	del_address += "&del[tel]=" + addresses[1]['tel'];
	// products
	var products_string = "";
	for(var i in products[0]){
		// code, part, quant, price
		if(products_string != ""){
			products_string += "&product["+i+"][code]=" + products[3][i];
		} else {
			products_string = "&product["+i+"][code]=" + products[3][i];
		}
		products_string += "&product["+i+"][name]=" + products[0][i];
		products_string += "&product["+i+"][brand]=" + products[1][i];
		products_string += "&product["+i+"][desc]=" + products[2][i];
		products_string += "&product["+i+"][part]=" + products[4][i];
		products_string += "&product["+i+"][quant]=" + products[5][i];
		products_string += "&product["+i+"][price]=" + products[6][i];
	}
	// gifts
	var gifts_string = "";
	for(var i in gifts){
		if(gifts_string == ""){
			gifts_string = "&gifts["+i+"]=" + gifts[i];
		} else {
			gifts_string += "&gifts["+i+"]=" + gifts[i];
		}
	}
	
	var draw_string = "";
	for(var i in prize_draws){
		if(draw_string == ""){
			draw_string = "&draw["+i+"]=" + prize_draws[i];
		} else {
			draw_string += "&draw["+i+"]=" + prize_draws[i];
		}
	}
	// user
	var user_string;
	user_string = "&user[id]=" + user_id;
	user_string += "&user[account]=" + user_account;
	user_string += "&user[email]=" + user_email;
	user_string += "&user[name]=" + user_name;
	// cost
	var cost_string;
	cost_string = "&cost[sub]=" + sub_total;
	cost_string += "&cost[discount]=" + discount;
	cost_string += "&cost[total]=" + total;
	
	var string = inv_address + del_address + products_string + gifts_string + user_string + cost_string + draw_string;
	$.ajax({
		type: 'POST',
		url: 'http://www.oaeyewear.com/ajax/place-order.php',
		data: string,
		success: function(data){
			if(!isNaN(data)){
				window.location="http://www.oaeyewear.com/checkout/?action=complete";
			} else {
				alert(data);
			}
		}
	});
}

$(function(){
	$('a#update-order').click(
		function(){
			// set all .update_code
			var codes = new Array();
			// .update_part
			var parts = new Array();
			// .update_quant
			var quants = new Array();
			$('input.update_code').each(function(index){
					codes[index] = $(this).val();
				});
			$('input.update_part').each(function(index){
					parts[index] = $(this).val();
				});
			$('input.update_quant').each(function(index){
					quants[index] = $(this).val();
				});
			var code_string = '';
			var part_string = '';
			var quant_string = '';
			for(var i = 0;i<codes.length;i++){
				code_string += "&codes[]=" + codes[i];
				part_string += "&parts[]=" + parts[i];
				quant_string += "&quants[]=" + quants[i];
			}
			updateOrder(code_string,part_string,quant_string);
			return false;
		});
	
	$('input[name=copy_checkbox]').click(
		function(){
			$('input[name=delivery-firstname]').val($('input[name=invoice-firstname]').val());
			$('input[name=delivery-company]').val($('input[name=invoice-company]').val());
			$('input[name=delivery-add1]').val($('input[name=invoice-add1]').val());
			$('input[name=delivery-add2]').val($('input[name=invoice-add2]').val());
			$('input[name=delivery-add3]').val($('input[name=invoice-add3]').val());
			$('input[name=delivery-city]').val($('input[name=invoice-city]').val());
			$('input[name=delivery-postcode]').val($('input[name=invoice-postcode]').val());
			$('input[name=delivery-tel]').val($('input[name=invoice-tel]').val());
		});
	
	$('a#select-gifts').click(
		function(){
			$('#free-gifts').center();
			$('#free-gifts').show();
			var promotion_id = $(this).prev('input[name=prom_id]').val();
			$.ajax({
				type: 'POST',
				url: 'http://www.oaeyewear.com/ajax/select-gifts.php',
				data: {promotion_id: promotion_id},
				success: function(data){
					$('#free-gifts-cont').html(data);
				}
			});
			return false;
		});
	
	$('input#set-gifts').click(
		function(){
			$('#free-gifts').addClass('done')
			$('#free-gifts').hide();
		});
	
	/*
		PLACE ORDER
	*/
	$('a#place-order').click(
		function(){
			// check address is set
			var addr = new Array();
			addr = check_address();
			// addr[0] = invoice / addr[0] = delivery
			
			// check terms and conditions agreed
			var checked = $('input[name=conf-checkbox]').attr('checked');
			if(false == checked){
				alert('Please agree to our terms and conditions before placing your order.');
				return false;
			}
			// if need gifts, check gifts are selected, get the,
			//alert(addr[1]['tel']);
			var gifts = check_gifts();
			if(gifts == false){
				return false;
			}
			
			// go through products
			var products = get_products();
			// [0] = code / [1] = desc / [2] = code / [3] = part / [4] = quant / [5] = price
			if(products == false){
				return false;
			}
			
			var prize_draws = get_prize_draws();
			// get sub total / discount / total
			/*var temp_price;
			var inc;
			var sub_total = new Number();
			for(var i in products[2]){
				temp_price = products[5][i].slice(1);
				inc = Number(products[4][i]) * Number(temp_price);
				sub_total += inc;
			}
			//alert(sub_total.toFixed(2));
			
			//discount
			var discount = sub_total * 0.1;
			// total
			var total = sub_total - discount;
			total = total.toFixed(2);
			sub_total = sub_total.toFixed(2);
			discount = discount.toFixed(2);
			*/
			var sub_total = $('span#sub_total').html();
			var discount = $('span#discount').html();
			var total = $('span#total').html();
			
			// user info
			var user_id = $('input#site_userid').val();
			var user_account = $('input#site_useraccount').val();
			var user_email = $('input#site_useremail').val();
			var user_name = $('strong.site_username').html();
			
			/*
				place the order
			*/
			place_order(addr,products,gifts,sub_total,discount,total,user_id,user_account,user_email,user_name,prize_draws);
			return false;
		});
});
