/*--------------------------------------------------------------
 *	project: Vorwerk, 2010
 *	created: 2010-02-22
 *	last changed: 2010-05-05
 *	author: Patricia Ross, triplesense
 --------------------------------------------------------------- */



// WICHTIG: jQuery statt jQuery verwenden (wegen Magento)
jQuery(document).ready(function() {
    
        // activate functions
        jQuery.fn.css3workarounds();
        jQuery.fn.tooltipSpanTitle();
        jQuery.fn.tooltipPwdSpanTitle();
        jQuery.fn.zebraTable();
        jQuery.fn.lightbox();
        jQuery.fn.horizontalslider();
        jQuery.fn.topAnchor();

        // activate equal height for teaser with separator
        jQuery('.detailpage-subnav .teaser.image-text.thumb-left.no-bg').equalHeight();
        jQuery('.col-50 .teaser.text-only.no-bg').equalHeight();
        jQuery('.col-33 .teaser.text-only.no-bg').equalHeight();
        jQuery('.col-25 .teaser.text-only.no-bg').equalHeight();

});

/* -------------------------------------------------------------
 *	Scroll to top
 * ------------------------------------------------------------- */
jQuery.fn.topAnchor = function() {

	function positionButton() {
		jQuery(".button-top").css({"top": ((jQuery(window).height()/2)-(jQuery(".button-top").height()/2))});
	}
	positionButton();
	jQuery(window).resize(function() {
		positionButton();
	})
	jQuery('.button-top a').click(function(e){
    e.preventDefault();
    jQuery(this).blur()
    window.scroll(0,0)
  })
}

/*
 * ------------------------------------------------------------- Styling
 * -------------------------------------------------------------
 */
// CSS3 Workarounds for IE
jQuery.fn.css3workarounds = function() {
	jQuery('h2:first-child').addClass('first');
	jQuery('.content h1:eq(0)').addClass('first');
	jQuery('.content h2:eq(0)').addClass('first');
	jQuery('ul.products-grid li:nth-child(4n)').addClass('last-in-row');
	jQuery('ul.products-grid li:nth-child(4n+1)').addClass('first-in-row');
};

// Zebra-Tables
jQuery.fn.zebraTable = function() {
	jQuery('table').each(function() {
		jQuery(this).find('tbody tr:even').addClass('row-even');
	});
};

// Equal Height
jQuery.fn.equalHeight = function() {
	var height = 0;
	var maxHeight = 0;

	// Store the tallest element's height
	this.each(function() {
		height = jQuery(this).outerHeight();
		maxHeight = (height > maxHeight) ? height : maxHeight;
	});

	// Set element's min-height to tallest element's height
	return this
			.each(function() {
				var t = jQuery(this);
				var minHeight = maxHeight - (t.outerHeight() - t.height());
				var property = jQuery.browser.msie
						&& jQuery.browser.version < 7 ? 'height' : 'min-height';

				t.css(property, minHeight + 'px');
			});

};

/*
 * ------------------------------------------------------------- Tooltip
 * -------------------------------------------------------------
 */
jQuery.fn.tooltipSpanTitle = function() {

	jQuery("span.tooltip-title[title]").tooltip( {
		effect : 'fade',
		position : "top center",
		offset : [ -5, -0 ]
	});

};
// Tooltip extra for password srength
jQuery.fn.tooltipPwdSpanTitle = function() {
	jQuery("span.tooltip-pwd[title]").tooltip( {
		effect : 'fade',
		position : "top center",
		offset : [ -5, 60 ],
        tipClass:'tooltippwd'
	});
};

/*
 * -------------------------------------------------------------
 * Lightboxes/Overlay
 * -------------------------------------------------------------
 */
jQuery.fn.lightbox = function() {

	// default Lightbox/Overlay

	jQuery("a[rel]").overlay( {
		mask : '#595552',
		top: 124,
		preload : false,
		fixed : false,
		// for external sites
		onBeforeLoad : function() {
			// grab wrapper element inside content
		var wrap = this.getOverlay().find(".external-content");
		// load the page specified in the trigger
		wrap.load(this.getTrigger().attr("href"));
	}
	});

};

