
function initialize_slider (slider) {
		
	// add class slider-ajax to activated slider
	slider.addClass('slider-ajax');

	// determine the number of products in one page of the slider
	var productsPerPage = slider_products_per_page(slider);

	// calculate the number of products in this slider
	var numProducts = slider.children('.slider-mask').children('.featured-products').children('li').size();
	
	// calculate the number of pages in this slider
	var numPages = parseInt( numProducts / productsPerPage );
	if ( numProducts % productsPerPage > 0 ) {
		numPages++;
	}

	// create previous and next slider controls
	slider.prepend('<div class="slider-next"><a href="javascript:;" alt="2">Next Slider Page</a></div>');
	slider.prepend('<div class="slider-previous"><a href="javascript:;" alt="0">Previous Slider Page</a></div>');
	
	var iefix = 0;
	
	// create pagination controls
	slider.prepend('<div class="slider-pages"><ol></ol></div>');
	slider.children('.slider-pages').children('ol').css({'width':((parseInt(numPages)+2)*26+iefix)+'px'}).append('<li class="slider-previous"><a href="javascript:;" alt="0">Previous Slider Page</a></li>');

	for ( var i = 1; i <= numPages; i++ ) {
		if ( i == 1 ) {
			slider.children('.slider-pages').children('ol').append('<li class="page-'+i+'"><a class="small-blue-button cleartype" href="javascript:;" alt="'+i+'">'+i+'</a></li>');
		} else {
			slider.children('.slider-pages').children('ol').append('<li class="page-'+i+'"><a class="small-silver-button cleartype" href="javascript:;" alt="'+i+'">'+i+'</a></li>');
		}
	}
	slider.children('.slider-pages').children('ol').append('<li class="slider-next"><a href="javascript:;" alt="2">Next Slider Page</a></li>');
	
	// update css to support javascript
	slider.children('.slider-mask').css({'float':'left','overflow':'hidden'});
	slider.children('.slider-mask').children('.featured-products').css({'width':'10000px'});
	
	// hide the previous buttons initially
	slider.find('.slider-previous').children('a').css({'visibility':'hidden'});
	
	// hide all buttons if there is only one page
	if ( numPages == 1 ) {
		slider.find('.slider-next').css({'visibility':'hidden'}).children('a').css({'visibility':'hidden'});
		slider.find('.slider-previous').css({'visibility':'hidden'}).children('a').css({'visibility':'hidden'});
		slider.find('.slider-pages ol li').css({'visibility':'hidden'}).children('a').css({'visibility':'hidden'});
	}

	// ajax fetch any additional products for this slider
	populate_slider (slider, 1, productsPerPage);

	// apply click events to pagination
	slider.children('div').children('a').click( function(){
		var page = parseInt($(this).attr('alt'));
		var productsPerPage = slider_products_per_page($(this).parent().parent());
		add_slider_clicks ($(this).parent().parent(), page, productsPerPage);
	});
	slider.children('.slider-pages').children('ol').children('li').children('a').click( function(){
		var page = parseInt($(this).attr('alt'));
		var productsPerPage = slider_products_per_page($(this).parent().parent().parent().parent());
		add_slider_clicks ($(this).parent().parent().parent().parent(), page, productsPerPage);
	});

	// animate slider if it has the class slider-animate
	if ( slider.hasClass('slider-animate') ) {
		slider.children('.slider-next').children('a').click().parent().parent().children('.slider-mask').children('.featured-products').css({'left':(-1*productsPerPage*productAdvance)+'px'}).stop().animate({'top':'0'},1000,function(){$(this).parent().parent().children('.slider-previous').children('a').click();});
	}

	
	return slider;
}

function add_slider_clicks (slider, page, productsPerPage){
	slider.children('.slider-pages').children('ol').children('li').children('a.small-blue-button').removeClass('small-blue-button').addClass('small-silver-button');
	slider.children('.slider-pages').children('ol').children('li:eq('+page+')').children('a').removeClass('small-silver-button').addClass('small-blue-button');
	var last_page = parseInt(slider.children('.slider-mask').children('.featured-products').children('li').size() / productsPerPage);
	if ( parseInt(slider.children('.slider-mask').children('.featured-products').children('li').size() % productsPerPage) > 0 ) {
		last_page++;
	}
	populate_slider(slider, page, productsPerPage);
	var new_left = (page - 1) * productAdvance * productsPerPage * -1;
	slider.children('.slider-mask').children('.featured-products').animate( { left: new_left + "px" }, { duration: 1000, easing: "swing" } );
	slider.find('.slider-previous').children('a').attr({'alt':(page-1)});
	slider.find('.slider-next').children('a').attr({'alt':(parseInt(page)+1)});
	if (page==1) {
		slider.find('.slider-previous').children('a').css({'visibility':'hidden'});
	} else {
		slider.find('.slider-previous').children('a').css({'visibility':'visible'});
	}
	if (page==last_page) {
		slider.find('.slider-next').children('a').css({'visibility':'hidden'});
	} else {
		slider.find('.slider-next').children('a').css({'visibility':'visible'});
	}
}

