var dragger;
var miete = false;
var map;

function schieber() {
	var pos = map.getCenter();
	map.panTo(new GLatLng(map.getCenter().y,map.getCenter().x+0.000013));
}
var rules = {
	'#geomap' : function(el) {
		map = new GMap2(el);
		if (map) {
			map.setCenter(new GLatLng( 53.559,10.0),17);
			map.setMapType(G_SATELLITE_MAP );
			new PeriodicalExecuter(schieber,1);
		}
	},
	'.iframe' : function(el) {
		var p;
		$w(el.className).each(function(el){ 
			var maske = /\{(.*?)\}/;
			var res = maske.exec(el);
			if (res!=null) p = res[0];
		});
		var params = eval('(' + p + ')');
		var width  = params.width;
		if (!width) width = '100%';
		var iframe = document.createElement("iframe");
    		iframe.setAttribute('width',width);
    		iframe.style.marginTop='1em';
    		iframe.setAttribute('height',params.height);
    		iframe.setAttribute('frameborder','0');
    		iframe.setAttribute('src',el.getAttribute('href'));
    		el.parentNode.replaceChild(iframe,el);
	},
	'#cur' : function(el) {
		var head = $('head');
		head.innerHTML = el.firstChild.innerHTML
		var w = Element.getDimensions(head).width + 1;
		head.style.left = '-' + w + 'px';
		Element.setOpacity(head,0.6);
	},
	'.jumper' : function(el) {
		el.align='right';
		el.onchange = function() {
			var position = el.getAttribute('value');
			console.log(position);
			new Effect.ScrollTo(position);
		}
	},

	'#langmenu' : function(el) {
		var options = el.childNodes;
		var bar = '<select id="langmenu" onchange="self.location = $F(\'langmenu\')">';
		for (var i=0;i <options.length; i++) {
			var link = options[i].firstChild.href;
			var option;
			if (link)  option = '<option value="' + link + '">' + options[i].innerHTML + '</option>\n';
			else option = '<option selected="selected">' + options[i].firstChild.nodeValue +'</option>\n';
			bar  += option;
		} 
		bar += '</select>';
		el.parentNode.innerHTML=bar;
			;
	},
	'#sliderwrap' :  function(el) {
		el.onmouseover = function() {
			el.style.cursor='normal';
			dragger.destroy(); 
		},
		el.onmouseout = function() {
			el.style.cursor='pointer';
			 
		}
	},
	'#sofortkauf' : function(el) {
		el.style.cursor ='pointer';
		el.onclick = function() {
			miete = false;
			$('knob').style.left='0px';
			$('sofortkauf').style.color='#333';
			$('monatsmiete').style.color='silver';
			calcer();
		}
	},
	'#monatsmiete' : function(el) {
		el.style.cursor ='pointer';
		el.onclick = function() {
			miete = true;
			$('knob').style.left='53px';
			$('sofortkauf').style.color='silver';
			$('monatsmiete').style.color='#333';
			calcer();
		}
	},

	'#knob' :function(el) {
//		new Slider('sliderbg',el);
		new Draggable(el,{constraint:'horizontal',snap:[53,0],onEnd:function(p) {
			if (p.delta[0]==0) {
				$('sofortkauf').style.color='silver';
				$('monatsmiete').style.color='#333';
				miete = true;
					$('knob').style.left='53px';
		
				calcer();
				
			} else {
				$('sofortkauf').style.color='#333';
				$('monatsmiete').style.color='silver';
			    miete = false;
			$('knob').style.left='0px';
		
		calcer();
			}
			
		}});
	},
	'.box' : function(el) {
		Element.setOpacity(el,0.9);
	
	},
	'#menu div'  : function(el) {
		Element.setOpacity(el,0.7);
		
	},
	'.selfpano' : function(el) {
		var bg = el.getAttribute("title");
		var width = Element.getDimensions(el).width; 
		el.title='Panoramadekoration';
		el.style.backgroundImage =  'url('+bg+')';
		el.innerHTML='';
        new Panorama(el,{width:width,xpos:0});

    },  
    '.moreinfo' : function(el) {
		el.onclick = function() {
    		var more = el.parentNode.parentNode.firstChild.nextSibling;
    		Effect.Appear(more);
    	}
    },
	'#logoblack' : function(el) {
		Element.setOpacity(el,0.8);
		el.title = 'Zurück zum Start';
		el.onmouseover = function() {
			el.src= '/fileadmin/templates/img/logoblackani.gif';
		}
		el.onmouseout = function() {
			el.src= '/fileadmin/templates/img/logoblack.gif';
		}
		el.onclick = function() {
			self.location ='/';
		}
  	 },	
	   '.box' : function(el) {
	 		el.style.cursor='move';
	 		//dragger = new Draggable(el);
	 		Element.setOpacity(el,.92);
	   },
	   '#bg' : function(el) {
	   	  Element.setOpacity(el,0.99);
	   },
	   '#form5' : function(el) {
	   		el.onchange = calcer;
	   },
	   '.cb' : function(el) {
	   		el.onclick = function() {
	   			var elems = document.getElementsByName(el.getAttribute('name')); 
	   			for (var i=0;i<elems.length;i++) {
	   					elems[i].parentNode.firstChild.className=null;
	   					elems[i].parentNode.firstChild.style.color='#ccc'
	   			}
		   		var label = el.parentNode.firstChild;
		   		if (el.checked==true) {
	   				label.className='t3';
	   				label.style.color='#333';
	   				switch (el.id) {
	   					case 'layout0':  
	   						Element.hide('layout4row');
	   					break;
	   					case 'layout1' :
	   						Element.hide('layout4row');
	   					break;
	   					case 'layout2' :
	   						Element.hide('layout4row');
	   					break;	
	   					case 'layout3' :  
	   						$('layout4row').firstChild.style.color='#333';
	   						Effect.SlideDown('layout4row');
	   					break;
	   					case 'shop0':
	   						Effect.SlideDown('shop1row');
	   						Effect.SlideDown('shop2row');
	   						Effect.SlideDown('shop3row');
	   						Effect.SlideDown('shop4row');
	   						Effect.SlideDown('shop5row');

	   					break;	
	   					case 'form0':
	   						Effect.SlideDown('form1row');
	   						Effect.SlideDown('form2row');
	   						Effect.SlideDown('form3row');
	   						Effect.SlideDown('form4row');
	   						Effect.SlideDown('form5row');
	   						
	   					break;	
	   						case 'forum0':
	   						Effect.SlideDown('forum1row');
	   						Effect.SlideDown('forum2row');
	   						Effect.SlideDown('forum3row');
	   						Effect.SlideDown('forum4row');
	   						Effect.SlideDown('forum5row');
	   						Effect.SlideDown('forum6row');
	   			
	   			break;	
	   				    case 'lang1':
	   						Effect.SlideDown('lang2row');
	   						Effect.SlideDown('lang3row');
	   						Effect.SlideDown('lang4row');
	   						Effect.SlideDown('lang5row');
	   						Effect.SlideDown('lang6row');
	   					break;	

	   				}
	   			} else {
	   				label.className=null;
	   				label.style.color='#ccc';
	   				switch (el.id) {
	   					case 'shop0':
	   						Element.hide('shop1row');
	   						Element.hide('shop2row');
	   						Element.hide('shop3row');
	   						Element.hide('shop4row');
	   						Element.hide('shop5row');
	   				
	   				    break;
	   					case 'form0':
	   						Element.hide('form1row');
	   						Element.hide('form2row');
	   						Element.hide('form3row');
	   						Element.hide('form4row');
	   						Element.hide('form5row');
	   					break;
	   					case 'forum0':
	   						Element.hide('forum1row');
	   						Element.hide('forum2row');
	   						Element.hide('forum3row');
	   						Element.hide('forum4row');
	   						Element.hide('forum5row');
	   						Element.hide('forum6row');
	   						
	   					break;
					case 'lang1': 
	   						Element.hide('lang2row');
	   						Element.hide('lang3row');
	   						Element.hide('lang4row');
	   						Element.hide('lang5row');
	   						Element.hide('lang6row');
	   					
	   					break;
	   				}
	   			}
	   			calcer();
	   		}
	   		
	   },
	   '.swfplayer' : function(el) {
		el.style.cursor='pointer';
		el.title='Start des Bildschirmfilmes';
		var elem = el.parentNode.parentNode.previousSibling.childNodes[1].childNodes[1].childNodes[0];
		var id = Math.random(9999);
		elem.parentNode.id =  id;				
		if (dragger) dragger.destroy();
		var movie = el.getAttribute('alt');
		var width = elem.getAttribute('width');
		var height = elem.getAttribute('height');
				elem.parentNode.style.height =  height + 'px';
		
		el.onclick = function() {
				dragger.destroy();
				var flashvars = {};
				var params = {'stretching':'exactfit',"quality":"high","menu":"false","allowScriptAccess":"sameDomain","allowFullScreen":"false"};
				var attributes = {'stretching':'exactfit'};
				swfobject.embedSWF(movie, id,width, height,
		 		"9", "http://webmasterei.com/typo3/contrib/flashmedia/swfobject/expressInstall.swf", flashvars, params, attributes);

			

		}
	}
		
};


