function menu() {
	body = $("sub");
	var menu = $("menu");
	var submenu = $("submenu");
	

	/* Breite des Navibg anpassen */
	if (menu) {
		var el_array = $$(".main-navigation li a.lvl1");
		if (el_array) {
			var ges_w = 0;	
			el_array.each(function(item) {
				var el_w = item.up().getWidth();
				ges_w = ges_w + el_w;
			});
			menu.down().setStyle({ backgroundPosition: ges_w + "px 0" });
		}
	
		/* Breite der untermenues setzen */
		var sub_array = $$(".main-navigation li.ifsub");
		if (sub_array) {
			sub_array.each(function(item) {
				var e_w = item.getWidth();
				var e_ul = item.down().next();
				if (!e_ul) return;
				var e_ul_w = e_ul.getWidth();
				if ( e_w > e_ul_w ) {
					e_ul.setStyle({
						width: e_w - 1 + 'px'
					});
				}
			});
		}

	}
	
	/* layout klassen setzen */
	if (submenu) {
		if (body.hasClassName("slim")) {
			body.addClassName("menu-slim");
			menu.addClassName("active");
		}
		else {
			if (body.hasClassName("default")) {
				body.addClassName("menu");
				menu.addClassName("active");
			}			
		}
	}
}
/* change sidemenu classname after fourth element */
function sidenav() {
	var sidemenu = $("sidemenu");
	if (sidemenu) {
		
		// secondary-content background entfernen, bei navi 
		sidemenu.up(1).setStyle({ backgroundImage: "none" });
		var li_elements = $$("#sidemenu ul li");
		
		Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
		//if (!Prototype.Browser.IE && !(typeof window.XMLHttpRequest == "undefined") ) {
		if (!Prototype.Browser.IE6) {
			/* add class white to elements, no ie6 */
			if (li_elements.length >= 4 ) {
				for (var i=4; i<li_elements.length; i++) {
					li_elements[i].addClassName("white");
				};
			}
		}
		
		var is_h = 162;
		var ges_h = 0;
		/* adjust height if few elements */
		if (li_elements.length < 6 ) {
			for (var i=0; i<li_elements.length; i++) {
				var li_h = li_elements[i].getHeight();
				var ges_h = ges_h + li_h; 
			};
			
			if (body.hasClassName("slim")) {
				var is_h = 199;
			}
			sidemenu.setStyle({ marginTop: is_h - ges_h + "px" });
		}
		
		/* set first active */
		var setfirst = 0;
		li_elements.each(function(el) {
			if (el.hasClassName("active")){
				setfirst = +1;
			}
		});
		if ( setfirst == 0 ) {
			li_elements[0].addClassName("active");
		}
	}
}


