


$(document).ready(function(){

	$.fn.colorbox.settings.opacity = 0.50; 
	$().bind('cbox_complete', function(){
    	if($("#cboxTitle").html() != ""){ $("#cboxTitle").hide(); }
    	$('input').keydown(function(e){
		    if (e.keyCode == 13) {
		        $(this).parents('form').submit();
		        return false;
		    }
		});
    });

	$('.popup-close').click(function() {
		$.fn.colorbox.close()
	});

	$(".colorbox").colorbox();
	
	/* {}, function() { $("#modalLoadedContent").corner("20px"); } */

	$(".colorbox_signin").colorbox({}, function() {
		$('#loginform input[name=next]').val(CI.current_url);
		//var that = $.fn.colorbox.element(); 
		//if (that.name!='') $('#loginform input[name=next]').val(attr('name'));
		$('#loginform input[name=login]').focus();
	} );
	
	$(".colorbox_newsletter").colorbox({iframe:true, width:300, height:250});
	$(".colorbox_comments").colorbox({scrollbars:false});

	$(".inline").colorbox({width:"50%", inline:true, href:"#inline_example1"});
	
	//first slide down and blink the message box
	$("#flashmessage").animate({top: "0px"}, 1000 ).show('fast').fadeIn(200).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);
	//close the message box when cross red image is clicked
	$("#closemessage").click(function() { $("#flashmessage").slideToggle("fast"); });

 
	$(".date").datepicker({showOn: 'button', buttonImage: CI.base_url + 'images/common/calendar.gif', buttonImageOnly: true});

	var minhours = $('#pickup_minhours').val();
	if (minhours == 'undefined') minhours = 36;
	var mindays = Math.ceil(minhours / 24);   // 2

	$(".date-order").datepicker({minDate: + mindays, maxDate: '+1Y', showOn: 'button', buttonImage: CI.base_url + 'images/common/calendar.gif', buttonImageOnly: true, beforeShowDay: nationalDays}) 






	//$('input[type=radio]').customInput();
	
//	$('.popup input[type=radio]').customInput();
//	$('.savelocation').customInput();

// $('input[type=checkbox], input[type=radio]').prettyCheckboxes();

	//$('.page-content').corner("20px");
	//$('.page-content').wrap('<div style="background-color:#666666;"></div>');
	//$('.page-content').corner("round 20px").parent().css('padding', '8px').corner("round 14px");
	
	$('.page-content:not(#leftsidebar)').css('background-color', '#a19e8e');
	$('.page-content:not(#leftsidebar)').wrapInner('<div id="temp" style="padding: 20px 0px 10px 35px;;background-color:#ffffff;"></div>');
	$('#temp').corner("round 5px").parent().css('padding', '1px').corner("round 5px");
	
	$('.page-content#leftsidebar').wrapInner('<div id="temp2" style="padding: 0px 0px 10px 0px; margin-top:1px;"></div>');
	$('.page-content#leftsidebar').css('background-color', '#ffffff');
	$('#temp2').corner("round 5px").parent().css('padding', '1px').corner("round 5px");
	
	
	
	
	
	// Save Location
	$(".savelocation").change( function() {
		var location_id = $(this).val();
		var loader_id = '#savelocation_loader_' + location_id;
		//alert(loader_id);
		$.ajax({ type: "POST", url: CI.base_url + "locations/ajax_save", 
					beforeSend: function() {$(loader_id).show()}, data: "id=" + location_id,
			success: function(resp){
				//$("#response").html(html);
				//alert(resp);
			},
			error: function(err) {
				//alert(err);
			},
			complete: function() {$(loader_id).hide()}
		});
	});
	
	/* Cart support */
	
	$('.addtocart').click( function() {
		procees_addtocart($(this));
	});
	
	$('.minicart-remove-icon').live("click", function() {
		process_removefromcart($(this));
	});
	
	
	/* Gift Card */
	$('.addgiftcard').click( function() { 
		procees_addgiftcard($(this));
	});

	$('.minigiftcardcart-remove-icon').live("click", function() {
		process_removefromgiftcardcart($(this));
	});
	
	/*
	$(function(){
	    $('input').keydown(function(e){
	    	alert('enter');
	        if (e.keyCode == 13) {
	            $(this).parents('form').submit();
	            return false;
	        }
	    });
	});
	*/	
});


// date for calendar

natDays = [
  [12, 25]
];

function nationalDays(date) {
	for (i = 0; i < natDays.length; i++) {
	  if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) {
		return [false, '']; //natDays[i][2] + '_day'];
	  }
	}
  return [true, ''];
}




