/* ie hover */
function ieHover() {
	hoverForIE6(".search-form fieldset, #nav li, .search-form .submit", "hover");
}
/* clear inputs */
function initPage()
{
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		mousedownClassFocus: "mousedown",
		filterClass: "default"
	});
}
function clearFormFields(o)
{
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filter) o.filter = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass)) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(this.value != "") {
						if(this.parentNode.className.indexOf('parent-notempty')== -1 ) {
							this.parentNode.className += " parent-notempty";
						}
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
						this.parentNode.className = this.parentNode.className.replace("parent-notempty", '');
					}
					else {
						if(this.parentNode.className.indexOf('parent-notempty')== -1 ) {
							this.parentNode.className += " parent-notempty";
						}
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				inputs[i].onkeyup = function(){
					if(this.parentNode.className.indexOf('parent-notempty')== -1 ) {
						this.parentNode.className += " parent-notempty";
					}
				}
				inputs[i].onmousedown = function() {
					if(this.className.indexOf(o.mousedownClassFocus) == -1){
						this.className += " "+o.mousedownClassFocus
						this.parentNode.className += " parent-"+o.mousedownClassFocus;
					};
				}
				inputs[i].onmouseup = function() {
					if(this.className.indexOf(o.mousedownClassFocus) != -1){
						this.className = this.className.replace(o.mousedownClassFocus, '');
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.mousedownClassFocus, '');
					};
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
			if(inputs[i].type == "submit"){
				inputs[i].onmousedown = function() {
					if(this.className.indexOf(o.mousedownClassFocus) == -1){
						this.className += " submit-"+o.mousedownClassFocus
					};
				}
				inputs[i].onmouseup = function() {
					if(this.className.indexOf(o.mousedownClassFocus) != -1){
						this.className = this.className.replace('submit-'+o.mousedownClassFocus, '');
					};
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass)) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
}
if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 u=k(){9 g=/^([^#.>`]*)(#|\\.|\\>|\\`)(.+)$/;k u(a,b){9 c=a.J(/\\s*\\,\\s*/);9 d=[];n(9 i=0;i<c.l;i++){d=d.v(o(c[i],b))};6 d};k o(a,b,c){a=a.z(" ","`");9 d=a.r(g);9 e,5,m,7,i,h;9 f=[];4(d==8){d=[a,a]};4(d[1]==""){d[1]="*"};4(c==8){c="`"};4(b==8){b=E};K(d[2]){w"#":7=d[3].r(g);4(7==8){7=[8,d[3]]};e=E.L(7[1]);4(e==8||(d[1]!="*"&&!x(e,d[1]))){6 f};4(7.l==2){f.A(e);6 f};6 o(7[3],e,7[2]);w".":4(c!=">"){5=p(b,d[1])}y{5=b.B};n(i=0,h=5.l;i<h;i++){e=5[i];4(e.C!=1){q};7=d[3].r(g);4(7!=8){4(e.j==8||e.j.r("(\\\\s|^)"+7[1]+"(\\\\s|$)")==8){q};m=o(7[3],e,7[2]);f=f.v(m)}y 4(e.j!=8&&e.j.r("(\\\\s|^)"+d[3]+"(\\\\s|$)")!=8){f.A(e)}};6 f;w">":4(c!=">"){5=p(b,d[1])}y{5=b.B};n(i=0,h=5.l;i<h;i++){e=5[i];4(e.C!=1){q};4(!x(e,d[1])){q};m=o(d[3],e,">");f=f.v(m)};6 f;w"`":5=p(b,d[1]);n(i=0,h=5.l;i<h;i++){e=5[i];m=o(d[3],e,"`");f=f.v(m)};6 f;M:4(c!=">"){5=p(b,d[1])}y{5=b.B};n(i=0,h=5.l;i<h;i++){e=5[i];4(e.C!=1){q};4(!x(e,d[1])){q};f.A(e)};6 f}};k p(a,b){4(b=="*"&&a.F!=8){6 a.F};6 a.p(b)};k x(a,b){4(b=="*"){6 N};6 a.O.G().z("P:","")==b.G()};6 u}();k Q(a,b){9 c=u(a);n(9 i=0;i<c.l;i++){c[i].R=k(){4(t.j.H(b)==-1){t.j+=" "+b}};c[i].S=k(){4(t.j.H(b)!=-1){t.j=t.j.z(b,"")}}}}4(D.I&&!D.T){D.I("U",V)}',58,58,'||||if|listNodes|return|subselector|null|var||||||||limit||className|function|length|listSubNodes|for|doParse|getElementsByTagName|continue|match||this|parseSelector|concat|case|matchNodeNames|else|replace|push|childNodes|nodeType|window|document|all|toLowerCase|indexOf|attachEvent|split|switch|getElementById|default|true|nodeName|html|hoverForIE6|onmouseover|onmouseout|opera|onload|ieHover'.split('|'),0,{}))
/* scale image */
var view;
function initResize() {
	view = document.getElementById("bg");
	if(view) {
		view.width = view.clientWidth;
		view.height = view.clientHeight;
		initBg();
		setTimeout("initBg()", 10);
	}
}
function initBg() {
	var w = document.documentElement.offsetWidth;
	var h = document.documentElement.offsetHeight;
	var pr = view.width/view.height;
	var spr = w/h;
	
	if(spr > pr) {
		view.style.width = w + "px";
		view.style.height = w/pr + "px";
		view.style.left = 0 + "px";
		view.style.top = h/2-view.height/2 + "px";
		view.width = w;
		view.height = w/pr;
	}
	else {
		view.style.height = h + "px";
		view.style.width = h*pr + "px";
		view.style.top = 0 + "px";
		view.style.left = w/2-view.width/2 + "px";
		view.height = h;
		view.width = h*pr;
	}
}
if (window.addEventListener) {
	window.addEventListener("load", initResize, false);
	window.addEventListener("resize", initResize, false);
}
else if (window.attachEvent) {
	window.attachEvent("onload", initResize);
	window.attachEvent("onresize", initResize);
}

/* FOLDOUT */
    //-vertical

var readmore = Class.create({
    initialize: function(options) {
    	this.options = Object.extend({
    		'elementSelector':		'.toggler',
    		'upEvent':				'mouseup'
    	},options || {});
    	var elements = 0;
    	$$(this.options.elementSelector).each(function(element){
    		Event.observe(element, this.options.upEvent, this.onUp.bindAsEventListener(this,element));
    		var hides = 'cReadMore' + element.href.split("readmore",2)[1];
    		$(hides).hide();
    		elements++;
    	},this);
    	
    },
    onUp: function(event,element) { 
        Event.stop(event);
        var ref = 'cReadMore' + element.href.split("readmore",2)[1];
    	Effect.toggle(ref, 'blind',  { delay: 0.2, duration: 0.5, queue: { position: 'end', scope: 'main-block', limit: 1 } }); 
    }
});

/* TABS */

var tabObserver = Class.create({
	initialize: function(options) {
		this.options = Object.extend({
			'elementSelector':		'',
			'groupSelector':		'',
			'groupHeading':			'',
			'headingPlacement':		'before',
			'tabClass':				'',
			'tabSelector':			'',
			'className':			'hover',
			'clickEvent':			'click',
			'startEvent':			'mouseenter',
			'stopEvent':			'mouseleave',
			'downEvent':			'mousedown',
			'upEvent':				'mouseup',
			'firstTab':				''
		},options || {});
	},
	addGroup: function(group,heading,placement,className) {
		var tabs = '';
		if (this.options.groupSelector != group) {
		
			// select visible tab
			var hashes = location.hash;
			var strHash = hashes.slice(1);
			
			var strTabName = '#'+group+' li[rel="tab_'+strHash+'"]';
			var tabArray = $$(strTabName).toArray();
			var strTabDiv = $('tab_'+strHash+'');
			
			var strAnchor = 'a[name="anchor_'+strHash+'"]';
			
			var target = $$(strAnchor).toArray();
			if (target.size() > 0) {this.options.firstTab = target[0].getOffsetParent();}
			
			// set class to choose dom elements for tablist
			this.options.elementSelector = '.'+group;
			// set name for group of elements to avoid duplicates
			this.options.groupSelector = group;
			
			if (className != '' && className != undefined) this.options.tabClass = 'tablist_'+className;
			if (heading != '' && heading != undefined) this.options.groupHeading = '<span class="tabHead">' + heading + '</span>';
			if (placement != '' && placement != undefined) this.options.headingPlacement = placement;
			this.options.tabSelector = '.tab_'+this.options.groupSelector;
			$$(this.options.elementSelector).each(function(element,index){
				(index == 0)? tabs = tabs + '<li class="tab_'+this.options.groupSelector+' click" rel="' + element.readAttribute('id') + '">' + element.readAttribute('rel') + '</li>':tabs = tabs + '<li class="tab_'+this.options.groupSelector+'" rel="' + element.readAttribute('id') + '">' + element.readAttribute('rel') + '</li>';
			},this);
			$$(this.options.elementSelector).each(function(element,index){
				if ($$(this.options.elementSelector).size() > 1) {
					if (index == 0) {
						if (this.options.headingPlacement == 'before') {
							/*element.insert({
							  before: this.options.groupHeading + '<ul class="tablist '+this.options.tabClass+'" id="'+this.options.groupSelector+'">'+tabs+'</ul>'
							});*/
							$$(this.options.tabSelector)[0].addClassName('click');
							$$(this.options.tabSelector).each(function(element){
								Event.observe(element, this.options.startEvent, this.onStart.bindAsEventListener(this,element));
								Event.observe(element, this.options.stopEvent, this.onStop.bindAsEventListener(this,element));
								Event.observe(element, this.options.downEvent, this.onDown.bindAsEventListener(this,element));
								Event.observe(element, this.options.upEvent, this.onUp.bindAsEventListener(this,element));
							},this);
						}
						element.show();
					}
					if (index == $$(this.options.elementSelector).size()-1) {
						if (this.options.headingPlacement == 'after') {
							/*element.insert({
							  after: this.options.groupHeading + '<ul class="tablist '+this.options.tabClass+'" id="'+this.options.groupSelector+'">'+tabs+'</ul>'
							});*/
						$$(this.options.tabSelector).each(function(element){
							Event.observe(element, this.options.startEvent, this.onStart.bindAsEventListener(this,element));
							Event.observe(element, this.options.stopEvent, this.onStop.bindAsEventListener(this,element));
							Event.observe(element, this.options.downEvent, this.onDown.bindAsEventListener(this,element));
							Event.observe(element, this.options.upEvent, this.onUp.bindAsEventListener(this,element));
						},this);
						}
					}
				} else {
					element.show();
				}
			},this);
			// Set Anchor-selected tab
			if ($$(strTabName).toArray().size() > 0) {
				$$('#'+group+' li').invoke('removeClassName',this.options.clickEvent);
				$$('div.tabelement.'+group).invoke('hide');
				strTabDiv.show();
				$$('#'+group+' li[rel="tab_'+strHash+'"]').invoke('addClassName',this.options.clickEvent);
				document.fire('custom:contentrefreshed');
			}
		}
	
	},
	onStart: function(event,element) { element.addClassName(this.options.className); },
	onDown: function(event,element) { element.addClassName(this.options.clickEvent); },
	onUp: function(event,element) {
		$$(this.options.tabSelector).each(function(element){
			element.removeClassName(this.options.clickEvent); 
		},this);
		$$(this.options.elementSelector).invoke('hide');
		
		var targetdiv = element.readAttribute('rel');
		$(targetdiv).show();
		element.addClassName(this.options.clickEvent);
	},
	onStop: function(event,element) { element.removeClassName(this.options.className); }
});

function toggMega() {
    $('dropmenu').hide();
    $('dropdown').observe('mouseenter', function(event) {
         (function(){
            $('dropmenu').removeClassName('closed').addClassName('on');
            megaToggle.delay(0.5,'appear');
         }).defer();
    });
    $('dropdown').observe('mouseleave', function(event) {
        (function(){
            if ($('dropmenu').hasClassName('on')) {
                $('dropmenu').removeClassName('on');
                megaToggle.delay(0.5,'fade');
             }
         }).defer();
    });
    $('dropdown').observe('click', function(event) {
        switch($('dropmenu').hasClassName('on'))
        {
        case true:
            (function(){
                $('dropmenu').removeClassName('on');
                megaToggle.delay(0.5,'fade');
            }).defer();
            break;
        default:
          (function(){
                $('dropmenu').addClassName('on');
                megaToggle.delay(0.5,'appear');
            }).defer();
        }
        
    });
}
function megaToggle(dothis) { 
    if ($('dropmenu').hasClassName('on') == false && dothis == 'fade') {
        Effect.Fade('dropmenu',  { delay: 0.01, duration: 0.2, queue: { position: 'end', scope: 'dropdown', limit: 2 }}); 
    }
    if ($('dropmenu').hasClassName('on') && dothis == 'appear') {
        Effect.Appear('dropmenu',  { delay: 0.01, duration: 0.2, queue: { position: 'end', scope: 'dropdown', limit: 2 }}); 
    }
}


document.observe("dom:loaded", function() { 
    var readfolder = new readmore();

    // Observe tabs
        var defaultgroup = new tabObserver();
        defaultgroup.addGroup('defaultgroup','','before','');
        
    // Megamenu
    if ($$('dropmenu').size() > 0) toggMega();
          
});