/* inapge begin */
function checkoutProcess()
{
	var container = $('options');
	if (!container) return;
	
	var input_field;
	var radios;
	var termin_is_checked = false;
	var participants = $A();
	
	/*
	 * TODO description
	 */
	var copyValue2Hidden = function(input_field, radios)
	{
		radios.each(function(radio)
		{
			var hidden_field = $(radio.getAttribute('rel'));
			if (radio.checked)
				hidden_field.value = input_field.value;
			else
				hidden_field.value = '0';
		});
	}
	/*
	 * TODO description
	 */
	var buildAjaxHiddenTypeField = function(the_form)
	{
		var h = the_form.down('input[name="type"]');
        if (!h)
        {
            h = new Element('input', {
                'type': 'hidden',
                'name': 'type',
                'value' : '103'
            });
            the_form.appendChild(h);
        }
	}
	var isInt = function(x) { 
	   var y=parseInt(x); 
	   if (isNaN(y)) return false; 
	   return x==y && x.toString()==y.toString(); 
	}
	var transformBackLink = function(the_form)
	{
		var a = the_form.down('p.com-basket-previous a');
		if (!a) return;
		a.observe('click', function(event)
		{
			Event.stop(event);
			var my_action = a.href;
			Lightview.show({
				href: my_action,
				rel: 'ajax',
				title: 'Buchung',
				options: {
					autosize: true,
					encoding: 'UTF-8',
					overlayClose: false,
					ajax: 
					{
						method: 'get',		
						onComplete: formComplete
					}
				}
			});
		});
	}
	var transformOrderLink = function()
	{
		var aa = $$('a.but_submit_inline');
		aa.each(function(a)
		{
			a.observe('click', function(event)
			{
				Event.stop(event);
			    Lightview.show({ 
					href: 'options', 
					rel: 'inline',
					title: 'Buchung',
					options: {
						overlayClose: false,
						autosize: true,
						encoding: 'UTF-8'
					}
				});
			});
		})
	}
	var formComplete = function()
	{
		// STEP 1
		var the_form = container.down('.com-single-aticle form');
		if (the_form)
		{
			buildAjaxHiddenTypeField(the_form);
			if (termin_is_checked)
				the_form.observe('submit',submitEvent);
			else
				the_form.observe('submit',function(event)
				{
					Event.stop(event);
					Lightview.hide();
				});
		}
		// STEP 2
		var the_form = $('basketform');
		if (the_form)
		{
			buildParticipants(the_form);
			the_form.observe('submit', submitEvent);
			buildAjaxHiddenTypeField(the_form);
			transformChkoutSteps();
			transformOrderLink();
		}
		// STEP 3,4,5
		var the_form = $('chkoutform');
		if (the_form)
		{
			the_form.observe('submit', submitEvent);
			buildAjaxHiddenTypeField(the_form);
			transformBackLink(the_form);
			transformChkoutSteps();
			transformInputFields(the_form);
			showParticipants();
		}
	} 
	/*
	 * TODO description
	 */
	var submitEvent = function(event)
	{
		Event.stop(event);
		// IE FIX um inline popup ein weiteres mal anzuzeigen 
		if (Prototype.Browser.IE)
			Lightview.restoreInlineContent();
		var my_parameters = Form.serialize(event.target);
		var my_action = event.target.action;
		Lightview.show({
			href: my_action,
			rel: 'ajax',
			title: 'Buchung',
			options: {
				autosize: true,
				encoding: 'UTF-8',
				overlayClose: false,
				ajax: {
					method: 'get',	
					parameters: my_parameters,
					onComplete: formComplete
				}
			}
		});
	}
	/*
	 * TODO description
	 */
	var transformChkoutSteps = function()
	{
		$$('ul.com-chkout-steps li a').each(function(a)
		{
			a.href = '';
			a.observe('click', function(event)
			{
				Event.stop(event);
			});	
		});
	}
	/*
	 * TODO description
	 */
	var transformInputFields = function(the_form)
	{
		the_form.select('input,textarea').each(function(f)
		{
			selectOnFocus(f);
		});
	}
	/*
	 * TODO description
	 */
	var selectOnFocus = function(field)
	{
		field.observe('focus', function()
		{
			field.select();
		});
		field.observe('click', function()
		{
			field.select();
		});
	}
	
	/*
	 * TODO description
	 */
	var getParticipantsSize = function()
	{
		return participants.size();	
	}
	
	/*
	 * TODO description
	 */
	var getParticipants = function()
	{
		return participants;	
	}
	
	/*
	 * TODO description
	 */
	var getParticipant = function(i, orig)
	{
		return (participants[i] && participants[i].value) ? participants[i].value : orig.value;
	}
	
	/*
	 * TODO description
	 */
	var getParticipantsAsString = function()
	{
		var pp = getParticipants();
		var ret = '';
		pp.each(function(p)
		{
			ret += p.value + "\n";
		});	
		return ret;
	}
	
	/*
	 * TODO description
	 */
	var setParticipants = function(participant_inputs)
	{
		participants = $A(participant_inputs);
		return participants;
	}
		
	/*
	 * TODO description
	 */
	var buildParticipants = function(container)
	{
		var pp = container.select('div.com-single-qty input.participant');
		pp.each(function(participant, i)
		{
			selectOnFocus(participant);
			if (getParticipantsSize() >= i)
				participant.value = getParticipant(i, participant);
			new Form.Element.Observer(participant, '0.1', function()
			{
				setParticipants(pp);
			});
		});
		setParticipants(pp);
	}
	
	/*
	 * TODO description
	 */
	var showParticipants = function( )
	{
		var participants_container = $('participants');
		if (participants_container)
			participants_container.update(getParticipantsAsString());
		var comment_hidden = $('comment_hidden');
		
		comment_hidden = comment_hidden ? comment_hidden.down('textarea') : false;
		var comment = $('comment');
		if (comment_hidden && comment)
		{
			comment_hidden.value = "Teilnehmer:\n" + getParticipantsAsString();
			new Form.Element.Observer(comment, '0.1', function()
			{
				comment_hidden.value = "Teilnehmer:\n" + getParticipantsAsString() + "\n\nKommentar:\n" + comment.value;
			});
		}
	}
	
	/*
	 * TODO description
	 */
	var init = function()
	{
		input_field = $('com-input-qty');
		input_field.value = '1';
		input_field.disabled = false;
		selectOnFocus(input_field);
		radios = container.select('input[type=radio]');
		radios.each(function(radio, i)
		{
			var hidden_field = $(radio.getAttribute('rel'));
			radio.checked = false;
			hidden_field.value = '0';
			if (!radio.disabled && !termin_is_checked )
			{
				termin_is_checked = true;
				radio.checked = 'checked';
				radio.setAttribute('checked', 'checked')
//				// IE workaround
				radio.setAttribute('defaultChecked', 'defaultChecked');
				//alert (radio.up().innerHTML);
				hidden_field.value = '1';
			}
			new Form.Element.Observer(radio, '0.1', function()
			{
				input_field.value = '1';
                copyValue2Hidden(input_field, radios);
			});
		});
		if (!termin_is_checked)
		{
			input_field.value = 0;
			input_field.disabled = true;
		}
		new Form.Element.Observer(input_field, '0.1', function()
		{
			var v = $F(input_field);
			if (isInt(v) && v > 0)
			{
			//	$('participants_hidden').value = '';
				copyValue2Hidden(input_field, radios);
			}
			else
				input_field.value = '1';
		});
	}
	
	init();
	transformOrderLink();
	formComplete();
		
}
/* inpage end */


function singleproductheadlines() {
	var issingleprod = $("singleproduct_h1");
	var headline = $("headline");
	if(issingleprod) {
		headline.remove();
	}
}

function fixheight() {
	var ic = $("icontent");
	var ac = $("acontent");
	if ( ic && ac) {
		var ic_h = ic.getHeight();
		var ac_h = ac.getHeight();
		if( ac_h >= ic_h ) {
			ic.setStyle({
				height: ac_h + 20 + "px"
			});
		}
	}
}

function init() 
{
	//	alert ('loaded');
	menu();
	sidenav();
	tabberAutomatic();
	// gallery in shop-detail page
	var myGallery = new Gallery('gallery_wrapper');
	myGallery.init();
	fixheight();
	singleproductheadlines();
	checkoutProcess();
}
document.observe("dom:loaded", init);