jQuery.fn.customInput = function(){
	$(this).each(function(i){	
		if($(this).is('[type=checkbox],[type=radio]')){
			var input = $(this);
			
			// get the associated label using the input's id
			var label = $('label[for='+input.attr('id')+']');
			
			//get type, for classname suffix 
			var inputType = (input.is('[type=checkbox]')) ? 'checkbox' : 'radio';
			
			// wrap the input + label in a div 
			$('<div class="custom-'+ inputType +'"></div>').insertBefore(input).append(input, label);
			
			// find all inputs in this set using the shared name attribute
			var allInputs = $('input[name='+input.attr('name')+']');
			
			// necessary for browsers that don't support the :hover pseudo class on labels
			label.hover(
				function(){ 
					$(this).addClass('hover'); 
					if(inputType == 'checkbox' && input.is(':checked')){ 
						$(this).addClass('checkedHover'); 
					} 
				},
				function(){ $(this).removeClass('hover checkedHover'); }
			);
			
			//bind custom event, trigger it, bind click,focus,blur events					
			input.bind('updateState', function(){	
				if (input.is(':checked')) {
					if (input.is(':radio')) {				
						allInputs.each(function(){
							$('label[for='+$(this).attr('id')+']').removeClass('checked');
						});		
					};
					label.addClass('checked');
				}
				else { label.removeClass('checked checkedHover checkedFocus'); }
										
			})
			.trigger('updateState')
			.click(function(){ 
				$(this).trigger('updateState'); 
			})
			.focus(function(){ 
				label.addClass('focus'); 
				if(inputType == 'checkbox' && input.is(':checked')){ 
					$(this).addClass('checkedFocus'); 
				} 
			})
			.blur(function(){ label.removeClass('focus checkedFocus'); });
		}
	});
};


function procees_addtocart(obj)
{
	var error = false;
	var form = obj.parents('form');
	var loader = obj.siblings('.loader');
	
	var item = form.find('input[name=item]').val();
	var qty = form.find('input[name=qty]').val();
	var option = form.find('input[name=option]:checked').val() ;
	var isPackage = form.find('input[name=package]').val();
	
	if (qty == '')
	{
		alert('Please enter quantity');
		return false;
	}
	
	if (isPackage)
	{
		option = '';
		form.find('select').each( function(index) {
			var select = form.find('select').eq(index);
			
			if (select.val()!='')
			{
				if (option!='') option += ',';
				option += '' + select.find('option:selected').val();
				
				//alert(escape(option));
			} else
			{
				alert('Please pick options before adding this package to the cart');
				error = true;
			}
		});
	}
	
	if (error == true) return false;
	
	
	var data = "item=" + item + "&qty=" + qty + "&option=" + escape(option) + "&package=" + isPackage;

	//alert(item + qty);
	$.ajax({
		type: "POST", async: true, dataType: 'json', url: CI.base_url + "order/ajax_add",
		contentType: "application/x-www-form-urlencoded;charset=Windows-1251",
/*		contentType: "application/json; charset=utf-8",*/
		beforeSend: function() {loader.show()}, data: data,
		success: function(resp){
			//alert(resp);
			updatecart(resp);
			
			if (isPackage)	// TODO: change for Discount groups condition
			{
				$.fn.colorbox({href:CI.base_url + 'order/popup_discounts/'+item, open:true, iframe:true, width:465, height:530, scrollbars: false});
			}
			
		},
		error: function(err, msg) {
			//alert(err);
			alert('Please try again, if the problem persist please contact system administrator.');
		},
		complete: function() {loader.hide()}
	});
}

function process_removefromcart(obj)
{
	//var loader = obj.siblings('.loader');
	var loader = $('.cart-loader');
	
	//var item = obj.attr('name');
	var rowid = obj.attr('name');

	//alert(item + qty);
	$.ajax({ type: "POST", async: true, dataType: 'json', url: CI.base_url + "order/ajax_remove", 
		beforeSend: function() {loader.show()}, data: "rowid=" + rowid,
		success: function(resp){
			updatecart(resp);
		},
		error: function(err, msg) {
			//alert(msg);
			alert('Please try again, if the problem persist please contact system administrator. ' + msg);
		},
		complete: function() {loader.hide()}
	});
}


function updatecart(cart)
{
	// get added new item
	var newitem = cart.newitem;

	// get cart content
	var content = cart.cart;		
//alert(content);
	var row = '';
	var foot = '';

	// build rows
	jQuery.each( content, function() {
		row += '<tr>';
		row += '<td>'+this.name+'</td>';
		row += '<td width="35" class="col-qty">'+this.qty+'</td>';
		row += '<td width="60">$'+ (this.subtotal) +'<a class="minicart-remove-icon" name="'+this.rowid+'">&nbsp;</a> </td>';
		row += '</tr>';
	});
	
	// build footer
	var foot = '<tr>';
	foot += '<td class="cart-noborder">&nbsp;</td>';
	foot += '<td class="col-tax-label">Tax</td>';
	foot += '<td class="col-tax-value">$'+ cart.tax_amount + '</td>';
	foot += '</tr>';
	
	foot += '<tr>';
	foot += '<td>&nbsp;</td>';
	foot += '<td width="40" class="col-total-label cart-noborder">Total</td>';
	foot += '<td width="50" class="col-total-value  cart-noborder">$'+ cart.total + '</td>';
	foot += '</tr>';
	
	$('#cart #minicart-items').html(row);
	$('#cart tfoot').html(foot);
	
	$('#cart #minicart-empty').hide();
	
	$('#cartquantity').html(cart.total_items);
}