function Init() {
    Behaviour.register(rules);
    Behaviour.apply(rules); 
    calcer();

	setTimeout(calcWindow,7000);
	calcWindow();
}

//document.observe("dom:loaded",Init);
Event.observe(window, 'load', Init);
Event.observe(document, 'keypress', function(e){if(e.keyCode==Event.KEY_DOWN||e.keyCode==Event.KEY_RIGHT||e.keyCode==Event.KEY_PAGEDOWN) Event.stop(e);});

var calcer = function() {
	if  ($$('.cb').length ==0) return;
	$('kosten').style.marginTop='-15px';
	Element.show('kosten');
	var ids = ['cms0','cms1','layout0','layout1','layout2','layout3'];
	var e = 0;
	for (i=0;i<ids.length;i++) {
		e = e + c(ids[i]);
	}
	if ($('lang1').checked == true) {
		e = e + c('lang2');
		e = e + c('lang3');
		e = e + c('lang4');
		e = e + c('lang5');
		e = e + c('lang6');
	}
	if ($('shop0').checked == true) {
		e = e + c('shop0');
		e = e + c('shop1');
		e = e + c('shop2');
		e = e + c('shop3');
		e = e + c('shop4');
		e = e + c('shop5');

	}
	if ($('form0').checked == true) {
		e = e + c('form0');
		e = e + c('form1');
		e = e + c('form2');
		e = e + c('form3');
		e = e + c('form4');
		e = e + c('form5');
	}
	if ($('forum0').checked == true) {
		e = e + c('forum0');
	
		e = e + c('forum1');
		e = e + c('forum2');
		e = e + c('forum3');
		e = e + c('forum4');
		e = e + c('forum5');
		e = e + c('forum6');

	}
	e = e + c('ext1');
	e = e + c('ext2');
	e = e + c('ext4');
	e = e + c('ext5');
	e = e + c('ext6');
    if (miete) {
    	e = Math.round(e*0.063)+77;
    }
    $('kosten').hide();
    Effect.BlindDown('kosten',{duration:.2});
    var src = '/fileadmin/templates/kalkulator/genetikett.php?text='+ e;
    if (miete) src = src + '&monatsmiete=1';
    var style = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + src + '\',sizingMethod=\'scale\')'; 
    $('kosten').innerHTML = '<img style="' + style + '" src="' + src + '" alt="'+ e +'"/>';
    
}

