var rankings_func = new Array(2);
if(online == 0) {
	rankings_func['SW'] = "http://dbserver:85/ipc_database/sw_rankings/_func.php";
	rankings_func['AT'] = "http://dbserver:85/ipc_database/at_rankings/_func.php";
	rankings_func['AS'] = "http://dbserver:85/ipc_database/as_rankings/_func.php";
	rankings_func['PO'] = "http://dbserver:85/ipc_database/po_rankings/_func.php";
	rankings_func['SH'] = "http://dbserver:85/ipc_database/sh_rankings/_func.php";
}
else {
	rankings_func['SW'] = "func.html";
	rankings_func['AT'] = "func.html";
	rankings_func['AS'] = "func.html";
	rankings_func['PO'] = "func.html";
	rankings_func['SH'] = "func.html";
}

window.onload = function() {

// SWIMMING

	// change of rankings type (swimming) results in update of periods
	$("select[name='SW_RANKINGS_TYPE']").change(function(e){
		var obj = new Object();
		obj.SW_RANKINGS_TYPE = $(this).val();
		obj.SW_RANKINGS_PERIOD = $("select[name='SW_RANKINGS_PERIOD']").val();
		obj.fn = "updatePeriods";
		var json_obj = $.toJSON(obj);
		//$("#SW_RANKINGS_PERIOD_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['SW'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#SW_RANKINGS_PERIOD_DIV").html(data.select);
			$("#SW_RANKINGS_USERPERIOD_LABEL").add("#SW_RANKINGS_USERPERIOD_DIV").hide();
			$("select[name='SW_RANKINGS_PERIOD']").change(function(e){
				if($(this).val() == 'UserDefined')
					$("#SW_RANKINGS_USERPERIOD_LABEL").add("#SW_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
				else
					$("#SW_RANKINGS_USERPERIOD_LABEL:visible").add("#SW_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
			});
		});
	});

	// opens the rankings_period screen
	$("select[name='SW_RANKINGS_PERIOD']").change(function(e){
		if($(this).val() == 'UserDefined')
			$("#SW_RANKINGS_USERPERIOD_LABEL").add("#SW_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
		else
			$("#SW_RANKINGS_USERPERIOD_LABEL:visible").add("#SW_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
	});

	// change of course or gender (swimming) results in update of event types list
	$("input[name='SW_RANKINGS_COURSE']")
	.add("input[name='SW_RANKINGS_GENDER']").click(function(e){
		var obj = new Object();
		obj.SW_RANKINGS_COURSE = $("input[name='SW_RANKINGS_COURSE']:checked").val();
		obj.SW_RANKINGS_GENDER = $("input[name='SW_RANKINGS_GENDER']:checked").val();
		obj.fn = "updateEvents";
		var json_obj = $.toJSON(obj);
		//$("#SW_RANKINGS_EVENTS_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['SW'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#SW_RANKINGS_EVENTS_DIV").html(data.select);
			updateClasses('SW');
			$("select[name='SW_RANKINGS_EVENT']").change(function(e){
				updateClasses('SW');
			});
		});
	});

	// change of event (swimming) results in update of classes
	$("select[name='SW_RANKINGS_EVENT']").change(function(e){
		updateClasses('SW');
	});

	if(document.SW_RANKINGS) document.SW_RANKINGS.reset();

	// check class before submit the form
	$("form[name='SW_RANKINGS']").submit(function(){
		var eventclass = $("select[name='SW_RANKINGS_CLASS']").val();
		var event = $("select[name='SW_RANKINGS_EVENT']").val();
		if(eventclass == "NONE" || eventclass == "" || event == "NONE") return false;
		return true;
	});

// ATHLETICS
	// change of rankings type (athletics) results in update of periods
	$("select[name='AT_RANKINGS_TYPE']").change(function(e){
		var obj = new Object();
		obj.AT_RANKINGS_TYPE = $(this).val();
		obj.AT_RANKINGS_PERIOD = $("select[name='AT_RANKINGS_PERIOD']").val();
		obj.fn = "updatePeriods";
		var json_obj = $.toJSON(obj);
		//$("#AT_RANKINGS_PERIOD_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['AT'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#AT_RANKINGS_PERIOD_DIV").html(data.select);
			$("#AT_RANKINGS_USERPERIOD_LABEL").add("#AT_RANKINGS_USERPERIOD_DIV").hide();
			$("select[name='AT_RANKINGS_PERIOD']").change(function(e){
				correctSpecification(this);
			}).change();
		});
	});

	// opens the rankings_period screen and enabled/disabled other specifications
	$("select[name='AT_RANKINGS_PERIOD']").change(function(e){
		correctSpecification(this);
	}).change();

	// change of specification or gender (athletics) results in update of event types list
	$("input[name='AT_RANKINGS_GENDER']").add("input[name='AT_RANKINGS_SPECIFICATION']").click(function(e){
		var obj = new Object();
		obj.AT_RANKINGS_GENDER = $("input[name='AT_RANKINGS_GENDER']:checked").val();
		obj.AT_RANKINGS_SPECIFICATION = $("input[name='AT_RANKINGS_SPECIFICATION']:checked").val();
		obj.AT_RANKINGS_PERIOD = $("select[name='AT_RANKINGS_PERIOD']").val();
		obj.AT_RANKINGS_TYPE = $("select[name='AT_RANKINGS_TYPE']").val();
		obj.fn = "updateEvents";
		var json_obj = $.toJSON(obj);
		//$("#AT_RANKINGS_EVENTS_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['AT'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#AT_RANKINGS_EVENTS_DIV").html(data.select);
			updateClasses('AT');
			$("select[name='AT_RANKINGS_EVENT']").change(function(e){
				updateClasses('AT');
			});
		});
	});

	// change of event (athletics) results in update of classes
	$("select[name='AT_RANKINGS_EVENT']").change(function(e){
		updateClasses('AT');
	});

	if(document.AT_RANKINGS) {
		document.AT_RANKINGS.reset();
		correctSpecification(this);
	}

	// check class before submit the form
	$("form[name='AT_RANKINGS']").submit(function(){
		var eventclass = $("select[name='AT_RANKINGS_CLASS']").val();
		var event = $("select[name='AT_RANKINGS_EVENT']").val();
		if(eventclass == "NONE" || eventclass == "" || event == "NONE") return false;
		return true;
	});

