﻿$(document).ready(function(){
/*
	Binds to elements with the selectmonth class
	text should be formated 'mmm yyyy'
	optional attributes for the element are min & max in yyyy-mm-dd format
*/
	$('.selectmonth').disableTextSelect()
	$('.selectmonth')
		.bind('mouseover', function(){ $(this).addClass('hover') })
		.bind('mouseout', function(){ $(this).removeClass('hover') })
		.bind('click', function(){

		$(this).children().remove()

		if( $(this).attr('min') ) {

			var s = $(this).attr('min')
			var min = new Date();
			min.setFullYear( parseInt(s.substring(0,4),10) )
			min.setMonth( parseInt(s.substring(5,7),10)-1 )
			min.setDate( parseInt(s.substring(8,10),10) )

		}

		if( $(this).attr('max') ) {

			var s = $(this).attr('max')
			var max = new Date();
			max.setFullYear( parseInt(s.substring(0,4),10) )
			max.setMonth( parseInt(s.substring(5,7),10)-1 )
			max.setDate( parseInt(s.substring(8,10),10) )

		}

		var month = $(this).text().substring(0,3)
		var year = parseInt($(this).text().substring(4,8),10)

		var d = new Date();
		d.setFullYear( year )
		$(this).append('<div><p><a>&laquo;</a><a class="selected">' + d.getFullYear() + '</a><a>&raquo;</a></p></div>')

		$(this).find('div').bind('mouseout', function(){

			var e = $(this)
			e.attr( 'delayid', setTimeout(function(){ e.remove() }, 1000) )

		}).bind('mouseover', function(){

			var e = $(this)
			clearTimeout( e.attr( 'delayid' ) )

		})


		$(this).find('div p a:contains(«)').bind('click', function(){

			if ( !$(this).hasClass('disabled') ) {

				var y = parseInt($(this).next().text(),10)-1;
				$(this).next().text(y)

				options.find('li').removeClass('disabled')

				if ( y == year ) {
					$(this).parent().children(':eq(1)').addClass('selected')
					options.find('li:contains(' + month + ')').addClass('selected')
				}
				else {
					$(this).parent().children(':eq(1)').removeClass('selected')
					options.find('li').removeClass('selected')
				}

				if ( isDate(min) ) {
					if ( y == min.getFullYear() ) {
						$(this).addClass('disabled')
						var i = options.find('li').index( options.find('li:contains(' + min.toDateString().substring(4,7) + ')') )
						options.find('li:lt(' + i + ')').addClass('disabled')
					}
				}

				if ( isDate(max) ) {
					if ( y == max.getFullYear() ) {
						$(this).addClass('disabled')
						var i = options.find('li').index( options.find('li:contains(' + max.toDateString().substring(4,7) + ')') )
						options.find('li:gt(' + i + ')').addClass('disabled')
					}
				}

				$(this).siblings('a:contains(»)').removeClass('disabled')
			}

			return false;
		})
		$(this).find('div p a:contains(»)').bind('click', function(){

			if ( !$(this).hasClass('disabled') ) {

				var y = parseInt($(this).prev().text(),10)+1;
				$(this).prev().text(y)

				options.find('li').removeClass('disabled')

				if ( y == year ) {
					$(this).parent().children(':eq(1)').addClass('selected')
					options.find('li:contains(' + month + ')').addClass('selected')
				}
				else {
					$(this).parent().children(':eq(1)').removeClass('selected')
					options.find('li').removeClass('selected')
				}

				if ( isDate(min) ) {
					if ( y == min.getFullYear() ) {
						$(this).addClass('disabled')
						var i = options.find('li').index( options.find('li:contains(' + min.toDateString().substring(4,7) + ')') )
						options.find('li:lt(' + i + ')').addClass('disabled')
					}
				}

				if ( isDate(max) ) {
					if ( y == max.getFullYear() ) {
						$(this).addClass('disabled')
						var i = options.find('li').index( options.find('li:contains(' + max.toDateString().substring(4,7) + ')') )
						options.find('li:gt(' + i + ')').addClass('disabled')
					}
				}
				$(this).siblings('a:contains(«)').removeClass('disabled')

			}
			return false;
		})

		$(this).children(':first').append('<ul></ul>')
		for(i=0;i<12;i++)
		{
			d.setMonth(i)
			var m = d.toDateString().substring(4,7)
				$(this).find('ul:first').append('<li' + ((m==month)?' class="selected"':'') + '>' + m + '</li>')
		}
		var options = $(this).find('ul:first')

		options.children('li').bind('click', function(){

			if ( !$(this).hasClass('disabled') ) {
				var month = $(this).text();
				var year = $(this).parents('div:first').find('p a:eq(1)').text();
				
				$(this).parents('.selectmonth').text( month + ' ' + year )
				window.location.href = 'financials.asp?month=' + month + '&year=' + year

			}
			return false;


		})

		options.find('li:contains(' + month + ')').addClass('selected')

		if ( isDate(min) ) {
			if ( year == min.getFullYear() ) {
				$(this).find('div p a:contains(«)').addClass('disabled')
				var i = options.find('li').index( options.find('li:contains(' + min.toDateString().substring(4,7) + ')') )
				options.find('li:lt(' + i + ')').addClass('disabled')
			}
		}

		if ( isDate(max) ) {
			if ( year == max.getFullYear() ) {
				$(this).find('div p a:contains(»)').addClass('disabled')
				var i = options.find('li').index( options.find('li:contains(' + max.toDateString().substring(4,7) + ')') )
				options.find('li:gt(' + i + ')').addClass('disabled')
			}
		}


	})

})
function isDate (value)
{
	return (!isNaN (new Date (value).getYear () ) ) ;
}