// Shopify JavaScript File

if(!$.fn.duplicate){
	$.fn.duplicate = function(count, cloneEvents) {
		var tmp = [];
		for (var i = 0; i < count; i++) {
			$.merge(tmp, this.clone(cloneEvents).get());
		}
		return this.pushStack(tmp);
	};
}

var $shopify=(function($){
	var $initialized=false;
	var $productObject=false;			// Contains the current product information
	var $basketCookie=false;			// Does the basket cookie exist
	var $basketCookieData=false;		// Products from the basket cookie
	var $cookieName='shopify_basket';

	$.fn.shopify=function(selector, remove){
		if(remove){
			
		}else{
			var variantID = Number($('#variant_id').val());
			var variantQTY = Number($('#variant_qty').val());
			$shopify.setProduct($productObject.name,$productObject.pid,variantID,variantQTY).addProduct();
			return this;
		}
	}

	return{
		'addProduct':function(){
//console.log('addProdcut Before:',$basketCookieData);
			$basketCookieData[$basketCookieData.length]=$productObject;
			this.writeCookie();
//console.log('addProdcut After:',$basketCookieData);
		},
		'deleteCookie':function(){
			return this.writeCookie([],true);
		},
		'initialize':function(){
			$basketCookie=this.readCookie(true);
			if(!$basketCookie){
				this.writeCookie([]);
				$basketCookie=true;
			}else{
				this.readCookie();
			}
			$('#cartclear').attr('src','');
//console.log('Basket Cookie Data',$basketCookieData);
			$initialized=true;
		},
		'initializeProduct':function(productName,productID,variantID,jsVariants){
			this.setProduct(productName,productID,variantID,1);
//console.log('initializeProduct:',$productObject);
			$('form#product_'+productID).submit(function(){
				$(this).shopify('#'+this.id);
			}).get(0).reset();
			$('form#product_'+productID+' select').change(function(){
				var $opts='';
				$('form#product_'+productID+' select').each(function(){
					$opts+=$(this).val();
				});
				$('#variant_id').val(jsVariants[$opts]);
			});
		},
		'productCount':function(){
//console.log('Basket Count:',$basketCookieData?$basketCookieData.length:0);
			return $basketCookieData?$basketCookieData.length:0;
		},
		'readCookie':function(exists){
			if(exists){return $.cookie($cookieName)?true:false;}
			$basketCookieData=$.evalJSON(unescape($.cookie($cookieName)));
			$('#basket-count').text(this.productCount());
			return $basketCookieData;
		},
		'removeProduct':function(variantID){
			$.each($basketCookieData,function(i,v){
				if(v.vid==variantID){
					$basketCookieData.splice(i,1);
					$shopify.writeCookie();
					return false
				}
			});
		},
		'setProduct':function(productName,productID,variantID,qty){
			$productObject={'pid':productID,'vid':variantID,'qty':qty,'name':productName}
			return this;
		},
		'updateProduct':function(variantID,data){
			$.each($basketCookieData,function(i,v){
				if(v.vid==variantID){
					$basketCookieData[i]=$.extend($basketCookieData[i],data);
					$shopify.writeCookie();
					return false
				}
			});
		},
		'writeCookie':function(data,remove){
			$.cookie($cookieName,escape($.toJSON(data?data:(remove?null:$basketCookieData))),{'path':'/'});
			this.readCookie();
			return this;
		}
	};
})(jQuery);
$(function(){
	$shopify.initialize();
});

