var ajax_endpoint = '/index.php?id=395';
var ybs = ybs || {};
ybs = {
	calcRate : function(prod) {
		var catg = ($('#catID_' + prod).length) ? $.trim($('#catID_' + prod).val()) : '';
		var from = ($('#from_' + prod).length) ? $.trim($('#from_' + prod).val()) : '';
		var to = ($('#to_' + prod).length) ? $.trim($('#to_' + prod).val()) : '';
		var qty = ($('#qty_' + prod).length) ? $.trim($('#qty_' + prod).val()) : '';
		var startTime = ($('#startTime_' + prod).length) ? $.trim($('#startTime_' + prod).val()) : '00:00';
		var endTime = ($('#endTime_' + prod).length) ? $.trim($('#endTime_' + prod).val()) : '00:00';
		if(from != '') from = from + ' ' + startTime;
		if(to != '') to = to + ' ' + endTime;
		var bikename = ($('#bikename_' + prod).length) ? $.trim($('#bikename_' + prod).val()) : '';
		var bikepic = ($('#bikepic_' + prod).length) ? $.trim($('#bikepic_' + prod).val()) : '';
		var bikeinfo = ($('#bikeinfo_' + prod).length) ? $.trim($('#bikeinfo_' + prod).val()) : '';
		$.ajax({
			type: "post",
			url: ajax_endpoint,
			dataType: "json",
			data: { "ajax_action" : "calc_rate", "catg" : catg, "prod" : prod, "from" : from, "to" : to, "qty" : qty, "bikepic" : bikepic, "bikename" : bikename, "bikeinfo" : bikeinfo }, // End data
			success: function(jsonObj) {
				if(jsonObj.errcode == '0') {
					$("#rate1_" + prod).html(jsonObj.rate + ' x ' + qty);
					$("#rate_" + prod).val(jsonObj.rate);
					if(parseFloat(jsonObj.rate) > 0 && startTime != '00:00' && endTime != '00:00') {
						$("#controlsWrapper_" + prod).show();
					} else {
						$("#controlsWrapper_" + prod).hide();
					}
				} else {
					ybs.showError(jsonObj.errmsg, prod);
				}
			}, // End success
			error: function(request, error) {
				var errmsg = '';
				if (error == "timeout") errmsg = "The request timed out";
				else errmsg = "ERROR: " + error;
				if (errmsg != '') ybs.showError(errmsg, prod);
			} // End error
		}); // End ajax method
	},
	resetValues: function() {
		$( "input[name^='from_'], input[name^='to_']" ).val('');
		$( "select[id^='qty_']" ).val('');
		$( "div[id^='controlsWrapper_']" ).hide();
		$( "div[id^='errmsg_']" ).html('').hide();
	},
	showError: function(errmsg, prod) {
		$( "#errmsg_" + prod ).html(errmsg).show();
		window.setTimeout('$( "#errmsg_' + prod + '" ).html("").hide("slow");', 3000);
	},
	addTime: function(prod){
		var fromOrig = $('#from').val();
		var toOrig = $('#to').val();
		var startTimeOrig = $('#startTime').val();
		var endTimeOrig = $('#endTime').val();
		$('input[type=text].rentTo').val(toOrig);
		$('input[type=text].rentFrom').val(fromOrig);
		$('select.startTime').val(startTimeOrig);
		$('select.endTime').val(endTimeOrig);
		alert('If you have multiple timeframes, click "New Date" on any bike to change dates. ')
		$.scrollTo( $('h2.togglerCategory:first'), 800 );
		$('div.bikeClass:first').slideToggle(800, function() {
			// Animation complete.
			return false;
		});
	},

	updateDates: function(s) {
		// from_13_390_2011_11_03_090000_2011_11_15_090000
		/*var tokens = s.split('_');
		var catg = tokens[1];
		var pageId = tokens[2];
		var key = catg + '_' + pageId + '_' + tokens[3] + '_' + tokens[4] + '_' + tokens[5] + '_' + tokens[6] + '_' + tokens[7] + '_' + tokens[8] + '_' + tokens[9] + '_' + tokens[10]; */

		var catg = s.split('_')[1];
		var key = s.split('_')[2];
		var from = $.trim($('#from_' + catg + '_' + key).val());
		var startTime = $.trim($('#startTime_' + catg + '_' + key).val());
		var to = $.trim($('#to_' + catg + '_' + key).val());
		var endTime = $.trim($('#endTime_' + catg + '_' + key).val());
		if(from != '') from = from + ' ' + startTime;
		if(to != '') to = to + ' ' + endTime;
		var isShippable = 'yes';

		//
		var hr = from.split(' ');
		var dt = hr[0].split('/');
		var startdate = dt[2] + '-' + dt[0] + '-' + dt[1] + ' ' + hr[1] + ':00';
		hr = to.split(' ');
		dt = hr[0].split('/');
		var enddate = dt[2] + '-' + dt[0] + '-' + dt[1] + ' ' + hr[1] + ':00';
		$('input[name="startdate_' + key + '"]').val(startdate);//hidden, used in update
		$('input[name="enddate_' + key + '"]').val(enddate);//hidden, used in update
		window.setTimeout("$('#btnUpdate').trigger('click')", 10);

		/*
		$.ajax({
		type: "post",
		url: ajax_endpoint,
		dataType: "json",
		data: { "ajax_action" : "update_dates", "catg" : catg, "from" : from, "to" : to, "isShippable": isShippable }, // End data
		success: function(jsonObj) {
		if(jsonObj == null) {
		alert('No response from the server.');
		} else if(jsonObj.errcode == '0') {
		$('#dateline_' + key).html(jsonObj.out);
		//$('#datepick_' + key).hide();
		$('input[name="startdate_' + key + '"]').val(jsonObj.startdate);
		$('input[name="enddate_' + key + '"]').val(jsonObj.enddate);
		$('#btnUpdate').trigger('click');
		//document.getElementById('updateCart').value='Update Cart';document.forms['frmViewCart'].submit();
		} else {
		alert(jsonObj.errmsg);
		}
		}, // End success
		error: function(request, error) {
		var errmsg = '';
		if (error == "timeout") errmsg = "The request timed out";
		else errmsg = "ERROR: " + error;
		if (errmsg != '') alert(errmsg);
		} // End error
		}); // End ajax method
		*/
	},
	addToCart: function(prod) {

		var catg = ($('#catID_' + prod).length) ? $.trim($('#catID_' + prod).val()) : '';
		var from = ($('#from_' + prod).length) ? $.trim($('#from_' + prod).val()) : '';

		var to = ($('#to_' + prod).length) ? $.trim($('#to_' + prod).val()) : '';

		var qty = ($('#qty_' + prod).length) ? $.trim($('#qty_' + prod).val()) : 1;
		var startTime = ($('#startTime_' + prod).length) ? $.trim($('#startTime_' + prod).val()) : '00:00';
		var endTime = ($('#endTime_' + prod).length) ? $.trim($('#endTime_' + prod).val()) : '00:00';
		if(from != '') from = from + ' ' + startTime;
		if(to != '') to = to + ' ' + endTime;
		var rate = ($('#rate_' + prod).length) ? $.trim($('#rate_' + prod).val()) : '0';
		var isShippable = ($('#isShippable_' + prod).length) ? $.trim($('#isShippable_' + prod).val()) : 'no';
		var isTaxable = ($('#isTaxable_' + prod).length) ? $.trim($('#isTaxable_' + prod).val()) : '0';
		var shipping = ($('#shipping_' + prod).length) ? $.trim($('#shipping_' + prod).val()) : '0';
		var shippingNewSequential = ($('#shippingNewSequential_' + prod).length) ? $.trim($('#shippingNewSequential_' + prod).val()) : '0';
		var bikename = ($('#bikename_' + prod).length) ? $.trim($('#bikename_' + prod).val()) : '';
		var bikepic = ($('#bikepic_' + prod).length) ? $.trim($('#bikepic_' + prod).val()) : '';
		var bikeinfo = ($('#bikeinfo_' + prod).length) ? $.trim($('#bikeinfo_' + prod).val()) : '';
		var rentals = (qty > 1) ? 'items' : 'item';

		var prodoptions = new Array();
		if($('input[name^="option_"],select[name^="option_"]').length){
			$('input[name^="option_"],select[name^="option_"]').each(function(){
				var tokens = this.name.split('_');
				if(tokens[2] == prod){
					prodoptions.push({key:tokens[1],value:$.trim(this.value)});
				}
			});
		}

		$.ajax({
			type: "post",
			url: ajax_endpoint,
			dataType: "json",
			data: { "ajax_action" : "add_to_cart", "catg" : catg, "prod" : prod, "from" : from, "to" : to, "qty" : qty, "rate" : rate, "bikepic" : bikepic, "bikename" : bikename, "bikeinfo" : bikeinfo, "isShippable": isShippable, "isTaxable": isTaxable, "shipping" : shipping, "shippingNewSequential" : shippingNewSequential, "prodoptions": prodoptions }, // End data
			success: function(jsonObj) {
				if(jsonObj == null) {
					ybs.showError('No response from the server.', prod);
				} else if(jsonObj.errcode == '0') {
					$( "#errmsg_" + prod ).css('backgroundColor','#3EAD2B').html("<p style='font-weight: bold'><span style='background-color: #fff;color: green;-webkit-border-radius: 24px; padding: 0 0.5em;border-radius: 24px;width: 1em;border: 4px solid #187508'>&#10004;</span> You added "+ qty +" "+ rentals+" to the cart</p>").show();
					window.setTimeout('$( "#errmsg_' + prod + '" ).html("").hide("slow");', 3000);

					$( "#dialog").html("<p style='font-weight: bold'><span style='background-color: #fff;color: green;-webkit-border-radius: 24px; padding: 0 0.5em;border-radius: 24px;width: 1em;border: 4px solid #187508'>&#10004;</span> You added "+ qty +" "+ rentals+" to the cart</p>");


					$( "#dialog" ).dialog({
						resizable: true,
						height:300,
						modal: true,
						buttons: {
						"Continue": function() {
							$( this ).dialog( "close" );
						},
						"Continue with new address": function() {
							$( this ).dialog( "close" );
							$.scrollTo('#from',500);
						},
						"View Cart": function(){
							$( this ).dialog( "close" );
							window.location='/shopping-cart.html';

						}
						}
					});// success
				} else {
					ybs.showError(jsonObj.errmsg, prod);
				}
			}, // End success
			error: function(request, error) {
				var errmsg = '';
				if (error == "timeout") errmsg = "The request timed out";
				else errmsg = "ERROR: " + error;
				if (errmsg != '') ybs.showError(errmsg, prod);
			}, // End error
			complete: function() {
				ybs.showCartCnt();
			}
		}); // End ajax method
	},
	showCartCnt: function() {
		if(!$("#cartCnt").length) {
			alert('No #cartCnt HTML element found!');
			return false;
		}
		$.ajax({
			type: "post",
			url: ajax_endpoint,
			dataType: "json",
			data: { "ajax_action" : "show_cart_cnt" }, // End data
			beforeSend: function() {
				$("#cartCnt").html("reloading...");
			}, // End beforeSend
			success: function(jsonObj) {
				if(jsonObj == null) {
					$("#cartCnt").html('No response from the server.');
				} else if(jsonObj.errcode == '0') {
					$("#cartCnt").html(jsonObj.out);

					var cnt = jsonObj.cnt;
					if(cnt) {
						if(parseInt(cnt) > 0) {
							$('.viewCartBtn').show();
						} else {
							$('.viewCartBtn').hide();
						}
					}
				} else {
					$("#cartCnt").html(jsonObj.errmsg);
				}
			}, // End success
			error: function(request, error) {
				var errmsg = '';
				if (error == "timeout") errmsg = "The request timed out";
				else errmsg = "ERROR: " + error;
				if (errmsg != '') $("#cartCnt").html(errmsg);
			} // End error
		}); // End ajax method
	},
	cancelUpdate: function(parent, id) {
		var startdate = $('#startdate_' + parent + '_' + id).val();//hidden below cal.
		var enddate = $('#enddate_' + parent + '_' + id).val();//hidden below cal.
		$('input[name="startdate_' + id + '"]').val(startdate);//hidden, used in update
		$('input[name="enddate_' + id + '"]').val(enddate);//hidden, used in update
		$('#datepick_' + parent + '_' + id).toggle();
	}
};
function initMenu() {
	$('div.bikeClass').hide();
	$('div.hidden').hide();
	$('div.hiddenRates').hide();

	$('h2.togglerCategory').click(function() {

		var checkElement = jQuery(this).next('div');
		var emshow = $(this).children('em');
		$(emshow).text(jQuery(emshow).text() == "-" ? "+" : "-");




		$(this).next('div.bikeClass').slideToggle(600, function() {
			// Animation complete.
			return false;
		});


		$.scrollTo( this, 600 );


	});

	$('p.toggler').click(function() {
		var checkElement = $(this).parents("div").siblings('div.hidden');
		var emshow = $(this).children('em');
		$(emshow).text(jQuery(emshow).text() == "-" ? "+" : "-");



		$(this).parents().next('div.hidden').slideToggle(200, function() {
			// Animation complete.
			return false;
		});
		$(this).closest("div").siblings('div.hidden').slideToggle(200, function() {


			if(checkElement.is(':visible')){

				$.scrollTo( checkElement, 900 );
			}

		});





	});
	$('p.toggler').click(function() {

		var emshow = $(this).children('em');
		$(emshow).text(jQuery(emshow).text() == "-" ? "+" : "-");



		$(this).next('div.hidden').slideToggle(200, function() {
			// Animation complete.
			return false;
		});






	});

	$('p.togglerRates').click(function() {
		var ratesBlock = $(this).parents('div').next('div.hiddenRates');
		var emshow = $(this).children('em');
		$(emshow).text(jQuery(emshow).text() == "-" ? "+" : "-");


		$(this).parents('div').next('div.hiddenRates').slideToggle(200, function() {
			// Animation complete.
			return false;
		}); $.scrollTo(ratesBlock, 800 );
	});
	$('a.hideRates').click(function() {
		var checkElements = $(this).parents('div.hiddenRates').siblings('h2');
		var emshow = $(this).parents('div.span-50.rates.clearfix').children('p.togglerRates em');
		$(emshow).text(jQuery(emshow).text() == "-" ? "+" : "-");


		$(this).parents('div.hiddenRates').slideToggle(50, function() {
			// Animation complete.
			return false;

		});

		$.scrollTo(checkElements, 600 );
	});




	$('a.reserveNow').click(function() {
		$(this).closest('div.bikeDiv').css('background-color','#EFFBFC');
		$(this).closest("div").hide();
		$(this).closest("div").siblings("div.bikeRates").hide(300);

	});
}










