﻿window.addEvent('domready', function(){
	$('ausklappen').addEvent('click',function(event){toggleMenu(event);});
	$('closebutton').addEvent('click',function(event){toggleMenu(event);});
	$$('.categorylink').each(function(categorylink) {
		categorylink.addEvent('click', function(event){accordeonMenu(event)});
	});
});

//alert(Hash.Cookie('openstates'));

/* Scrollen zu Tarifbereich
window.addEvent('domready', function() {   
//smooooooth scrolling enabled  
new SmoothScroll({ duration:700 }, window);   
});  
window.addEvent('load', function() {  
//scroll down to the specific spot  
var scroll = new Fx.Scroll(window, { wait: false, duration: 1000, transition: Fx.Transitions.Quad.easeInOut });  
scroll.toElement('toptarif');  
});

*/

  
function accordeonMenu(event,defTarget){
	if(!defTarget) {
		var event = new Event(event);
		var target = event.target;
		var actContainerID = target.getProperty('rel');
		}
	else {
		var actContainerID=defTarget;
		}
	var i =0;
	var HashCookie = new Hash.Cookie('openstates',{path: '/'});
	var openstates = new Object();
	while(true){
		if ($('menu_container_' + i)&& i<7) {
			if (i != actContainerID) {
		  	var fx = new Fx.Styles('menu_container_' + i, {
		  		duration: 500,
		  		wait: false
		  	});
		  	fx.options.transition = Fx.Transitions.Quad.easeOut;
		  	fx.start({
		  		'height': [0]
		  	});
	  	}
		  else {
		  	var fx = new Fx.Styles('menu_container_' + i, {
		  		duration: 500,
		  		wait: false
		  	});
		  	fx.options.transition = Fx.Transitions.Quad.easeOut;
		  	fx.start({
		  		'height': [$('menu_container_' + i).getProperty('rel')*21+2]
		  	});
				openstates['open']=i;
				//console.log(i);
		  }
			i++;
		}
		else break;
	}
	HashCookie.extend(openstates);
}

function initMenu(menuHidden){
	var HashCookie = new Hash.Cookie('menustate',{path: '/'});
	HashCookie.save();
	if(!menuHidden) {
		var menuHidden = HashCookie.get('menustate');
		}
	if (menuHidden) {
		var mLeft = -147;
		var cLeft = 0;
		var settings = {menustate: true}
		}
	else {
		var mLeft = 0;
		var cLeft = 160;
		var settings = {menustate: false}
		}
	HashCookie.extend(settings);
	document.write('<style type="text/css" media="screen">div#menu {margin-left:'+mLeft+'px}</style>');
	document.write('<style type="text/css" media="screen">#content_middle {margin-left:'+cLeft+'px}</style>');
}

function toggleMenu(){
	var HashCookie = new Hash.Cookie('menustate',{path: '/'});
	var menuHidden = HashCookie.get('menustate');
	if (menuHidden){
		var mLeft = 0;
		var cLeft = 160;
		var settings = {menustate: false}
		HashCookie.extend(settings);
	}
	else {
		var mLeft = -147;
		var cLeft = 0;
		var settings = {menustate: true}
		HashCookie.extend(settings);
	}
	var fx = new Fx.Styles('menu', {duration: 500, wait: false});
	fx.options.transition = Fx.Transitions.Quad.easeOut;
	fx.start({
		'margin-left': [mLeft]
	});
	var fx = new Fx.Styles('content_middle', {duration: 500, wait: false});
	fx.options.transition = Fx.Transitions.Quad.easeOut;
	fx.start({
		'margin-left': [cLeft]
	});
}

function rateImageMove(event){
	var event = new Event(event);
	try {
  	var position = event.client.x - event.target.getPosition()['x']+2;
  	position = Math.round((126 / 5) * Math.round((position / 125) * 5));
  	$('rate_fg').setStyle('width', position);
  } 
  catch (e) {
  }
}
function rateImageClick(event){
	var event = new Event(event);
	var position = event.client.x- event.target.getPosition()['x'];
	var rating = Math.round(position/125 *5)
	if (rating >5)
		rating = 5;
	if (rating <0)
		rating = 0;	
	initialRateWidth = 	Math.round((126 / 5 *rating));
	document.form_bewertung.evaluation.value = rating;
}
function isEmpty(s){
	return ((s == null) || (s.length == 0))
}
						 	
function isInteger (s){
	var i;
  if (isEmpty(s))
  	if (isInteger.arguments.length == 1) return 0;
  	else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++){
  	var c = s.charAt(i);
    if (!isDigit(c)) return false;
  }
  return true;
}

function isDigit (c){
  return ((c >= "0") && (c <= "9"))
}

/* Horizontaler Slider */
					
