/* Harvard Book Store JavaScript */

function show_tab(id, color, shelf, save) {
	
	$('.tab_content').hide(); // Turn off all tabs
	$('#tab_content_' + id).show(); // Turn on current tab
	
	$('.tabs ul li').removeClass('here'); // Deactivate all tabs
	$('#tab_' + id).addClass('here'); // Activate current tab
	
	if (color=='gray') {
		if ($('.tabs').hasClass('tabs_black')) $('.tabs').removeClass('tabs_black');
		if (!$('.tabs').hasClass('tabs_gray')) $('.tabs').addClass('tabs_gray');
	} else if (color=='black') {
		$('.tabs').addClass('tabs_black');
	} else if (color=='white') {
		$('.tabs').removeClass('tabs_black');
		$('.tabs').removeClass('tabs_gray');
	}
	
	if (id=='look_inside') {
		$('#viewerCanvas').show();
		bookpreview_initialize();
	}
	
	if (shelf=='shelf') {
		$('#ccp_club_buffer').addClass('ccp_club_shelf');
		$('#ccp_club_buffer').addClass('content_shelves');
	} else if (shelf=='page') {
		$('#ccp_club_buffer').removeClass('ccp_club_shelf');
		$('#ccp_club_buffer').removeClass('content_shelves');
	}
	
	if (save) {
		// Save the ID of the current tab
		createCookie('saved_tab',id);
	}
	
}

function show_infobox(id) {
	$('#infobox_' + id).show();
}

function hide_infobox(id) {
	$('#infobox_' +id).hide();
}

shelf_first_load = true;

function load_shelves(path, ignore_params, toggle_kids) {

	// ignore_params is used for pagination links, so we don't add a new set of params to the end of the already complete path.
	
	if (!ignore_params) {
		if ($('#orderby').val() == 'date' || $('#orderby').val() == 'book_publication_date') {
			sort = 'desc';
		} else {
			sort = 'asc';
		}
		path = path + $('#orderby').val() + '/' + sort + '/' + $('#limit').val() + '/' + $('#view').val() + '/';
	}
	
	if (shelf_first_load) {
		// If this is the first time this script is running since a new page load,
		// check to see if we have a cookied path for the same URL, and if so,
		// load it instead of the default path.
		thecookie = readCookie('shelves');
			if (thecookie) {
			var thearray = thecookie.split('|');
			if (thearray[0] == document.URL) {
				path = thearray[1];
				$('#orderby').val(thearray[2]);
				$('#limit').val(thearray[3]);
				$('#view').val(thearray[4]);
			}
		}
		shelf_first_load = false;
	}
	
	$('#shelves_container').block({ 
				message: '<div class="loading"><img src="/images/ajax_loader3.gif" /></div>', 
                css: { border: 'none', background: 'transparent' },
                fadeIn: 200,
               	overlayCSS:  { backgroundColor: '#000', opacity: 0.4 } 
                }).load(path, function() {
  					$('#shelves_container').unblock({ fadeOut: 0 });
					});
					
	if (toggle_kids==true) {
		if ($('#view').val() == 'shelves') {
			$('#secondary_bg').addClass('kids_main_title_bg');
		} else {
			$('#secondary_bg').removeClass('kids_main_title_bg');
		}
	}
	
	// Set cookie so that returning to this shelf brings you back to the same page
	createCookie('shelves', document.URL + '|' + path + '|' + $('#orderby').val() + '|' + $('#limit').val() + '|' + $('#view').val());
	
}

$('.load_shelf a').live('click', function() {

	url = $(this).attr('href');
	if (!$(this).hasClass('current')) load_shelves(url, true);
	return false;
	
});

function load_events(path) {
	$('#events_container').block({ 
				message: '<div class="loading"><img src="/images/ajax_loader_events.gif" /></div>', 
                css: { border: 'none', background: 'transparent' },
                fadeIn: 200,
               	overlayCSS:  { backgroundColor: '#000', opacity: 0.4 } 
                }).load(path, function() {
  					$('#shelves_container').unblock({ fadeOut: 0 });
					});
	// $('#events_container').load(path);
}

$('a.load_events').live('click', function() {

	$('.sidebar_calendar td').removeClass('here');
	$('.calendar_horizontal td').removeClass('here');
	$(this).parent('td').addClass('here');
	
	if ($(this).attr('rel')) {
		td = $(this).attr('rel');
		$('.' + td).addClass('here');
	}
	
	url = $(this).attr('href');
	if (!$(this).hasClass('current')) load_events(url);
	return false;
	
});

function search_odb() {
	keywords = $('#odb_input').val();

	if (keywords.length > 3) {
		path = '/ondemand/index.php?q=' + escape(keywords);
		load_shelves(path, true);
		$('#book_count').load('/ondemand/count.php?q=' + escape(keywords));
	} else {
		alert('Please enter a search term four or more characters long.');
	}
	return false;
}

function odb_onload() {
	if ($('#odb_input').val()) search_odb();
}

function show_swatch(url, id, row_count) {
	$('#image_' + id).attr('src', url);
	if (row_count) {
		$('.enlarge_container_' + id).hide();
		$('#enlarge_' + id + '_' + row_count).show();
	}
}

function toggle_about(id) {
	
	if (id) {
		$('#' + id + '_content').slideToggle();
		if ($('#' + id + '_link').hasClass('about_link_active')) {
			$('#' + id + '_link').removeClass('about_link_active');
		} else {
			$('#' + id + '_link').addClass('about_link_active');
		}
	} else {
		$('#about_content').slideToggle();
		if ($('.about_link').hasClass('about_link_active')) {
			$('.about_link').removeClass('about_link_active');
		} else {
			$('.about_link').addClass('about_link_active');
		}
	}
	
	
}

