//

window.addEvent('domready', function() {
	if(Browser.Platform.ipod) {$$('body').addClass('ipod');}
	
	// AT-Teaser
	if($('at-wrapper') !== null) {
		
		$('at-wrapper').fade('hide');
		$('at-wrapper').setStyle('display', 'block');
		
		$('at-Close').addEvent('click', function(){$('at-wrapper').fade('out');});
		$('at-teaser').addEvent('click', function(){$('at-wrapper').fade('in');});

	}
	
	// Frontpage Content verstecken
	$$('#homepage .teaser-content.hide').fade('hide');
	$$('#homepage .teaser-content.hide').removeClass('hide');
	
	// Sprachwechsel-Link mit # versehen
	if($$('#lang a').length > 0) {
		$$('#lang a')[0].addEvent('click', function() {
		var locHash = window.location.hash.substring(1);
		if(locHash && locHash != 'frontpage_ucd') {
			var link = $$('#lang a')[0];
			link.set('href', link.get('href') + '#' + locHash);
		}
	});	
	}
	
	if($('keywords') !== null) {
		$('keywords').addEvent('focus', function() {
		if(this.get('value') == 'Search')
			this.set('value', '');
	});
		$('keywords').addEvent('blur', function() {
		if(this.get('value').clean() == '')
			this.set('value', 'Search');
	});
	}
	
	if(current_page == 'index') {
		initFrontPageItems();	// Front Page Stage
		initNews();				// News Ticker
		initClientCarousel();	// Scrolling Client Logos
	} else if(current_page == 'subpage') {
		//initSectionNavAnim();
		animateSketch();
		styleTabs();
	}
	
	if($('case-studies') !== null)
		initCaseStudies();
	if($('case-study') !== null)
		initSingleCaseStudy();
		
	if($('testimonials') !== null)
		initClients();
	
	if($('shop') !== null)
		initShop();
		
	if($('shop_checkout') !== null)
		initShopCheckout();
	
	if($$('.block-customicons').length > 0) {initImageCarousel();}
		
		
	$$('.button-outer').each(function(el) {
		el.addEvent('mouseenter', function() {this.addClass('hover');});
		el.addEvent('mouseleave', function() {this.removeClass('hover');});
		el.addEvent('mousedown', function() {this.addClass('pressed');});
		el.addEvent('mouseup', function() {this.removeClass('pressed');});
	});
});

/* FRONT PAGE STAGE */

	var currentFrontPageItem = null;
	var autoSwitching = true;
	var teaserPictureSwitching = null;

	function switchFrontPageItem(item) {
		// Don't switch if the same item has been clicked
		if(item == currentFrontPageItem) return;
		currentFrontPageItem = item;
	
		var currentContent = $$('#homepage .teaser-content.current')[0];
		var nextContent = item;
		
		$$('#teaser-navigation td.current').removeClass('current');
		nextContent.nav.addClass('current');
		
		currentContent.fade('out');
		nextContent.fade('in');
		
		$$('#homepage .teaser-content.current').removeClass('current');
		nextContent.addClass('current');
	}
	function initFrontPageItems() {
		// Aktueller Anchor in Adresse
		var locHash = window.location.hash.substring(1);
		if(locHash && locHash != 'frontpage_ucd') {
			// Korrekten Inhalt anzeigen
			$$('#homepage .teaser-content.current').fade('hide').removeClass('current');
			$('el-' + locHash).fade('show').addClass('current');
			
			// Korrekte Navi
			$$('.teaser-entry.current').removeClass('current');
			$('nav-' + locHash).addClass('current');
		}		
		
		$$('#homepage .teaser-content').set('morph', {duration: 'normal'});
		$$('#homepage .teaser-content').each(function(el, i) { el.itemIndex = i; });
		
		$$('#teaser-navigation td div.teaser-entry-label').each(function(el, i) {
			var link = el.getFirst('a');
			el.item = $('el-' + link.get('href').substring(1));
			el.item.nav = el.getParent();
		
			el.addEvent('click', function(ev) {
				window.location.hash = '#' + this.item.get('id').substring(3);
				autoSwitching = false;
			
				switchFrontPageItem(this.item);

				$clear(teaserPictureSwitching);	// Aktuelles Switching anhalten
				teaserPictureSwitching = switchTeaserPictures.periodical(5000, null, [$$(this.item)[0]]);
			}.bind(el));
		});
		
		$$('#homepage .teaser-content .picture').set('tween', {duration: 'long'}).set('morph', {duration: 'long'});
		$$('#homepage .teaser-content .picture.hide').fade('hide').removeClass('hide');
		teaserPictureSwitching = switchTeaserPictures.periodical(4500, null, [$$('#homepage .teaser-content.current')[0]]);
	}
	function switchTeaserPictures(el) {
		pictures = el.getChildren('.picture');
		if(pictures.length == 1) return; // nur ein Bild, kein Switching
		
		currentIndex = 0;
		for(i = 0; i < pictures.length; i++) {
			if(pictures[i].hasClass('current'))
				currentIndex = i;
		}
		pictures[currentIndex].fade('out');
		//pictures[currentIndex].morph({	top: [0, -350]	});
		pictures[currentIndex].removeClass('current');
		var nextIndex = (currentIndex + 1 == pictures.length) ? 0 : currentIndex + 1;
		pictures[nextIndex].fade('in');
		//pictures[nextIndex].morph({		top: [350, 0]	});
		pictures[nextIndex].addClass('current');
	}
	
	var newsRotation = 0;
	var nextNewsItem = function() {
		var item = $$('.news-item.current');
		item.fade('out').removeClass('current');
		var next = item.getNext('.news-item');
		if(next.length == 0 || next[0] == null) {
			next = $$('.news-item');
			next = next[0];
		}
		var fadeIn = function() {
			this.fade('in');
			this.addClass('current');	
		}.bind(next);
		fadeIn.delay(1200);
	};
	function initNews() {
		var items = $$('.news-item');
		items.set('tween', {duration: 1200});
		items.fade('hide');
		items[0].fade('in').addClass('current');
		newsRotation = nextNewsItem.periodical(5000);
		
		$('news').addEvent('mouseenter', function() {
			$clear(newsRotation);
			newsRotation = 0;
		});
		$('news').addEvent('mouseleave', function() {
			if(newsRotation == 0) {
				newsRotation = nextNewsItem.periodical(5000);
			}
		});
	}
	
	var clientRibbonWidth = 1000;
	var repeater = null;
	function initClientCarousel() {
		repeater = $$('#client-ribbon table .client-logo-frontpage.repeat:first-child')[0];

		animateClientCarousel2.periodical(60);
	}
	var move = 0;
	function animateClientCarousel2() {
		move--;
		if(move < -clientRibbonWidth)
			move = 0;
		$('client-ribbon').setStyle('margin-left', move);

		/* Ab und zu den Grenzwert neu berechnen */
		if(move % 200 == 0)
			clientRibbonWidth = -move + repeater.getCoordinates().left - 30;
	}

/* ENDE FRONT PAGE STAGE*/