var addCommas=function(nStr){
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

var updateSubtotal=function(){
	var price=0;
	$('.linetotal.price_cell input').each(function(){
		price+=parseFloat($(this).val());
	});
	$('.tax_value').text(addCommas(price.toFixed(2)));
}

var initializeCart=function(){
	$.ajax({
		type: 'GET',
		url: '/shopify/ajaxcart/',
		success: function(cart){
			$('#cartitems').empty().append(cart);
			$('.checkout_form .item-remove').click(function(){
				$($(this).attr('rel')).remove();
				$shopify.removeProduct( Number($(this).attr('rel').replace('#item_','')) );
				updateSubtotal();
				return false;
			});
			$('.item-update').click(function(){
				return false;
			});
			$('.qty_field').change(function(){
				var field=$(this);
				var main = field.parents('li');
				var data={
					'id':field.attr('id'),
					'qty':Number(field.val()),
					'price':parseFloat(main.find('.unit.price_cell input').val())
				};
				$shopify.updateProduct(Number(data.id.replace('quantity_','')),{'qty':data.qty});
				main.find('.linetotal.price_cell span').text(addCommas((data.price*data.qty).toFixed(2)));
				main.find('.linetotal.price_cell input').val(data.price*data.qty);
				updateSubtotal();
				var qty=$('input.'+data.id);
				var clones = qty.eq(0).clone().duplicate(data.qty);
				qty.remove();
				main.append(clones);
			});
			updateSubtotal();
		}
	});
}



$(function(){

	var $form = $('.checkout_form');
	if($form.length){
//		$form.get(0).reset();
	}

	$('#checkout-btn').click(function(){
//http://miravalstore.myshopify.com/cart/clear.js
		$('#cartclear').attr('src','http://miravalstore.myshopify.com/pages/data').load(function(){
			$('.checkout_form').submit();
		});
	});

});

/*
'removeProduct':function(variantID){
//	jQuery.ajax({
//		type: 'POST',
//		url: 'http://miravalstore.myshopify.com/cart/change.js',
//		data:  'quantity=0&id='+variantID,
//		dataType: 'json',
//		success: function(cart){
//		}
//	});
	$.each($basketCookieData,function(i,v){
		if(v.vid==variantID){
			$basketCookieData.splice(i,1);
			$shopify.writeCookie();
			return false
		}
	});
}

var initiateProduct=function(product_id,jsvariants,name){
	$(function(){
		$('form#product_'+product_id).submit(function(){
			var cookie = $.cookie('shopify_basket');
			var variantID = Number($('#variant_id').val());
			var variantQTY = Number($('#variant_qty').val());
			if(!variantQTY){variantQTY=1;}
			if(cookie){
				var variantExists=false;
				var cookieObject = $.evalJSON(unescape(cookie));
				$.each(cookieObject,function(i,v){
					if(v.vid==variantID){
						cookieObject[i].qty=variantQTY;
						variantExists=true;
						return false;
					}
				});
				if(!variantExists){
					cookieObject[cookieObject.length]={'pid':product_id,'vid':variantID,'qty':variantQTY,'name':$('.about_product h2').text()};
				}
console.log('Modified: Cookie Variant Object',cookieObject);
				$.cookie('shopify_basket',escape($.toJSON(cookieObject)),{'path':'/'});

			} else{
				$.cookie('shopify_basket',escape($.toJSON([{'pid':product_id,'vid':variantID,'qty':variantQTY,'name':$('.about_product h2').text()}])),{'path':'/'});
var cookieObject = $.evalJSON(unescape($.cookie('shopify_basket')));
console.log('Created: Cookie Variant Object',cookieObject);
			}
			return false;
		});

		var $variant_id = $('form#product_'+product_id+' #variant_id');
		$('form#product_'+product_id+' select').change(function(){
			var $opts='';
			$('form#product_'+product_id+' select').each(function(){
				$opts+=$(this).val();
			});
			$variant_id.val(jsvariants[$opts]);
		});

	});
};
*/




/*
var cookieData=function(){
	var data='';
	var cookieObject = $.evalJSON(unescape($.cookie('shopify_basket')));
	console.log('Cookie Sort',cookieObject);
	$.each(cookieObject,function(i,v){
		console.log('Cookie Item: '+i,v.vid + ' | ' + v.qty);
		for(var p=0;p<v.qty;p++){
			if(data!=''){data += '&id[]='+v.vid;}
				else{data+='id[]='+v.vid;}
		}
	});
	console.log("data string",data);
//	window.location.href = 'http://miravalstore.myshopify.com/cart/add?'+data;
}
*/