/*
 * Easy Select Box 1.0.1
 * http://www.codefleet.com/easy-select-box
 * Replace select with custom html for easy styling via css.
 * Features: multiple instances, initial value specified by selected attribute, optional classname, optional speed
 * Tested: IE7, IE8, Chrome 10, FF3, Safari 3.2 windows, Opera 11
 * 
 * Copyright 2011, Nico Amarilla
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * License same as jQuery http://jquery.org/license
 */
(function(a){a.fn.extend({easySelectBox:function(b){var c={className:"easy-select-box",speed:0};var b=a.extend(c,b);return this.each(function(){var j=b;var k=a(this);if("select"!=k[0].nodeName.toLowerCase()){return false}var d=k.children("option");var h=null;var i=k.val();var g="easy-select-box-disp";var e=0;var f="";a.each(d,function(l,m){f+='<li><a href="#" rel="'+a(m).val()+'">'+a(m).text()+"</a></li>";if(i==a(m).val()){e=l}});f='<div class="'+j.className+'"><a class="'+g+'" href="#">'+d.eq(e).text()+"</a><ul>"+f+"</ul></div>";h=a(f).insertAfter(k);k.hide();h.data("o",j);easySelectRegistry=a(document).data("easySelect");if(easySelectRegistry==null){easySelectRegistry=new Array()}easySelectRegistry.push(h);a(document).data("easySelect",easySelectRegistry);h.click(function(l){if(a(h).children("ul").is(":visible")){a(h).children("ul").slideUp(j.speed);h.css("z-index",99)}else{easySelectRegistry=a(document).data("easySelect");if(easySelectRegistry!=null){a.each(easySelectRegistry,function(){opts=a(this).data("o");a(this).children("ul").slideUp(opts.speed);a(this).css("z-index",99)})}a(h).children("ul").slideDown(j.speed);h.css("z-index",100)}l.stopPropagation();return false});a(document).click(function(){easySelectRegistry=a(document).data("easySelect");if(easySelectRegistry!=null){a.each(easySelectRegistry,function(){if(a(this).children("ul").is(":visible")){opts=a(this).data("o");a(this).children("ul").slideUp(opts.speed)}})}});h.children("ul").children("li").click(function(){h.children("."+g).html(a(this).children("a").html());k.children("option").removeAttr("selected");k.find("option").eq(a(this).index()).attr("selected","selected")})})}})})(jQuery);


$(document).ready( function() {
	$('div.references a:nth-child(3n) img').addThirdImgClass();
	$('a#next, a#prev').moveNews();
	$('#paging p a').pageturnNews();
	$('#news_overview ul a.newsfilter').filterNews();
	//$('#content').setContentHeight();
	$('#kino_passt_zu').addSecondDivClass();
	$('select.style-select').easySelectBox();
	$('input.style-radio').styleRadios();
	$('input.style-checkbox').styleCheckboxes();


//	$('form.catalog input[name=catalog]').checkCatalogChoosen();
	$('#designer_overview').showDesigner();
	$('#menu_meta_container li').toggleMetaBorder();
	$('form fieldset textarea').markTextarea();
	$('.content button.button p').buttonLineheight();
	//$('form fieldset label[for=callback]').callbackMandatory();

// did not work	
//	$('form.catalog input[name=catalog]').checkCatalogChoosen();
//  $('#content_right form button[type=submit]').checkMandatoryFields();
	$('input[name^=catalog]').checkCatalogChoosen();
	$('.schicken').checkMandatoryFields();

});

(function($) {
	$.fn.addThirdImgClass = function() {
		if (msie) {
			$(this).addClass('third');
		}
	}
})(jQuery);

(function($) {
	$.fn.addSecondDivClass = function() {
		if (msie) {
			$('#kino_passt_zu div:nth-child(2n)').css({ marginRight:0 });
			$('.results .find_result:nth-child(2n)').css({ marginRight:0 });
		}
	}
})(jQuery);

(function($) {
	$.fn.buttonLineheight = function() {
		if ($.browser.safari) {
			$(this).css({ lineHeight:'1.9em' });
		}
	}
})(jQuery);

(function($) {
	$.fn.moveNews = function() {
		var newssetLength = Math.ceil($('#news_container div.news_detail:visible').length/3); // added .news_detail since deeper divs were used also
		$('#news_container').css({ height:$('#news_container').height()+'px' });
		if (newssetLength > 0) {
			for (var i=1; i <= (newssetLength); i++) {
				var page = '<a href="#">'+ i +'</a>';
				$('#paging p').append(page);
			}
			$('#paging p a:nth-child(1)').addClass('active');
		}
		
		if ($('#news_container').children().length > 3) {
			$('#next').show();
		}
		$(this).on('click', function (e) {
			var sign = ($(this).attr('id') == 'next') ? '+' : '-';
			var newPage = parseInt($('#paging p a.active').text()) + parseInt(sign + 1);

			e.preventDefault();
			if (newPage >= 1) {
				$('#paging p a:nth-child(' + newPage + ')').trigger('click');
			}
		});
	}
})(jQuery);