function styleTabs() {
	// all tab headers
	var tabs = $$('.block-tabs h2');

	// if there are no tabs, don't do anything
	if(tabs.length == 0) return;
	
	tabs.addClass('tab');
		
	var largestTabSize = 0;
	
	tabs[0].addClass('first');
	
	// cycle through all tabs and find content
	for(var i=0; i < tabs.length; i++) {
		var currentPos = tabs[i].getNext();
		var tabContainer = new Element('div', {'class': 'tab-container'});
		tabContainer.inject(currentPos, 'before');
		
		// cross-reference
		tabContainer.tab = tabs[i];
		tabs[i].tabContainer = tabContainer;
		if(i > 0) tabs[i].previousTab = tabs[i-1];
		
		var innerSpan = new Element('span');
		innerSpan.set('html', tabs[i].get('html'));
		tabs[i].set('html', '');
		innerSpan.inject(tabs[i]);
		
		// handle clicking of tabs
		tabs[i].addEvent('click', function() {
			$$('.tab-container').setStyle('display', 'none');
			$$('.tab.current').removeClass('current');
			this.tabContainer.setStyle('display', 'block');
			this.addClass('current');
			
			$$('.block-tabs h2.before-active').removeClass('before-active');
			if(!this.hasClass('first'))
				this.previousTab.addClass('before-active');
		});
		
		// collect tab content
		var next = currentPos;
		while (next !== null && !next.hasClass('tab') && !next.hasClass('block')) {
			var current = next;
			var next = next.getNext();
			
			current.inject(tabContainer);			
		}
		
		// detect largest tab container
		tabs[i].tabContainer = tabContainer;
		
		// set current tab and hide others
		if(i == 0) {tabs[i].addClass('current');}
	}
	
	// wrap all tabs into one container
	var allTabs = new Element('div', {'class': 'all-tabs'});
	allTabs.inject(tabs[0], 'before');
	tabs.inject(allTabs);
	
	// correct quote
	if($$('.block-tabs .quote').length > 0) {
		var quote = $$('.block-tabs .quote')[0];
		quote.inject(quote.getParent(), 'before');
	}
	
	var fixSize = function() {
		var tabBlocks = $$('.block-tabs');
		for(var i = 0; i < tabBlocks.length; i++) {
			var largestTabSize = 0;

			tabs = tabBlocks[i].getChildren('div.all-tabs')[0].getChildren('.tab');
			for(var k = 0; k < tabs.length; k++) {
				var tabsize = tabs[k].tabContainer.getSize().y;
				if(tabsize > largestTabSize) largestTabSize = tabsize;
				if(k > 0) tabs[k].tabContainer.setStyle('display', 'none');
			}

			// set fixed height for all tab containers to the height of the largest
			tabBlocks[i].getChildren('.tab-container').setStyle('height', largestTabSize + 'px');
		}
	};
	fixSize.delay(500);
}

function animateSketch() {
	var keyvisual = $$('#homepage .keyvisual .img');
	var sketch = $$('#homepage .keyvisual .sketch');
	
	keyvisual.fade('hide');
	sketch.fade('hide');
	keyvisual.set('tween', {duration: 2000});
	sketch.set('tween', {duration: 1500});
	sketch.fade('in');
	
	var fadeKeyvisual = function() {
		keyvisual.fade('in');
		sketch.fade('out');
	};
	
	fadeKeyvisual.delay(1500);	
	
}

function initSectionNavAnim() {
	$$('.section-nav li div').set('tween', {duration: 'short'});
	$$('.section-nav li div[class!=current]').addEvent('mouseenter', function() {
		this.tween('padding-left', 20);
	});
	$$('.section-nav li div[class!=current').addEvent('mouseleave', function() {
		this.tween('padding-left', 10);
	});
}

var hoverObject = null;
var tooltipTriggered = false;
function initCaseStudies() {
	$$('#case-studies .item .screen').fade('hide');
	$$('#case-studies .item-hover').fade('hide');
	
	$('tooltip').fade('hide');
	$$('#case-studies a').each(function(el) {
		el.client = el.get('title');
		el.set('title', '');
	});
	
	$$('#case-studies .item .screen').set('tween', {duration: 250});
	$$('#case-studies .item-hover').set('tween', {duration: 250});
	
	$$('#case-studies .item').addEvent('mouseenter', function() {
		/* PREVENT DOUBLE EXECUTION! */
		if(hoverObject != this) tooltipTriggered = false;
		
		hoverObject = this;
		this.getChildren('.item-hover').fade('in');
		this.getChildren('.screen').fade('in');
		
		/* PREVENT DOUBLE EXECUTION! */
		if(tooltipTriggered == false) {
			showTooltip.delay(750, this);
			tooltipTriggered = true;
		}
	});
	$$('#case-studies .item').addEvent('mouseleave', function() {
		hoverObject = null;
		this.getChildren('.item-hover').fade('out');
		this.getChildren('.screen').fade('out');
		
		var tooltipContent = $$('#tooltip .tooltip-content')[0];
		tooltipContent.tween('margin-top', '-200px');
		
		var fadeOut = function() {$('tooltip').fade('out');};
		fadeOut.delay(350);
	});
}

function showTooltip() {
	if($$('#case-studies.icongallery').length > 0) return;
	
	/* PREVENT DOUBLE EXECUTION + ONLY EXECUTE IF CORRECT OBJECT*/
	tooltipTriggered = false;
	if(hoverObject != this) return;
	
	var tooltip = $('tooltip');
	
	$$('#tooltip .tooltip-content h3').set('html', this.getParent().client);
	$$('#tooltip .tooltip-content p').set('html', this.getChildren('.hidden-info').get('text'));
	
	var tooltipContent = $$('#tooltip .tooltip-content')[0];
	tooltipContent.setStyle('margin-top', '-' + tooltipContent.getSize().y + 'px');
	
	var coordinates = this.getCoordinates();
	tooltip.setStyles({
		top: coordinates.bottom - 12,
		left: coordinates.left + 9
	});
	
	tooltip.set('tween', {duration: 250});
	tooltip.fade('in');
	var slideIn = function() { $$('#tooltip .tooltip-content').tween('margin-top', 0); };
	slideIn.delay(100);
}

function initSingleCaseStudy() {
	if($('screen-2') !== null)
		$('screen-2').fade('hide').setStyle('display', 'block');
	if($('screen-3') !== null)
		$('screen-3').fade('hide').setStyle('display', 'block');
	
	$$('.thumbnail').addEvent('click', function() {
		$$('.screen').fade('out');
		$$('.thumbnail').removeClass('current');
		
		if(this.getChildren('#thumb-1').length > 0) $('screen-1').fade('in');
		else if(this.getChildren('#thumb-2').length > 0) $('screen-2').fade('in');
		else if(this.getChildren('#thumb-3').length > 0) $('screen-3').fade('in');
		this.addClass('current');
	});
}

var testimonials = null;
var currentTestimonial = 0;
var testimonialAutoPlay = null;
function initClients() {
	testimonials = $$('.testimonial');
	testimonials.fade('hide');
	testimonials[0].fade('show');
	testimonials.set('tween', {duration: 700});
	
	$('testimonial-prev').addEvent('click', function() {
		$clear(testimonialAutoPlay);
		$('testimonial-pause').addClass('play');
		switchTestimonial(-1);
	});
	$('testimonial-next').addEvent('click', function() {
		$clear(testimonialAutoPlay);
		$('testimonial-pause').addClass('play');
		switchTestimonial(1);
	});
	$('testimonial-pause').addEvent('click', function(ev) {
		if($('testimonial-pause').hasClass('play')) {
			testimonialAutoPlay = switchTestimonial.periodical(7500, null, 1);
			$('testimonial-pause').removeClass('play');
		} else {
			$clear(testimonialAutoPlay);
			$('testimonial-pause').addClass('play');
		}
	});
	
	testimonialAutoPlay = switchTestimonial.periodical(7500, null, 1);
}
function switchTestimonial(direction) {
	if(direction > 0) {
		testimonials[currentTestimonial].fade('out');
		
		if(currentTestimonial == testimonials.length-1)	currentTestimonial = 0;
		else											currentTestimonial++;
		
		testimonials[currentTestimonial].fade('in');
	} else {
		testimonials[currentTestimonial].fade('out');
		
		if(currentTestimonial == 0)	currentTestimonial = testimonials.length - 1;
		else						currentTestimonial--;
		
		testimonials[currentTestimonial].fade('in');
	}
}

