$.mobile.document.on( "pageshow", "#demo-page", function() {
	var head = $( ".ui-page-active [data-role='header']" ),
		foot = $( ".ui-page-active [data-role='footer']" ),
		headerheight = head.outerHeight();

	$.mobile.window.on( "throttledresize", function() {
		$( "#sorter" ).height( $.mobile.window.height() - headerheight - 20 ).css( "top", headerheight + 18 );
	});

	$( "#sorter" ).height( $.mobile.window.height() - headerheight - 20 ).css( "top", headerheight + 18 );

	$.mobile.window.scroll( function( e ) {
		var headTop = $(window).scrollTop();

		if( headTop < headerheight && headTop > 0 ) {
			$( "#sorter" ).css({
				"top": headerheight + 15 - headTop,
				"height": $.mobile.window.height() - headerheight - 20
			});
		} else if ( headTop >= headerheight && headTop > 0 && parseInt( headTop + $.mobile.window.height( )) < parseInt( foot.offset().top ) ) {
			$( "#sorter" ).css({
				"top": "15px",
				"height": $.mobile.window.height()
			});
			$("#sorter li").height( "3.7%" );
		} else if ( parseInt( headTop + $.mobile.window.height() ) >= parseInt( foot.offset().top ) && parseInt( headTop + $.mobile.window.height() ) <= parseInt( foot.offset().top ) + foot.height() ) {
			$( "#sorter" ).css({
				"top": "15px",
				"height": $.mobile.window.height() - ( parseInt( headTop + $.mobile.window.height() ) - parseInt( foot.offset().top ) + 8 )
			});
		} else if( parseInt( headTop + $.mobile.window.height() ) >= parseInt( foot.offset().top ) ) {
			$( "#sorter" ).css({
				"top": "15px"
			});
		} else {
			$( "#sorter" ).css( "top", headerheight + 15 );
		}
	});

	$( "#sorter li" ).click( function() {
		var top,
			letter = $( this ).text(),
			divider = $( "#sortedList" ).find( "li.ui-li-divider:contains(" + letter + ")" );

		if ( divider.length > 0 ) {
			top = divider.offset().top;
			$.mobile.silentScroll( top );
		} else {
			return false;
		}
	});

	$( "#sorter li" ).hover(function() {
		$( this ).addClass( "ui-btn-up-b" ).removeClass( "ui-btn-up-c" );
	}, function() {
		$( this ).removeClass( "ui-btn-up-b" ).addClass( "ui-btn-up-c" );
	});
});