(function($) {
	$.fn.pageturnNews = function() {
		$(this).live('click', function (e) {
			var pageLength = $('#paging p a').length;
			var page = $(this).text();
			var newsLeftNew = -(parseInt($(this).text()) - 1) * 960 -20;
			
			e.preventDefault();
			$('#news_container').animate({ marginLeft:newsLeftNew }, 500, 'swing');
			$('#paging p a').removeClass('active');
			$('#paging p a:nth-child('+ page +')').addClass('active');
			
			if (page == 1) {
				$('#prev').hide();
				$('#next').show();
			}
			else if (page == pageLength) {
				$('#next').hide();
				$('#prev').show();
				
			}
			else {
				$('#next, #prev').show();
			}
		});
	}
})(jQuery);

(function($) {
	$.fn.filterNews = function() {
		var newssetLength = Math.ceil($('#news_container div.news_detail').length/3);
		
		$(this).click(function (e) {
			var filter = $(this).attr('id').replace(/news_/,'');
			var actualPageLength = $('#paging p a').length;
			
			e.preventDefault();
			$('#news_overview ul a.newsfilter').removeClass('active')
			$(this).addClass('active');
			if (filter != 'all') {
				$('#news_container div.news_detail').css({ display:'block' });
				$('#news_container div.news_detail:not(.' + filter + ')').css({ display:'none' }); // added .news_detail since deeper divs were used also
				$('#news_container').css({ marginLeft:'-20px' });
				var filteredNewsLength = Math.ceil($('#news_container div.' + filter).length/3);
				
				if (filteredNewsLength < newssetLength) {
					if (actualPageLength > filteredNewsLength) {
						for (var i=newssetLength; i > (filteredNewsLength); i--) {
							$('#paging p a:nth-child(' + i + ')').remove();
						}
						$('#paging p a:nth-child(1)').addClass('active');
						if (filteredNewsLength > 1) {
							$('#next').show();
							$('#prev').hide();
						}
						else if (filteredNewsLength == 1) {
							$('#next').hide();
							$('#prev').hide();
						}
					}
					else if (actualPageLength <= filteredNewsLength) {
						for (var i=actualPageLength+1; i <= (filteredNewsLength); i++) {
							var page = '<a href="#">'+ i +'</a>';
							$('#paging p').append(page);
						}
						$('#paging p a').removeClass('active');
						$('#paging p a:nth-child(1)').addClass('active');
						if (filteredNewsLength > 1) {
							$('#next').show();
							$('#prev').hide();
						}
						else if (filteredNewsLength == 1) {
							$('#next').hide();
						}
					}
				}
			}
			else if (filter == 'all') {
				$('#news_container div.news_detail').css({ display:'block' });
				if (actualPageLength < newssetLength) {
					for (var i=actualPageLength+1; i <= (newssetLength); i++) {
						var page = '<a href="#">'+ i +'</a>';
						$('#paging p').append(page);
					}
					$('#paging p a:nth-child(1)').addClass('active');
					if ($('#news_container').children().length > 3) {
						$('#next').show();
						$('#prev').hide();
					}
					else if ($('#news_container').children().length < 3) {
						$('#next').hide();
					}
				}
			}
			
		});
	}
})(jQuery);

(function($) {
	$.fn.styleRadios = function() {
		var radios = $(this);
		var labels = $(this).next('label');
		
		// initialize style radios 
		radios.addClass('radio');
		labels.addClass('radio');
		
		// style fuer labels nach page reload setzen
		$("input.style-radio:checked").next('label').addClass('checked');
		
		labels.click(function () {
			var input = $('input[id=' + $(this).attr('for') + ']');
			if (!$(this).hasClass('checked')) {
				$('input[name=' + $(input).attr('name') + ']').next('label').removeClass('checked');
			}
			$(this).addClass('checked');
		});
	}
})(jQuery);

(function($) {
	$.fn.styleCheckboxes = function() {
		var checkboxes = $(this);
		var labels = $(this).next('label');
		
		// initialize style 
		checkboxes.addClass('checkbox');
		labels.addClass('checkbox');
		
		// style fuer labels nach page reload setzen
		$("input.style-checkbox:checked").next('label').addClass('checked');
		
		labels.click(function () {
			var input = $('input[id=' + $(this).attr('for') + ']');
			$(this).toggleClass('checked');
		});
	}
})(jQuery);

