var singleAjaxLock2 = false;

function updateStatsNav(rel, index, num)
{
	if (index == 0) {
		$j('.stats_period_prev[rel="' + rel + '"]').hide();
	} else {
		$j('.stats_period_prev[rel="' + rel + '"]').show();
	}
	
	if (index == num - 1) {
		$j('.stats_period_next[rel="' + rel + '"]').hide();
	} else {
		$j('.stats_period_next[rel="' + rel + '"]').show();
	}
}

var profileDataObserver;
profileDataObserver = function(){
	$j('.stats_period_number').unbind('change');
	$j('.stats_period_prev').unbind('click');
	$j('.stats_period_next').unbind('click');
	$j('#profile-data .toggle a').unbind('click');
	$j('#profile-data .toggle a').click(function(){
		if ($j('#profile-data .toggle a').hasClass('open')) {
			$j('#profile-data .section').slideDown('1000');
			$j('#profile-data .toggle a').children('img').attr('src', basePath + '/images/icon-close.gif');
			$j('#profile-data .toggle a').removeClass('open');
		} else {
			$j('#profile-data .section').slideUp('1000');
			$j('#profile-data .toggle a').children('img').attr('src', basePath + '/images/icon-open.gif');
			$j('#profile-data .toggle a').addClass('open');
		}
		
		return false;
	});
	$j('#generation table .container').unbind('hover');
	$j('#generation table .container').hover(function(){
		$j(this).children("#detailed-info").fadeIn('fast');
	}, function(event){
		  
		  if ( !$j(event.target.nodeName).is('select')) {			  
			  $j(this).children('#detailed-info').fadeOut('fast');
		  }
		  
		  if ( !$j(event.target.nodeName).is('select')) {			  
			  $j(this).children('#detailed-info').fadeOut('fast');
		  }
		  
	});
	
	$j('#generation table .close').each(function(){
		$j(this).click(function(){
			$j(this).parent('#detailed-info').fadeOut('fast');
			return false;
		});
	});
	
	
	$j('.stats_period_number').change(function(){
		var rel = $j(this).attr('rel');
		var selectPeriodNumber = $j(this).get(0);
		updateStatsNav(rel, selectPeriodNumber.options.selectedIndex, selectPeriodNumber.options.length);
		var loader = $j('.stats_loader[rel="' + rel + '"]');
		var div = $j('[rel="' + rel + '"] .stats_content');
		var params = 'period_number=' + $j(this).val() + '&user_id=' + rel;
		var url = basePath + '/structure/index/pointsstats/';
		if (singleAjaxLock2 == false) {
			$j.ajax({
				url: 		url,
				data:		params,
				dataType:   'json',
				success: 	function(data) {
					for (key1 in data) {
						for (key2 in data[key1]) {
							$j('[rel="' + rel + '"] .stats_content .stats_' + key1 + '_' + key2).text(data[key1][key2]);
						}
					}
					$j('[rel="' + rel + '"] .stats_all').text(data['structure']['total']);
					
					loader.fadeOut('fast',function(){
						div.fadeIn('fast');						
					});
					singleAjaxLock2 = false;
				},
				beforeSend: function(request) {
					singleAjaxLock2 = true;
					div.fadeOut('fast' , function(){
						loader.fadeIn('fast');						
					});
				}
			});
		}
	});
	
	$j('.stats_period_prev').click(function() {
		var rel = $j(this).attr('rel');
		var selectPeriodNumber = $j('.stats_period_number[rel="' + rel + '"]');
		var selectPeriodNumberDOM = selectPeriodNumber.get(0);
		var index = selectPeriodNumberDOM.options.selectedIndex;
		selectPeriodNumber.val(selectPeriodNumberDOM.options[index-1].value);
		selectPeriodNumber.trigger('change');
		return false;
	});
	$j('.stats_period_next').click(function() {
		var rel = $j(this).attr('rel');
		var selectPeriodNumber = $j('.stats_period_number[rel=' + rel + ']');
		var selectPeriodNumberDOM = selectPeriodNumber.get(0);
		var index = selectPeriodNumberDOM.options.selectedIndex;
		selectPeriodNumber.val(selectPeriodNumberDOM.options[index+1].value);
		selectPeriodNumber.trigger('change');
		return false;
	});
	
	
};
$j(document).ready(function() {
	$j('.stats_period_number').each(function(){
		var selectPeriodNumber = $j(this).get(0);
		var rel = $j(this).attr('rel');
		if (selectPeriodNumber && selectPeriodNumber.options.selectedIndex != selectPeriodNumber.options.length - 1) {
			$j(this).val(selectPeriodNumber.options[selectPeriodNumber.options.length - 1].value);
			updateStatsNav(rel, selectPeriodNumber.options.selectedIndex, selectPeriodNumber.options.length);
		}
	});
	profileDataObserver();
});
	

  