function dosearch(keywords,section) {
	//alert(escape(keywords));
	$('#booksite_container').load('/search');
}

function matchkeywords(destination,source) {
	newval = $('#' + source).val();
	$('#' + destination).val(newval);
}

function toggle_advanced_fields(prefix) {

	if (!prefix) prefix='';

	selIndex = $('#' + prefix + 'search_in').attr('selectedIndex');
	eventsel = $('#' + prefix + 'advanced_date').attr('selectedIndex');
	
	$('#' + prefix + 'advanced_event_date').hide();
	$('#' + prefix + 'advanced_book_category').hide();
	$('#' + prefix + 'advanced_toggling_divider').hide();
	// $('#advanced_cat_ids').attr('disabled',true);
	// $('#advanced_date').attr('disabled',true);
	
	$('#' + prefix + 'advanced_date').attr('disabled','disabled');
	$('#' + prefix + 'date_to').val('');
	$('#' + prefix + 'date_from').val('');
	
	var d = new Date();
	currentdate = String(d.getFullYear()) + String(d.getMonth()+1) + String(d.getDate());
		
	switch (selIndex) {
		/*
		case 1: 
			$('#' + prefix + 'search_form').attr('action','/results/books');
			$('#' + prefix + 'advanced_book_category').show();
			$('#' + prefix + 'advanced_toggling_divider').show();
			//$('#advanced_cat_ids').removeAttr('disabled');  
		break;
		*/
		case 1: 
			$('#' + prefix + 'search_form').attr('action','/results/events');
			$('#' + prefix + 'advanced_event_date').show(); 
			$('#' + prefix + 'advanced_toggling_divider').show();
			$('#' + prefix + 'advanced_date').attr('disabled',false);
			//$('#advanced_date').removeAttr('disabled');

			switch (eventsel) {
				case 0:
					$('#' + prefix + 'date_from').val(currentdate);
				break;
				case 1:
					$('#' + prefix + 'date_to').val(currentdate);
				break;
			}
	
		break;
		case 2:
			$('#' + prefix + 'search_form').attr('action','/results/goods');
		break;
		default:
			$('#' + prefix + 'search_form').attr('action','/search/index.php');
		break;
	}
	
}

$('a.wishlist, a.quarantine, a.ajax').live('click', function() {

	ajaxurl = $(this).attr('href');
	if ($(this).hasClass('wl_remove')) removediv = $(this).attr('rel');
	$.ajax({ url: ajaxurl, success: function(data){
       alert(data);
       if (removediv) $('#' + removediv).slideUp();
      }});
	return false;
	
});

//

$(document).ready(function(){
  toggle_advanced_fields();
});

function show_element(id) {
	$('#' + id).show();
}

function hide_element(id) {
	$('#' + id).hide();
}

$('.news_link a').live('click', function() {

	id = $(this).attr('href');
	
	if ($(this).hasClass('current')) {
		$(id).slideUp();
		$(this).removeClass('current');
	} else {
		$(id).slideDown();
		$(this).addClass('current');
	}
	
	return false;
	
});

function toggle_gift(value) {
	if (document.getElementById('gift').checked == true) {
		$('#gift_info').slideDown();
	} else {
		$('#gift_info').slideUp();
	}
}

function clear_recently_viewed() {
	
	ajaxurl = '/account/clear_recently_viewed';
	$.ajax({ url: ajaxurl, success: function(data){
       $('#recently_viewed_list').slideUp();
    }});

}

function load_hbs_channel(select_id, container_id, path) {
	
	if ($('#' + select_id).val() == 'date') {
		sort = 'desc';
	} else {
		sort = 'asc';
	}
	path = path + $('#' + select_id).val() + '/' + sort + '/';
		
	$('#' + container_id).block({ 
		message: '<div class="loading"><img src="/images/ajax_loader3.gif" /></div>', 
        css: { border: 'none', background: 'transparent' },
        fadeIn: 200,
       	overlayCSS:  { backgroundColor: '#000', opacity: 0.4 } 
        }).load(path, function() {
				$('#' + container_id).unblock({ fadeOut: 0 });
			});
	
	// Save the IDs of the three video sorting options
	createCookie('saved_video_sort',$('#authors_select').val() + '|' + $('#originals_select').val() + '|' + $('#trailers_select').val());
	
}

function goodsCartSubmit(element) {
	url = $('#goods_cart_url_' + element).val();
	window.location = url;
	return false;
}

function updateGiftCardLink(value) {
	$('#gift_card_link').attr('href',value);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function preloadVideoTabs() {
	thecookie = readCookie('saved_tab');
	if (thecookie) {
		show_tab(thecookie);
	}
	thecookie = readCookie('saved_video_sort');
	if (thecookie) {
		var thearray = thecookie.split('|');
		if (thearray[0]!=$('#authors_select').val()) {
			$('#authors_select').val(thearray[0]);
			$('#authors_select').change();
		}
		if (thearray[1]!=$('#originals_select').val()) {
			$('#originals_select').val(thearray[1]);
			$('#originals_select').change();
		}
		if (thearray[2]!=$('#trailers_select').val()) {
			$('#trailers_select').val(thearray[2]);
			$('#trailers_select').change();
		}
	}
}