var carouselImages;
var currentCarouselImage = 0;
var carouselImagesRotation;
function initImageCarousel() {
	if($$('.block-customicons').length == 0) return;
	
	carouselImages = $$('.block-customicons img');	
	carouselImages.set('tween', {duration: 1000});
	
	var carouselNav = new Element('div', {'class': 'carousel-nav'});
	
	for(var i = 0; i < carouselImages.length; i++) {		
		var navDot = new Element('span');
		navDot.carouselImg = carouselImages[i];
		carouselImages[i].navDot = navDot;
		navDot.addEvent('click', showCarouselImage);
		navDot.inject(carouselNav);
		if(i > 0)
			carouselImages[i].fade('hide');
		else
			navDot.addClass('current');
	}
	
	carouselNav.inject($$('.block-customicons')[0]);
	
	carouselImagesRotation = switchCarouselImage.periodical(4000);
}
function switchCarouselImage() {
	carouselImages[currentCarouselImage].fade.delay(500, carouselImages[currentCarouselImage], 'out');
	$$('.carousel-nav span.current').removeClass('current');
	
	currentCarouselImage++;
	if(currentCarouselImage >= carouselImages.length)
		currentCarouselImage = 0;
	carouselImages[currentCarouselImage].fade('in');
	carouselImages[currentCarouselImage].navDot.addClass('current');
}
function showCarouselImage(ev) {
	$clear(carouselImagesRotation);
	$$('.carousel-nav span.current')[0].carouselImg.fade('out');
	$$('.carousel-nav span.current').removeClass('current');
	
	ev.target.addClass('current');
	ev.target.carouselImg.fade('in');
}

var icons = {};
var icon_style = exp_segment_2 == 'glossy' ? 'Glossy':'Satin';

