/**
 *
 */
/**
 * Init Slider
 */
function PRIC_initSlider() {
	try 
	{
	
		var $slider = $('#PRIC_sliderFrames');
		var width = $slider.children().length * 26;
		var sliderFrameCount = $slider.children().length;
		
		$('#PRIC_sliderDots').css('width', width);
		
		// *** Slider-Navigation
		$slider.cycle({
			speed: 1000,
			timeout: 6000,
			pause: 1,
			pager: '#PRIC_sliderDots',
			pagerAnchorBuilder: function(idx, elem) {
				return '<a href="#' + idx + '" title="Bild ' + (idx + 1) + ' von ' + sliderFrameCount + '"></a>';
			},
			fx: 'fade',
			startingSlide: 0
		});
		
		$('#PRIC_sliderFrames, #PRIC_sliderPause').hover(function() {
			$('#PRIC_sliderPause').show();
		}, function() {
			$('#PRIC_sliderPause').hide();
		});
	} 
	catch (e) 
	{
		log('Init Slider failed!')
	}
}

/**
 * Init Newsticker
 */
function PRIC_initNewsticker() {
	try 
	{
	log('Ticker');
		var $ticker = $('#PRIC_newsTicker');
		
		// *** Slider-Navigation
		$ticker.cycle({
			speed: 1000,
			timeout: 6000,
			pause: 1,
			fx: 'scrollUp',
			startingSlide: 0,
			width: '700px',
			cleartype: false
		});
	} 
	catch (e) 
	{
		log('Init Newsticker failed!')
	}
}

/**
 * Init Dropdown-Menu
 */
function PRIC_initDropdown() {
	try 
	{
		// *** IE 7 shows full width of dropdown not before scroll effect finished, so: No effect in IE 7
		if ($.browser.msie && parseInt($.browser.version) <= 7)
		{
			$('#PRIC_menu>li').hover(function() {
				$(this).find('div').stop(true,true).show();
			}, function() {
				$(this).find('div').stop(true,true).hide();
			});
		}
		else
		{
			$('#PRIC_menu>li').hoverIntent({
				'over': function(ev) 
				{
						$(this).find('div').slideDown();
						log('down:'+$(this).attr('class'));
				}, 
				'out': function(ev) {
					$(this).find('div').slideUp('fast');
					log('up: '+$(this).attr('class'));
				},
				timeout: 10,
				interval: 40
			});
		}
	} 
	catch (e) 
	{
		log('Init Dropdown failed!')
	}
}

/**
 * init Language Selector
 */
function PRIC_initLangSelect() {
	try 
	{
		$('#PRIC_langSelect form').jqTransform();
	} 
	catch (e) 
	{
		log('Init jqTransform for Language select failed!');	
	}
}

/**
 * init Language Selector
 */
function PRIC_initForms() {
	try 
	{
		$('form.PRIC_jqTransform').jqTransform();
	} 
	catch (e) 
	{
		log('Init jqTransform for Language select failed!');	
	}
}

/*
 * Init Gallery
 */
var currentGalleryViewport = 0;
function PRIC_initGallery()
{
	
	try 
	{
		
		var itemWidth 				= 48;   // Total width of a Thumb (width + padding + border + margin)
		var $gallery 					= $('#PRIC_galleryFrames');
		
		var galleryImageCount = $gallery.children().length;
		var totalItemsWidth 	= galleryImageCount * itemWidth; 
		var viewportWidth			= $('#PRIC_galleryThumbsViewport').width();
		
		var $galleryCounter 	= $('#PRIC_galleryCounter');
		
		$galleryCounter.text('1/'+galleryImageCount);
		
		$('#PRIC_galleryThumbs').css('width',totalItemsWidth);
		
		// *** Slider-Navigation
		$gallery.cycle({
			speed: 1000,
			timeout: 0,
			pause: 1,
			pager: '#PRIC_galleryThumbs',
			pagerAnchorBuilder: function(idx,elem) {
				var src = $(elem).attr('src');
				return '<a href="#'+idx+'" class="PRIC_galleryThumb" title="Bild '+(idx+1)+' von '+galleryImageCount+'"><img src="'+src+'" /></a>';
			},
			onPagerEvent: function(idx,elem) {
				$galleryCounter.text((idx+1)+'/'+galleryImageCount);
				PRIC_updateGalleryControls(idx,galleryImageCount);
			},
			fx: 'fade',
			startingSlide: 0,
			prev: '#PRIC_galleryControlPrev',
			next: '#PRIC_galleryControlNext',
			onPrevNextEvent: function (isNext, idx, elem) {
				var itemPos = itemWidth * idx;
				var itemViewport = Math.floor(itemPos / viewportWidth);
				if (itemViewport > currentGalleryViewport)
				{
					$('#PRIC_galleryThumbs').animate({left: '-='+viewportWidth});
					currentGalleryViewport = itemViewport;
				}
				else if (itemViewport < currentGalleryViewport)
				{
					$('#PRIC_galleryThumbs').animate({left: '+='+viewportWidth});
					currentGalleryViewport = itemViewport;
				}
				$galleryCounter.text((idx+1)+'/'+galleryImageCount);
				PRIC_updateGalleryControls(idx,galleryImageCount);
			},
			nowrap: 1
		});
	} 
	catch(e) 
	{
		log('Init Product Gallery failed!');
	}
}

/**
 * Enable/disable Gallery-Controls
 * 
 * @param {Number} idx - current Slide
 * @param {Number} count - total number of Slides
 */
