﻿/*
* Selexyz JavaScript Framework
* Datum: 20-10-2011 
*	Module: Productdetail pagina
*
*/
window.selexyz.Ready(function () {

	var Selexyz = window.selexyz;

	var EAN = $("#Product_EAN:hidden").val();
	var vooraadOpgehaald = false;
	var mediaOpgehaald = false;

	var takestoolong = 200;
	var loaded = false;
	var timer = null;

	/*	TABS
	-------------------------------- */
	var tabsApi = $("#productdetail-tabs").tabs("#productdetail-tabs .detail-content", {
		current: 'actief',
		tabs: 'li',
		history: true,
		initialIndex: 0,
		onClick: function (e, tab) { }
	}).data("tabs");

	var voorraadTab = $("#voorraad");
	$("#winkel-voorraad-trigger").click(function () {

		// loader
		window.setTimeout(function () {
			if (!loaded) {
				voorraadTab.find('p').html("<p><img src='/content/img/loading.gif' />&nbsp;Bezig met laden..</p>");
			}
		}, takestoolong);

		$.get("/product/voorraad/" + EAN, function (view) {
			loaded = true;
			voorraadTab.html(view);
			voorraadTab.data('opgehaald', true);
		});

	});



	/*	LINK CLICKS
	--------------------------------*/

	// beoordelen
	$("a#beoordelen-top").click(function () {

		tabsApi.click(2);
		$("#review-formulier a.toggle").trigger("click");
		$("#SchrijfReview_Opmerking").trigger('focus');

		return false;
	});


	// inkijker
	$("a.inkijkexemplaar-trigger").click(function () {
		var self = $(this);
		tabsApi.click(1);
		return false;
	});







	/*	REVIEWS
	-------------------------------- */
	// ! geen cache (ajax) !
	// openen
	$("#beoordelingen a.toggle").live('click', function () {
		$("#beoordelingen #review-formulier .form").show();
		$("#beoordelingen a.toggle").hide();
		return false;
	});

	// sluiten
	$("#review-formulier a.button-sluit").live('click', function () {
		$("#beoordelingen #review-formulier .form").hide();
		$("#beoordelingen a.toggle, #review-formulier .success").show();
		return false;
	});

	// bij plaatsen beorodeling kan je hem nog aanpassen
	$("#review-formulier a.wijzig-beoordeling").live('click', function () {
		$("#beoordelingen #review-formulier .form").show();
		$(this).parents("p").hide();
		return false;
	});

	// sterretjes
	$("#review-formulier .beoordeling .ster").live('click', function () {
		var self = $(this);
		$("#SchrijfReview_Beoordeling").val(self.data('beoordeling'));
		return false;
	});

	var enableHovers = function () {
		// hovers
		var punten = $("#beoordelingen .waardering span");
		var changePunten = function (value) {
			var targetPunten = punten.filter(":lt(" + (parseInt(value) + 1) + ")");
			punten.not(targetPunten).removeClass("solid");
			targetPunten.addClass("solid");
		}
		punten.hover(
			function () {
				var self = $(this);
				var beoordeling = self.data("beoordeling");
				if (beoordeling !== undefined) {
					changePunten(beoordeling);
				}
			},
			function () {
				var beoordeling = $("#SchrijfReview_Beoordeling").val();
				changePunten(beoordeling);
			}
		);
	};
	enableHovers();

	// meer/minder
	$("span.meer-tekst-base a.link").live('click', function () {
		var self = $(this);
		self.parents("dd").find(".meer-tekst-uitgebreid").toggleClass("hidden");
		self.parents("dd").find(".meer-tekst-base").toggleClass("hidden");
		self.toggleClass("hidden");
		return false;
	});

	// alles tonen
	$("#beoordelingen .meer-beoordelingen").live('click', function () {
		$(this).hide();
		$("#beoordelingen dd.hidden, #beoordelingen dt.hidden").toggleClass("hidden");
		return false;
	});

	// ajax submit
	$("#beoordelingen #review-formulier form").live("submit", function () {
		var form = $(this);
		$.post(form.attr("action"), form.serialize(), function (view) {
			$("#beoordelingen #review-formulier .form").parents("dl").replaceWith(view);
			enableHovers();
			Selexyz.Forms.init();
		});
		return false;
	});





	/*       INKIJKEXEMPLAAR
	-------------------------------- */
	var inkijkvoorbeeld = $("#inkijker");
	if (inkijkvoorbeeld && inkijkvoorbeeld.data("heeftpreviewhoofdstuk") == "False") {

		var viewer,isLoaded = false;

		window['initialize'] = function () {

			// komen we hier per ongeluk of is er nog geen api geladen
			if (!(window['google'] && 'books' in window['google'])) {
				$("#inkijkexemplaar").remove();
				return;
			}

			// daadwerkelijk initialiseren van viewer
			inkijkvoorbeeld.css("height", 960);
			viewer = new google.books.DefaultViewer(inkijkvoorbeeld.get(0), { showLinkChrome: false });
		};

		var googlebooksapi = "http://books.google.com/books?jscmd=viewapi&bibkeys=ISBN:" + EAN + "&callback=?";

		$.getJSON(googlebooksapi, function (data) {

			// is er resultaat -> als er een attribuut ISBN:* in data zit wel
			if (!('ISBN:' + EAN in data)) {
				//$("#inkijkexemplaar").remove();
				return;
			}

			// als de previewtype 'noview' is gaan we ook niet door
			if (data['ISBN:' + EAN].preview == "noview") {
				//$("#inkijkexemplaar").remove();
				return;
			}

			$("#inkijkexemplaar-target").show();
			$(".inkijkexemplaar-trigger").show();

			// er is een preview -> laden!            
			google.load('books', 0, { callback: "initialize" });

		});

		// Trigger om te voorkomen dat IE niet wil laden voordat is ingeladen
		$('.inkijkexemplaar-trigger').click(function () {
			// Als viewer nog niet eerder op de pagina geladen is dan laden(!)
			if (!isLoaded && viewer != undefined) {
				viewer.load('ISBN:' + EAN);
				isLoaded = true;
			}
		});

	}


	/*	EXTERNE LINKS NAAR TABS
	-------------------------------- */
	Selexyz.$window.bind('hashchange', function (e) {

		// als de hash leeg is, hoeven we niets te doen..
		if (e.fragment + '' == '') {
			return;
		}

		if (e.fragment == "beoordeel") {
			$("a#beoordelen-top").trigger('click');
		}

	});
	Selexyz.$window.trigger('hashchange');




	/*	MEDIA VIDEO
	-------------------------------- */


});
