/*
Creator: BCSE - Henry Hanna
Date: 9/22/2009

Purpose: Javascript definitions to load the Minicart
*/

function tpms_ajax_minicart_loading(){

	if(jQuery('#tpms-minicart').length == 0){
		return;
	}

	if(minicart_checkout_buttons === true && jQuery('#tpms-minicart').css('marginTop') != '0px'){
		jQuery('#tpms-minicart').animate({'marginTop': '0px','marginBottom':'15px'},'200');
	}

	jQuery('#tpms-minicart .tpms-minicart-content').animate({
			opacity : '0',
			height: '24px'
		},'250',function(){
		jQuery(this).html('');
		jQuery(this).css('height',null);
		jQuery(this).css('display','block');
	});
	jQuery('#tpms-minicart .tpms-minicart-loader').fadeIn('250');

}

function tpms_ajax_minicart_load_data(data,msg){
	jQuery('body').append('<div id="tpms-minicart-temp"></div>');

	var minitemp = jQuery('#tpms-minicart-temp');

	minitemp.css('width','193px');
	minitemp.css('display','none');
	minitemp.html(data);

	if(minitemp.find('.tpms-minicart-products').length > 0){
		if(minicart_checkout_buttons === true){
			if(jQuery('#tpms-minicart').css('marginTop') == '0px'){
				jQuery('#tpms-minicart').animate({'marginTop': '35px','marginBottom':'50px'},'200');
			}
			minitemp.prepend('<div class="tpms-minicart-checkout-top"><a href="/cart.php"><img src="' + images_dir + '/minicart_checkout.gif" /></a></div>');
			minitemp.append('<div class="tpms-minicart-checkout-bottom"><a href="/cart.php"><img src="' + images_dir + '/minicart_checkout.gif" /></a></div>');

			if($.browser.msie && $.browser.version.substr(0,1) < 7){
				var tmp = jQuery('#tpms-minicart-temp').find('.tpms-minicart-checkout-bottom');
				tmp.css('top',(jQuery('#tpms-minicart-temp').outerHeight() + 10) + 'px');
				tmp.css('bottom','auto');
			}

		}else{
			minitemp.find('.tpms-minicart-link-remove').remove();
		}
	}

	if(typeof msg != 'undefined' && msg != ''){
		minitemp.append('<div class="tpms-minicart-error">' + msg + '</div>');
	}

	var minicart_height = minitemp.height();

	var minicontent = jQuery('#tpms-minicart .tpms-minicart-content');

	minicontent.css('opacity','0');
	minicontent.html(minitemp.html());
	minicontent.animate({
		opacity: '1',
		height: (minicart_height + 'px')
	},500,function(){
		jQuery(this).css('opacity',null);
		jQuery(this).css('height','auto');

		if($.browser.msie && $.browser.version.substr(0,1) < 7){
			jQuery(this).find('.tpms-minicart-checkout-bottom').css('top',(jQuery(this).outerHeight() + 10) + 'px');
		}

	});
	jQuery('#tpms-minicart .tpms-minicart-loader').fadeOut('500');

	minitemp.remove();

	if(jQuery('#tpms-minicart').parent().css('position') == 'absolute'){
		setTimeout(function(){
			if(jQuery('#tpms-minicart').outerHeight() > jQuery('#tpms-minicart').parent().parent().outerHeight()){
				jQuery('#tpms-minicart').parent().parent().css('height',jQuery('#tpms-minicart').outerHeight() + 'px');
				if(jQuery.browser.msie){
					jQuery('.tpms-flc-main-left').find('.flc-shippings label').each(function(){
						jQuery(this).css('position','static');
					});
					jQuery('.flc-address').each(function(){
						if(jQuery(this).css('position') == 'relative'){
							jQuery(this).css('position','absolute');
							jQuery(this).css('top','194px');
							jQuery(this).css('left','0px');
						}
					});
				}
			}
		},500);
	}

	jQuery('#tpms-minicart-zc').keypress(function(e){
		if(e.which == 13){
			tpms_minicart_calculate_shipping();
		}
	});
}

function tpms_load_ajax_minicart(msg){
	if(jQuery('#tpms-minicart').length == 0)
		return;

	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'mode=display_ajax_minicart',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		success: function(data){
			setTimeout(function(){tpms_ajax_minicart_load_data(data,msg);},'300');
		},
		error: function(x,y,z){
			tpms_load_ajax_minicart();
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);
}

function tpms_ajax_minicart_remove(itemid){

	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'mode=delete&productindex=' + encodeURIComponent(itemid) + '&from_minicart=Y',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		complete: function(x,y){
			tpms_load_ajax_minicart();
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);

	return false;
}

function tpms_minicart_calculate_shipping(id){

	var zipcode = jQuery('#' + id).val();

	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'zip_estimate=' + encodeURIComponent(zipcode) + '&from_minicart=Y',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		complete: function(x,y){
			tpms_load_ajax_minicart();
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);

	return false;
}

function tpms_minicart_calculate_coupon(id){

	var coupon = jQuery('#' + id).val();

	var error_message = '';

	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'mode=add_coupon&coupon=' + encodeURIComponent(coupon) + '&from_minicart=Y',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		success: function(data){
			error_message = data;
		},
		complete: function(x,y){
			setTimeout(function(){tpms_load_ajax_minicart(error_message)},200);
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);

	return false;
}

function tpms_minicart_remove_coupon(){

	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'mode=unset_coupons&from_minicart=Y',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		complete: function(x,y){
			setTimeout(function(){tpms_load_ajax_minicart()},200);
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);

	return false;
}

function tpms_minicart_calculate_shipnum(shipnum){
	var ajaxoptions = {
		async: true,
		url: '/cart.php',
		type: 'post',
		data: 'shipper_number=' + encodeURIComponent(shipnum) + '&from_minicart=Y',
		beforeSend: function(){
			tpms_ajax_minicart_loading();
		},
		complete: function(x,y){
			tpms_load_ajax_minicart();
		},
		timeout: 5000
	}

	jQuery.ajax(ajaxoptions);

	return false;
}

//jQuery('document').ready(function(){
	tpms_load_ajax_minicart();
//});