var c = function(foo) {
		if ($(foo).type == 'select-one') return parseInt($F(foo)); 
    if (!$(foo) || $(foo).checked == false) return 0;
	return parseInt($F(foo)); 
}

var Panorama = Class.create();
Panorama.prototype = {
   initialize : function(elem,options) {
                this.elem = (typeof(elem)=='string')
                        ? $(elem) : elem;
                this.options = Object.extend({
                        interval : 0.05,
                        width    : 200,
                        xpos     : 0
                }, options || {})
                this.xpos  = 0;
                this.v     = 1;
                this.pe    = undefined;
                var dims = Element.getDimensions(this.elem);
                this.width = this.options.width;
                this.elem.style.cursor = 'pointer';
                this.elem.style.backgroundPosition = this.options.xpos+'px';
                Event.observe(this.elem,'mouseover', this.start.bind(this));
                Event.observe(this.elem,'mouseout', this.stop.bind(this));
        		this.elem.style.position =  'relative';
			  /*  this.panoico = document.createElement("img");
			    this.panoico.src = '/rainer/img/pano.gif';
				this.panoico.style.position = 'absolute';
				this.panoico.style.bottom = '5px';  
				this.panoico.style.right = '5px';
				
				this.panoico.src = '/rainer/img/pano.gif';
				this.elem.appendChild(this.panoico);
		*/
        },
        start: function() {
                if (!this.pe)  this.pe = new PeriodicalExecuter(this.cycle.bind(this), this.options.interval);
                this.elem.onmousemove = this.changespeed.bindAsEventListener(this);
        },
        stop: function() {
                this.v=0;

        },
        changespeed : function(e) {
                var x = Event.pointerX(e) - Position.cumulativeOffset(this.elem)[0]
                this.v = Math.round((this.width/2-x)/256);
                if (this.v>0) this.elem.style.cursor = 'w-resize';
                else this.elem.style.cursor = 'e-resize';
        },
        cycle: function() {
                this.xpos += Math.round((this.v));
                if (this.v != 0) 
                	this.elem.style.backgroundPosition = this.xpos + 'px 0px';
        }
};
function calcWindow() {
	var objBody = document.getElementsByTagName("body").item(0);
  	var h= window.innerHeight || self.innerHeight || document.body.clientHeight;
  	setTimeout('self.resize',1000);
	objBody.style.height= h+ 'px';
}


