//IE7 & IE8 indexOf Bugfix
if(!Array.indexOf){
	Array.prototype.indexOf = function(obj, start) {
	     for (var i = (start || 0), j = this.length; i < j; i++) {
	         if (this[i] === obj) { return i; }
	     }
	     return -1;
	};
}

$(document).ready(function() {
	
	$.ajaxSetup({cache: false});
	
	  // Lanima Nivo Slider
  	$('#lanima-slider').nivoSlider({
  	    //effect: 'fade', // Specify sets like: 'fold,fade,sliceDown'
        animSpeed: 1500, // Slide transition speed
        pauseTime: 6000, // How long each slide will show
        controlNav: false, // 1,2,3... navigation
		prevText: '&laquo; Vorheriges', // Prev directionNav text
        nextText: 'Nächstes &raquo;' // Next directionNav text
    });
	
	//	Variable number of visible items with variable sizes
	$('#teaser-carousel').carouFredSel({
		width: 951,
		height: 'auto',
		scroll: 1,
		items: {
			visible: 4,
			minimum: 4
		},
		auto:{
			play:true,
			duration:0.2
		},
		next: '#next',
		prev: '#prev'
	});
	
	// Collapsible Panels
	$("div.option a").click(function(){
		var o = $(this);
		var type = $(o).attr('class');

		if (type != 'opened') {
			/* Do the slide and show the Form */
			openPanel(o);
		} else {
			closePanel(o);
		}
	});
	
	openPanel = function(o,speed,cb) {
		var speed = speed || 'slow';
		
		$(o).attr('class', 'opened');
		$(o).next('div.collapsible').slideToggle(speed, function(){
			$(o).next('div.collapsible').css('display', 'block');
			if(typeof cb == 'function') {
				cb()
			}
		});
	};
	
	closePanel = function(o,speed,cb) {
		var speed = speed || 'slow';
	
		/* Do the slide and show the Form */
		$(o).attr('class', 'closed');
		$(o).next('div.collapsible').slideToggle(speed, function(){
			$(o).next('div.collapsible').css('display', 'none');
			if(typeof cb == 'function') {
				cb()
			}
		});
	};
	
	// CP Lieferadresse & Ware abholen
	$("h3.delivery").click(function(){		
		$(this).toggleClass('opened');
		$(this).next('div').slideToggle('slow');
		$(this).find('a').toggleClass('opened');
		$("h3.collect.opened").next('div').slideToggle('slow');
		$("h3.collect.opened").find('a').toggleClass('opened');
		$("h3.collect.opened").toggleClass('opened');
	});
	
	// Waren abholen wird angeklickt
	$("h3.collect").click(function(){
		$(this).toggleClass('opened');
		$(this).next('div').slideToggle('slow');
		$(this).find('a').toggleClass('opened');
		$("h3.delivery.opened").next('div').slideToggle('slow');
		$("h3.delivery.opened").find('a').toggleClass('opened');
		$("h3.delivery.opened").toggleClass('opened');
	});
	
	// Lieferadresse Checkbox wird angeklickt
	$("input#deliveryaddress").click(function(){
		if(!$("select[name='location']").attr('disabled')){
			$("input#collect").removeAttr('checked');
			$("select[name='location']").attr('disabled','disabled');
			$("span#selectlocation").toggleClass('disabled');
			$("input#datepicker").attr('disabled','disabled');
			$("input#datepicker").toggleClass('required');
		}
		if($('.deliveryaddress dd input').attr('disabled')){
			$('.deliveryaddress dd input').removeAttr('disabled');
		}else{
			$('.deliveryaddress dd input').attr('disabled','disabled');
		}
		$('.deliveryaddress dd input').toggleClass('required');
		$('.deliveryaddress dd input#lcompany').toggleClass('required');
	});
	
	// Waren abholen Checkbox wird angeklickt
	$("input#collect").click(function(){
		if(!$(".deliveryaddress dd input").attr('disabled')){
			$("input#deliveryaddress").removeAttr('checked');
			$(".deliveryaddress dd input").attr('disabled','disabled');
			$('.deliveryaddress dd input').toggleClass('required');
		}
		if($("select[name='location']").attr('disabled')){
			$("select[name='location']").removeAttr('disabled');
			$("input#datepicker").removeAttr('disabled');
		}else{
			$("select[name='location']").attr('disabled','disabled');			
			$("input#datepicker").attr('disabled','disabled');
		}
		$("span#selectlocation").toggleClass('disabled');
		$("input#datepicker").toggleClass('required');
	});
	
	// Date Picker
	$(function() {
		$( "#datepicker" ).datepicker();
	});
	
	// CP Login
	$("a.lost").click(function(){		
		$(".login-left").find('.data').slideToggle('slow');
	});
	
	// Slider -- //
		
	// Taste 1
	$(function() {
			
		$( ".slider-taste.1" ).slider({
			range: true,
			min: 0,
			max: 5,
			values: [ slider.taste1.min, slider.taste1.max ],
			slide: function( event, ui ) {
				if (ui.values[1]-ui.values[0] < 1){
              		return false;
          		}
			},
			change: function(event,ui){
				$( 'input[name="taste1"]' ).val(ui.values[ 0 ] + "-" + ui.values[ 1 ]);
				product.onFinderChange();
			}
		});
		$( 'input[name="taste1"]' ).val($( ".slider-taste.1" ).slider( "values", 0 ) + "-" + $( ".slider-taste.1" ).slider( "values", 1 ) );
	});
	
	// Taste 2
	$(function() {
		$( ".slider-taste.2" ).slider({
			range: true,
			min: 0,
			max: 5,
			values: [ slider.taste2.min, slider.taste2.max ],
			slide: function( event, ui ) {
				if (ui.values[1]-ui.values[0] < 1){
              		return false;
          		}
			},
			change: function(event,ui){
				$( 'input[name="taste2"]' ).val(ui.values[ 0 ] + "-" + ui.values[ 1 ]);
				product.onFinderChange();
			}
		});
		$( 'input[name="taste2"]' ).val($( ".slider-taste.2" ).slider( "values", 0 ) + "-" + $( ".slider-taste.2" ).slider( "values", 1 ) );
	});
	
	// Taste 3
	$(function() {
		$( ".slider-taste.3" ).slider({
			range: true,
			min: 0,
			max: 5,
			values: [ slider.taste3.min, slider.taste3.max ],
			slide: function( event, ui ) {
				if (ui.values[1]-ui.values[0] < 1){
              		return false;
          		}
			},
			change: function(event,ui){
				$( 'input[name="taste3"]' ).val(ui.values[ 0 ] + "-" + ui.values[ 1 ]);
				product.onFinderChange();
			}
		});
		$( 'input[name="taste3"]' ).val($( ".slider-taste.3" ).slider( "values", 0 ) + "-" + $( ".slider-taste.3" ).slider( "values", 1 ) );
	});
	
	// Price
	$(function() {
		$( ".slider-range" ).slider({
			range: true,
			min: 0,
			max: 150,
			values: [ slider.price.min, slider.price.max ],
			slide: function( event, ui ) {
				$( 'input[name="price"]' ).val( "Fr. " + ui.values[ 0 ] + " - Fr. " + ui.values[ 1 ] );
			},
			change: function(event,ui){
				product.onFinderChange();
			}
		});
		$( 'input[name="price"]' ).val( "Fr. " + $( ".slider-range" ).slider( "values", 0 ) + " - Fr. " + $( ".slider-range" ).slider( "values", 1 ) );
	});
	
	// Set Listener on Finder Changes
	$(function() {
		$("#finder-extended input").click(function(){product.onFinderChange()});
		//$("#finder-extended select").click(function(){product.onFinderChange()});
		$("#finder-extended select").change(function(){product.onFinderChange()});
		
		$("#finder-extended #berater").mousedown(function(){
			product.listener = false;
			product.clearCheckbox($("#berater form[name='begleitend'] :input"));
			product.listener = true;
		});
	});
	
	// -- Slider //
	
	// Validate Forms
	$("form.validate_login_login").validate();
	$("form.validate_login_reset").validate();
	$("form.validate_login_register").validate();
	$("form.validate_address").validate();
	$("form.validate_contact").validate();
	$("form.validate_recommendation").validate({
		showErrors: false									   
	});

// Keyboard Control
  $(document).bind('keyup', function(e){
   var key = e.which;
  	// Enter
  	/*if (key == 13) {
    	if($(".cartcontent").length == 1) {
			try{
				cart.updateCart();
			}
			catch(err){}
		}
    }*/
    // Left
    
	if (key == 37) {
		/*$('#finder-extended ul.tabNavigation a').removeClass('selected');
		$("#finder-extended #berater-tab").addClass('selected');
		$("#finder-extended #experte").hide();
		$("#finder-extended #berater").show();
		product.onFinderChange();*/
		if($("#productindex-container").length == 1) {
			try{
				product.loadProductIndex({page:'prev'});
			}
			catch(err){}
		}
	}
	// Right
    if (key == 39) {
		/*$('#finder-extended ul.tabNavigation a').removeClass('selected');
		$("#finder-extended #experte-tab").addClass('selected');
		$("#finder-extended #berater").hide();
		$("#finder-extended #experte").show();
		product.onFinderChange();*/
		if($("#productindex-container").length == 1) {
			try{
				product.loadProductIndex({page:'next'});
			}
			catch(err){}
		}
	}
    e.preventDefault();
  });
  
});

// Loading Idicator
function showLoading(e) {
	if(e){
		$(e).html('<div class="loading"><p><img src="media/img/ajax-loader.gif" /> Laden...</p></div>')
	}
}


// Limit Text
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}


