// Javascript for most of the online store.

(function($) {
		  
	// radio button fix for .change event.	
	$.fn.fix_radios = function() {
	  function focus() {
		// if this isn't checked then no option is yet selected. bail
		if ( !this.checked ) return;
	
		// if this wasn't already checked, manually fire a change event
		if ( !this.was_checked ) {
		  $( this ).change();
		}
	  }
	  function change( e ) {
		// shortcut if already checked to stop IE firing again
		if ( this.was_checked ) {
		  e.stopImmediatePropagation();
		  return;
		}
	
		// reset all the was_checked properties
		$( "input[name=" + this.name + "]" ).each( function() {
		  this.was_checked = this.checked;
		} );
	  }
	  // attach the handlers and return so chaining works
	  return this.focus( focus ).change( change );
	}
	
	
					  
	$(function() {
		var product_box = $('.product-insert-box');
		
		// Reduce all inserts to 85% of their original sizes.
		function resize_inserts(product_box) {
			var cover = product_box.find('.insert');
			cover.each(function() {
				var cur_cover = $(this);
				
				// get the original dimension of the image imediately the image has been load.
				cur_cover.imagesLoaded(function (e) {
					var cur_cover = $(this);
					var cover_w = cur_cover.width();
					var cover_h = cur_cover.height();
					// save them up on the DOM
					cur_cover.data("dim", { orgw:cover_w, orgh:cover_h, neww:cover_w*.85, newh:cover_h*.85 });
					// resize image
					cur_cover.css({'width' : cover_w*.85, 'height' : cover_h*.85});
					
				}, false);
			});
						
			cover.hover(
				function() {
					var cur_cover = $(this);
					var new_w = cur_cover.data("dim").orgw;
					var new_h = cur_cover.data("dim").orgh;
					cur_cover.stop().animate({width:new_w,height:new_h}, 100, "easeOutElastic");
				}, 
				function () {
					var cur_cover = $(this);
					var new_w = cur_cover.data("dim").neww;
					var new_h = cur_cover.data("dim").newh;
					cur_cover.stop().animate({width:new_w,height:new_h}, 100, "easeOutElastic");		 
				}
			);	
			
		};
		
		resize_inserts(product_box);
	
	
		// Handles Category Tabs functionalities.
		var tabs = $('.product-tags-control .tag-box li a');
		
		tabs.bind('click', function() {
			var active_tab = $(this);
			var prev_tab = tabs.filter('.open');
			
			// make sure a "current" tab was not clicked.
			if(active_tab[0]!=prev_tab[0]) {
				prev_tab.removeClass('open');
				// get the index of the active tab
				var active_tab_index = tabs.index(this);
				//var active_tab_index = $(this).index();
				
				var category = active_tab.attr('href').substr(1);
				var category_prod_count = active_tab.attr('rel');
				active_tab.attr('class', 'open').trigger('newCategoryTab', [category, category_prod_count, active_tab_index]);
			}
			return false;						
		});
		
		$(document).bind('newCategoryTab', function(event, category, total, index) {
			//var cat_prod_page = $('#'+category);
			var cat_prod_page = $('.product-box .tag-group').eq(index);
			var tab_pages = $('.product-tags-control .product-box .tag-group');
			var title_count_display = $('.product-tags-control .product-box .product-tags-summary');
			var total_displayed = 0;
			
			// Update titles count. 6 being the max number of product that can be displayed per tag on this control
			var str_loading_display = "";
			var str_showing_display = "";
			
			if(total > 4) { //meaning 4 items would be displayed
				total_displayed = 4;
				str_loading_display = 'Loading '+total_displayed+' of '+total+' titles on <em>'+category+'</em>&hellip;<a href="'+store_base_url+'/tags/'+escape(category)+'/" title="View all title about '+category+'">View all</a>';
				str_showing_display = 'Showing '+total_displayed+' of '+total+' titles on <em>'+category+'</em>.&nbsp;<a href="'+store_base_url+'/tags/'+escape(category)+'/" title="View all title about '+category+'">View all</a>';
			} else { //meaning "total" variable will be displayed
				total_displayed = total;
				str_loading_display = 'Loading '+total_displayed+' of '+total+' titles on <em>'+category+'</em>&hellip;';
				str_showing_display = 'Showing '+total_displayed+' of '+total+' titles on <em>'+category+'</em>.';
			}
			
			if( !cat_prod_page.hasClass('cache') ) {
				//display loading...
				title_count_display.html(str_loading_display);
				
				//remove current product titles
				tab_pages.filter('.current').removeClass('current').hide();
				cat_prod_page.addClass('current').show();
				
				//make ajax request...
				$.get("http_handlers/get_search_result.php", { tag_name: category, ipp: 4 }, function(data){						  
					cat_prod_page.addClass('cache').html(data);
					title_count_display.html(str_showing_display);
					resize_inserts(cat_prod_page);
					//track page view
					_gaq.push(['_trackPageview', '/tags+widget/'+category]);
			   	});
				
			} else {
				title_count_display.html(str_showing_display);
				tab_pages.filter('.current').removeClass('current').hide();
				cat_prod_page.addClass('current').show();
			}
			
			
		});
		
		
		
		//Selecting New address for checkout displays a form to enter new address
		var new_address_box = $('#new_address_box');
		var new_address_form = new_address_box.find('#billing_address:first');
		var select_address = $('#billing_address_id, #shipping_address_id');
		
		select_address.change(function() {
			$sel_val = $(this).find('option:selected').val();  
			var new_address_box = $('#new_address_box');
			if( $sel_val == 0 ) {
				new_address_form.find('input, select').removeAttr('disabled');
				new_address_box.show();
			} else {
				new_address_form.find('input, select').attr('disabled', 'disabled');
				new_address_box.hide();
			}								   
		}).change();
		
		
		
		(function() {
			//Changing country from nigeria changes state from as select control to a textbox control
			var select_country = $('#country');
			var td_state = $('td#state');
			var select_state_str = "<select name='state' id='state' class='input'><option value=''>Select A State</option><option value='Abuja'>Abuja</option><option value='Anambra'>Anambra</option><option value='Enugu'>Enugu</option><option value='Akwa Ibom'>Akwa Ibom</option><option value='Adamawa'>Adamawa</option><option value='Abia'>Abia</option><option value='Bauchi'>Bauchi</option><option value='Bayelsa'>Bayelsa</option><option value='Benue'>Benue</option><option value='Borno'>Borno</option><option value='Cross River'>Cross River</option><option value='Delta'>Delta</option><option value='Ebonyi'>Ebonyi</option><option value='Edo'>Edo</option><option value='Ekiti'>Ekiti</option><option value='Gombe'>Gombe</option><option value='Imo'>Imo</option><option value='Jigawa'>Jigawa</option><option value='Kaduna'>Kaduna</option><option value='Kano'>Kano</option><option value='Katsina'>Katsina</option><option value='Kebbi'>Kebbi</option><option value='Kogi'>Kogi</option><option value='Kwara'>Kwara</option><option value='Lagos'>Lagos</option><option value='Nasarawa'>Nasarawa</option><option value='Niger'>Niger</option><option value='Ogun'>Ogun</option><option value='Ondo'>Ondo</option><option value='Osun'>Osun</option><option value='Oyo'>Oyo</option><option value='Plateau'>Plateau</option><option value='Rivers'>Rivers</option><option value='Sokoto'>Sokoto</option><option value='Taraba'>Taraba</option><option value='Yobe'>Yobe</option><option value='Zamfara'>Zamfara</option></select>";
			var textbox_state_str = "<input type='text' value='' name='state' id='state' class='input'>";
			
			select_country.change(function() {
				$sel_val = $(this).find('option:selected').val();  		
				if( $sel_val == 'Nigeria' && $('select#state').length==0 ) {
					td_state.html(select_state_str);	
				} else if ( $sel_val!='Nigeria' && $('input#state').length==0 ) {
					td_state.html(textbox_state_str);	
				}
			}).change();
		})();
		
		
		
		
		(function() {
			var change_pass = $('#change_password');
			var change_pass_group = $('tr.change_password_group');
			
			change_pass.change(function() {
				if( $(this).is(':checked') ) {
					change_pass_group.show().find('input').attr({ value: ''}).removeAttr('disabled');	
				} else {
					change_pass_group.hide().find('input').attr({ value: '', disabled: 'disabled' });	
				}
			}).change();
		})();
		
		
		
	});

}) (jQuery);
// JavaScript Document





function setLocation(url) {
	window.location.href = url;
}