// POWERLIFTING

	// change of rankings type (powerlifting) results in update of periods
	$("select[name='PO_RANKINGS_TYPE']").change(function(e){
		var obj = new Object();
		obj.PO_RANKINGS_TYPE = $(this).val();
		obj.PO_RANKINGS_PERIOD = $("select[name='PO_RANKINGS_PERIOD']").val();
		obj.fn = "updatePeriods";
		var json_obj = $.toJSON(obj);
		//$("#PO_RANKINGS_PERIOD_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['PO'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#PO_RANKINGS_PERIOD_DIV").html(data.select);
			$("#PO_RANKINGS_USERPERIOD_LABEL").add("#PO_RANKINGS_USERPERIOD_DIV").hide();
			$("select[name='PO_RANKINGS_PERIOD']").change(function(e){
				if($(this).val() == 'UserDefined')
					$("#PO_RANKINGS_USERPERIOD_LABEL").add("#PO_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
				else
					$("#PO_RANKINGS_USERPERIOD_LABEL:visible").add("#PO_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
			});
		});
	});

	// opens the rankings_period screen
	$("select[name='PO_RANKINGS_PERIOD']").change(function(e){
		if($(this).val() == 'UserDefined')
			$("#PO_RANKINGS_USERPERIOD_LABEL").add("#PO_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
		else
			$("#PO_RANKINGS_USERPERIOD_LABEL:visible").add("#PO_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
	});

	// change of gender (powerlifting) results in update of event types list
	$("input[name='PO_RANKINGS_GENDER']").click(function(e){
		var obj = new Object();
		obj.PO_RANKINGS_GENDER = $("input[name='PO_RANKINGS_GENDER']:checked").val();
		obj.fn = "updateEvents";
		var json_obj = $.toJSON(obj);
		//$("#PO_RANKINGS_EVENTS_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['PO'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#PO_RANKINGS_EVENTS_DIV").html(data.select);
		});
	});

	if(document.PO_RANKINGS) document.PO_RANKINGS.reset();

	// check class before submit the form
	$("form[name='PO_RANKINGS']").submit(function(){
		var event = $("select[name='PO_RANKINGS_EVENT']").val();
		if(event == "" || event == "NONE") return false;
		return true;
	});

