var toggleAllButtonInserted = false;
var allToggls = [];
var isAllOpen = false;

var currentNavi;

window.addEvent('domready', function() {
		initCategoriesLayer();		
		makeToggle("btnLanguage", "boxLanguage");
		setMainTeaserBg();
});	

function initCategoriesLayer() {	
	var a = $$("#product > div > a");
	
	a[0].href = "#";
	a[0].onmouseout = "#";
	a[0].onmouseover = "#";
	
	$("productWrapper").fade('hide');	
	$("productWrapper").setStyle("display", "block");
	
	a[0].addEvent('click', function(e) {	
								
								if ($("productWrapper").get("opacity")) {
									closeProductLayer();
								} else {								
									if ($('homeAct')) {
										currentNavi = $('homeAct');
										currentNavi.set('id', 'home');
									} else {
										$$('#myElement a.myClass');
										currentNavi = $$('#navi li.active')[0];
									}
									
									$$("#navi ul li").set('class', '');									
									$("product").set('class', 'active');									
									openProductLayer();
								}								

								return false;
								
							});
}

function openProductLayer() {	
	if(Browser.Engine.trident) {
		//$("productWrapper").setStyle("display", "block");
		$("productWrapper").setStyle("visibility", "visible");
		
		$("productLayer").set("class","noShadow");	
		$("productLayerBottom").set("class","noShadow");	
		$("productWrapper").get('tween', {property: 'opacity', duration: 500, onComplete: function(e) {$("productLayer").set("class","shadow"); 
																									   $("productLayerBottom").set("class","productLayerBottomShadow");	
																									   }} ).start(1);		

	} else {
		$("productWrapper").fade("toggle");
	}
}

function closeProductLayer() {
	if(Browser.Engine.trident) {
		$("productLayer").set("class","noShadow");
		$("productLayerBottom").set("class","noShadow");	
		$("productWrapper").get('tween', {property: 'opacity', duration: 500} ).start(0);		
	} else {
		$("productWrapper").fade("toggle");
	}
		
	$("product").erase('class');		
	
	if (currentNavi) {
		if (currentNavi.get("id") == "home") {
			currentNavi.set('id', 'homeAct');	
		} else {
			currentNavi.set('class', 'active');		
		}
	}
	
	return false;
}


function makeToggle(btnId, tmpEvent) {			

	/*
	toggleAll.set('text', 'Alle öffnen');
	if (!toggleAllButtonInserted) {		
		var div = $(btnId).getParent().getParent();
		toggleAll.injectBefore(div);
		toggleAllButtonInserted = true;
	}	
	*/
	
	var sliderObj = new Fx.Slide(tmpEvent, {duration: 400});	
	sliderObj.hide();

	$(btnId).addEvent('click', function(e){
		e = new Event(e);
		sliderObj.toggle();
		e.stop();
		
		var btnBarPager = $$('#mainTeaser > .slider > .btnBarPager');
		if (btnBarPager) {
			var pos = sliderObj.open ? 420 : 460;
			btnBarPager.set('tween', {duration: 400});
			btnBarPager.tween('top', pos);
		}
		
		var productWrapper = $("productWrapper");
		if (productWrapper) {
			var pos = sliderObj.open ? 100 : 100 + $(tmpEvent).getSize().y;
			productWrapper.set('tween', {duration: 400});
			productWrapper.tween('top', pos);
		}
		
		var menus = $$("div");
		menus.each(function(el) {
			if (el.get("id") && el.get("id").indexOf("Menu") != -1) {
				var pos = sliderObj.open ? 0 : $(tmpEvent).getSize().y;
				el.getFirst().setStyle("marginTop", pos + "px");
			}

		});
	});
	
	$("closeCountry").addEvent('click', function(e){
		e = new Event(e);
		sliderObj.toggle();
		e.stop();
		
		var btnBarPager = $$('#mainTeaser > .slider > .btnBarPager');
		if (btnBarPager) {
			var pos = sliderObj.open ? 420 : 460;
			btnBarPager.set('tween', {duration: 400});
			btnBarPager.tween('top', pos);
		}
		
		var productWrapper = $("productWrapper");
		if (productWrapper) {
			var pos = sliderObj.open ? 100 : 100 + $(tmpEvent).getSize().y;
			productWrapper.set('tween', {duration: 400});
			productWrapper.tween('top', pos);
		}
		
		var menus = $$("div");
		menus.each(function(el) {
			if (el.get("id") && el.get("id").indexOf("Menu") != -1) {
				var pos = sliderObj.open ? 0 : $(tmpEvent).getSize().y;
				el.getFirst().setStyle("marginTop", pos + "px");
			}

		});
	});

}