var standardHeading = '';
var spinner;
function initShop() {
	spinner = new Spinner('pagecontent');
	
	// init Warenkorb
	$('warenkorb').setStyle('display', 'block');
	$$('#shop .title').addClass('js');
	$$('#warenkorb-inhalt-table tr').each(function(row) {
		var type = row.get('id').substring(0,4);
		var id = row.get('id').substring(4);

		var del = row.getChildren('.item-delete')[0];
		del.set('html', '');

		var newDel = new Element('div', {id: type + 'del' + id});
		newDel.inject(del);
		newDel.addEvent('click', removeFromCart);
	});
	
	$$('.set-buy-button').each(function(el){
		var info = el.get('id').split('-');
		var mySet = {
			type: 'set',
			icon_set: info[1],
			entry_id: 0,
			style: info[0]
		};
		el.addEvent('click', addToCart.bind(mySet));
	});
	
	// Checkout
//BBG	$('button-checkout').addEvent('click', showCheckout);
//BBG	$('button-checkout-weiter').addEvent('click', submitOrder);
//BBG	$('button-checkout-cancel').addEvent('click', closeCheckout);
	
	// Search Field
	var iconSearch = new Element('div', {id: 'icon-search'});
	var iconSearchHTML = '';
	if($$('div.result-info').length == 0) {
		var searchLabel = ("en" == "de") ? 'Suchen' : 'Search';
		iconSearchHTML = '<form name="search-form" action="http://www.ergosign.de/en/shop/icons-all/" method="post">'
			+ '<div class="button-outer"><div class="inner-glow">' + searchLabel + '</div></div>'
			+'<div id="icon-search-container">'
			+'	<input type="hidden" value="search" name="action"/>'
			+'	<input type="text" id="icon-search-query" name="icon-search-query" />'
			+'</div>'
			+'</form>'
			+'<label for="icon-search-query">Icon Search</label>';
		iconSearch.set('html', iconSearchHTML);
		iconSearch.inject($('subnavigation'), 'after');

		$$('#icon-search .button-outer').addEvent('click', function() {document.forms["search-form"].submit();});
	} else {
		iconSearchHTML = '<div id="icon-search-container">'
			+'<input type="text" id="icon-search-query" name="icon-search-query" /></div>'
			+'<label for="icon-search-query">Icon Search</label>';
		iconSearch.set('html', iconSearchHTML);
		iconSearch.inject($('subnavigation'), 'after');
		
		if(session_post != 0) {
			$('icon-search-query').set('value', session_post['icon-search-query']);
		}
	}

	// Search Results
	if($$('div.result-info').length > 0) {
		$('icon-search-query').addEvent('keyup', delaySearch);
		standardHeading = $$('div.result-info')[0].get('html');
		ajaxSearch({type: 'customevent'}, false);
	
		// init Preview Pane
		if(ie67 == false && Browser.Platform.ipod != true) {
			var previewPane = new Element('div', {id: 'preview-pane'});
			var hPos = $('site').getPosition().x + 242;
			previewPane.setStyle('left', hPos + 'px');
	
			var previewPaneHandle = new Element('div', {id: 'preview-pane-handle'});
			previewPaneHandle.set('html', ("en" == "de") ? 'Vorschau' : 'Preview');
			previewPaneHandle.inject(previewPane);
			previewPane.tween.delay(1000, previewPane, ['height', '18px']);
	
			var previewPaneInner = new Element('div', {id: 'preview-pane-inner'});
			previewPaneInner.inject(previewPane);
	
			var previewPaneNav = new Element('div', {id: 'preview-pane-nav'});
			var previewPaneNavUl = new Element('ul');
			var previewPaneNav1 = new Element('li', {id: 'prev-ribbon', text: 'Ribbon'});
			var previewPaneNav2 = new Element('li', {id: 'prev-toolbar', text: 'Tool Bar'});
			var previewPaneNav3 = new Element('li', {id: 'prev-panel', text: 'Panel'});
			var previewPaneNav4 = new Element('li', {id: 'prev-splash', text: 'Splash Screen'});
	
			previewPaneNav1.addEvent('click', switchPreview);
			previewPaneNav2.addEvent('click', switchPreview);
			previewPaneNav3.addEvent('click', switchPreview);
			previewPaneNav4.addEvent('click', switchPreview);
	
			previewPaneNav1.inject(previewPaneNavUl);
			previewPaneNav2.inject(previewPaneNavUl);
			previewPaneNav3.inject(previewPaneNavUl);
			previewPaneNav4.inject(previewPaneNavUl);
	
			previewPaneNavUl.inject(previewPaneNav);
	
			previewPaneNav.inject(previewPaneInner);
	
			previewPane.inject($$('body')[0]);
	
			switchPreview.bind(previewPaneNav1)();
	
			$(window).addEvent('resize', function() {
				var hPos = $('site').getPosition().x + 242;
				$('preview-pane').setStyle('left', hPos + 'px');
			});
			previewPaneHandle.addEvent('click', function() {
				if(previewPane.hasClass('open')) {
					previewPane.tween('height', '18px');
				} else {
					previewPane.tween('height', '160px');
				}
				previewPane.toggleClass('open');
			});
		}
	}
}
var searchTime = 0;
function delaySearch(ev) {
	var now = new Date();
	var nowTime = now.getTime();
	searchTime = nowTime;
	var triggerSearch = function(ev) {
		if(searchTime == nowTime)
			ajaxSearch(ev, true);
	};
	triggerSearch.delay(600, null, ev);
}
var currentQuery = null;
var currentPage = 1;
var jsonRequest = null;
function ajaxSearch(ev, showSpinner) {
	if(showSpinner == null) showSpinner = true;
	var query = $('icon-search-query').get('value').clean();

	// Nicht zweimal suchen
	if(query == currentQuery && ev.type != 'click')
		return;
	currentQuery = query;

	if(showSpinner) spinner.show();
		
	query = encodeURIComponent(query);
	if(jsonRequest !== null) jsonRequest.cancel();

	// Bei Klick auf Pagination: Entsprechende Seite an AJAX-URL anhängen
	if(ev.type == 'click') {
		exp_segment_5 = 'P' + ev.target.get('href').split('#')[1];
	} else {
		if(!showSpinner && window.location.hash.substring(1) != '')
			exp_segment_5 = 'P' + window.location.hash.substring(1);
		else
			exp_segment_5 = '';
	}
		
	var ajaxURI;
	if(exp_segment_2 == 'icons-all') {
		if(query != '') {
			ajaxURI = "http://www.ergosign.de/en/ajax-stockicons/icons-all/all/" + query + "/" + exp_segment_5;
		} else {
			ajaxURI = "http://www.ergosign.de/en/ajax-stockicons/icons-all/all/allicons/" + exp_segment_5;
		}
	} else {
		if(query != '') {
			ajaxURI = "http://www.ergosign.de/en/ajax-stockicons/" + exp_segment_2 + "/" + exp_segment_3 + "/" + query + "/" + exp_segment_5;
		} else {
			ajaxURI = "http://www.ergosign.de/en/ajax-stockicons/" + exp_segment_2 + "/" + exp_segment_3 + "/allicons/" + exp_segment_5;
		}
	}
	jsonRequest = new Request.JSON({url: ajaxURI,
		onSuccess: function(result) {
			if(result.Basic == null)
				result.Basic = 0;
			if(result.Business == null)
				result.Business = 0;
			if(result.Admin == null)
				result.Admin = 0;
			
			result.total_results = result.Basic.toInt() + result.Business.toInt() + result.Admin.toInt();
			
			spinner.hide();
			jsonRequest = null;
			
			if(result.items.length == 0) {
				var content = $('pagecontent');
				$$('.stockicon').dispose();
				$$('div.result-info').dispose();
				
				var resultInfo = new Element('div', {'class': 'result-info'});
				resultInfo.set('html', '<h2>Keine Treffer</h2> ' + " Keine Icons f&uuml;r &quot;" + decodeURIComponent(query) + "&quot; gefunden.");
				resultInfo.inject(content);
				
				$$('p.pagination')[1].inject(content);
				$$('p.pagination').set('html', '');
				
			} else {
				var resultfactor = 1;
				if(exp_segment_2 == 'icons-all') {
					resultfactor = 2;
				}
				
				var content = $('pagecontent');
				$$('.stockicon').dispose();
				$$('div.result-info').dispose();			
			
				var resultInfo = new Element('div', {'class': 'result-info'});
				if(query != '')
					resultInfo.set('html', '<h2>Suchergebnisse</h2> ' + (result.total_results * resultfactor) + " Ergebnisse f&uuml;r &quot;" + decodeURIComponent(query) + "&quot; gefunden.<br />Basic Set: " + result.Basic + ", Business Set: " + result.Business + ", Admin Set: " + result.Admin + ".");
				else
					resultInfo.set('html', standardHeading);
				resultInfo.inject(content, 'top');

				var icon_style = exp_segment_2 == 'glossy' ? 'Glossy':'Satin';
				
				// Alle Icons laden
				for(var i = 0; i < result.items.length; i++) {
					for(j = 0; j < resultfactor; j++) {
						if(exp_segment_2 == 'icons-all') {
							icon_style = j == 0 ? 'Glossy' : 'Satin';
						}
						
						var curIcon = {
							icon_filename: result.items[i].icon_filename,
							icon_set: result.items[i].icon_set,
							id: result.items[i].id,
							title: result.items[i].title
						};
						var newIcon = new Element('div', {'class': 'stockicon'});
						if((i*resultfactor+j) % 2 == 0)
							newIcon.addClass('odd');
					
						var newImg = new Element('img', {'src': 'http://www.ergosign.de/images/stockicons/preview/'+icon_style+'/'+curIcon.icon_set+'/'+curIcon.icon_filename+'_en.png', width: '360', height: '150', alt: curIcon.title});
						var buyButton = new Element('div', {'class': 'icon-buy-button', 'html': '&euro; 5,&ndash;'});
					

						curIcon.newImg = newImg;
						curIcon.type = 'single';
						curIcon.icon_set = '';
						curIcon.style = icon_style;
						
						buyButton.addEvent('click', addToCart.bind(curIcon));
						
						newImg.inject(newIcon);
						if(ie67 == false && Browser.Platform.ipod != true) {
							var previewButton = new Element('div', {'class': 'icon-preview-button'});
							previewButton.addEvent('click', function() {
								previewIcons.push({
									title: this.title,
									style: this.style,
									filename: this.icon_filename,
									previewRibbon: false,
									previewToolbar: false,
									previewPanel: false,
									previewSplash: false
								});
						
								showPreviewPane(this.newImg);
							}.bind(curIcon));
							previewButton.inject(newIcon);
						}
						buyButton.inject(newIcon);
						newIcon.inject(content);
					}
				}
				// Pagination wieder nach unten und neu setzen
				$$('p.pagination')[1].inject(content).setStyle('clear', 'both');
				$$('p.pagination').set('html', result.pagination);
				
				if(result.total_pages == 1)
					$$('p.pagination').fade('out');
				else
					$$('p.pagination').fade('in');
				
				$$('#pagecontent .banner').inject(content, 'top');
				
				// AJAXIFY
				$$('p.pagination a').addEvent('click', ajaxSearch);
				
				if(ev.type == 'click') {
					if(window.getScroll().y > 200)	// only scroll up, not down
						new Fx.Scroll(window, {duration: 2000, offset: {'x': 0, 'y': -20}}).toElement($('icon-search'));
				}
			}
			
		}
	}).get();
	
}

