jQuery(function($) {

/************************************************************************************
 * Some css stylings
 ************************************************************************************/
$('#shopping-cart-table > tbody > tr:first').addClass('first');


/************************************************************************************
* Teaser slider on homepage
************************************************************************************/
var loadHomeTeaserSlider = function() {
	$('#teaser-slider').flexslider({
		animation: "slide",
		controlsContainer: ".flexslider-container"
	});
}
if( $('#teaser-slider').length > 0 ) {
	$image = $('#teaser-slider img:first');
	if($image[0].complete) {
		loadHomeTeaserSlider();
	} else {
		$image.load(function() {
			loadHomeTeaserSlider();
		});
	}
}

/************************************************************************************
* Product slider on homepage
************************************************************************************/
$(window).load(function() {
	$('#product-slider-1').flexslider({
		animation: "slide",
		controlsContainer: "#product-slider-1 .productslider-container",
		controlNav: false,
		slideshow: false
	});
});
$(window).load(function() {
	$('#product-slider-2').flexslider({
		animation: "slide",
		controlsContainer: "#product-slider-2 .productslider-container",
		controlNav: false,
		slideshow: false
	});
});

/************************************************************************************
* Slider on cms pages
************************************************************************************/
$(window).load(function() {
	$('#cms-slider').flexslider({
		animation: "slide",
		controlsContainer: ".flexslider-container",
		controlNav: false
	});
});

/************************************************************************************
* Christmas countdown
************************************************************************************/
// $('#home-countdown').christmasCountdown();


/************************************************************************************
* FAQ Accordion
************************************************************************************/
$("#accordion").accordion({
	'autoHeight': true
});

/************************************************************************************
 * Products
 ************************************************************************************/
//
// Tooltip for card icons
//
$('.product-view .icon-set li').tooltip({
	position: ['center', 'left']
	,offset: [0, -6]
	,tipClass: 'tooltip-icon'
	,effect: 'fade'
});
$(document).delegate(".products-grid .icon-set li", "mouseover", function() {
    if (!$(this).data("tooltip")) {
        $(this).tooltip({
				position: ['center', 'right']
				,offset: [0, 6]
				,tipClass: 'tooltip-icon'
				,effect: 'fade'
			}).dynamic();
        $(this).trigger("mouseover");
    }
});
// $(document).delegate(".products-grid .icon-set li.zoom-icon > a", "mouseover", function() {
//     if (!$(this).parent().data("tooltip")) {
//         $(this).parent().tooltip({
// 				position: ['center', 'right']
// 				,offset: [0, 6]
// 				,tipClass: 'tooltip-icon'
// 				,effect: 'fade'
// 			}).dynamic();
//         $(this).parent().trigger("mouseover");
//     }
// });

//
// Tooltip for tier prices (and for "Sternstunden" page --> Steuerrechtlicher Hinweis, and for checkout-info --> "So bestellen Sie bei uns")
//
$(document).delegate(".products-grid .tier-prices .link, .product-view .tier-prices .link, .steuer-hinweis .tier-prices .link", "mouseover", function() {
    if (!$(this).data("tooltip")) {
        $(this).tooltip({
				relative: true
				,events: { def: "'',''", tooltip:"'', ''" }
				,offset: [7,0]
			}).dynamic();
        $(this).trigger("mouseover");
    }
});
$('.checkout-info > ul > li:first div.link').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [0,-34]
	,position: ['top', 'right']
});
$('.musterkarten-info > ul > li:first div.link').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [0,-34]
	,position: ['top', 'right']
});

$('.products-grid .tier-prices .link a, .product-view .tier-prices .link a, .steuer-hinweis .tier-prices .link a, .checkout-info > ul > li:first div.link a, .musterkarten-info > ul > li:first div.link a').live('click', function(e) {
	e.preventDefault();
	var api = jQuery(this).parent().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});