/*
 * -------------------------------------------------------------
 *	Image Gallery
 * -------------------------------------------------------------
 */

jQuery.fn.imagegallery = function() {

	// We only want these styles applied when javascript is enabled
	jQuery('div.gallery-content').css('display', 'block');

	// Initialize Advanced Galleriffic Gallery
	/*
	 * var gallery = jQuery('#gallery-thumbs').galleriffic({ delay: 4000,
	 * numThumbs: 8, preloadAhead: 0, enableTopPager: false, enableBottomPager:
	 * false, maxPagesToShow: 1, imageContainerSel: '#slideshow',
	 * controlsContainerSel: '#controls', captionContainerSel: '#caption',
	 * loadingContainerSel: '#loading', renderSSControls: false, // play/pause
	 * renderNavControls: true, // prev/next photo enableHistory: false,
	 * enableKeyboardNavigation: false, // Specifies whether keyboard navigation
	 * is enabled autoStart: false, syncTransitions: false,
	 * defaultTransitionDuration: 800
	 *
	 * });
	 */


	jQuery('a.trigger').click(function(e) {


			var url = jQuery(this).attr('rev');

			jQuery('#zimage').attr('style', 'width:1200px');
			jQuery('#zimage').attr('src', url);

			if (jQuery(this).hasClass('kickstart')) {
				jQuery('#kickstart').click();
			}

			jQuery('.thumbs li').removeClass('selected');


			var name = jQuery(this).attr('name');

			if (name == '')
			{
				jQuery(this).parent().addClass('selected');
			} else {
				jQuery('#' + name).addClass('selected');
			}

			var product_zoom = new Product.Zoom('zimage','track', 'handle', 'zoom_in', 'zoom_out', 'track_hint');

			return false;
		});

};

/*
 * ------------------------------------------------------------- Horizontal
 * Slider -------------------------------------------------------------
 */
jQuery.fn.horizontalslider = function() {

	// Alle vorhandenen Scroller sonderbehandeln
	handlescrollerhorizontal("#filterscroller");
	handlescrollerhorizontal("#combiscroller1", "chelpt-vct");
	handlescrollerhorizontal("#combiscroller2", "chelpt-att");

	// Filter: zu h4 href linken und Klasse active setzen
	jQuery('.horizontal-slider #filterscroller .item').click(
			function() {
				jQuery('.horizontal-slider #filterscroller .item').removeClass(
						"active");
				jQuery(this).addClass("active");
				location.href = jQuery('div a', this).attr("href");
				return false;
			});

	// Combination: nur Klasse active setzen
	jQuery('.horizontal-slider #combiscroller1 .item').click(
			function() {
				jQuery('.horizontal-slider #combiscroller1 .item').removeClass(
						"active");
				jQuery(this).addClass("active");
			});
	jQuery('.horizontal-slider #combiscroller2 .item').click(
			function() {
				jQuery('.horizontal-slider #combiscroller2 .item').removeClass(
						"active");
				jQuery(this).addClass("active");
			});

};

// Alle Scroller so umblättern, das sie den aktuell aktivierten (geklickten)
// Wert anzeigen
function handlescrollerhorizontal(scroller_select, hidden_field) {

	jQuery(scroller_select)
			.scrollable(
					{
						keyboard : false,
						circular : false,
						onSeek : function(event, data) {
							if (hidden_field != "") {
								items = jQuery('.horizontal-slider ' + scroller_select + ' .item');
								// data = Math.abs(data);
								var item = jQuery(items[data]);
								value = item.attr('id');
								jQuery('#' + hidden_field).val(value);
							}
						}
					});

	if (myscrollerhorizontal = jQuery(scroller_select).data("scrollable")) {

		var pagenum = 0;
		var select = scroller_select + ' .page';
		// console.log (select);
		jQuery(select).each(function(c1, pagediv) {
			jQuery.each(pagediv.children, function(c2, itemdiv) {
				var found = itemdiv.className.search(/active/);
				if (found != -1) {
					pagenum = c1;
				}
			});
		});
		myscrollerhorizontal.move(pagenum, 0);
	}

};