jQuery(function ($) {
	initMenu();
	$('input[class="rentTo"], input[class="rentFrom"]').click(function() {

		$.scrollTo(this, 200 );$.scrollTo({top:'+=25px', left:'+=10'},0);
		$('#ui-datepicker-div').animate({left:'-=20'},100);
	});
	/*$('input:not(.rentTo,.rentFrom)').blur(function() {

	$.scrollTo( this, 1 );

	});
	$('.ui-datepicker-div a, .ui-datepicker-div a').click(function() {

	$.scrollTo( this, 0 );

	});
	*/

	if($('#frmViewCart').length && $('#btnUpdate').length && $('#btnCheckout').length) {
		$('select,input').bind('change', function(e){
			$('#btnCheckout').fadeOut('slow');
		});
		/*$('#btnUpdate').click(function(e) {
			e.preventDefault();
			$('div[id^="datepick_"]').each(function(i){
				var s = this.id;
				var catg = s.split('_')[1];
				var key = s.split('_')[2];
				var from = $.trim($('#from_' + catg + '_' + key).val());
				var startTime = $.trim($('#startTime_' + catg + '_' + key).val());
				var to = $.trim($('#to_' + catg + '_' + key).val());
				var endTime = $.trim($('#endTime_' + catg + '_' + key).val());
				if(from != '') from = from + ' ' + startTime;
				if(to != '') to = to + ' ' + endTime;
				
				var hr = from.split(' ');
				var dt = hr[0].split('/');
				var startdate = dt[2] + '-' + dt[0] + '-' + dt[1] + ' ' + hr[1] + ':00';
				hr = to.split(' ');
				dt = hr[0].split('/');
				var enddate = dt[2] + '-' + dt[0] + '-' + dt[1] + ' ' + hr[1] + ':00';
				$('input[name="startdate_' + key + '"]').val(startdate);//hidden, used in update
				$('input[name="enddate_' + key + '"]').val(enddate);//hidden, used in update
				console.log('startdate: ' + startdate + ' / enddate: ' + enddate + ' / key: ' + key);
			});
		});*/
	}
});