$('.products-grid .tier-prices .tooltip a, .product-view .tier-prices .tooltip a, .steuer-hinweis .tier-prices .tooltip a, .checkout-info > ul > li:first .tooltip a.close-tooltip, .musterkarten-info > ul > li:first .tooltip a.close-tooltip').live('click', function(e) {
	e.preventDefault();
	var api = jQuery(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});

//
// Tooltip for customize button
//
$('div.btn-customize-wrap.show-tooltip').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [7,0]
	,position: ['top', 'center']
});
$('button.btn-customize.show-tooltip').click(function(e) {
	e.preventDefault();
	var api = $(this).parent().tooltip();
	console.log(api);
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});
$('div.btn-customize .tooltip a').click(function(e) {
	e.preventDefault();
	//console.log($(this).parents('.tooltip').prev());
	var api = $(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});

//
// Tooltip for cart secure info
//
//$('.block.bottom .teaser-left a').click(function(e){e.preventDefault();})
$('.block.bottom .teaser-left a').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'',''" }
	,offset: [0,10]
	,position: 'center right'
	//,effect: 'fade'
});
$('.block.bottom .teaser-left .tooltip').append(
	'<div class="btn-close"><a href="#" class="close-tooltip"><img src="/skin/frontend/default/hanra.de/images/btn_close.gif" width="11" height="11" border="0" alt="Schließen" /></a></div>'	
);
$('.block.bottom .teaser-left ul li > a').click(function(e) {
	e.preventDefault();
	var api = $(this).tooltip();
	$('.block.bottom .teaser-left .tooltip').hide();
	if(api.isShown(true)) {
		api.hide();
	} else {
		$('.block.bottom .teaser-left .tooltip').each(function(i) {
		var a = $(this).prev().tooltip();
			a.hide();
		});
		api.show();
	}
});
$('.block.bottom .teaser-left .tooltip .btn-close a').click(function(e) {
	e.preventDefault();
	var api = $(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});

//
// Small info buttons
//
$('div.info-tooltip').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [0,-22]
	,position: ['top', 'right']
});
$('div.info-tooltip a.info-tooltip-link').click(function(e) {
	e.preventDefault();
	var api = $(this).parent().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});
$('table div.tooltip div.btn-close a, .btn-musterkarte-wrap div.tooltip div.btn-close a').click(function(e) {
	e.preventDefault();
	//console.log($(this).parents('.tooltip').prev());
	var api = $(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});

//
// Configurator help links
//
$('#card-configurator-help ul li > a').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [0,-60]
	,position: ['top', 'right']
});
$('#card-configurator-help ul li > a').click(function(e) {
	e.preventDefault();
	var api = $(this).tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});
$('#card-configurator-help div.tooltip div.btn-close a').click(function(e) {
	e.preventDefault();
	var api = $(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});


/************************************************************************************
 * Technical teasers
 ************************************************************************************/

// left teaser
$('.technical-teaser .versand p.link').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [10,221]
	,position: 'top left'
});

// show one right teaser randomized
var rand = Math.ceil(Math.random()*$('.technical-teaser .right-teaser').length)-1;
//console.log(Math.ceil(Math.random()*$('.technical-teaser .right-teaser').length)-1);
$($('.technical-teaser .right-teaser')[rand]).show();

// right teasers
$('.technical-teaser .right-teaser p.link').tooltip({
	relative: true
	,events: { def: "'',''", tooltip:"'', ''" }
	,offset: [10,216]
	,position: 'top left'
});
// append close button to tooltip
$('.technical-teaser .tooltip').append(
	'<div class="btn-close"><a href="#" class="close-tooltip"><img src="/skin/frontend/default/hanra.de/images/btn_close.gif" width="11" height="11" border="0" alt="Schließen" /></a></div>'	
);
// show/hide on click on link
$('.technical-teaser p.link a').click(function(e) {
	e.preventDefault();
	var api = $(this).parent().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});
// show/hide on click on close button
$('.technical-teaser .tooltip .btn-close a').click(function(e) {
	e.preventDefault();
	var api = $(this).parents('.tooltip').prev().tooltip();
	if(api.isShown(true)) {
		api.hide();
	} else {
		api.show();
	}
});

/************************************************************************************
 * Product grid
 ************************************************************************************/

//
// Zoom product images
// 
// $(document).delegate('.zoom-icon', 'click', function(e) {
// 	e.preventDefault();
// 	//$(this).parents('.item').find('.product-image').trigger('click');
// 	$(this).find('.zoom').trigger('click');
// 	//console.log( $(this).html() );
// 	//alert($(this).find('.zoom'));
// });

function initProductlistZoom() {
	$('.zoom-icon .zoom, .data-table a.product-image, .data-table a.preview')
	   	.not('#wishlist-view-form .data-table a.product-image')
	   	.fancybox({
			 overlayShow: true
			,overlayOpacity: 0
			,transitionIn: 'fade'
			,transitionOut: 'fade'
			,speedIn: 300
			,speedOut: 300
			,hideOnContentClick: true
			,titleShow: false
		});
}
initProductlistZoom();

$('.inline-movie').fancybox({
	type: "iframe"
	,width: 700
	,height: 394
});


/************************************************************************************
 * Product view
 ************************************************************************************/