var previewIcons = [];
var previewRibbon, previewToolbar, previewPanel, previewSplash;
function showPreviewPane(sourceImg) {
	// Calculate correct scroll position:
	// > Scroll to search field, if this enables the source image to still being visible
	// > Else scroll to show the source image
	// Do not scroll upwards
	
	var windowScroll = $(window).getScroll();
	var windowSize = $(window).getSize();
	var target = $('icon-search').getCoordinates();
	var source = sourceImg.getCoordinates();
	
	var targetY = ((target.top - 20 + windowSize.y - 165) > source.bottom) ? (target.top - 20) : (source.bottom - windowSize.y + 165);
	if(targetY > windowScroll.y)
		new Fx.Scroll(window, {duration: 1000}).start(windowScroll.x, targetY);
	
	// Open PreviewPane
	var previewPane = $('preview-pane');
	if(!previewPane.hasClass('open')) {
		previewPane.tween('height', '160px');
		previewPane.addClass('open');
	}
	
	if($$('#preview-pane-nav li.current').length == 0)
		switchPreview.bind($('prev-ribbon'))();
	else
		fillPreviewPane(true);
}	
function switchPreview() {
	$$('#preview-pane-nav li.current').removeClass('current');
	this.addClass('current');
	
	$$('#preview-pane-inner .preview').dispose();
	for(var i = 0; i < previewIcons.length; i++) {
		previewIcons[i].preview = false;
	}
	
	switch(this.get('id')) {
		case 'prev-ribbon':	
			if(previewRibbon == null) {
				previewRibbon = new Element('div', {id: 'preview-ribbon', 'class': 'preview'});
				var previewRibbon32 = new Element('div', {id: 'preview-ribbon-32'});
				var previewRibbon32slider = new Element('div');
				var previewRibbon16 = new Element('div', {id: 'preview-ribbon-16'});
				var previewRibbon16slider = new Element('div');
			
				previewRibbon32slider.inject(previewRibbon32);
				previewRibbon16slider.inject(previewRibbon16);
			
				previewRibbon32.inject(previewRibbon);
				previewRibbon16.inject(previewRibbon);
			}
			
			previewRibbon.inject($('preview-pane-inner'));			
			break;
		case 'prev-toolbar':
			if(previewToolbar == null) {
				previewToolbar = new Element('div', {id: 'preview-toolbar', 'class': 'preview'});
				var previewToolbarIconArea = new Element('div', {id: 'preview-toolbar-iconarea'});
				var previewToolbarSlider = new Element('div');
			
				previewToolbarSlider.inject(previewToolbarIconArea);
				previewToolbarIconArea.inject(previewToolbar);
			}
			
			previewToolbar.inject($('preview-pane-inner'));			
			break;
		case 'prev-panel':
			if(previewPanel == null) {
				previewPanel = new Element('div', {id: 'preview-panel', 'class': 'preview'});
				var previewPanelSwitcher = new Element('div', {
					id: 'preview-panel-switcher',
					html: 'Hintergrundfarbe w&auml;hlen: '});
				var colors = [new Element('span', {id: 'c-red'}),
					new Element('span', {id: 'c-orange'}),
					new Element('span', {id: 'c-yellow'}),
					new Element('span', {id: 'c-green'}),
					new Element('span', {id: 'c-turquoise'}),
					new Element('span', {id: 'c-blue'}),
					new Element('span', {id: 'c-violet'}),
					new Element('span', {id: 'c-pink'}),
					new Element('span', {id: 'c-100'}),
					new Element('span', {id: 'c-75'}),
					new Element('span', {id: 'c-50'}),
					new Element('span', {id: 'c-25'}),
					new Element('span', {id: 'c-0'})];
					
				colors.each(function(el) {
					el.inject(previewPanelSwitcher);
					el.addEvent('click', function() {
						var c = '#000';
						switch(this.get('id')) {
							case 'c-red': c = '#ff0000'; break;
							case 'c-orange': c = '#ffbf00'; break;
							case 'c-yellow': c = '#ffff00'; break;
							case 'c-green': c = '#80ff00'; break;
							case 'c-turquoise': c = '#00ffff'; break;
							case 'c-blue': c = '#0040ff'; break;
							case 'c-violet': c = '#8000ff'; break;
							case 'c-pink': c = '#ff00bf'; break;
							case 'c-100': c = '#fff'; break;
							case 'c-75': c = '#bfbfbf'; break;
							case 'c-50': c = '#808080'; break;
							case 'c-25': c = '#404040'; break;
							case 'c-0': c = '#000'; break;
						};
						$('preview-panel-iconarea').tween('background-color', c);
					});
				});
				
				var previewPanelIconArea = new Element('div', {id: 'preview-panel-iconarea'});
				var previewPanelSlider = new Element('div');
				
				previewPanelSwitcher.inject(previewPanel);
				
				previewPanelSlider.inject(previewPanelIconArea);
				previewPanelIconArea.inject(previewPanel);
			}
			
			previewPanel.inject($('preview-pane-inner'));		
			break;
		case 'prev-splash':
			if(previewSplash == null) {
				previewSplash = new Element('div', {id: 'preview-splashscreen', 'class': 'preview'});
				var previewIcon = new Element('span', {
					'class': 'icon-preview'
				});
				previewIcon.inject(previewSplash);
			}
			
			previewSplash.inject($('preview-pane-inner'));
			break;
	}
	fillPreviewPane(false);
}
function fillPreviewPane(scroll) {
	if(previewIcons.length == 0) return;
	if(scroll == null) scroll = false;
	
	var prevCurrent = $$('#preview-pane-nav li.current');
	if(prevCurrent.length == 0) return;
	
	switch(prevCurrent[0].get('id')) {
		case 'prev-ribbon':
			fillPreviewRibbon(scroll);
			break;
		case 'prev-toolbar':
			fillPreviewToolbar(scroll);
			break;
		case 'prev-panel':
			fillPreviewPanel(scroll);
			break;		
		case 'prev-splash':
			fillPreviewSplashScreen();
			break;
	}
}
function fillPreviewRibbon(scroll) {
	var previewRibbon32 = $$('#preview-ribbon-32 div')[0];
	var previewRibbon16 = $$('#preview-ribbon-16 div')[0];
	
	var previewIcon32;
	var previewIcon16
	
	for(var i = 0; i < previewIcons.length; i++) {
		if(!previewIcons[i].previewRibbon) {
			previewIcon32 = new Element('span', {
				'class': 'icon-preview', 
				style: 'background-image: url(http://www.ergosign.de/images/stockicons/preview/' + previewIcons[i].style + '/single/' + previewIcons[i].filename + '_32.png);',
				html: shortenString(previewIcons[i].title, 14)
			});
			previewIcon32.inject(previewRibbon32);
			previewIcon16 = new Element('span', {
				'class': 'icon-preview', 
				style: 'background-image: url(http://www.ergosign.de/images/stockicons/preview/' + previewIcons[i].style + '/single/' + previewIcons[i].filename + '_16.png);',
				html: shortenString(previewIcons[i].title, 17)
			});
			previewIcon16.setStyles({
				left: (Math.floor(i / 3) * 143) + 'px',
				top: ((i % 3) * 20) + 'px'
			});
			previewIcon16.inject(previewRibbon16);

			previewIcons[i].previewRibbon = true;
		}
	}

	var lastIcon32cc = $$('#preview-ribbon-32 .icon-preview').getLast().getCoordinates(previewRibbon32);
	if(lastIcon32cc.right > $('preview-ribbon-32').getScroll().x + $('preview-ribbon-32').getSize().x)
		if(scroll)
			new Fx.Scroll($('preview-ribbon-32'), {duration: 600}).start(lastIcon32cc.right - $('preview-ribbon-32').getSize().x + 10, 0);
		else
			$('preview-ribbon-32').scrollTo(lastIcon32cc.right - $('preview-ribbon-32').getSize().x + 10, 0);
	
	if(previewIcons.length > 6)
		if(scroll)
			new Fx.Scroll($('preview-ribbon-16'), {duration: 600}).start((Math.floor((previewIcons.length-1) / 3) * 143) - 143, 0);
		else
			$('preview-ribbon-16').scrollTo((Math.floor((previewIcons.length-1) / 3) * 143) - 143, 0);
}
function fillPreviewToolbar(scroll) {	
	var previewToolbar = $$('#preview-toolbar-iconarea div')[0];
	var previewIcon;
	
	// Add Icons
	for(var i = 0; i < previewIcons.length; i++) {
		if(!previewIcons[i].previewToolbar) {
			previewIcon = new Element('span', {
				'class': 'icon-preview', 
				style: 'background-image: url(http://www.ergosign.de/images/stockicons/preview/' + previewIcons[i].style + '/single/' + previewIcons[i].filename + '_32.png);'
			});
			previewIcon.inject(previewToolbar);
			previewIcons[i].previewToolbar = true;
		}
	}
	
	// Scroll to last Icon
	var previewToolbarContainer = $('preview-toolbar-iconarea');
	var lastIconcc = $$('#preview-toolbar-iconarea .icon-preview').getLast().getCoordinates(previewToolbar);
	if(lastIconcc.right > previewToolbarContainer.getScroll().x + previewToolbarContainer.getSize().x)
		if(scroll)
			new Fx.Scroll(previewToolbarContainer, {duration: 600}).start(lastIconcc.right - previewToolbarContainer.getSize().x + 20, 0);
		else
			previewToolbarContainer.scrollTo(lastIconcc.right - previewToolbarContainer.getSize().x + 20, 0);
}
function fillPreviewPanel(scroll) {	
	var previewPanel = $$('#preview-panel-iconarea div')[0];
	var previewIcon;
	
	// Add Icons
	for(var i = 0; i < previewIcons.length; i++) {
		if(!previewIcons[i].previewPanel) {
			previewIcon = new Element('span', {
				'class': 'icon-preview', 
				style: 'background-image: url(http://www.ergosign.de/images/stockicons/preview/' + previewIcons[i].style + '/single/' + previewIcons[i].filename + '_48.png);'
			});
			previewIcon.inject(previewPanel);
			previewIcons[i].previewPanel = true;
		}
	}
	
	// Scroll to last Icon
	var previewPanelContainer = $('preview-panel-iconarea');
	var lastIconcc = $$('#preview-panel-iconarea .icon-preview').getLast().getCoordinates(previewPanel);
	if(lastIconcc.right > previewPanelContainer.getScroll().x + previewPanelContainer.getSize().x)
		if(scroll)
			new Fx.Scroll(previewPanelContainer, {duration: 600}).start(lastIconcc.right - previewPanelContainer.getSize().x + 20, 0);
		else
			previewPanelContainer.scrollTo(lastIconcc.right - previewPanelContainer.getSize().x + 20, 0);
}
function fillPreviewSplashScreen() {
	if(previewIcons.length > 0) {
		$$('#preview-splashscreen .icon-preview')[0].setStyle('background-image', 'url(http://www.ergosign.de/images/stockicons/preview/' + previewIcons.getLast().style + '/single/' + previewIcons.getLast().filename + '_128.png)');
	}
}

