var roecklBaseUrl = '';
var roecklProductImgCurrent = 0;
var roecklProductImgNumOf = 0;

$(document).ready(function () {

	roecklBaseUrl = $('base').attr('href');
	
	var tabsConf = {effect: 'fade'};
	
	if($('#productfinder .tabs-nav a.current').length) { tabsConf.initialIndex = 1; };
	
	$('.tabs-nav:not(.tabs-nav-static)').tabs('.tabs-pane', tabsConf);
	
	$('.accordion-pane:not(.accordion-pane-act)').hide();
	$('.accordion-pane').prevAll('h4')
	.click( function(){ $(this).toggleClass('accordion-header-act').nextAll('.accordion-pane:first').toggleClass('accordion-pane-act').slideToggle();} )	

	$('.image-teaser').hover(
		function() {$(this).addClass('image-teaser-ro');},
		function() {$(this).removeClass('image-teaser-ro');}
	);

	var scrollableConf = {
		items: '#product-nav-items',
		prev: '.product-nav-prev',
		next: '.product-nav-next',
		mousewheel: true
	}	
	
	$('#product-nav').scrollable(scrollableConf); //autoscroll({ interval: 5000, autoplay: true });
	
	var scrollableApi = $('#product-nav').data("scrollable");
	if(scrollableApi != undefined) { scrollableApi.seekTo($('#product-nav .product-teaser-act').parents('.item').index(), 0); }
	

	var tooltipConf = { effect: 'fade', offset: [5, 60], relative: true }
	$('.with-tooltip').tooltip(tooltipConf);
	
	var imgTooltipConf = { effect: 'fade', offset: [-5, 90], relative: true }
	$('.with-img-tooltip').tooltip(imgTooltipConf);
	
	$('.with-id-tooltip').each(function(index) {
		var idTooltipConf = { effect: 'fade', offset: [0, 50], tip: '#' + $(this).attr('rel'), relative: true }
		$(this).tooltip(idTooltipConf);	 
	});

	var overlayConf = {
		mask: { 
			color: '#111', 
			opacity: 0.7, 
			loadSpeed: 'fast',
			closeSpeed: 'fast'		
		},
		fixed: false,
		speed: 'fast',
		close: '.overlay-close',
		top: 'center'		
	};
	
	$('.overlay-link').overlay(overlayConf);
	
	$('.product-features a').overlay(overlayConf);
	
	roecklProductImgNumOf = $('#product-imgs-selectcolor option').length;
	if (roecklProductImgNumOf > 1) {
		$('#product-img-prev, #product-img-next').show();
		$('#product-img-prev, #overlay-img-prev').click( function() {
			roecklProductImgCurrent--;
			if (roecklProductImgCurrent < 0) {
				roecklProductImgCurrent = roecklProductImgNumOf - 1;
			}
			$('#product-imgs-selectcolor option:eq(' + roecklProductImgCurrent + ')').attr('selected','selected');	
			roeckleUpdateImg();
		});
		$('#product-img-next, #overlay-img-next').click( function() {
			roecklProductImgCurrent++;
			if (roecklProductImgCurrent > roecklProductImgNumOf - 1) {
				roecklProductImgCurrent = 0;
			}
			$('#product-imgs-selectcolor option:eq(' + roecklProductImgCurrent + ')').attr('selected','selected');	
			roeckleUpdateImg();
		});
		$('#product-imgs-selectcolor').change( function() {
			roecklProductImgCurrent = $('#product-imgs-selectcolor option').index($('#product-imgs-selectcolor option:selected'));	
			roeckleUpdateImg();
		});
	}
	
	$('.product-orderform-open').click( function() {
		$(this).parents('tr').addClass('product-ordering-act').next().children().show();	
	});
	
	$('.product-orderform-close').click( function() {
		$(this).parents('td').hide().parents('tr').prev().removeClass('product-ordering-act');
	});
	

	if ($('.tx-wecmap-pi3').length) {
		if (typeof GEvent == "object") {
			GEvent.addDomListener(window, "load", function() { getAddress(); });
		}		
	}
	
	$('#storefinder-form-country').change( function() {
		// Reset values on country change
		$('#storefinder-form-radius').val('25');
		$('#storefinder-form-zip').val('');
		$('#storefinder-form-city').val('');
		// Submit form
		$('#storefinder-form').submit();
	});	
	
	$('#storefinder-form-section').change( function() {
		// Submit form
		$('#storefinder-form').submit();
	});		
		
	if ($('.colsheader-with-intro').length) { roecklEmbedIntroFlash(); }
	
	$('.product-ordertable-color-row input').keyup(
		function() {
			var orderTable = $(this).parents('.product-ordertable');
			roecklCalculateNumOfProducts(orderTable);
		}
	);
	
	$.tools.dateinput.localize('de', {
		months: 'Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember',
		shortMonths:  'Jan,Feb,Mär,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez',
		days:         'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag',
		shortDays:    'So,Mo,Di,Mi,Do,Fr,Sa'
	});
	
	$('.dateinput').dateinput({ firstDay:1, format: 'dd.mm.yyyy', lang: roecklLanguage });
	
});