/**
* ajax functions
*/
var ajaxLink;
function ajaxRequest(element) {
	$("stuffToLoad").fade(0.2);
	
	ajaxLoader.show('Loading');
	ajaxLink = element;	
}


var ajaxLoader = {
    init: function(){
        this.panel = new Element('div', {'id': 'ajaxLoading_panel','styles': {'border': '0px solid #dbdbdb','display': 'none','position':'absolute','z-index':'9999999999999','text-align':'center','margin-top':'0px','margin-left': '251px','width': '481px','opacity': '0'}}).inject($("columnMiddle"),'before');
        this.panel.set('tween', {duration: 'long'});
        this.content = new Element('div', {'styles': {'vertical-align': 'middle'}}).inject(this.panel);
        this.header = new Element('div', {'id': 'ajaxLoading_header','styles': {'white-space': 'nowrap','padding': '5px 0 0 0','color': '#666','font-size':'10px','font-family': 'arial'}}).inject(this.content);
        this.body = new Element('div', {'id': 'ajaxLoading_body','styles': {'padding': '0 0 5px 0'}}).inject(this.header, 'after');
        this.loadingimg = new Element('img', {'src': 'fileadmin/img/ajax-loader.gif'}).inject(this.body);
        
		/*
		this.overlay = new Element('div', {'id': 'ajaxLoading_wrapper','styles':{'position':'absolute','left':'0','width': Window.getWidth()+'px','height': Window.getHeight()+'px','display': 'none','z-index':'9999999999998'}}).wraps(this.panel);
		*/
        this.eventPosition = this.position.bind(this);
    },
    show: function(msg){
		window.scroll(0,0);
        this.position();
        this.setup(true);
        //this.overlay.setStyles({'display': 'block'});
       // this.overlay.tween('opacity', [0,1]);
        this.panel.setStyles({'display': ''});
        this.panel.tween('opacity', [0,1]);
        this.header.set('text', msg);
    },
    position: function(){
       // this.overlay.setStyles({top: window.getScrollTop()+'px'});
    },
    setup: function(open){
        /*
		var toggleThese = $A($$('object'));
        toggleThese.extend($$(window.ActiveXObject ? 'select' : 'embed'));
        toggleThese.each(function(el){el.style.visibility = open ? 'hidden' : '';});
		*/
        var fn = open ? 'addEvent' : 'removeEvent';
        window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
    },
    hide: function(){
        this.setup(false);
        this.panel.tween('opacity', 0);
        this.panel.setStyles({'display': 'none'});
        this.header.set('text', '');
        this.body.set('html', '<img src="fileadmin/img/ajax-loader.gif">');
        //this.overlay.tween('opacity', [0]);
       // this.overlay.setStyles({'display': 'none'});
    }   
};


function ajaxResponseComplete() {
	$("stuffToLoad").fade(1);
	ajaxLoader.hide();
	setLinkClass(ajaxLink); // see functions.js		
}

/**
* ajax link class update
*/
function setLinkClass(element) {
	var ele = $(element);
	var li = ele.getParent();
	var lis = $$('#subnaviWrapper li');
	lis.each(function(el) {
		el.removeProperty("id");
	});	
	
	li.set("id", "active");

	// breadcrumb
	var brlis = $$("#breadcrumb li");
	brlis[brlis.length - 1].set('text', " > " + ele.get('text'));
}
// end ajax functions

function setItemClass() {
	window.addEvent('domready', function() {
		$$('.news-list-item')[0].set('class', 'news-list-item first');
	});
}

/**
* tt_news pagebrowser
*/
function setPageBrowserClass() {
	window.addEvent('domready', function() {
		var pageLinks = $$('.news-list-browse > span > a');
		var total = pageLinks.length;
		
		if (pageLinks[0].get("html") == ".") {
			pageLinks[0].set('id', 'btnLeft');
			pageLinks[1].set('class', 'pagerNumberFirst');
		} else {
			pageLinks[0].set('class', 'pagerNumberFirst pagerNumberActive');
		}
		
		if (pageLinks[total - 1].get("html") == ".") {
			pageLinks[total - 1].set('id', 'btnRight');
			pageLinks[total - 2].set('class', 'pagerNumberLast');
		} else {
			pageLinks[total - 1].set('class', 'pagerNumberLast pagerNumberActive pagerMargin');
		}		

	});
}