function populate_slider (slider, page, productsPerPage){
	var left = parseInt( $(slider).children(".slider-mask").children("ul.featured-products").css("left") );
	if ( ! left || left >= 0 ) {
		left = 0;
	}
	var refresh = productsPerPage * page + productsPerPage;
	for ( var i = refresh-1; i >= 0; i-- ) {
		if( $(slider).children(".slider-mask").children("ul.featured-products").children("li:eq("+i+")").attr("id") && ! $(slider).children(".slider-mask").children("ul.featured-products").children("li:eq("+i+")").children()[0] ) {
			var $this = $(slider).children(".slider-mask").children("ul.featured-products").children("li:eq("+i+")");
			$this.prepend("<div style=\"width:"+140+"px;height:"+140+"px;background:url("+gp+"ajax-loader.gif) no-repeat center center;text-align:center;line-height:"+140+"px;\">...loading...</div>");
			var data = $this.attr("id");
			data = ""+data.replace(/^[^\:]*\:/,"");
			data = ""+data.replace(/\:\:/g,"=");
			data = ""+data.replace(/\:/g,"&amp;");
			$this.load("/Christian/Books/slider_ajax?"+data+"&amp;ajax_load=1");
		}
	}
}

function slider_products_per_page (slider){
	var productsPerPage = 5;
	if ( slider.hasClass('slider-1') ) {
		productsPerPage = 1;
	} else if ( slider.hasClass('slider-2') ) {
		productsPerPage = 2;
	} else if ( slider.hasClass('slider-3') ) {
		productsPerPage = 3;
	} else if ( slider.hasClass('slider-4') ) {
		productsPerPage = 4;
	} else if ( slider.hasClass('slider-5') ) {
		productsPerPage = 5;
	} else if ( slider.hasClass('slider-6') ) {
		productsPerPage = 6;
	}
		
	return productsPerPage;
}

function has_cleartype(){
	
    // IE has screen.fontSmoothingEnabled - sweet!
    if (typeof(screen.fontSmoothingEnabled) != "undefined") {
		return screen.fontSmoothingEnabled;
    } else {
		try {
      		// Create a 35x35 Canvas block.
			var canvasNode = document.createElement("canvas");
			canvasNode.width = "35";
			canvasNode.height = "35"
			
			// We must put this node into the body, otherwise
			// Safari Windows does not report correctly.
			canvasNode.style.display = "none";
			document.body.appendChild(canvasNode);
			var ctx = canvasNode.getContext("2d");
			
			// draw a black letter "O", 32px Arial.
			ctx.textBaseline = "top";
			ctx.font = "32px Arial";
			ctx.fillStyle = "black";
			ctx.strokeStyle = "black";
			
			ctx.fillText("O", 0, 0);
        
			// start at (8,1) and search the canvas from left to right,
			// top to bottom to see if we can find a non-black pixel. If
			// so we return true.
			for (var j = 8; j <= 32; j++) {
				for (var i = 1; i <= 32; i++) {
					var imageData = ctx.getImageData(i, j, 1, 1).data
					var alpha = imageData[3];
										
					if (alpha != 255 && alpha != 0 && alpha > 180) {
						return true; // font-smoothing must be on.
					}
				}
			}
			 
        	// didn't find any non-black pixels - return false.
        	return false;
        }
        catch (ex) {
        	// Something went wrong (for example, Opera cannot use the
        	// canvas fillText() method. Return null (unknown).
        	return null;
        }
    }
}