function roecklCalculateNumOfProducts(orderTable) {

	if (orderTable) {

		var totalSum = 0;

		$(orderTable).find('.product-ordertable-color-row').each(function() {
			var rowSum = 0;
			$(this).find('input').each (function() {
				var inputVal = parseInt($(this).val());
				if (!isNaN(inputVal)) { rowSum += inputVal; }
			});
			if (rowSum > 0) {
				totalSum += rowSum;
				$(this).find('.product-ordertable-sum').html('<span style="float: left;">=&nbsp;</span>' + rowSum);
			} else {
				$(this).find('.product-ordertable-sum').html('');
			}
		});
		
		if (totalSum > 0) {
			$(orderTable).find('.product-ordertable-totalsumlabel').html('<div>Gesamt</div>');
			$(orderTable).find('.product-ordertable-totalsum').html('<span style="float: left;">=&nbsp;</span>' + totalSum);
		} else {
			$(orderTable).find('.product-ordertable-totalsumlabel').html('&nbsp;');
			$(orderTable).find('.product-ordertable-totalsum').html('&nbsp;');	
		}
	}
		
}

function roecklEmbedIntroFlash() {

	var introConf = {
		src: 'typo3conf/ext/roeckl_sys/swf/intro.swf',
		width: 980,
		height: 360,
		wmode: 'transparent'
	};

	if(roecklLanguage == 'en') {
		var introFlashvars = {
			xmlpath: '/fileadmin/sys/intro/xml/intro_en.xml',
			slidetime: 2.8
		};	
	} else {
		var introFlashvars = {
			xmlpath: '/fileadmin/sys/intro/xml/intro_de.xml',
			slidetime: 2.8
		};
	}	

	$('.colsheader-with-intro').flashembed(introConf , introFlashvars);

}

function roecklEmbedColsheaderFlash() {
	var colsheaderConf = {
		src: 'typo3conf/ext/roeckl_sys/swf/colsheader.swf',
		wmode: 'transparent'
	};

	var colsheaderFlashvars = {
		imgsrc: roecklColsheaderImage,
		imgtitle: roecklColsheaderTitle,
		imgsubtitle: roecklColsheaderSubtitle
	};

	$('.colsheader-with-flash').css('width', '980px').css('left', '-5px').flashembed(colsheaderConf, colsheaderFlashvars);
	
}

function roecklEmbedTimeline(selector, flashvars) {

	var timelineConf = {
		src: 'typo3conf/ext/roeckl_sys/swf/timeline.swf',
		width: 690, height: 280, bgcolor: '#333333', cachebusting: true
	};

	$(selector).flashembed(timelineConf, flashvars);

}

function getAddress() {

	var latlng = WecMap.get("storefinder").getCenter();
	geocoder = new GClientGeocoder();
	geocoder.setBaseCountryCode('de') 
	geocoder.getLocations(latlng, showAddress);
	
	if($('.storefinder-results > a').length == 1) {
		$('.storefinder-results > a').trigger('click');
	}

}

function showAddress(response) {

	if (!response || response.Status.code != 200) {
	
	} else {
	
		if (response.Placemark[0].AddressDetails.Country.AdministrativeArea) {
			info = response.Placemark[0].AddressDetails.Country.AdministrativeArea.SubAdministrativeArea;
			if (typeof info != 'undefined') {
				if (typeof info.Locality != 'undefined') {
					if (typeof info.Locality.DependentLocality != 'undefined') {
						$('#storefinder-form-zip').val(info.Locality.DependentLocality.PostalCode.PostalCodeNumber);
						$('#storefinder-form-city').val(info.Locality.LocalityName);
					} else {
						$('#storefinder-form-zip').val(info.Locality.PostalCode.PostalCodeNumber);
						$('#storefinder-form-city').val(info.Locality.LocalityName);
					}
				}
			}
		}
	}
}

function roeckleUpdateImg() {
	$('.overlay-img img.overlay_outsidehand_image').attr('src', $('#product-imgs-selectcolor option:selected').val());
	$('#product-img-outsidehand img').attr('src', $('#product-imgs-selectcolor option:selected').val());
	return false;
}

jQuery.fn.fadeToggle = function(speed, easing, callback) {
  return this.animate({opacity: 'toggle'}, speed, easing, callback);  
};
