// @name: SelectMover
// @type: Behaviour
// @author: Rocco Howard
// @version: 20070630

Bluora.INPUTupdateRecordMover = function(el) {
	if (el.hasClassName('bluora_select_record_up')
		|| el.hasClassName('BluoraSelectMoverUp')) {
		otherselector = $(el.mainselector).selectors[1]
		$(el.mainselector).selectedIndex = $(el.mainselector).selectedIndex-1;
		if ($(el.mainselector).selectedIndex == 0) {
			el.disabled = true;
		}
		if ($(el.mainselector).selectedIndex != ($(el.mainselector).length-1)) {
				$(otherselector).disabled = false;
		}
	} else if (el.hasClassName('bluora_select_record_down')
		|| el.hasClassName('BluoraSelectMoverDown')) {
		otherselector = $(el.mainselector).selectors[0]
		$(el.mainselector).selectedIndex = $(el.mainselector).selectedIndex+1;
		if ($(el.mainselector).selectedIndex == ($(el.mainselector).length-1)) {
			el.disabled = true;
		}
		if ($(el.mainselector).selectedIndex != 0) {
			$(otherselector).disabled = false;
		}
	}
	if (el.other != null) {
		el.other.each(function(include) {  $(include).selectedIndex = $(el.mainselector).selectedIndex; });
		$(el.mainselector).onchange(false);
	}
	
	$(el.mainselector).onchange();
};
	
Bluora.SELECTupdateRecordMovers = function(el) {
	if (el.selectors) {
		el.selectors.each(
			function(include) {
				
				include = $(include);
				if ((el.selectedIndex == 0 && (include.hasClassName('BluoraSelectMoverUp')
											|| include.hasClassName('bluora_select_record_up')))
					 || (el.selectedIndex == (el.length-1) && (include.hasClassName('BluoraSelectMoverDown')
															|| include.hasClassName('bluora_select_record_down')))) {
					include.disabled = true;
				} else {
					include.disabled = false;
				}
			}
		);
	}
};

Bluora.Behaviour.SelectMover = {
	'input.BluoraSelectMoverUp': function (el) {
		if ($(el.mainselector).selectedIndex == 0) {
			el.disabled = true;
		}		
		el.onclick = function () {
			Bluora.INPUTupdateRecordMover(el);
		};
	},
	'input.BluoraSelectMoverDown': function (el) {
		if ($(el.mainselector).selectedIndex == ($(el.mainselector).length-1)) {
			el.disabled = true;
		}		
		el.onclick = function () {
			Bluora.INPUTupdateRecordMover(el);
		};
	},
	'input.bluora_select_record_up': function (el) {
		Bluora.Behaviour.SelectMover['input.BluoraSelectMoverUp'](el);
	},
	'input.bluora_select_record_down': function (el) {
		Bluora.Behaviour.SelectMover['input.BluoraSelectMoverDown'](el);
	}
	
};
Bluora.Behaviour.register(Bluora.Behaviour.SelectMover);
Bluora.Behaviour.apply();