var perPage;
var currentPage = 0;
function createPager(total, _perPage) {
	window.addEvent('domready', function() {
		perPage = _perPage;
		
		if (total <= _perPage) return;
		
		var container = $$('.news-list-browse');
		
		var a = new Element('a', {'href': '#', 'id': 'btnLeft'});
		a.addEvent('click', function(e) {
			paging(currentPage - 1);
			return false;			
			});	
		a.setStyle('display', 'none');
		a.inject(container[0]);
			
		for (i = 0; i < Math.ceil(total / perPage); i++) {
			
			var a = new Element('a', {'href':  'javascript:paging(' + (i) + ')', 'html': i + 1});
				
			if (i == 0) {
				a.set('class', 'pagerNumberFirst pagerNumberActive');
			}
			if (i == Math.ceil(total / perPage) - 1) {
				a.set('class', 'pagerNumberLast');
			}			
			
			a.inject(container[0]);	
		}
		
		var a = new Element('a', {'href': '#', 'id': 'btnRight'});
		a.addEvent('click', function(e) {
			paging(currentPage + 1);
			return false;			
			});	
		a.inject(container[0]);	

	});
	
}

function paging(page) {
	currentPage = page;
	
	var news = $$('.news-list-item');
	var id = 0;
	
	if (page > 0) {
		$('btnLeft').setStyle('display', 'block');
	} else  {
		$('btnLeft').setStyle('display', 'none');
	}
	
	if (page * perPage + perPage >= news.length) {
		$('btnRight').setStyle('display', 'none');
	} else  {
		$('btnRight').setStyle('display', 'block');
	}	
	
	var isFirst = true;
	news.each(function(el){		
		if (id < page * perPage || id >= page * perPage + perPage) {
			el.setStyle('display', 'none');	
		} else {
			el.setStyle('display', 'block');
			if (isFirst) {
				el.set('class', 'news-list-item first');
				isFirst = false;	
			}
		}
			
		id++;
	});
	
	var pageLinks = $$('.news-list-browse > a');
	var pageLinksTotal = pageLinks.length;
	var linkId = 0;
	pageLinks.each(function(el){
		if (el.get("id") != "btnLeft" && el.get("id") != "btnRight") {
			var _class = '';
			
			if (linkId == 0) {
				_class = 'pagerNumberFirst';	
			} else if (linkId == pageLinksTotal - 3) {
				_class = 'pagerNumberLast';	
			} 
			
			if (linkId == page) {
				_class += " pagerNumberActive";
			}
						
			el.set('class', _class);	
			
			linkId++;		
		}
		
	})
		
}
// end tt_news pagebrowser


var currentLabel;
function filterSubCategory(_duration) {	
	if (typeof(_duration) == "undefined") _duration = 500;
	
	if ($('showAll')) $('showAll').setStyle("display","none");
	
	var la = $$('#subCategory label');

	if (la.length) {
		var p = $$('.product div');
		var filter = [];
			
		la.each(function(el){
			if ($(el.get("for")).checked) {
				el.set('class', 'checked');
				filter.push("p_" + el.get("for"));
			} else {
				el.erase('class');
			}
		});	
		
		p.each(function(el){
			if (el.get("id")) {
				if (filter.indexOf(el.get("id")) != -1) {
					if (el.get("opacity") == 0)	el.get('tween', {property: 'opacity', duration: _duration, onStart: function(e) {e.setStyle("display","block")}} ).start(0,1);		  
				} else {
					el.get('tween', {property: 'opacity', duration: _duration, onComplete: function(e) {e.setStyle("display","none")}} ).start(0);
				}
			}
		});
		
		// only 1 is required
		if (filter.length == 1) {
			la.each(function(el){
				var input = $(el.get("for"));		 
				if (input.checked) {
					currentLabel = el;
					input.set("disabled","true");
					el.set('class', 'disabled');
				} 
			});	
		} else if (currentLabel)  {
			$(currentLabel.get("for")).erase("disabled");
			currentLabel.set('class', 'checked');
		}
		
		if (la.length != filter.length) $('showAll').setStyle("display","block");
		
	}
	
}

function showAll() {
	var la = $$('#subCategory label');
	la.each(function(el){
		$(el.get("for")).checked = true;
		el.set('class', 'checked');
	});
	
	filterSubCategory();
	return false;
}