function addToCart(ev) {
	// this == current icon
	
	for(var i = 0; i < cart.length; i++) {
		if(cart[i].type = this.type)
		 if((this.type == 'single' && cart[i].entry_id == this.id && cart[i].style == this.style) || 
			(this.type == 'set' && cart[i].icon_set == this.icon_set && cart[i].style == this.style)) {
			alert('Bereits im Warenkorb!');
			return;
		}
	}
	
	var ajaxParams = {
	    method: 'post',
	    data: 'entry_id=' + this.id
			+ '&type=' + this.type
			+ '&style=' + this.style
			+ '&icon_set=' + this.icon_set
	};	
	ajaxURI = "http://www.ergosign.de/en/ajax-cart/" + exp_segment_2 + "/" + this.id;
	jsonRequest = new Request.JSON({url: ajaxURI,
		onSuccess: function(result) {
			var warenkorb = $$('#warenkorb-inhalt-table tbody')[0];
			
			if(result.type == 'single') {			
				var newRow = new Element('tr', {id: 'item' + result.entry_id});
				
				var td = new Element('td', {'class': 'item-name'});
				td.set('html', 'en' == 'de' ? result.de_title : result.title);
				td.inject(newRow);
			
				td = new Element('td', {'class': 'item-preview'});
				td.set('html', '<div style="background-image: url(http://www.ergosign.de/images/stockicons/preview/'+result.style+'/single/'+result.filename+'_16.png);"></div>')
				td.inject(newRow);
			
				td = new Element('td', {'class': 'item-price'});
				td.set('html', '&euro; ' + result.price_f);
				td.inject(newRow);
			
				td = new Element('td', {'class': 'item-delete'});
				var itemDelete = new Element('div', {id: 'itemdel' + result.entry_id});
				itemDelete.inject(td);
				itemDelete.addEvent('click', removeFromCart);
				td.inject(newRow);
			
				newRow.inject(warenkorb);

				if(!ie67) {
					// Show Message
					var msg = new Element('div', {'class': 'msg-dim'});
					msg.fade('hide');
				
					var msgtext = new Element('div', {'class': 'msg-text'});
					var msgtextlabel = 'The icon has been added to your shopping cart.'.replace(/___ICON___/g, ("en" == "de") ? 'Icon-Set' : 'icon set');
					msgtext.set('html', msgtextlabel);
					msgtext.fade('hide');
								
					msg.inject(ev.target.getParent());
					msgtext.inject(ev.target.getParent());
					msg.fade(0.9);
					msgtext.fade('in');
				
					var delMsg = function() { msg.dispose(); msgtext.dispose();}
					var hideMsg = function() {msg.fade('out');	msgtext.fade('out'); delMsg.delay(500)};
					hideMsg.delay(2500);
				}
				
			} else {
				var newRow = new Element('tr', {id: 'set-' + result.icon_set});
				
				var td = new Element('td', {'class': 'item-name', colspan: '2'});
				td.set('html', result.style + ' ' + result.title);
				td.inject(newRow);
			
				td = new Element('td', {'class': 'item-price'});
				td.set('html', '&euro; ' + result.price_f);
				td.inject(newRow);
			
				td = new Element('td', {'class': 'item-delete'});
				var itemDelete = new Element('div', {id: 'set-del' + result.icon_set});
				itemDelete.inject(td);
				itemDelete.addEvent('click', removeFromCart);
				td.inject(newRow);
			
				newRow.inject(warenkorb);
				
				if(!ie67) {
					// Show Message
					var msg = new Element('div', {'class': 'msg-dim'});
					msg.fade('hide');
				
					var msgtext = new Element('div', {'class': 'msg-text'});
					var msgtextlabel = 'The icon set has been added to your shopping cart.'.replace(/___ICON___/g, ("en" == "de") ? result.de_title : result.title);
					msgtext.set('html', msgtextlabel);
					msgtext.fade('hide');
				
					var banner = ev.target.getParent().getParent();	

					msg.inject(banner);
					msgtext.inject(banner);
					msg.fade(0.9);
					msgtext.fade('in');
				
					var delMsg = function() { msg.dispose(); msgtext.dispose();}
					var hideMsg = function() {msg.fade('out');	msgtext.fade('out'); delMsg.delay(500)};
					hideMsg.delay(2500);
				}
			}
		
			cart.push(result);
			updateTotals();
		}
	}).send(ajaxParams);
}
function removeFromCart() {
	var type = this.get('id').substring(0,4);
	var id = this.get('id').substring(7);

	$(type + id).fade('out');
	
	ajaxURI = "http://www.ergosign.de/en/ajax-cart/remove/" + id;
	jsonRequest = new Request.JSON({url: ajaxURI,
		onSuccess: function(result) {
			if(type == 'item') {
				cart = cart.filter(function(item, index) {
						return (item.entry_id != id);
				});
			} else {
				cart = cart.filter(function(item, index) {
						return (item.icon_set != id);
				});
			}
			$(type + id).dispose();
			
			updateTotals();
		}
	}).send({
		    method: 'post',
		    data: 'entry_id=' + id + '&icon_set=' + id + '&type=' + type.replace(/-/g, '').replace(/item/g, 'single')
	});
}
function emptyCart() {
	cart = [];
	$$('#warenkorb-inhalt-table tr').dispose();
	ajaxURI = "http://www.ergosign.de/en/ajax-cart/removeall/all";
	jsonRequest = new Request.JSON({url: ajaxURI,
		onSuccess: function(result) {}}).send({
		    method: 'post',
		    data: 'entry_id=all&icon_set=all&type=all'
	});
	updateTotals();
}
function updateTotals() {
	var aktTotal = 0;
	for(var i=0; i < cart.length; i++) {
		aktTotal += cart[i].price;
	}
	
	$$('#total-price-n, #checkout-total-price-n')		.set('html', aktTotal.toFixed(2).replace(/\./g, ','));
	$$('#total-price-mwst, #checkout-total-price-mwst')	.set('html', (aktTotal*1.19).toFixed(2).replace(/\./g, ','));
	$$('#total-mwst, #checkout-total-mwst')				.set('html', (aktTotal*0.19).toFixed(2).replace(/\./g, ','));
	
	$('warenkorb-anz')		.set('html', cart.length );
}

