var last_module = 'base_module';
var last_tab	= 'description';

function selectChkdModu(moduleName, irgendwas) {
	if(moduleName == 'PacketFast')
		moduleName = 'packet_fast';
	if(moduleName == 'PacketGigabit')
		moduleName = 'packet_fast';
	switchModule(moduleName.toLowerCase()+'_module');
}

function str_replace(search, replace, subject) {
	return subject.split(search).join(replace);
}

function getModuleDetailDiv(module, tab) {
	return $$('#detail_'+module+' div.ks_module_'+tab);
}

function switchModuleOrTab(from_module, from_tab, to_module, to_tab) {
	getModuleDetailDiv(from_module, from_tab).morph({'opacity': 0});
	getModuleDetailDiv(from_module, from_tab).setStyle('display', 'none');
	
	getModuleDetailDiv(to_module, to_tab).setStyle('display', 'inherit');
	getModuleDetailDiv(to_module, to_tab).morph({'opacity': 1});
}

function switchModule(clicked_module) {
	$('selector_'+last_module).removeClass('selected');
	$('selector_'+clicked_module).addClass('selected');
	switchModuleOrTab(last_module, last_tab, clicked_module, last_tab);
	last_module = clicked_module;
}

function switchTab(clicked_tab) {
	$(last_tab).removeClass('selected');
	$(clicked_tab).addClass('selected');
	switchModuleOrTab(last_module, last_tab, last_module, clicked_tab);
	last_tab = clicked_tab;
}

function checkModule(moduleName) {
	$('checkbox_'+moduleName+'_module').addClass('selected');
	
	if (moduleName != "base" && moduleName != "ioport" && moduleName != "memory" && moduleName != "clock" && moduleName != "kernel")
		checkModule("kernel");
	if (moduleName == "multitasking")
		checkModule("realtime");
	if (moduleName == "realtime")
		checkModule("clock");
	if (moduleName == "socket" && !$$('#selector_packet_gigabit_module div.checkbox').hasClass('selected'))
		checkModule("packet_fast");
	if (moduleName == "ethercat" && !$$('#selector_packet_gigabit_module div.checkbox').hasClass('selected'))
		checkModule("packet_fast");
	if (moduleName == "realtime")
		uncheckModule("timer");
	if (moduleName == "timer")
		uncheckModule("realtime");
	if (moduleName == "packet_gigabit")
		uncheckModule("packet_fast");
	if (moduleName == "packet_fast")
		uncheckModule("packet_gigabit");
}

function uncheckModule(moduleName) {
	$('checkbox_'+moduleName+'_module').removeClass('selected');
	$('checkbox_base_module').addClass('selected');// always checked
}

function selectModule(eventSpawner) {
	moduleName = str_replace('checkbox_', '', eventSpawner.getProperty('id'));
	moduleName = str_replace('_module', '', moduleName);
	
	if(eventSpawner.hasClass('selected') && !eventSpawner.hasClass('solid'))
		uncheckModule(moduleName);
	else
		checkModule(moduleName);
}



window.addEvent('domready', function() {
	/*
	if($$('div.togglebox')) {
		$$('div.togglebox h2').addEvent('click', function(e) {
			toggler = this.getParent().getChildren('div.toggler');
			if(toggler.getStyle('display') == 'none') {
				toggler.setStyle('display', 'block');
				this.removeClass('collapsed');
				this.addClass('expanded');
			}
			else {
				toggler.setStyle('display', 'none');
				this.removeClass('expanded');
				this.addClass('collapsed');
			}
		});
	}*/
	
	if($('ajax_login')) {
		var anmeldenSlide = new Fx.Slide('ajax_login');
		anmeldenSlide.hide();
		$('ajax_login').setStyle('display', 'block');
		if($$('#ajax_login form div p.error').getProperty('class') == 'error')
			anmeldenSlide.show();
			if($('Anmelden')) {
				$('Anmelden').addEvent('click', function(e){
					e.stop();
					anmeldenSlide.toggle();
				});
			}
			if($('Login')) {
				$('Login').addEvent('click', function(e){
					e.stop();
					anmeldenSlide.toggle();
				});
			}
	}
	if($('logged_in_slide')) {
		var loggedInSlide = new Fx.Slide('logged_in_slide');
		loggedInSlide.hide();
		$('logged_in_slide').setStyle('display', 'block');
		if($('logged_in_as')) {
			$('logged_in_as').addEvent('click', function(e){
				e.stop();
				loggedInSlide.toggle();
			});
		}
	}
	
	$$('input[name="request_type"]').addEvent('click', function(e) {
		if(e.target.getProperty('value') === 'general_request') {
			$$('fieldset.technical_request').setStyle('display', 'none');
			$$('fieldset.general_request').setStyle('display', 'block');
		}
		else if(e.target.getProperty('value') === 'technical_request') {
			$$('fieldset.general_request').setStyle('display', 'none');
			$$('fieldset.technical_request').setStyle('display', 'block');
		}
	});
	
	// KS_Module Configurator
	if($('ks_module_configurator')) {
		//populateKsModuleConfigurator();
		$$("div.ks_module_detail").getChildren('div').each( function(e) { e.set('opacity', 0) });
		switchTab(last_tab);
		switchModule(last_module);
		$('checkbox_base_module').addClass('selected');// always checked
	
		$$('#ks_module_selectors div.ks_module_selector').addEvent('click', function(e) { switchModule(str_replace('selector_', '', $(this).getProperty('id'))) });
		$$('#ks_module_selectors div.ks_module_selector').addEvent('mouseenter', function(e) { this.addClass('hover'); });
		$$('#ks_module_selectors div.ks_module_selector').addEvent('mouseleave', function(e) { this.removeClass('hover'); });
		$$('#ks_module_selectors div.ks_module_checkbox').addEvent('click', function(e) { selectModule(this) });
		$$('#ks_module_tabs ul li').addEvent('click', function(e) { switchTab($(this).getProperty('id'))});
	}
});