$(function(){

	var  baseUrl        = 'http://'+document.domain+'/'
		,lang			= $('html').attr('lang')
		,produkttabs    = $('#tabs')
		,breadcrumb     = $('#breadcrumb')
		,projekte       = $('#projekte')
		,projekteTabs   = $('#projektTabs')
		,lexicon        = $('#lexicon')
		,lexiconTitle   = $('#lexicon h2')
		,lexiconContent = $('#lexicon-content')
		,lexiconDefault = lexiconContent.html()
		,accordion      = $('.accordion')
		,searchbar      = $('#searchbar')
		,searchSuggest  = $('#suggestions')
		,haendler       = $('#haendlersuche-form')
		,deviceAgent    = navigator.userAgent.toLowerCase()
		,ios            = deviceAgent.match(/(iphone|ipod|ipad)/);
		
	if(ios)$('#siteWrapper').addClass('ios');
	$('html').removeClass('no-js');
	
	/* placeholder fallback */
	$('input[placeholder],textarea[placeholder]').defaultValue();
	
	/* Händlersuche */
	if(haendler.length){
		var radius = $('#haendlersuche-form select[name="radius"]');
		var focused = 0;
		haendler.delegate('#plz','focus blur',function(event){
			if(!focused){
				$('#tooltip').toggleClass('active');
			}
			focused = event.type == 'focus' ? 1 : 0;
		});
		if($('#plz').val().length<4){
			radius.attr('disabled','disabled');
		}
		haendler.delegate('#plz','change ready keydown keyup',function(event){
			if($(this).val().length<5){
				radius.attr('disabled','disabled');
			}else{
				radius.removeAttr('disabled');
			}
		});
	}
	
	/* Produktfinder */
	if($('#filter').length){
		var  val,name,params='',filter = $('#filter'),results = parseInt($('#results').text());
		filter.delegate('select','change',function(){
			if($(this).val()!=0){
				$('#finder-loading').addClass('active');
				$('#filter div[id!="finder-loading"]').css('display','none');
				$('#filter select').each(function(){
					$(this).attr('disabled','disabled');
				});
				location.href =$(this).val();
				$(this).val(0);
			}
		});
		filter.delegate('a[id!="share"]','click',function(){
			$('#finder-loading').addClass('active');
			$('#filter div[id!="finder-loading"]').css('display','none');
		});
		filter.delegate('div ul>li','click',function(){
			var me = $($(this).parent());
			$('#filter div ul').each(function(i,el){
				if(!me.is(el)) $(el).removeClass('active');
			});
			if(!me.hasClass('active')){
				me.addClass('active');
			}
		});
		$(document.body).click(function(event) {
			var clicked = $(event.target);
			if (!(clicked.is('#filter div ul li,#filter div ul li span'))) {
				$('#filter div ul').each(function(i,el){
					$(el).removeClass('active');
				});
			};
		});
		/* searchbynr */
		var searchbynrFocused = 0;
		filter.delegate('#searchbynr','focus blur',function(event){
			if(!searchbynrFocused){
				$('#tooltip').toggleClass('active');
			}
			searchbynrFocused = event.type == 'focus' ? 1 : 0;
		});
		filter.delegate('#searchbynr','keydown',function(event){
			if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || 
				(event.keyCode == 65 && event.ctrlKey === true) || 
				(event.keyCode >= 35 && event.keyCode <= 39)) {
				return;
			}
			else {
				if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
					event.preventDefault(); 
				}   
			}
		});
		
		/* share */
		$('#share,#share input').bind('click',function(e){
			e.preventDefault();
			el = $('#share input');
			el.focus();
			el.select();
			el.attr('editable','false');
		}).val(location.href);
		
		$('#share span').bind('click',function(e){
			var val   = $('#share input').val();
			var	filterproperties=val.substr((val.lastIndexOf('filter')+7))
			    val   = encodeURIComponent(val);
			var cname = $(this).attr('class');
			var text  = 'bal';
			var url   = '';
			var msg   = '';
			e.preventDefault();
			if(cname=='facebook'||cname=='twitter'){
				url = cname == 'facebook' ? 'http://www.facebook.com/sharer.php?u='+val+'&t='+text:'http://twitter.com/intent/tweet?&source=tweetbutton&status='+val;
				sharewin = window.open(
					 url
					,'Teilen'
					,'width=600'+
					',height=400'+
					',status=no'+
					',scrollbars=no'+
					',resizable=no'
				);
				sharewin.focus();
			}else if(cname=='email'){
				$.fancybox({
					 'type'  : 'iframe'
					,'centerOnScroll' : (ios ? false : true)
					,'overlayColor' : '#000'
					,'href'  : baseUrl+'/'+lang+'/jsonrequests/share-via-email/?url='+val+'&title='+$('title').text()+'&section='+$('#section').val()+'&filter='+filterproperties
					,'width' : 400
					,'height': 440
					,'padding': 0
				})
			}
		});
	}
				
	/* Share via E-Mail */
	if($('#share-via-email').length){
		$('#share-via-email form input').bind('change',function(e){
		});
		$('#share-via-email form a').bind('click',function(e){
			e.preventDefault();
			head      = $('#preview .head span span');
			firstname = $('#firstname').val();
			lastname  = $('#lastname').val();
			sender    = $('#sender').val();
			reciever  = $('#reciever').val();			
			$('#share-via-email #preview').toggleClass('active');
			$(this).text($('#share-via-email #preview').hasClass('active')?'bearbeiten':'Vorschau');
			$(head[0]).html(reciever);
			$(head[1]).html(sender+' '+(firstname||lastname?'('+(firstname.length?firstname+' ':'')+lastname+')':''));
			$('#title').text((firstname||lastname?firstname+' '+lastname+',':''));
			$('#preview p:last-child').html($('#message').val().replace(/\n/g,'<br/>'));
		});
	}
	
	/* Produkt Detail Tabs */
	if(produkttabs.length){
		produkttabs.tabs();
	}
	
	/* Breadcrumb Back btn */
	if(breadcrumb.length){
		var b = breadcrumb.find('li');
		$(b[0]).css('display','inline');
	}
	
	/* Projekte preview */
	if(projekte.length){
		projekte.tabs({ 
			 selected: -1
			,deselectable: true
			,select: function(event, ui) {
				projekteTabs.children().each(function(itemIndex){
					if(itemIndex!=ui.index){
						$(this).stop(false,false).fadeTo('slow', 0.3, function(){});
					}else{
						$(this).stop(false,false).fadeTo('slow', 1, function(){});
					}
				});
			}
			,show:function(event, ui){
				$.address.parameter('a',ui.panel.id.replace(/^#/,''),false);	
				//$.address.update();		
			}
		});
	}
	
	/* Lexicon */
	$('.lexicon-item').hide();
	$('h2.lexicon-headline').click(function(){
		if($(this).next().is(':hidden')){ 
			$('h2.lexicon-headline').removeClass('active').next().slideUp(); 
			$(this).toggleClass('active').next().slideDown();      
		}else{
			$(this).removeClass('active').next().slideUp(); 
		}
		return false; 
	});
	$('#lexicon .lexicon-item a').click(function(e){
		e.preventDefault();
		$.address.parameter('a',$(e.target).attr('class').replace(/#/,''),false);
		//$.address.update();
		return false;
	});
	if(!ios){
		$('a.lexicon').click(function(e){
			e.preventDefault();
			$.fancybox({
				 'type' : 'iframe'
				,'centerOnScroll' : true
				,'overlayColor' : '#000'
				,'padding' : 15
				,'href' : baseUrl+'/'+lang+'jsonrequests/lexiconitem.php?item='+($(this).attr('class').replace('lexicon item-',''))+'&more=1&page='+$('#lexicon-page').val()
			})
		});
	}
	
	/* Address change event */
	$.address.change(function(event) {
		event.preventDefault();
		var params = event.parameters['a'];
		/* Projekte */
		if(projekte){
			if(params){
				projekte.tabs('select',params);
			}else{
				$('#projekte .panel').addClass('ui-tabs-hide');
				$('#projekte ul li').fadeTo('slow', 1, function(){});
			}
		}
		/* Lexicon */
		if(lexicon.length){
			if(params){
				$.ajax({
					 url:baseUrl+lang+'/jsonrequests/lexiconitem.php'
					,data:{
						'item':params.replace('lexicon-','')
					}
					,success:function(data){
						$('li.active',lexiconTitle.next()).removeClass('active');
						lexiconTitle.removeClass('active');
						active = lexicon.find('a[class="#'+params+'"]');
						active.parent().addClass('active');
						active.parent().parent().prev().addClass('active').next().slideDown();
						lexiconTitle.not('.active').next().slideUp();
						lexiconContent.html(data);
						try{
							piwikTracker.setCustomUrl(location.href);
							piwikTracker.setDocumentTitle($('#lexicon-content h1').text());
							piwikTracker.trackPageView();
							piwikTracker.enableLinkTracking();
						}catch(err){}
					}
				});
			}else{
				lexiconTitle.removeClass('active');
				$(lexiconTitle[0]).toggleClass('active').next().slideDown();
				lexiconTitle.not('.active').next().slideUp();
				lexiconContent.html(lexiconDefault);
			}
		}
		/* Accordion */
		if(accordion.length){
			if(params){
				var active = $('.accordion h2 a[href="#'+params+'"]').parent();
				if(active.next().is(':hidden')){
					$('.accordion h2').removeClass('active').next().slideUp(); 
					active.toggleClass('active').next().slideDown();      
				}else{
					active.removeClass('active').next().slideUp(); 
				}
			}
		}
	});
	
	/* AJAX Search */
	searchbar.keyup(function(){
		var value = $(this).val();
		if(value == ''){
			if(this.timer) {
				clearTimeout(this.timer);
			}
			searchSuggest.fadeOut();
		}else{
			if (value != lastValue && value.length >= 3){
				if (this.timer) {
					clearTimeout(this.timer);
				}               
				this.timer = setTimeout(function(){
					$.post(baseUrl+'/'+lang+"jsonrequests/search.php", {search:""+value+""},function(data) {
						searchSuggest.fadeIn().html(data);
					})
				},500);
				var lastValue = value;
			}
		}
	});
	$(document.body).click(function(event) {
		var clicked = $(event.target);
		if (!(clicked.is('#suggestions') || clicked.parents('#suggestions').length || clicked.is('#searchbar'))) {
			searchSuggest.fadeOut();
		};
	});
	
	/* Content preview */
	if($('#home-content-preview').length&&$('#home-content-preview li').length>3){
		var jcarousel = $('#home-content-preview').jcarousel({
			 buttonNextHTML:'<div id="next"></div>'
			,buttonPrevHTML:'<div id="prev"></div>'
			,scroll:1
			,auto:3
			,wrap:'both'
			,initCallback:function(carousel){
				var l = $('#home-content-preview ul li');
				$.each(l,function(index, value){
					$('#jcarousel-index').append('<a href="#" title="News '+index+'">&nbsp;</a>');
				});
				$('#jcarousel-index a').bind('click', function() {
					carousel.scroll($(this).index());
					return false;
				});
				carousel.buttonNext.bind('click', function() {
					carousel.startAuto(0);
				});
				carousel.buttonPrev.bind('click', function() {
					carousel.startAuto(0);
				});
				carousel.clip.hover(function() {
					carousel.stopAuto();
				},function(){
					carousel.startAuto();
				});
			}
			,itemVisibleInCallback:{
				onBeforeAnimation:function(carousel, item, idx, state){
					index = $('#jcarousel-index a');
					$(index[idx-1]).addClass('active');
				}
			}
			,itemVisibleOutCallback:{
				onBeforeAnimation:function(carousel, item, idx, state){
					index = $('#jcarousel-index a');
					$(index[idx-1]).removeClass('active');
				}
			}
		})
		var touchwipe = $('#home-content-preview').touchwipe({
			 wipeLeft: function() { $('#next').trigger('click'); }
             ,wipeRight: function() { $('#prev').trigger('click'); }
			 ,min_move_x: 20
			 ,min_move_y: 20
			 ,preventDefaultEvents: false
		});
	}
	
	/* Slideshow */
	if($("#slideshow").length){
		var $slide =  $("#slideshow").tabs({
			 selected: ($("#home-content-preview").length?5:0)
			,fx:{
				 opacity: "toggle"
				,duration: 300
			}
			,select: function(event, ui) {
				$(".ui-tabs-nav-item").stop(false,false).animate({
					 "width":"55px"
					,"opacity":"0.5"
				});
				var currentBg = $($("#slideshow .ui-state-active a").attr('href')).css('background-image');
				$("#slideshow").css('background-image',currentBg);
			}
			,show: function(event,ui){
				$(".ui-tabs-nav-item").css({
					 "width":"55px"
					,"opacity":"0.5"
				});
			}
		})
		$slide.tabs().tabs("rotate", 5250, true);
		if($(".jcarousel-list li").length==3){
			$("#next").css("display","none");
			$("#prev").css("display","none");
		}
		$(".ui-tabs-nav-item a").click(function(e){
			e.preventDefault();
			$slide.tabs("rotate",0);
			return false;
		});
		$(".ui-tabs-nav-item").hover(
			function(){
				if(!$(this).hasClass("ui-state-active")){
					$(this).stop(true,false).animate({
						width: "65px"
						,opacity: "1.0"
						,queue:true
					});
				}
			},function(){
				if(!$(this).hasClass("ui-state-active")){
					$(this).stop(true,false).animate({
						width: "55px"
						,opacity: "0.5"
						,queue:true
					});
				}
			}
		);
	}
	/* technische-informtionen */
	$('#content .downloadPreview *, #content .bauzulassung').click(function(e){
		e.preventDefault();
		var boxDisplayed = false;
		if(!boxDisplayed){
			boxDisplayed = true;
			$.fancybox({
				 'type' : 'iframe'
				,'centerOnScroll' : (ios ? false : true)
				,'overlayColor' : '#000'
				,'width' : 330
				,'height': 280
				,'padding' : 15
				,'href' : baseUrl+'/'+lang+'jsonrequests/login'
				,'onCleanup' : function(){
					location.reload(true);
				}
			})
		}
	});
	if($('.technische-informationen')){
		$('.technische-informationen .item .new').each(function(){
			if($($(this).parent().parent().parent().prev('h2').find('a')).children('span.new').length===0){
				$($(this).parent().parent().parent().prev('h2').find('a')).append('<span class="new">&nbsp;</span>');
			}
		});
	}
	
	/* intranet */
	$('#intranet').click(function(e){
		e.preventDefault();
		var boxDisplayed = false;
		var popup = (window.open(
			 $(this).attr('href')
			,""
			,"width=625,height=520,status=no,scrollbars=yes,resizable=no"
		));
	});
	
	/*  Accordion */
	if(accordion){
		var lastURI;
		$('.accordion .item').hide(); 
		$('.accordion h2 a').click(function(e){
			e.preventDefault();
			if($(this).parent().hasClass('active')){
				$(this).parent().removeClass('active').next().slideUp(); 
			}else{
				if(lastURI!=$(this).attr('href').replace(/^#/,'')){
					$.address.parameter('a',$(this).attr('href').replace(/^#/,''),false);
				}else{
					$(this).parent().addClass('active').next().slideDown();
				}
			}
			lastURI = $(this).attr('href').replace(/^#/,'');
		});
	}
	
	/* Regal */
	if($('#swfContent')){
		swfobject.embedSWF(
		   baseUrl+'/assets/swf/loaderInteraktivesRegal.swf'
		  ,'swfContent','943','450','10.0.0'
		  ,baseUrl+'/assets/swf/expressInstall.swf'
		  ,{dataPath:'assets/swf/', language: lang}
		  ,{
			 menu: 'false'
			,quality: 'high'
			,wmode: 'transparent'
			,bgcolor: '#000000'
			,allowScriptAccess: 'always'
			,name: 'swfContent'
		  }
		);
	}
  
	$('#tab-sortiment h2').each(function(i, elem) {
		$(elem).html(function(i, html) {
			return html.replace(/(SPAX®)/, "<img src='assets/img/logos/spax_logo.png' /><br/>");
		});
	});
	$('#tab-sortiment .subhead').each(function(i, elem){
		$(elem).html(function(i, html) {
			return html.replace(/(WIROX)/, "<img src='assets/img/produkte/logos/wirox-logo.png' style=\"vertical-align:middle\" />");
		});
	});
	if($("#moreWoodInfo").length){
		$("#moreWoodInfo").click(function(e){
			$("#holzkundeContainer").slideToggle("normal");
			if($(this).html()=='Mehr Informationen zu Terrassenholz'){
				$(this).html('Tabelle schliessen');
			}else{
				$(this).html('Mehr Informationen zu Terrassenholz');
			}
		});
	}
	
	/* Sprachauswahl */
    if($("#chooseLocationMap").length){
      $('.showInfo .langLink').fancybox({
         'centerOnScroll' : (ios ? false : true)
        ,'autoDimensions' : true
        ,'overlayColor' : '#000'
        ,'padding' : 15
      })
	}
	
	/* kontaktformulare textarea 2 print */
	if($('#kommentar').length){
		$('#kommentar').bind('keydown keyup keypress cut copy past blur change', function(){
			$('#print_helper').text($('#kommentar').val());
		});
	}
});