var mwst = true;
var eu = true;
var de = true;
var regex_email = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/;

function initShopCheckout() {
	if(cart.length == 0) {
		// leerer warenkorb
		
		var meldung = ("en" == "de") ? "Ihr Warenkorb ist leer, bitte legen Sie etwas in den Warenkorb, um einen Kauf zu tätigen" : "Your shopping cart is empty. Please add an item to your shopping cart to purchase.";
		alert(meldung);
		return false;
	}
	
	$('button-checkout-weiter').addEvent('click', submitOrder);
	
	$$('#shop-checkout-content input').addEvent('blur', checkFormEntry);
	$$('#shop-checkout-content select').addEvent('change', checkCountry);
	
	
}

function showCheckout() {
	// Overlay
	var dimmer = new Element('div', {id: 'lbOverlay', 'class': 'dimmer', 'style': 'height: ' + $(document.body).getScrollSize().y + 'px; position: absolute;'});
	dimmer.fade('hide');
	dimmer.inject($(document.body));
	dimmer.fade(0.6);
		
	// Dialog
	var dialogWidth = 700;
	var dialogHeight = 500;
	var dialog = new Element('div', {id: 'lbCenter', 'class': 'checkout-dialog'});
	dialog.fade('hide');
	dialog.setStyles({
		top: (($(window).getSize().y) / 2) + 'px',
		left: (($(window).getSize().x) / 2) + 'px',
		width: 0,
		height: 0
	});
	dialog.inject($(document.body));
	dialog.fade('in');
	
	var morphDialog = function() {
		dialog.morph({
			top: (($(window).getSize().y - dialogHeight) / 2) + 'px',
			left: (($(window).getSize().x - dialogWidth) / 2) + 'px',
			width: dialogWidth + 'px',
			height: dialogHeight + 'px'
		});
	};
	morphDialog.delay(500);
	
	var fillDialog = function() {
		$('checkout-content').inject(dialog);
		$('checkout-content').setStyle('display', 'block');
		
		$('checkout-footer').inject(dialog);
		$('checkout-footer').setStyle('display', 'block');
		
		fillCheckoutCart();
		
		$$('#checkout-content input').addEvent('blur', checkFormEntry);
		$$('#checkout-content select').addEvent('change', checkCountry);
		
		var closeButton = new Element('div', {id: 'checkout-close'});
		closeButton.setStyles({
			top: (($(window).getSize().y - dialogHeight - 25) / 2) + 'px',
			left: (($(window).getSize().x - dialogWidth - 25) / 2) + 'px'});
		closeButton.addEvent('click', closeCheckout);
		closeButton.inject($$('body')[0]);
	}
	fillDialog.delay(1000);
}
function fillCheckoutCart() {
	var warenkorb = $$('#checkout-warenkorb-inhalt-table tbody')[0];
	
	// Fill Sets
	for(var i = 0; i < cart.length; i++) {
		if(cart[i].type != 'set') continue;
		
		var newRow = new Element('tr', {id: 'set-' + cart[i].icon_set});
	
		var td = new Element('td', {'class': 'item-name', colspan: '2'});
		td.set('html', cart[i].style + ' ' + cart[i].title);
		td.inject(newRow);

		td = new Element('td', {'class': 'item-price'});
		td.set('html', '&euro; ' + cart[i].price_f);
		td.inject(newRow);
		
		newRow.inject(warenkorb);
	}
	// Fill Single Icons
	for(var i = 0; i < cart.length; i++) {
		if(cart[i].type != 'single') continue;
		
		var newRow = new Element('tr', {id: 'item' + cart[i].entry_id});
		
		var td = new Element('td', {'class': 'item-name'});
		td.set('html', 'en' == 'de' ? cart[i].de_title : cart[i].title);
		td.inject(newRow);
	
		td = new Element('td', {'class': 'item-preview'});
		td.set('html', '<div style="background-image: url(http://www.ergosign.de/images/stockicons/preview/'+cart[i].style+'/single/'+cart[i].filename+'_16.png);"></div>')
		td.inject(newRow);
	
		td = new Element('td', {'class': 'item-price'});
		td.set('html', '&euro; ' + cart[i].price_f);
		td.inject(newRow);
	
		newRow.inject(warenkorb);
	}
}
function checkFormEntry() {
	var id = this.get('id');
	var value = this.get('value')
	var msg = '';
	
	switch(id) {
		case 'checkout-vorname': 	msg = 'Bitte geben Sie Ihren Vornamen an.'; break;
		case 'checkout-name': 		msg = 'Bitte geben Sie Ihren Nachnamen an.'; break;
		case 'checkout-firma': 		msg = 'Bitte geben Sie Ihren Firmennamen an.'; 
			if(value.length > 0) {
				if(eu && !de) {
					$('container-ust-id').setStyle('display', 'block');
					$('checkout-ustid').focus();
				}
			} else {
				$('container-ust-id').setStyle('display', 'none');
			}
			break;
		case 'checkout-adresse': 	msg = 'Bitte geben Sie Ihre Adresse an.'; break;
		case 'checkout-plz': 		msg = 'Bitte geben Sie Ihre Postleitzahl an.'; break;
		case 'checkout-stadt': 		msg = 'Bitte geben Sie Ihre Stadt an.'; break;
		case 'checkout-ustid': 		msg = 'Bitte geben Sie Ihre Umsatzsteuer-ID an.'; break;
	}
	
	switch(id) {
		case 'checkout-vorname':
		case 'checkout-name':
		case 'checkout-firma':
		case 'checkout-adresse':
		case 'checkout-plz':
		case 'checkout-stadt':
		case 'checkout-ustid':
			if(value.length > 0) {
				this.getNext('div.check').addClass('ok').removeClass('error');
				this.removeClass('error');
				/*
				if(this.getNext('div.check').getNext() !== null)
					if(this.getNext('div.check').getNext().hasClass('error-msg'))
						this.getNext('div.check').getNext('div.error-msg').dispose();
					*/
			} else {
				this.getNext('div.check').removeClass('ok').addClass('error');
				this.addClass('error');
				
				/*
				if(this.getNext('div.check').getNext('div.error-msg') == null) {
					var errorMsg = new Element('div', {'class': 'error-msg'});
					errorMsg.set('html', msg);
					errorMsg.inject(this.getNext('div.check'), 'after');
				}*/
			}
			break;
		case 'checkout-email':
			if(value.length > 0) {
				if(value.search(regex_email) >= 0) {
					this.getNext('div.check').removeClass('error').addClass('ok');
					this.removeClass('error');
					/*
					if(this.getNext('div.check').getNext() !== null)
						if(this.getNext('div.check').getNext().hasClass('error-msg'))
							this.getNext('div.check').getNext('div.error-msg').dispose();
							*/
				} else {
					this.getNext('div.check').addClass('error').removeClass('ok');
					this.addClass('error');
					/*
					if(this.getNext('div.check').getNext('div.error-msg') == null) {
						var errorMsg = new Element('div', {'class': 'error-msg'});
						errorMsg.set('html', 'Ihre Eingabe enthält keine gültige E-Mail-Adresse.');
						errorMsg.inject(this.getNext('div.check'), 'after');
					}*/
				}
			} else {this.getNext('div.check').removeClass('ok').removeClass('error');}
			break;
		case 'checkout-email2':
			if(value == $('checkout-email').get('value') && value.length > 0) {
				this.getNext('div.check').addClass('ok').removeClass('error');
				this.removeClass('error');
				/*
				if(this.getNext('div.check').getNext() !== null)
					if(this.getNext('div.check').getNext().hasClass('error-msg'))
						this.getNext('div.check').getNext('div.error-msg').dispose();
						*/
			} else {
				this.getNext('div.check').removeClass('ok').addClass('error');
				this.addClass('error');
				
				/*
				// Error nur anzeigen, wenn E-Mail-Adresse überhaupt angegeben ist
				if($('checkout-email').get('value').search(/(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/) >= 0) {
					this.getNext('div.check').addClass('error');
					
					if(this.getNext('div.check').getNext('div.error-msg') == null) {
						var errorMsg = new Element('div', {'class': 'error-msg'});
						errorMsg.set('html', 'Die angegebenen E-Mail-Adressen stimmen nicht &uuml;berein. Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe.');
						errorMsg.inject(this.getNext('div.check'), 'after');
					}
				} else {this.getNext('div.check').removeClass('error');}*/
			}
			break;
	}
	adjustMwSt();
}
function checkCountry() {
	var value = this.get('value');
	
	de = false;
	eu = false;
	
	// Check EU
	switch(value) {
		case 'BE':		case 'BG':		case 'DK':		case 'EE':		case 'FI':
		case 'FR':		case 'GR':		case 'IE':		case 'IT':		case 'LV':
		case 'LT':		case 'LU':		case 'MT':		case 'NL':		case 'AT':
		case 'PL':		case 'PT':		case 'RO':		case 'SE':		case 'SK':
		case 'SI':		case 'ES':		case 'CZ':		case 'HU':		case 'GB':
		case 'CY':
			eu = true;
			break;
		case 'DE':
			eu = true;
			de = true;
			break;
	}
	
	if(eu && de) {
		$('container-ust-id').setStyle('display', 'none');
	} else if(eu && $('checkout-firma').get('value').length > 0) {
		$('container-ust-id').setStyle('display', 'block');
	} else {
		$('container-ust-id').setStyle('display', 'none');		
	}
	
	adjustMwSt();
}
function adjustMwSt() {
	if((eu && de) || (eu && !de && $('checkout-ustid').get('value').clean() == '')) {
		// MwSt wird berechnet wenn Kunde aus Deutschland oder aus EU-Ausland ohne Umsatzsteuer-ID
		if(!mwst) {
			$$('#checkout-warenkorb-inhalt td small').setStyle('display', 'inline');
			mwst = true;
		}
	} else {
		// MwSt nicht berechnen
		if(mwst) {
			$$('#checkout-warenkorb-inhalt td small').setStyle('display', 'none');
			mwst = false;
		}
	}
}
function closeCheckout() {
	$$('.dimmer').fade('out');	
	$('checkout-content').inject($$('body')[0]);			// hide Checkout Content
	$('checkout-content').setStyle('display', 'none');
	$('checkout-footer').inject($$('body')[0]);				// hide Footer
	$('checkout-footer').setStyle('display', 'none');	
	$$('.checkout-dialog').dispose();						// remove Dialog
	$$('.error-msg').dispose();
	$('checkout-close').dispose();							// remove closeButton
	$('checkout-warenkorb-inhalt-table').set('html', '');	// empty Checkout Cart

	(function() {$$('.dimmer').dispose();}).delay(1000);	// Remove Dimmer after Fading out
}