// SHOOTING

	// change of rankings type (shooting) results in update of periods
	$("select[name='SH_RANKINGS_TYPE']").change(function(e){
		var obj = new Object();
		obj.SH_RANKINGS_TYPE = $(this).val();
		obj.SH_RANKINGS_PERIOD = $("select[name='SH_RANKINGS_PERIOD']").val();
		obj.fn = "updatePeriods";
		var json_obj = $.toJSON(obj);
		//$("#SH_RANKINGS_PERIOD_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['SH'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#SH_RANKINGS_PERIOD_DIV").html(data.select);
			$("#SH_RANKINGS_USERPERIOD_LABEL").add("#SH_RANKINGS_USERPERIOD_DIV").hide();
			$("select[name='SH_RANKINGS_PERIOD']").change(function(e){
				if($(this).val() == 'UserDefined')
					$("#SH_RANKINGS_USERPERIOD_LABEL").add("#SH_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
				else
					$("#SH_RANKINGS_USERPERIOD_LABEL:visible").add("#SH_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
			});
		});
	});

	// opens the rankings_period screen
	$("select[name='SH_RANKINGS_PERIOD']").change(function(e){
		if($(this).val() == 'UserDefined')
			$("#SH_RANKINGS_USERPERIOD_LABEL").add("#SH_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
		else
			$("#SH_RANKINGS_USERPERIOD_LABEL:visible").add("#SH_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
	});

	if(document.SH_RANKINGS) document.SH_RANKINGS.reset();

	// check event before submit the form
	$("form[name='SH_RANKINGS']").submit(function(){
		var event = $("select[name='SH_RANKINGS_EVENT']").val();
		if(event == "" || event == "NONE") return false;
		return true;
	});

// ALPINE SKIING

	if(document.AS_RANKINGS) document.AS_RANKINGS.reset();

	// check discipline before submit the form
	$("form[name='AS_RANKINGS']").submit(function(){
		var event = $("select[name='AS_RANKINGS_EVENT']").val();
		if(event == "" || event == "NONE") return false;
		return true;
	});
}

/**
 *
 * @access public
 * @return void
 **/
function updateClasses(sport){
	var obj = new Object();
	obj.RANKINGS_EVENT = $("select[name='" + sport + "_RANKINGS_EVENT']").val();
	obj.RANKINGS_PERIOD = $("select[name='" + sport + "_RANKINGS_PERIOD']").val();
	obj.RANKINGS_TYPE = $("select[name='" + sport + "_RANKINGS_TYPE']").val();
	obj.fn = "updateClasses";
	var json_obj = $.toJSON(obj);
	//$("#SW_RANKINGS_CLASS_DIV").$("#AT_RANKINGS_CLASS_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
	$.get(rankings_func[sport], { data : json_obj }, function(json_data) {
		var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
		$("#" + sport + "_RANKINGS_CLASS_DIV").html(data.select);
	});
}

/**
 *
 * @access public
 * @return void
 **/
function correctSpecification(thisObject){
		if($(thisObject).val() == 'UserDefined')
			$("#AT_RANKINGS_USERPERIOD_LABEL").add("#AT_RANKINGS_USERPERIOD_DIV").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
		else
			$("#AT_RANKINGS_USERPERIOD_LABEL:visible").add("#AT_RANKINGS_USERPERIOD_DIV:visible").animate({ "height": "toggle", "opacity": "toggle" }, {duration: 1000 });
		var obj = new Object();
		obj.AT_RANKINGS_PERIOD = $(thisObject).val();
		obj.fn = "getYearOfPeriod";
		var json_obj = $.toJSON(obj);
		$.get(rankings_func['AT'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			if(data.year < 2010) {
				$("input[value='OUTDOOR']").click();
				$("input[name='AT_RANKINGS_SPECIFICATION']:checked").click();
				$("input[value='INDOOR']").add("#AT_RANKINGS_SPEC_IN").hide();
				$("#AT_RANKINGS_SPEC_OUT").text("All");
			}
			else {
				$("input[value='INDOOR']").add("#AT_RANKINGS_SPEC_IN").show();
				$("#AT_RANKINGS_SPEC_OUT").text("Outdoor");
			}
		});
		var obj = new Object();
		obj.AT_RANKINGS_GENDER = $("input[name='AT_RANKINGS_GENDER']:checked").val();
		obj.AT_RANKINGS_SPECIFICATION = $("input[name='AT_RANKINGS_SPECIFICATION']:checked").val();
		obj.AT_RANKINGS_PERIOD = $("select[name='AT_RANKINGS_PERIOD']").val();
		obj.AT_RANKINGS_TYPE = $("select[name='AT_RANKINGS_TYPE']").val();
		obj.fn = "updateEvents";
		var json_obj = $.toJSON(obj);
		//$("#AT_RANKINGS_EVENTS_DIV").html('<i>Drop Down Menu is just being calculated.</i>');
		$.get(rankings_func['AT'], { data : json_obj }, function(json_data) {
			var data = $.evalJSON(json_data.replace(/^\s+/, '').replace(/\s+$/, ''));
			$("#AT_RANKINGS_EVENTS_DIV").html(data.select);
			updateClasses('AT');
			$("select[name='AT_RANKINGS_EVENT']").change(function(e){
				updateClasses('AT');
			});
		});
}