/*
 * -------------------------------------------------------------
 * OnepageCheckout ProgressBar
 * -------------------------------------------------------------
 */
jQuery(document).ready(function() {
    if (typeof (checkout) != "undefined") {
        checkout.gotoSection1 = checkout.gotoSection;
        checkout.gotoSection = function(sectionname) {
            /* call original base function */
            this.gotoSection1(sectionname);
            /* etracker */
            eTrackerCheckoutTargets(sectionname)
            //etrackerOnepage.loadImage(sectionname);
            
            jQuery('#progressbar li').removeClass("active");
            jQuery('#progressbar-' + sectionname).addClass("active");

            /* AS scrolls section into view */
            var elem = jQuery('#opc-'+sectionname);
            if (elem && elem.length && elem.intoViewport) {
                elem.intoViewport();
            }
        };
    }
});

/**
 * Parts of this function copied from http://code.etracker.com/t.js?et=Td9aSV
 */
var etrackerOnepage = {};
etrackerOnepage.loadImage = function (sectionname) {
    var et_dt = new Date();
    var et_tzOffset = et_dt.getTimezoneOffset();
    if (typeof et_pagename == 'undefined') {
        return;
    }
    et_pagename += '%2F' + sectionname;
    et_imageSrc = et_server + '/' + et_cntScript + '?v=' + et_ver + '&java=y&tc='+et_dt.getTime()+'&et_tz=' + et_tzOffset + '&et=' + et_secureId + '&et_ilevel=' + et_ilevel + et_gp + et_up;
    et_imageSrc = et_imageSrc.substr(0, et_maxUrlLength);
    var img;
    img = new Element('img');
    img.id = 'etracker_pixel';
    document.body.appendChild(img);
    img.src = et_imageSrc;
};

/*
 * -------------------------------------------------------------
 * Combination Help Select
 * -------------------------------------------------------------
 */

jQuery(document).ready(function() {
	jQuery(".chelp-vct").click(function() {

		jQuery("#chelp-vct").val(jQuery(this).attr("id"));
		return false;
	});
	jQuery(".chelp-att").click(function() {
		jQuery("#chelp-att").val(jQuery(this).attr("id"));
		return false;
	});
});

/*
 * ------------------------------------------------------------- Swap Value
 * -------------------------------------------------------------
 */

(function($) {
	$.fn.swapvalue = function() {
		var swapValues = [];
		return this.each(function(i) {
			swapValues[i] = $(this).val();
			$(this).focus(function() {
				if ($(this).val() == swapValues[i]) {
					$(this).val("");
				}
			});
			$(this).blur(function() {
				if ($.trim($(this).val()) == "") {
					$(this).val(swapValues[i]);
				}
			});
			$(this).click(function() {
				$(this).val("");
			});

		});

	}

})(jQuery);

jQuery(document).ready(function() {
	jQuery(".swapvalue").swapvalue();
});


/*
 * -------------------------------------------------------------
 * Fade out cart
 * messages (and others)
 * -------------------------------------------------------------
 */

jQuery(document).ready(function() {

	window.setTimeout(function() {
		jQuery('#messages_product_view').fadeOut(700);

	}, 5000);

});





/* -------------------------------------------------------------
 *  Copyright Message
 * ------------------------------------------------------------- */




