/**
 * Bootstrap.js - Bootstrap for all Javascript functionality
 * 
 * @author  Webstores <info at webstores dot nl>
 *           Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */

WS.DOM.ready(function() {
	// External links
	var a=document.getElementsByTagName('a');for(var i=0;i<a.length;i++){if(/external/.test(a[i].rel)){a[i].target='_blank';}}

	// Toggle input values
	var inputs=WS.DOM.getElementsByClass('toggle-value');inputs.forEach(function(el){toggleInputValue(el);});
	if(typeof jQuery('<input>').attr('placeholder')=='undefined'){jQuery('[placeholder]').focus(function(){var el=jQuery(this);if(el.val()==el.attr('placeholder')){el.val('');}el.removeClass('placeholder');el.addClass('focus');}).blur(function() {var el=jQuery(this);if(el.val()==el.attr('placeholder')||el.val()==''){el.removeClass('focus');el.addClass('placeholder');el.val(el.attr('placeholder'));}}).blur().parents('form').submit(function(){jQuery(this).find('[placeholder]').each(function(){var el=jQuery(this);if(el.val()==el.attr('placeholder')){el.val('');}});});}

	// IE6 hover
	if(WS.browser.IE6){var hoverEls=$('navigation').getElementsByTagName('li');for(var i=0;i<hoverEls.length;i++){WS.Event.addEvent(hoverEls[i],'mouseover',function(){WS.addClass(this,'iehover');});WS.Event.addEvent(hoverEls[i],'mouseout',function(){WS.removeClass(this,'iehover');});}}
	if(WS.browser.IE6){var hoverEls=$('catalog-navigation').getElementsByTagName('li');for(var i=0;i<hoverEls.length;i++){WS.Event.addEvent(hoverEls[i],'mouseover',function(){WS.addClass(this,'iehover');});WS.Event.addEvent(hoverEls[i],'mouseout',function(){WS.removeClass(this,'iehover');});}}

	// Spotlight carousel
	jQuery('#spotlight-scroller').jcarousel({scroll:1,animation:'slow',auto:7,wrap:'both',initCallback:function(carousel){jQuery('#spotlight-items li').each(function(i){jQuery(this).bind('click',function(e){e.preventDefault();carousel.stopAuto();carousel.scroll(i+1);carousel.startAuto();});});carousel.clip.hover(function(){carousel.stopAuto();},function(){carousel.startAuto();});},itemVisibleInCallback:function(carousel,slide,index,state){jQuery('#spotlight-items li:nth-child('+index+')').addClass('selected');},itemVisibleOutCallback:function(carousel,slide,index,state){jQuery('#spotlight-items li:nth-child('+index+')').removeClass('selected');}});

	// Homepage product scrollers
	var homeScrollPanels = {};
	jQuery('.product-slider-track').each(function(i){homeScrollPanels['scroller' + (i + 1)] = new HScrollPanel('product-scroller-content-' + (i + 1), this.id);jQuery('#product-scroller-prev-' + (i + 1)).click(function(e){e.preventDefault();homeScrollPanels['scroller' + (i + 1)].setSliderPosition(homeScrollPanels['scroller' + (i + 1)].getSliderPosition() - 5);});jQuery('#product-scroller-next-' + (i + 1)).click(function(e){e.preventDefault();homeScrollPanels['scroller' + (i + 1)].setSliderPosition(homeScrollPanels['scroller' + (i + 1)].getSliderPosition() + 5);});});	

	// Tabs
	var productSpotlightTabs=new Tabs('product-spotlight-tabs');
	var productScrollerTabs=new Tabs('product-scroller-tabs');
	var productNavTabs=new Tabs('product-navigation-tabs');
	var productDetailTabs=new Tabs('product-details-tabs');

	// Search form
	var searchForm=new SearchForm('search', 'advanced-search');
	
	// Dealer forms
	var dSearch = new DealersForm('dealer-search');
	var dForm = new DealersForm('dealer-form');

	// Accordions
	var accordions=WS.DOM.getElementsByClass('accordion');accordions.forEach(function(el){new Accordion(el);});
	var overViewTableAccordions=WS.DOM.getElementsByClass('overview',document.body,'table');overViewTableAccordions.forEach(function(el){new Accordion(el,{onAfterExpand:function(id){jQuery('#' + id).prev().find('tr:last-child').addClass('expanded');},onAfterCollapse:function(id){jQuery('#' + id).prev().find('tr:last-child').removeClass('expanded');}});});

	// jqZoom
	jQuery('#product-gallery-image').jqzoom({alwaysOn:true,title:false,yOffset:-1,zoomWidth:240,zoomHeight:308,preloadText:'Bezig met laden'});

	// Validation
	var validation=new WS.Validation('generated-form');validation.initialize();
	var dealerSearchValidation=new WS.Validation('dealer-search');dealerSearchValidation.initialize();
	var quickSearchValidation=new WS.Validation('quick-search');quickSearchValidation.initialize();

	// Shadowbox
	Shadowbox.init({overlayOpacity:0.8});

	// Delete buttons
	jQuery('.overview a.delete-icon').click(function() {
		return confirm(lang.confirmDeleteItem);
	});
    // Empty cart
    jQuery('.empty-cart').click(function() {
		return confirm(lang.confirmEmptyCart);
    });

	// Checkout form
	var cf = new CheckoutForm('#checkout-form');

    // Slide message
    //jQuery('#flash-message.success').delay(5000).slideUp(500);
});