function setTarifSlider(slider,input,max,step_width){
		var mySlide = new Slider($(slider+'_bg'), $(slider+'_knob'), {
		steps: 150,
		onChange: function(step){
			$(slider+'_bg').setStyle('background-position','-'+(150-step)+'px ' + '0');
			updateSliderValue(input,step,max,step_width,150);
		}
	}).set(0);
	$(input).addEvent('focus',function(){
		inputField = document.getElementById(input);
		inputValue = parseInt(inputField.value);
		$(input).setProperty('rel',inputValue);
	});
	$(input).addEvent('keyup',function(){										
		inputField = document.getElementById(input);
		if (isInteger(inputField.value) && inputField.value != ''){
			inputValue = parseInt(inputField.value);
			if (inputValue>max) {
				inputField.value = max;
				inputValue = max;
			}
			if (inputValue<0) {
				inputField.value = '';
				inputValue = 0;
			}
			sliderPos = Math.round(Math.sqrt(inputValue/max)*150);
			if (sliderPos<0)sliderPos=0;
			if (sliderPos>140)sliderPos=140;
			// Knopf
			var fx = new Fx.Styles(slider+'_knob', {duration: 500, wait: false});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'left': [sliderPos]
			});
			// Hintergrund Verlauf
			var fx = new Fx.Styles(slider+'_bg', {duration: 500, wait: false});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'background-position': ['-'+(150-sliderPos)+'px ' + '0']
			});
			$(input).setProperty('rel',inputValue);
		}
		else {
			if (inputField.value != ''){
				if (parseInt($(input).getProperty('rel'))==0)
					inputField.value = '';
				else {
					if (isInteger($(input).getProperty('rel')))
						inputField.value = $(input).getProperty('rel');
					else 
						inputField.value = '';
				}
			}
		}
	});
	}
	
	function setTarifValue(slider, input, value, max){
		if (value > max)
			value = max;
		if (value < 0) 
			value = 0;
		inputField = document.getElementById(input);
		inputField.value = value;
		sliderPos = Math.round(Math.sqrt(value/max)*150);
		if (sliderPos<0)sliderPos=0;
		if (sliderPos>140)sliderPos=140;
		// Knopf
		var fx = new Fx.Styles(slider+'_knob', {duration: 500, wait: false});
		fx.options.transition = Fx.Transitions.Quad.easeOut;
		fx.start({
			'left': [sliderPos]
		});
		// Hintergrund Verlauf
		var fx = new Fx.Styles(slider+'_bg', {duration: 500, wait: false});
		fx.options.transition = Fx.Transitions.Quad.easeOut;
		fx.start({
			'background-position': ['-'+(150-sliderPos)+'px ' + '0']
		});
	}


/* Vertikaler Slider */
					
function setTarifSlider_v(slider,input,max,step_width){
		var mySlide = new Slider($(slider+'_bg'), $(slider+'_knob'), {
		steps: 64,
		mode: 'vertical',
		onChange: function(step){
			$(slider+'_bg').setStyle('background-position','0 ' +step+'px');
			updateSliderValue(input,64-step,max,step_width,64);
		}
	}).set(64);
	$(input).addEvent('focus',function(){
		inputField = document.getElementById(input);
		inputValue = parseInt(inputField.value);
		$(input).setProperty('rel',inputValue);
	});
	$(input).addEvent('keyup',function(){										
		inputField = document.getElementById(input);
		if (isInteger(inputField.value) && inputField.value != ''){
			inputValue = parseInt(inputField.value);
			if (inputValue>max) {
				inputField.value = max;
				inputValue = max;
			}
			if (inputValue<0) {
				inputField.value = '';
				inputValue = 0;
			}
			sliderPos = 64-(Math.round(Math.sqrt(inputValue/max)*64));
			if (sliderPos<0)sliderPos=0;
			if (sliderPos>64)sliderPos=64;
			// Knopf
			var fx = new Fx.Styles(slider+'_knob', {duration: 500, wait: false});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'top': [sliderPos]
			});
			// Hintergrund Verlauf
			var fx = new Fx.Styles(slider+'_bg', {duration: 500, wait: false});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'background-position': ['0 ' + sliderPos+'px']
			});
			$(input).setProperty('rel',inputValue);
		}
		else {
			if (inputField.value != ''){
				if (parseInt($(input).getProperty('rel'))==0)
					inputField.value = '';
				else {
					if (isInteger($(input).getProperty('rel')))
						inputField.value = $(input).getProperty('rel');
					else 
						inputField.value = '';
				}
			}
		}
	});
	}
	
	
function setTarifValue_v(slider, input, value, max){
		if (value > max)
			value = max;
		if (value < 0) 
			value = 0;
		inputField = document.getElementById(input);
		inputField.value = value;
		sliderPos = 64-(Math.round(Math.sqrt(value/max)*64));
		if (sliderPos<0)sliderPos=0;
		if (sliderPos>64)sliderPos=64;
		// Knopf
		var fx = new Fx.Styles(slider+'_knob', {duration: 500, wait: false});
		fx.options.transition = Fx.Transitions.Quad.easeOut;
		fx.start({
			'top': [sliderPos]
		});
		// Hintergrund Verlauf
		var fx = new Fx.Styles(slider+'_bg', {duration: 500, wait: false});
		fx.options.transition = Fx.Transitions.Quad.easeOut;
		fx.start({
			'background-position': ['0 ' + sliderPos+'px']
		});
	}

	
/* Ende Vertikaler Slider */	
		
	function toggleEvaluation(){
		if ($('evaluation_div').getStyle('display') == 'none') {
			$('evaluation_div').setStyle('height', 0);
			$('evaluation_div').setStyle('display', 'block');
			$('evaluation_div').setStyle('opacity', 0);
			var fx = new Fx.Styles('evaluation_div', {
				duration: 750,
				wait: false
			});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'height': 331,
				'opacity': 1
			});
		}
		else {
			var fx = new Fx.Styles('evaluation_div', {
				duration: 750,
				wait: false
			});
			fx.options.transition = Fx.Transitions.Quad.easeOut;
			fx.start({
				'height': 0,
				'opacity': 0
			}).chain(function(){
				$('evaluation_div').setStyle('display', 'none');
  		});
		}
	}
	
	// Wert fuer Inputfeld Tarifeingaben berechnen (quadratisch)
	function updateSliderValue(input,position,max,step,width){
		var actVal = Math.round(position*position /(width*width/(max/step)))*step;
	document.getElementById(input).value=actVal;
	}