(function($) {
	$.fn.checkMandatoryFields = function() {

	//	var fields = $('form .mandatory');
		var fields = $('.mandatory'); // Bug? Only in IE9?
		
		
		$(this).click(function (e) {
			e.preventDefault();
			
			$.each(fields, function(){
				var type = $(this).attr('type');
				var label = $('label[for=' + $(this).attr('id') + ']');
				
				switch (type) {
				  case "text":
					if ($(this).val() == '') {
						label.addClass('error');
					}
					else {
						label.removeClass('error');
					}
					break;
					case "textarea":
					if ($(this).val() == '') {
						label.addClass('error')
					}
					else {
						label.removeClass('error');
					}
					break;
				  case "checkbox":
				  	var labels  = $('input[name=' + $(this).attr('name') + ']').next('label');
					var inputs = $('input[name=' + $(this).attr('name') + ']:checked');
					
					if (inputs.length == 0) {
						labels.addClass('error');
					}
					else {
						labels.removeClass('error');
					}
					break;
				  case "radio":
				  	var labels  = $('input[name=' + $(this).attr('name') + ']').next('label');
					var inputs = $('input[name=' + $(this).attr('name') + ']:checked');
				
					if (inputs.length == 0) {
						labels.addClass('error');
					}
					else {
						labels.removeClass('error');
					}
					
					break;
				  default:
					break;
				}
			});

			if ($('.error').length == 0) {
				$('p.error-message').css({ visibility:'hidden'});
				if (	$('input[name^=catalog]').length == 0	) {
//					fails in IE9
//					$(this).parents('form').submit();
					document.orderform.submit();
				}
			}
			else {
				$('p.error-message').css({ visibility:'visible'});
				$('label.error').first().focus();
				$(window).scrollTop(	parseInt($('label.error').first().offset().top) -10 	)
			}
			$('form.catalog input[name^=catalog]').checkCatalogChoosen('submitted');
			
		});
	}
})(jQuery);

(function($) {
	$.fn.checkCatalogChoosen = function(check) {
		var submitted = check;

		if (submitted == 'submitted') {
//console.log($('input[name^=catalog]:checked').length);	
			if (	$('input[name^=catalog]:checked').length == 0	||	$('input[name^=catalog]:checked').length > 3	) {			
				$('p.error-message').css({ visibility:'visible'});
			} else {  
				$('p.error-message').css({ visibility:'hidden'});
				if ($('.error').length == 0) {
//					fails in IE9
//					$(this).parents('form').submit();
					document.orderform.submit();
				}
			}
			
		}
	}
})(jQuery);

(function($) {
	$.fn.showDesigner = function() {
		var designer = $('#designer_overview .designer');
		var moebelLink = $('#moebel a');
		
		designer.click(function (e) {
			var designerOf = $(this);
			var designerOther = $('#designer_overview .designer:not(#' + designerOf.attr('id') + ')')
			var h2 = $(this).find('h2').clone(true);
			var button = $(this).find('a.button').clone(true);
			var designerClass = $(this).attr('id').replace(/_box/g,'');
			var imgAll = $('#designer_overview img.color');
			var imgColor = $(this).find('.color');
			var infobox = $('.d_txt');
			var moebel = $('#moebel a');
			var moebelOf = $('#moebel a.' + designerClass);
			var overlay = $('#designer_overview div.overlay');
			
			if (!(infobox.hasClass(designerClass))) {
				infobox.fadeOut(125, function () {
					if ($('#designer_overview .designer[style*=5]').length == 0) {
						designer.animate({ opacity:1 }, 125);
					}
					imgAll.css({ zIndex:0 });
					imgColor.css({ zIndex:2 });
					infobox.html('');
					infobox.attr('class','d_txt');
					infobox.append(h2);
					infobox.append(button);
					infobox.addClass(designerClass);
					moebel.removeClass('active')
					moebelOf.addClass('active');
				});
				infobox.fadeIn(125, function () {
				});
				designerOther.animate({ opacity:0.5 }, 125);
				designerOf.animate({ opacity:1 }, 125);
			}
			else {
				infobox.fadeOut(125, function () {
					designer.animate({ opacity:1 });
					imgAll.css({ zIndex:0 });
					infobox.html('');
					infobox.attr('class','d_txt');
					moebel.removeClass('active')
				});
			}
		});
		
		moebelLink.click(function (e) {
			e.preventDefault();
			if (!($(this).hasClass('active'))) {
				var firstDesigner = $(this).attr('class').split(" ");
				var designerOf = '#' + firstDesigner[0] + '_box';
				$(designerOf).trigger('click');
			}
		});
	}
})(jQuery);

(function($) {
	$.fn.toggleMetaBorder = function(check) {
		var ul = $(this).parents('ul');
		
		if ($('#menu_meta_container a.opened').length == 1) {
			ul.addClass('no_border');
		}
		$(this).mouseover(function(){
		  ul.addClass('no_border');
		}).mouseout(function(){
			if (!($('#menu_meta_container a.opened').length == 1)) {
		  		ul.removeClass('no_border');
			}
		});

	}
})(jQuery);

(function($) {
	$.fn.markTextarea = function(check) {
		$(this).focus(function () {
			$(this).select();
		});
	}
})(jQuery);

(function($) {
	$.fn.callbackMandatory = function(check) {
		var input = $('input[id=' + $(this).attr('for') + ']');
		var inputTelephone = $('input[id=telephone]');
		var labelTelephone = $('label[for=telephone]');
		$(this).click(function () {
			if ($(this).hasClass('checked')) {
				inputTelephone.addClass('mandatory');
				labelTelephone.text(labelTelephone.text() + ' *');
			}
			else {
				inputTelephone.removeClass('mandatory');
				labelTelephone.text(labelTelephone.text().replace(/ \*$/,''));
			}
		});
	}
})(jQuery);