//
// product images, allow zooming only for main product image, plain view for more images 
//
var tmpClass = $('.product-img-wrap').attr('class');
$('.product-image-change').click(function(e) {
   e.preventDefault();
   $('.product-image-zoom').hide();
   $('.product-img-wrap').attr('class', 'product-img-wrap');
   $('.product-img-wrap .icon-set').hide();
   if($('.product-img-wrap .product-img-nozoom').length > 0 ) {
		$('.product-img-wrap .product-img-nozoom').replaceWith('<div class="product-img-nozoom">'
                  +'<div class="product-img-nozoom-wrap">'
                     +'<img src="'+$(this).attr('href')+'" />'
                  +'</div>'
               +'</div>');
	} else {
		$('.product-img-wrap').append('<div class="product-img-nozoom">'
                  +'<div class="product-img-nozoom-wrap">'
                     +'<img src="'+$(this).attr('href')+'" />'
                  +'</div>'
               +'</div>');
	}
});
$('.cloud-zoom-gallery').click(function(e) {
   e.preventDefault();
   $('.product-img-nozoom').remove();
   $('.product-img-wrap').attr('class', tmpClass);
   $('.product-image-zoom').show();
	$('.product-img-wrap .icon-set').show();
});

/************************************************************************************
 * Client definition when creating customer account
 ************************************************************************************/
$('#i-am').iamclient({
	// group_id_private: 1,
	// 	group_id_company_tax: 2,
	// 	group_id_company_notax: 3
});

/************************************************************************************
 * Check VAT number against VIES
 ************************************************************************************/
			$('#taxvat, #billing-taxvat input')
				.change(function() {
					var el = $(this);
					el.addClass('processing');
					$.post("/scripts/ajaxViesChecker.php", { input: el.val() }, function(data){
					data = JSON.parse(data);
					console.log(data);
					if(data.valid) {
						el.removeClass('validation-failed');
						el.removeClass('processing');
						el.addClass('approved');
						el.next().remove();
						el.prev('#isValidTaxvat').val('1');
					} else {
						el.prev('#isValidTaxvat').val('0');
						el.next().remove();
						el.removeClass('processing');
						el.removeClass('approved');
						el.addClass('validation-failed');
						var errMsg = (data.errorMessage) ? data.errorMessage : 'Hinweis: Ihre USt.-ID ist entweder ungültig oder kann aus technischen Gründen derzeit nicht validiert werden. Korrigieren Sie bitte Ihre Eingabe oder versuchen Sie es zu einem späteren Zeitpunkt noch einmal.';
						el.parent().append('<div class="validation-advice" style="">'+errMsg+'</div>');
						/*
if(data.errorCode == 'INVALID_INPUT' || data.valid == false) {
							$(this).val('');
						} else {
							$(this).val('-');
						}
*/
						/*
if(data.errorCode || data.valid == false) {
							$(this).val('');
						} 
*/
					}
				});
			});
			
			// prevent form from being submitted via enter before vat number is checked against VIES
			$('#taxvat, #billing-taxvat input')
				.keydown(function(e) {
					var code = e.which;
					if(code==13) e.preventDefault();
				});


/************************************************************************************
 * Color selector
 ************************************************************************************/
$('#filter-color a').click(function(e) {
	e.preventDefault();
	setLocation($(this).attr('href'));
});


/************************************************************************************
 * Remove article links in cart
 ************************************************************************************/
$('.btn-remove-pdf, .btn-remove-check').click(function(e) {
	e.preventDefault();
	if( $(this).hasClass('btn-remove-check') ) {
		$(this).parents('tr:first').prev().prev().find('dd.datencheck input:checkbox').removeAttr('checked');
		$(this).parents('form').submit();
	}
	if( $(this).hasClass('btn-remove-pdf') ) {
		$(this).parents('tr:first').prev().find('dd.pdf input:text').val('');
		$(this).parents('tr:first').prev().find('dd.datencheck input:checkbox').removeAttr('checked');
		$(this).parents('form').submit();
	}
});

/************************************************************************************
 * Add quality check in cart
 ************************************************************************************/
$('.add-qualitycheck').click(function(e) {
	e.preventDefault();
	$(this).parents('tr:first').prev().prev().find('dd.datencheck input:checkbox').attr('checked', 'checked');
	$(this).parents('form').submit();
});

/************************************************************************************
 * Edit individualization in cart
 ************************************************************************************/
$('.edit-indiv').click(function(e) {
	e.preventDefault();
	window.location.href = $(this).parents('tr:first').prev().find('a[name=editUrl]').attr('rel');
});


});

jQuery.noConflict();