$(document).ready(function(){
	var result = has_cleartype();
    if (result == true) {
    //  alert("Cleartype - True");
    } else if (result == false) {
		$('.cleartype').add('.big-add-save-button>span').add('.big-silver-button>button').add('.big-gold-button>button').add('.big-blue-button>button').each(function(){
			var font_size = $(this).css('font-size');
			if ( parseInt(font_size) ) {
				$(this).css({'font-size':parseInt(font_size) - 1 + 'px'});
			}
	 		$(this).css({'font-family':'Arial, Helvetica, sans-serif','font-weight':'bold'});
		});
 	$('#category-main a').css({'padding':'0 7px 0 6px'});
		
    //  alert("Cleartype - False");
    } else { // result == null
    //  alert("Cleartype - Unknown");
    }

	$('#category-main a[id]').each(function(){
		var drop_tab = $(this).attr('id');
		var drop_menu = $(this).attr('id').replace(/\-trigger/,"");
		if ( drop_tab == 'drop-trigger-More' ) {
//			var right_offset = $('#page-header').width()-($(this).offset().left-$('#page-header').offset().left+$(this).parent().width())-1;
			var right_offset = 9;
			$('#'+drop_menu).css({'right':right_offset+'px'});
		} else {
			if ( $(this).parent().hasClass('last') ) {
				var right_offset = 9;
				$('#'+drop_menu).css({'right':right_offset+'px'});
			} else {
				var left_offset = $(this).offset().left - $('#page-header').offset().left;
				$('#'+drop_menu).css({'left':left_offset+'px'});
			}
		}
		$(this).hover(function(){
			var menu_id = $(this).attr('id').replace(/\-trigger/,"");
			$('#'+menu_id).stop().animate({'margin':'0'},333, function(){
				$(this).css({'display':'block'});
			});
		}, function(){
			var menu_id = $(this).attr('id').replace(/\-trigger/,"");
			$('#'+menu_id).stop().css({'display':'none'});
		});
		$('#'+drop_menu).hover(function(){
			$(this).stop().css({'display':'block'});
		}, function(){
			$(this).stop().css({'display':'none'});
		});
	});
	
	var search_text = $('#Ntt').attr('alt');

	$('#Ntt').css({'color':'#999'}).val(search_text);
	
	$('#Ntt').focus(function(){
		if ($(this).val() === search_text) {
			$('#Ntt').val('').css({'color':'#000'});
		}
	});
	
	$('#Ntt').blur(function(){
		if ($(this).val() === '') {
			$('#Ntt').css({'color':'#999'}).val(search_text);
		}
	});
	
	$('#Ntt').click(function(){
		return false;
	});

	$('#search').mousedown(function(){
		if ($('#Ntt').val() === search_text) {
			$('#Ntt').val('').css({'color':'#000'});
		}
	});
	
	$('#N').css({'position':'absolute','left':'-10000px'}).after('<ul id="drop"><li><span class="current">All Products</span><span class="arrow">&#x25BC;</span><ul></ul></li></ul>');
	
	$('#N').children().each(function(){
		var opt_value = $(this).attr('value');
		var opt_label = $(this).text();
		$('#drop ul').append('<li><a class="label" href="javascript:;">'+opt_label+'</a><span class="value">'+opt_value+'</span></li>');
	});
	
	var new_selected = $("#N").children("[selected]").text();
	$("#drop .selected").removeClass("selected");
	$("#drop ul li").each(function(){
		if( $(this).children(".label").text() === new_selected ) {
			$(this).addClass("selected");
			$("#drop .current").text($("#drop .selected .label").text());
		}
	});

	$("#N").keydown( function(e){
		var evt = window.event ? window.event : e;
		var unicode = evt.charCode ? evt.charCode : evt.keyCode;
		if( unicode == 9 || unicode == 13 ) {
			$("#drop ul").hide();
		}
	});

	$("#N").keyup( function(e) {
		var new_selected = $("#N").children("[selected]").text();
		$("#drop .selected").removeClass("selected");
		$("#drop ul li").each(function(){
			if( $(this).children(".label").text() === new_selected ) {
				$(this).addClass("selected");
				$("#drop .current").text($("#drop .selected .label").text());
			}
		});
	});

	$("#N").focus( function(){
		if ( $('#drop ul').css('display') == 'block' ) {
			$("#drop").css({"outline":"none"});
		} else {
			$("#drop").css({"outline":"1px dotted #000"});
		}
	});

	$("#N").blur( function(){
		$("#drop").css({"outline":"none"});
	});

	$("#N").keypress( function(e){
		var evt = window.event ? window.event : e;
		var unicode = evt.charCode ? evt.charCode : evt.keyCode;
		var new_selected = $("#drop .selected .value").text();
		if( unicode == 37 || unicode == 38 || unicode == 39 || unicode == 40 ) {
			return false;
		}
	});

	$("#drop>li>span").click( function(){
		var disp = $("#drop ul").css("display");
		if ( disp != "block" ) {
			$("#drop ul").show();
		} else {
			$("#drop ul").hide();
		}
		$("#N").focus();
		return false;
	});

	$(document).click( function(){
		$("#drop ul").hide();
	});

	$("#drop ul li").click( function(){
		$("#drop ul").hide();
		$("#drop .selected").removeClass("selected");
		$(this).addClass("selected");
		var new_selected = $(this).children(".value").text();
		$("#N").children("[selected]").removeAttr("selected");
		$("#N").children("[value="+new_selected+"]")[0].selected = true;
		$("#drop .current").text($("#drop .selected .label").text());
		$("#N").focus();
		return(false);
	});
	
	if ( $(window).width() <= 900 ) {
		$('#cart').css({'left':'640px'});
		$('#checkout').css({'left':'721px'});
		$('#search-form .container').css({'width':'231px'});
		$('#search-form .field').css({'width':'223px'});
		$('#drop').css({'display':'none'});
	}
	
	$(window).resize(function(){
		if ( $(window).width() <= 900 ) {
			$('#cart').css({'left':'640px'});
			$('#checkout~span').css({'left':'640px'});
			$('#checkout').css({'left':'721px'});
			$('#search-form .container').css({'width':'235px'});
			$('#search-form .field').css({'width':'223px'});
			$('#drop').css({'display':'none'});
			if( $.browser.msie && $.browser.version.substr(0,1) < 7 ) {
				$('#Ntt').css({'width':'203px'});
			} else {
				$('#Ntt').css({'width':'213px'});
			}
		} else {
			$('#cart').css({'left':'730px'});
			$('#checkout~span').css({'left':'730px'});
			$('#checkout').css({'left':'811px'});
			$('#search-form .container').css({'width':'320px'});
			$('#search-form .field').css({'width':'308px'});
			$('#drop').css({'display':'block'});
			if( $.browser.msie && $.browser.version.substr(0,1) < 7 ) {
				$('#Ntt').css({'width':'178px'});
			} else {
				$('#Ntt').css({'width':'188px'});
			}
		}
	});

	if ( $.browser.safari && navigator.platform.match(/Win/) ) {
		$('#search').css({'right':'-27px','top':'-1px'});
	}
	
	$(".aa-hidden-cat").show();

	$(".aai").width( $(".aai").width() +2 );
	$(".aa-row").hide();
	$("."+$(".active > a").attr("id")).show();
	$(".aai_hidden").hide();

	$("#aai-tab > li > a").click( function(){
		$(this).parent().parent().children().removeClass("active");
		$(this).parent().addClass("active");
	});

	$(".aa-cat-tab").attr("href", "#curr").click( function(){
		$(".aa-row").hide();
		$("." + $(this).attr("id")).show();
		$(".aai_hidden").hide();
	});

	$(".more_aai").attr( "href", "#curr").click( function(){ 
    	$("."+$(".active > a").attr("id")).show();
		$(".aai_more").hide();
	} );

	$('.slider').each( function(){
		initialize_slider($(this));
	});

	if( $("select[name='tbf-campus']").attr('value') ) {
		$.get( "/apps/textbook_finder/content?no_results=1&update=campus&rendering_context=ajax&N="+$("select[name='tbf-campus'] option:selected").attr('value'), function(results){
			var json = eval('(' + results + ')');
			var ref = json.term;
			if( ref ){
				var options = '';
				var hiddenopts = '';
				for( var i=0; i<ref.length; i++){
					var element = ref[i];
					options = options+'<option value="'+element.n+'">'+element.opt_name+'</option>';
					hiddenopts = hiddenopts+element.n+','+element.opt_name+'||';
				}
				$("select[name='tbf-term']").html(options)[0].disabled=false;
				$("input[name='widget-term']").val(hiddenopts);
			} else {
				var options = '<option value="select">Select A Campus First</option>';
				$("select[name='tbf-term']").html(options)[0].disabled=true;
			}
		});
	}

	$("select[name='tbf-campus']").change(function(){
		$("select[name='tbf-campus'] option[value='']").remove();
		$.get( "/apps/textbook_finder/content?no_results=1&update=campus&rendering_context=ajax&N="+$("select[name='tbf-campus'] option:selected").attr('value'), function(results){
			var json = eval('(' + results + ')');
			var ref = json.term;
			if( ref ){
				var options = '';
				var hiddenopts = '';
				for( var i=0; i<ref.length; i++){
					var element = ref[i];
					options = options+'<option value="'+element.n+'">'+element.opt_name+'</option>';
					hiddenopts = hiddenopts+element.n+','+element.opt_name+'||';
				}
				$("select[name='tbf-term']").html(options)[0].disabled=false;
				$("input[name='widget-term']").val(hiddenopts);
			} else {
				var options = '<option value="select">Select A Campus First</option>';
				$("select[name='tbf-term']").html(options)[0].disabled=true;
			}
		});
	});
});