function submitOrder() {
	
	
	checkFormEntry.bind($('checkout-vorname'))();
	checkFormEntry.bind($('checkout-name'))();
	checkFormEntry.bind($('checkout-firma'))();
	checkFormEntry.bind($('checkout-adresse'))();
	checkFormEntry.bind($('checkout-plz'))();
	checkFormEntry.bind($('checkout-stadt'))();
	//checkFormEntry.bind($('checkout-ustid'))();
	if($('checkout-email').get('value').length == 0)
		$('checkout-email').set('value', ' ');
	checkFormEntry.bind($('checkout-email'))();
	if($('checkout-email').get('value') == ' ')
		$('checkout-email').set('value', '');
	checkFormEntry.bind($('checkout-email2'))();
	/*
	if($('checkout-vorname').get('value').length == 0) return false;
	if($('checkout-name').get('value').length == 0) return false;
	//if($('checkout-firma').get('value').length == 0) return false;
	if($('checkout-plz').get('value').length == 0) return false;
	if($('checkout-stadt').get('value').length == 0) return false;
	if($('checkout-email').get('value').search(regex_email) < 0) return false;
	if($('checkout-email').get('value') != $('checkout-email2').get('value')) return false;
	*/
	var display = $('accept-agb').get('checked') ? 'none' : 'block';
	$('accept-agb').getSiblings('.error-message').setStyle('display', display);
	
	if($$('input[type=text].error').length > 0 || display == 'block') {
		return false;
	}
		
	
	var addMwSt = (mwst == true) ? 1 : 0;
	var checkAGB = $('accept-agb').get('checked') ? 1 : 0;
	var checkNewsletter = $('accept-newsletter').get('checked') ? 1 : 0;
	
	
	ajaxURI = "http://www.ergosign.de/en/ajax-cart-submit-bbg/";
	jsonRequest = new Request.JSON({url: ajaxURI,
		onSuccess: function(result) {
			
			
			var form = new Element('form', {method: 'post', action: 'https://secure.payengine.de/ncol/prod/orderstandard.asp'});
			
			$each(result, function(item, index) {
				var input = new Element('input', {type: 'hidden', name: index, value: item});
				input.inject(form);
			});
			form.inject(document.body);
			
			form.submit();
		}
	}).send({
	    method: 'post',
	    data: 'name=' + $("checkout-name").get('value')
			+ '&vorname=' + $("checkout-vorname").get('value')
			+ '&firma=' + $("checkout-firma").get('value')
			+ '&ustid=' + $("checkout-ustid").get('value')
			+ '&adresse=' + $("checkout-adresse").get('value')
			+ '&plz=' + $("checkout-plz").get('value')
			+ '&stadt=' + $("checkout-stadt").get('value')
			+ '&country=' + $("checkout-land").get('value')
			+ '&email=' + $("checkout-email").get('value')
			+ '&method=' + $$('input[name=method]:checked').get('value')
			+ '&checkagb=' + checkAGB
			+ '&checknewsletter=' + checkNewsletter
	});
}


function shortenString(str, max) {
	if(str.length > max) {
		return str.clean().substring(0, max-2).clean() + '&hellip;';
	} else {
		return str.clean();
	}
}


/*
CSS Browser Selector v0.3.4 (Sep 29, 2009)
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',o='opera',h=document.getElementsByTagName('html')[0],b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);