/** Gift Card **/

function procees_addgiftcard(obj)
{
	var row = obj.parents('.giftrow');
	var loader = obj.siblings('.loader');
	// get action
	var action = row.parents('form').find('input[name=action]').val();
	// for purchase and reload
	var qty = row.find("select[name='giftcard[qty][]']").val();
	var amount = row.find("select[name='giftcard[amount][]']").val();
	var recipient = row.find("input[name='giftcard[recipient][]']").val();
	// for reload
	var card = row.find("input[name='giftcard[card][]']").val();
	
	// for purchase new fields
	var extrashipping = row.find("input[name='extra-shipping-checkbox']").attr('checked');
	var address = row.find("input[name='address']").val();
	var state = row.find("select[name='state']").val();
	var zip = row.find("input[name='zip']").val();
	var city = row.find("input[name='city']").val();
	var message = row.find("textarea[name='message']").val();
	
	if (action == 'reload' )
	{
		// Reload gift card
		qty = 1;
		
		if (amount=='' || card=='') {
			alert('Please choose denomination and enter an existing Card number to reload');
			return false;
		}
		
	}else
	{
		// Purchase gift card
		if (qty=='' || amount=='' || recipient=='') {
			alert('Please choose Quantity, Amount and enter Recipient Name');
			return false;
		}
		
		if ( extrashipping && (address=='' || city=='' || state=='' || zip==''))
		{
			alert('Please enter additional shipping address');
			return false;
		}
	}
	
	// Use AJAX to add to cart
	$('#'+action+'-message').slideUp('fast');
	$.ajax({ type: "POST", async: true, dataType: 'json', url: CI.base_url + "giftcard/ajax_add", 
		beforeSend: function() { loader.show()},
			data: "amount=" + amount + "&qty=" + qty + "&recipient=" + recipient + "&card=" + card + "&action="+action + "&address="+address + "&state="+state + "&city="+city + "&zip="+zip + "&message="+message,
		success: function(resp){
			
			if (resp.error)
			{
				$('#'+action+'-message').slideDown('fast');
				$('#'+action+'-message').html(resp.error);	
				
			} else {
				row.find('select').attr('disabled', true);
				row.find('input').attr('disabled', true);
				row.find('textarea').attr('disabled', true);
				row.find('.addgiftcard').hide();
				updategiftcardcart(resp);		
			 	
			}
		},
		error: function(err, msg) {
			//alert(err);
			alert('Please try again, if the problem persist please contact system administrator. ' + msg);
		},
		complete: function() {
			loader.hide()
		}
	});
}

function process_removefromgiftcardcart(obj)
{
	var loader = obj.siblings('.loader');
	
	var item = obj.attr('name');

	//alert(item + qty);
	$.ajax({
		type: "POST", async: true, dataType: 'json', url: CI.base_url + "giftcard/ajax_remove", 
		beforeSend: function() {$('.giftcard-cart-loader').show()},
		data: "item=" + item,
		success: function(resp){
			updategiftcardcart(resp);
		},
		error: function(err, msg) {
			alert('Please try again, if the problem persist please contact system administrator.');
		},
		complete: function() {$('.giftcard-cart-loader').hide()}
	});
}

function updategiftcardcart(cart)
{
	// get cart content
	var content = cart.items;		

	var row = '';
	var foot = '';

	// build rows
	jQuery.each( content, function() {
		
		var text = this.recipient;
		
		if (this.card)
		{
			text = 'Reload '+ this.card.substr(0,4) + '...';
		}
		
		row += '<tr>';
		row += '<td>'+text+'</td>';
		row += '<td class="col-qty">'+this.qty+'</td>';
		row += '<td>$'+ (this.subtotal) +' <a class="minigiftcardcart-remove-icon" name="'+this.recipient+'">&nbsp;</a> </td>';
		row += '</tr>';
	});
	
	// build footer
	foot += '<tr>';
	foot += '<td>&nbsp;</td>';
	foot += '<td width="40" class="col-total-label cart-noborder">Total</td>';
	foot += '<td width="50" class="col-total-value cart-noborder">$'+ cart.total + '</td>';
	foot += '</tr>';
	
	$('#minigiftcardcart #minigiftcardcart-items').html(row);
	$('#minigiftcardcart tfoot').html(foot);
	
	$('#minigiftcardcart #minigiftcardcart-empty').hide();
}


function validate_pickup_datetime(pickup_date, pickup_time)
{
	var minhours = $('#pickup_minhours').val();
	if (minhours == 'undefined') minhours = 36;
	var curdate = new Date();
	var datetime = new Date.fromString( pickup_date + ' ' + pickup_time);
	var newdate = new Date( datetime.getYear() + 1900, datetime.getMonth(), datetime.getDate(), datetime.getHours() - minhours, datetime.getMinutes() )
	
	if (curdate.getTime() > newdate.getTime())
	{
		alert("Pick-up day must be at least 36 hours from today's date and time");
		return false;		
	} else {
		return true;
	}
}