function PRIC_updateGalleryControls(idx,count)
{
	$('#PRIC_galleryControlNext, #PRIC_galleryControlPrev').removeClass('disabled');
	if (idx == 0)
	{
		$('#PRIC_galleryControlPrev').addClass('disabled');
	}
	else if (idx == (count-1))
	{
		$('#PRIC_galleryControlNext').addClass('disabled');
	}
}

/**
 * Show IE Version Warning
 */
function PRIC_initIEWarning()
{

	if (jQuery.browser.msie
	&&  jQuery.browser.version < '7.0'
	&&  $.cookie('ie_version_warning') != 'off'	)
	{
		$('#cb_ie').click(function(){
			$.cookie('ie_version_warning', 'off', {path: '/'});
			$.fn.colorbox.close()
		});

		$.fn.colorbox({href: '#PRIC_IEVersionWarning', inline: true, open:true, width: 640});
	}
}

/**
 * Init Colorbox-Anchors
 */
function PRIC_initColorbox()
{
	/**
	 * Colorbox-Images
	 */
	try 
	{
		var $cbox_images = $('a.cbox_image');
		if ($cbox_images.length > 0) 
		{
			$('a.cbox_image').colorbox();
		}
	}
	catch(e)
	{
		
	}	
			
	/**
	 * Open Link-Target in Colorbox iFrame layer
	 * Anchors with this class must contain parameter width and height
	 */
	try 
	{
		var $cbox_iframes = $('a.cbox_flexibleIframe');
		if ($cbox_iframes.length > 0) 
		{
			$cbox_iframes.colorbox({
				innerWidth: function() {
					var href = $(this).attr('href').split('?');
					var query = href[1];
					var paramPairs = query.split('&');
					for (pair in paramPairs) 
					{
						keyValue = paramPairs[pair].split('=');
						if (keyValue[0] == 'width') 
						{
							return keyValue[1]
						}
					}
				},
				innerHeight: function() {
					var href = $(this).attr('href').split('?');
					var query = href[1];
					var paramPairs = query.split('&');
					for (pair in paramPairs) 
					{
						keyValue = paramPairs[pair].split('=');
						if (keyValue[0] == 'height') 
						{
							return keyValue[1]
						}
					}
				},
				iframe: true
			});
		}
	} 
	catch (e) 
	{
	}
	
}

/**
 * Init Input-Default-String-Toggle
 */
function PRIC_initInputDefaults() {
	try 
	{
		var $inputs = $('input[type=text][data-default]');
		
		if ($inputs.length > 0) 
		{
			$inputs.focus(function() {
				var default_string = $(this).attr('data-default');
				if ($(this).val() == default_string) 
				{
					$(this).val('');
				}
			})
			$inputs.blur(function() {
				var default_string = $(this).attr('data-default');
				if ($(this).val() == '') 
				{
					$(this).val(default_string);
				}
			})
		}
	} 
	catch (e) 
	{
		log('Init Input Defaults failed!')
	}
}

/***
 * Default Accordion Method
 */
function PRIC_initAccordion() {
	try 
	{
		var $accordionHeads = $('.PRIC_accordion h3');
		
		$accordionHeads.click(function() {
			if ($(this).hasClass('closed'))
			{
				$(this).removeClass('closed').next('.PRIC_accordionContent').each(function(idx,elem) {
					if(elem.nodeName != 'H3') 
						$(elem).show();
					else
						return false;
				});
			}
			else
			{
				$(this).addClass('closed').next('.PRIC_accordionContent').each(function(idx,elem) {
					if(elem.nodeName != 'H3') 
						$(elem).hide();
					else
						return false;
				});
			}
		});
		
		// *** Close tagged Elements
		$accordionHeads.each( function(idx,elem) {
			if ($(elem).hasClass('closed'))
			{
				$(elem).next('.PRIC_accordionContent').hide();
			}
		});
	} 
	catch (e) 
	{
		log('Init Accordion failed!');
	}
}

/***
 * Banner Overlay
 */
function PRIC_initBannerOverlay()
{
	try 
	{
		var $PRIC_bannerOverlay = $('#PRIC_bannerOverlay');
	
		if ( $PRIC_bannerOverlay.html() != null
		&&   $PRIC_bannerOverlay.html() != '')
		{
			if ($.cookie('pric_banner_overlay') != 'off')
			{
				banner_href = $PRIC_bannerOverlay.html();

				$.fn.colorbox({
					href: banner_href,
					iframe: true,
					inline: false,
					open: true,
					innerWidth: 800,
					innerHeight: 552
				});
				
				$.cookie('pric_banner_overlay', 'off', {path: '/'})
			}
		}
	} 
	catch (e) 
	{
		log('Init Banner Overlay failed!');
	}
}

$(document).ready(function() {
	
	/* IE-Warning */
	PRIC_initIEWarning();
	
	/* init Slider */
	PRIC_initSlider();
	
	/* Init Dropdown */
	PRIC_initDropdown();
	
	/* Init Language Selector */
	PRIC_initLangSelect();
	
	/* Init jqTrans-Forms */
	PRIC_initForms();
	
	/* init Gallery */
	PRIC_initGallery();
	
	/* init Newsticker */
	PRIC_initNewsticker();
	
	/* init Colorbox */
	PRIC_initColorbox();
	
	/* init Form-Defaults-Toggle */
	PRIC_initInputDefaults();
	
	/* Init Default Accordion */
	PRIC_initAccordion();
	
	/* Init Banner Overlay */
	PRIC_initBannerOverlay();
});

/**
 * Write Debug Message (msg) to Console (if available)
 *
 * @param {String} msg
 */
function log(msg) {
	if (typeof console != 'undefined') 
	{
		console.log(msg);
	}
}