jQuery(document).ready(function() {

	jQuery('img').bind('contextmenu',function(e)
	{
		e.preventDefault();
		if (jQuery('body').hasClass('pt')) {
		    copyright_error="Os direitos de autor de todos os textos, imagens, e outras informações publicadas no presente website são, salvo indicação contrária, propriedade da Vorwerk & Co. KG, Wuppertal, Alemanha. Toda e qualquer actividade que inclua guardar, copiar, reproduzir ou reencaminhar conteúdos, mesmo que excertos dos mesmos, é apenas permitida mediante autorização por escrito da Vorwerk & Co. KG, 42270 Wuppertal, Alemanha. VORWERK é uma marca comercial registada.";
		} else if (jQuery('body').hasClass('fr')) {
		    copyright_error="Cette photographie est protégée par les droits d'auteur. Pour plus d'informations, veuillez vous référer aux mentions légales.";
		} else if (jQuery('body').hasClass('es')) {
            copyright_error="Es derecho de propiedad Vorwerk. Por favor, lea lo referente a los derechos de marca en nuestra Nota Legal.";
        } else if (jQuery('body').hasClass('cz')) {
            copyright_error="Autorská práva na tento obrázek jsou ve vlastnictví Vorwerku. Přečtěte si, prosím, naše právní podmínky v patičce stránky.";
        } else {
		    copyright_error="Das Copyright dieses Bildes liegt bei Vorwerk. Bitte lesen Sie unseren Copyright-Hinweis im Impressum."
		}
	    alert (copyright_error);
		return false;
	});

});

/**
 * Etracker Checkout Targets
 */
function eTrackerCheckoutTargets(section){
    if(typeof et_pagename_vorwerk == "undefined"){
        return
    }
    if(section == 'login'){
        section = 'checkout'
    }

    var sectionsToTarget = new Object()
    sectionsToTarget['checkout'] = 'checkout'
    sectionsToTarget['billing'] = 'checkout/billing'
    sectionsToTarget['shipping'] = sectionsToTarget['billing'] + '/shipping'
    sectionsToTarget['shipping_method'] = sectionsToTarget['shipping'] + '/shipping_method'
    sectionsToTarget['payment'] = sectionsToTarget['shipping_method'] + '/payment'
    sectionsToTarget['review'] = sectionsToTarget['payment'] + '/review'
    sectionsToTarget['success'] = sectionsToTarget['review'] + '/success'

    target = sectionsToTarget[section]
    var pagename = et_pagename_vorwerk
    var areas = et_areas_vorwerk
    if(section != 'checkout' && section != 'success'){
        pagename = pagename + section + '/'
    }

    if(typeof pagename == "undefined" ){
        return
    }
    var paramArray = Array(
        "'"+ vorwerk_et_et +"'",
        "'"+ pagename +"'",
        "'"+ areas +"'",
        0,
        "''",
        "'"+target+"'",
        0,0,0,0,0,0,0
    )
    et_eC_Wrapper(
        vorwerk_et_et,
        pagename,
        areas,
        0,
        '',
        target,
        0,0,0,0,0,0,0
    )
}

jQuery(document).ready(function() {
    //et_ Params will be emptied after first request, so store them globally
    if(typeof et_pagename == "undefined"){
        return
    }
    if(typeof vorwerk_et_et == "undefined"){
        return
    }
    window.et_pagename_vorwerk = unescape(et_pagename);
    window.et_areas_vorwerk = unescape(et_areas);

    //Success page
    if(jQuery('.checkout-onepage-success').size() === 1){
        eTrackerCheckoutTargets( 'success' )
    }


    if (typeof (checkout) == "undefined") return

    var sectionMapping = new Array();
    sectionMapping['opc-login'] = 'checkout';
    sectionMapping['opc-billing'] = 'billing';
    sectionMapping['opc-shipping'] = 'shipping';
    sectionMapping['opc-shipping_method'] = 'shipping_method';
    sectionMapping['opc-payment'] = 'payment';
    sectionMapping['opc-review'] = 'review';

    //Login for guests/Billing for registered users - page
    var loginOrBillingOnLoad = jQuery('.section.active' ,'#checkoutSteps').attr('id')
    eTrackerCheckoutTargets( sectionMapping[loginOrBillingOnLoad] )

    //All other checkout steps
    jQuery('.section > .step-title' ,'#checkoutSteps').click(function(event){
        var elementId = jQuery(this).parent().attr('id')
        eTrackerCheckoutTargets( sectionMapping[elementId] )
    })
})