var currentView = "overview";
function initProductDetailLayer() {	
	// change subnavi links href
	var li = $$("#subnaviWrapper li");
	var a = $$("#subnaviWrapper a");
		
	a.each(function(el){el.href="void(0);";});
	
	$("productSpecs").fade("hide");
	
	a.addEvent('click', function(e) {		
		
		if (!this.getParent().get('class')) {
			
			li.each(function(el){el.erase("class");});		
			this.getParent().set('class', 'active');
			
			if (currentView == "overview") {
				$("productDescription").get('tween', {property: 'opacity', duration: 250, onComplete: function(e) {
																											   $("productSpecs").get('tween', {property: 'opacity', duration: 250, onStart: function(e) {e.setStyle("display","block")}} ).start(0,1);
																											   e.setStyle("display","none")}} ).start(0);
				$("images").setStyle('display','none');
				$("specsImage").setStyle('display','block');
				
				//brlis[brlis.length - 1].set('text', ' > Specifications');
				currentView = "specs";
			} else {
				$("productSpecs").get('tween', {property: 'opacity', duration: 250, onComplete: function(e) {
																											   $("productDescription").get('tween', {property: 'opacity', duration: 250, onStart: function(e) {e.setStyle("display","block")}} ).start(0,1);
																											   e.setStyle("display","none")}} ).start(0);
				$("specsImage").setStyle('display','none');
				$("images").setStyle('display','block');
				
				//brlis[brlis.length - 1].set('text', ' > Overview');
				currentView = "overview";
			}
		}
		return false;
		
	});
	
	// inject mainTeaser
	//var mt = $("mainTeaser");
	
	var br = $("breadcrumb");
	$("productHeader").inject(br, 'after');

	$("productRightColumn").inject($("columnRight"));
	
	var brlis = $$("#breadcrumb li");
}

function hideProductDetailLayer(s) {
	$("productName").setStyle('display','none');
	$("subnaviWrapper").setStyle('display','none');
	$("columnMiddle").setStyle('display','none');
	$("content3Columns").setStyle('background','none');
	$("content3Columns").set('text', s);
}

function breadcrumb() {
	var br = $("breadcrumb");
	
	// breadcrumb
	var pbr = $$("#productBreadcrumb  li");

	var lis = br.getChildren();
	pbr.inject(lis[0], 'after');
	
	var brlis = $$("#breadcrumb li");
	
	currentNavi = $$('#navi li.active')[0];
	var brProductLink = brlis[0].getChildren()[1];

	brProductLink.href = "#";
	brProductLink.addEvent('click', function(e) {openProductLayer(); return false});
}

function breadcrumbProduct(s) {
	var br = $("breadcrumb");
	if (s) {
		var lis = br.getChildren();
		var li = new Element('li', {'html': ' > ' + s});
		li.inject(lis[lis.length-1], 'after');
	}
}

function setCategoryHeader() {
	var br = $("breadcrumb");
	$("categoryHeader").inject(br, 'after');
}

/**
* get highest div and resize all to this
*/
function setProductDivHeight() {	
	var p = $$('.product div.pItemWrapper');
	var highest = 0;
	p.each(function(el){
		if (el.getSize().y > highest) highest = el.getSize().y;
	});
	
	p.each(function(el){
		el.setStyle('height', highest + 'px');
	});

}


var currentThumb = "thumb_0";
function swapImage(src, id) {
	$(currentThumb).set("class", "photo");
	$(id).set("class", "photoActive");
	currentThumb = id;
	$('photo').src = src;	
}

function setMainTeaserBg() {
	var imgs = $$("#bgImage img");
	
	if (imgs[0]) {
		imgs[0].setStyle("display","none");
		$("bgImage").setStyles({
			background: 'url("'+imgs[0].src+'")',
			backgroundPosition: '50% 0',
			backgroundRepeat: 'no-repeat',
			height: imgs[0].height+'px'
		});
	}
}

function searchAction(e) {
	if (e.page.value == 2) {
		e.action = e.searchProductUrl.value;
	}
	
	if (e.elements["tx_indexedsearch[sword]"].value == "") {
	  return false;	
	}
	
	return true;
}

function domSearchResult() {
	var sf = $$('.tx-indexedsearch-searchbox')[0];
	var headline = $$('.tx-indexedsearch-whatis')[0];
	
	if (headline) sf.inject(headline, 'after');
	
	
	var input = $('tx-indexedsearch-searchbox-sword');
	$('selectpage').clone().inject(input,'after');
	$('searchProductUrl').clone().inject(input,'after');
	
	var noresult = $$('.tx-indexedsearch-noresults')[0];
	if (noresult) {
		noresult.inject(headline, 'after');	
	}
	
	var browse = $$('.tx-indexedsearch-browsebox')[0];
	if (browse) {
		var p = browse.getFirst();
		var ul = browse.getLast();
		p.inject(ul, 'after');
		browse.inject(headline, 'after');	
	}
	
	
	var browsebox = $$('.browsebox');
	if (browsebox.length > 0) {
		var lis = browsebox[0].getChildren().concat(browsebox[1].getChildren()); 
	
		lis.each(function(el){
					var a = el.getFirst();
					if (a.get("text") == ">") {
						a.set('id', 'btnRight');
					} else if(a.get("text") == "<") {
						a.set('id', 'btnLeft');
					}
				});
	} else if (p) {
		p.setStyle("margin-top", "66px");
	}
}

function changeSearchHeader(s, sword) {
	var headline = $$('.tx-indexedsearch-whatis')[0];
	headline.set("text", s + ' "' + sword + '"');
}





