/*
* jquery.tools 1.1.2 - The missing UI library for the Web
* 
* [tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.scrollable.autoscroll-1.0.1, tools.scrollable.navigator-1.0.2, tools.scrollable.mousewheel-1.0.1]
* 
* Copyright (c) 2009 Tero Piirainen
* http://flowplayer.org/tools/
*
* Dual licensed under MIT and GPL 2+ licenses
* http://www.opensource.org/licenses
* 
* -----
* 
* jquery.event.wheel.js - rev 1 
* Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
* Liscensed under the MIT License (MIT-LICENSE.txt)
* http://www.opensource.org/licenses/mit-license.php
* Created: 2008-07-01 | Updated: 2008-07-14
* 
* -----
* 
* File generated: Wed Oct 07 11:28:41 GMT+00:00 2009
*/
(function(b) { b.tools = b.tools || {}; b.tools.scrollable = { version: "1.1.2", conf: { size: 5, vertical: false, speed: 400, keyboard: true, keyboardSteps: null, disabledClass: "disabled", hoverClass: null, clickable: true, activeClass: "active", easing: "swing", loop: false, items: ".items", item: null, prev: ".prev", next: ".next", prevPage: ".prevPage", nextPage: ".nextPage", api: false} }; var c; function a(o, m) { var r = this, p = b(this), d = !m.vertical, e = o.children(), k = 0, i; if (!c) { c = r } b.each(m, function(s, t) { if (b.isFunction(t)) { p.bind(s, t) } }); if (e.length > 1) { e = b(m.items, o) } function l(t) { var s = b(t); return m.globalNav ? s : o.parent().find(t) } o.data("finder", l); var f = l(m.prev), h = l(m.next), g = l(m.prevPage), n = l(m.nextPage); b.extend(r, { getIndex: function() { return k }, getClickIndex: function() { var s = r.getItems(); return s.index(s.filter("." + m.activeClass)) }, getConf: function() { return m }, getSize: function() { return r.getItems().size() }, getPageAmount: function() { return Math.ceil(this.getSize() / m.size) }, getPageIndex: function() { return Math.ceil(k / m.size) }, getNaviButtons: function() { return f.add(h).add(g).add(n) }, getRoot: function() { return o }, getItemWrap: function() { return e }, getItems: function() { return e.children(m.item) }, getVisibleItems: function() { return r.getItems().slice(k, k + m.size) }, seekTo: function(s, w, t) { if (s < 0) { s = 0 } if (k === s) { return r } if (b.isFunction(w)) { t = w } if (s > r.getSize() - m.size) { return m.loop ? r.begin() : this.end() } var u = r.getItems().eq(s); if (!u.length) { return r } var v = b.Event("onBeforeSeek"); p.trigger(v, [s]); if (v.isDefaultPrevented()) { return r } if (w === undefined || b.isFunction(w)) { w = m.speed } function x() { if (t) { t.call(r, s) } p.trigger("onSeek", [s]) } if (d) { e.animate({ left: -u.position().left }, w, m.easing, x) } else { e.animate({ top: -u.position().top }, w, m.easing, x) } c = r; k = s; v = b.Event("onStart"); p.trigger(v, [s]); if (v.isDefaultPrevented()) { return r } f.add(g).toggleClass(m.disabledClass, s === 0); h.add(n).toggleClass(m.disabledClass, s >= r.getSize() - m.size); return r }, move: function(u, t, s) { i = u > 0; return this.seekTo(k + u, t, s) }, next: function(t, s) { return this.move(1, t, s) }, prev: function(t, s) { return this.move(-1, t, s) }, movePage: function(w, v, u) { i = w > 0; var s = m.size * w; var t = k % m.size; if (t > 0) { s += (w > 0 ? -t : m.size - t) } return this.move(s, v, u) }, prevPage: function(t, s) { return this.movePage(-1, t, s) }, nextPage: function(t, s) { return this.movePage(1, t, s) }, setPage: function(t, u, s) { return this.seekTo(t * m.size, u, s) }, begin: function(t, s) { i = false; return this.seekTo(0, t, s) }, end: function(t, s) { i = true; var u = this.getSize() - m.size; return u > 0 ? this.seekTo(u, t, s) : r }, reload: function() { p.trigger("onReload"); return r }, focus: function() { c = r; return r }, click: function(u) { var v = r.getItems().eq(u), s = m.activeClass, t = m.size; if (u < 0 || u >= r.getSize()) { return r } if (t == 1) { if (m.loop) { return r.next() } if (u === 0 || u == r.getSize() - 1) { i = (i === undefined) ? true : !i } return i === false ? r.prev() : r.next() } if (t == 2) { if (u == k) { u-- } r.getItems().removeClass(s); v.addClass(s); return r.seekTo(u, time, fn) } if (!v.hasClass(s)) { r.getItems().removeClass(s); v.addClass(s); var x = Math.floor(t / 2); var w = u - x; if (w > r.getSize() - t) { w = r.getSize() - t } if (w !== u) { return r.seekTo(w) } } return r }, bind: function(s, t) { p.bind(s, t); return r }, unbind: function(s) { p.unbind(s); return r } }); b.each("onBeforeSeek,onStart,onSeek,onReload".split(","), function(s, t) { r[t] = function(u) { return r.bind(t, u) } }); f.addClass(m.disabledClass).click(function() { r.prev() }); h.click(function() { r.next() }); n.click(function() { r.nextPage() }); if (r.getSize() < m.size) { h.add(n).addClass(m.disabledClass) } g.addClass(m.disabledClass).click(function() { r.prevPage() }); var j = m.hoverClass, q = "keydown." + Math.random().toString().substring(10); r.onReload(function() { if (j) { r.getItems().hover(function() { b(this).addClass(j) }, function() { b(this).removeClass(j) }) } if (m.clickable) { r.getItems().each(function(s) { b(this).unbind("click.scrollable").bind("click.scrollable", function(t) { if (b(t.target).is("a")) { return } return r.click(s) }) }) } if (m.keyboard) { b(document).unbind(q).bind(q, function(t) { if (t.altKey || t.ctrlKey) { return } if (m.keyboard != "static" && c != r) { return } var u = m.keyboardSteps; if (d && (t.keyCode == 37 || t.keyCode == 39)) { r.move(t.keyCode == 37 ? -u : u); return t.preventDefault() } if (!d && (t.keyCode == 38 || t.keyCode == 40)) { r.move(t.keyCode == 38 ? -u : u); return t.preventDefault() } return true }) } else { b(document).unbind(q) } }); r.reload() } b.fn.scrollable = function(d) { var e = this.eq(typeof d == "number" ? d : 0).data("scrollable"); if (e) { return e } var f = b.extend({}, b.tools.scrollable.conf); d = b.extend(f, d); d.keyboardSteps = d.keyboardSteps || d.size; this.each(function() { e = new a(b(this), d); b(this).data("scrollable", e) }); return d.api ? e : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.circular = { version: "0.5.1", conf: { api: false, clonedClass: "cloned"} }; b.fn.circular = function(e) { var d = b.extend({}, a.plugins.circular.conf), c; b.extend(d, e); this.each(function() { var i = b(this).scrollable(), n = i.getItems(), k = i.getConf(), f = i.getItemWrap(), j = 0; if (i) { c = i } if (n.length < k.size) { return false } n.slice(0, k.size).each(function(o) { b(this).clone().appendTo(f).click(function() { i.click(n.length + o) }).addClass(d.clonedClass) }); var l = b.makeArray(n.slice(-k.size)).reverse(); b(l).each(function(o) { b(this).clone().prependTo(f).click(function() { i.click(-o - 1) }).addClass(d.clonedClass) }); var m = f.children(k.item); var h = k.hoverClass; if (h) { m.hover(function() { b(this).addClass(h) }, function() { b(this).removeClass(h) }) } function g(o) { var p = m.eq(o); if (k.vertical) { f.css({ top: -p.position().top }) } else { f.css({ left: -p.position().left }) } } g(k.size); b.extend(i, { move: function(s, r, p, q) { var u = j + s + k.size; var t = u > i.getSize() - k.size; if (u <= 0 || t) { var o = j + k.size + (t ? -n.length : n.length); g(o); u = o + s } if (q) { m.removeClass(k.activeClass).eq(u + Math.floor(k.size / 2)).addClass(k.activeClass) } if (u === j + k.size) { return self } return i.seekTo(u, r, p) }, begin: function(p, o) { return this.seekTo(k.size, p, o) }, end: function(p, o) { return this.seekTo(n.length, p, o) }, click: function(p, r, q) { if (!k.clickable) { return self } if (k.size == 1) { return this.next() } var s = p - j, o = k.activeClass; s -= Math.floor(k.size / 2); return this.move(s, r, q, true) }, getIndex: function() { return j }, setPage: function(p, q, o) { return this.seekTo(p * k.size + k.size, q, o) }, getPageAmount: function() { return Math.ceil(n.length / k.size) }, getPageIndex: function() { if (j < 0) { return this.getPageAmount() - 1 } if (j >= n.length) { return 0 } var o = (j + k.size) / k.size - 1; return o }, getVisibleItems: function() { var o = j + k.size; return m.slice(o, o + k.size) } }); i.onStart(function(p, o) { j = o - k.size; return false }); i.getNaviButtons().removeClass(k.disabledClass) }); return d.api ? c : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.autoscroll = { version: "1.0.1", conf: { autoplay: true, interval: 3000, autopause: true, steps: 1, api: false} }; b.fn.autoscroll = function(d) { if (typeof d == "number") { d = { interval: d} } var e = b.extend({}, a.plugins.autoscroll.conf), c; b.extend(e, d); this.each(function() { var g = b(this).scrollable(); if (g) { c = g } var i, f, h = true; g.play = function() { if (i) { return } h = false; i = setInterval(function() { g.move(e.steps) }, e.interval); g.move(e.steps) }; g.pause = function() { i = clearInterval(i) }; g.stop = function() { g.pause(); h = true }; if (e.autopause) { g.getRoot().add(g.getNaviButtons()).hover(function() { g.pause(); clearInterval(f) }, function() { if (!h) { f = setTimeout(g.play, e.interval) } }) } if (e.autoplay) { setTimeout(g.play, e.interval) } }); return e.api ? c : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.navigator = { version: "1.0.2", conf: { navi: ".navi", naviItem: null, activeClass: "active", indexed: false, api: false, idPrefix: null} }; b.fn.navigator = function(d) { var e = b.extend({}, a.plugins.navigator.conf), c; if (typeof d == "string") { d = { navi: d} } d = b.extend(e, d); this.each(function() { var i = b(this).scrollable(), f = i.getRoot(), l = f.data("finder").call(null, d.navi), g = null, k = i.getNaviButtons(); if (i) { c = i } i.getNaviButtons = function() { return k.add(l) }; function j() { if (!l.children().length || l.data("navi") == i) { l.empty(); l.data("navi", i); for (var m = 0; m < i.getPageAmount(); m++) { l.append(b("<" + (d.naviItem || "a") + "/>")) } g = l.children().each(function(n) { var o = b(this); o.click(function(p) { i.setPage(n); return p.preventDefault() }); if (d.indexed) { o.text(n) } if (d.idPrefix) { o.attr("id", d.idPrefix + n) } }) } else { g = d.naviItem ? l.find(d.naviItem) : l.children(); g.each(function(n) { var o = b(this); o.click(function(p) { i.setPage(n); return p.preventDefault() }) }) } g.eq(0).addClass(d.activeClass) } i.onStart(function(o, n) { var m = d.activeClass; g.removeClass(m).eq(i.getPageIndex()).addClass(m) }); i.onReload(function() { j() }); j(); var h = g.filter("[href=" + location.hash + "]"); if (h.length) { i.move(g.index(h)) } }); return d.api ? c : this } })(jQuery);
(function(b) { b.fn.wheel = function(e) { return this[e ? "bind" : "trigger"]("wheel", e) }; b.event.special.wheel = { setup: function() { b.event.add(this, d, c, {}) }, teardown: function() { b.event.remove(this, d, c) } }; var d = !b.browser.mozilla ? "mousewheel" : "DOMMouseScroll" + (b.browser.version < "1.9" ? " mousemove" : ""); function c(e) { switch (e.type) { case "mousemove": return b.extend(e.data, { clientX: e.clientX, clientY: e.clientY, pageX: e.pageX, pageY: e.pageY }); case "DOMMouseScroll": b.extend(e, e.data); e.delta = -e.detail / 3; break; case "mousewheel": e.delta = e.wheelDelta / 120; break } e.type = "wheel"; return b.event.handle.call(this, e, e.delta) } var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.mousewheel = { version: "1.0.1", conf: { api: false, speed: 50} }; b.fn.mousewheel = function(f) { var g = b.extend({}, a.plugins.mousewheel.conf), e; if (typeof f == "number") { f = { speed: f} } f = b.extend(g, f); this.each(function() { var h = b(this).scrollable(); if (h) { e = h } h.getRoot().wheel(function(i, j) { h.move(j < 0 ? 1 : -1, f.speed || 50); return false }) }); return f.api ? e : this } })(jQuery);









if (typeof (SP) != 'object') {
	SP = {};
}
SP.initScroll = function() {
	$("#prod-slide").scrollable({
		'disabledClass': "disabled",
		'next': "#next",
		'prev': "#previous"
	})
}
SP.updateContent = function(e, val) {
	var target = $('#sp-product-detail-image');
	var targetDetals = $('#prod-description-container');
	var trigger = $('#prod-slide .thumb');

	// set active thumb
	if (e != null) {
		$.each(trigger, function(e, el) {
			$(el).removeClass('activeThumb');
		})
		$(e.target).addClass('activeThumb');
	} else {
		$(trigger[0]).addClass('activeThumb');
	}

	// set background
	target.fadeOut('normal', function() {
		target.css('background-image', 'url(' + val.detail + ')')
		target.fadeIn('fast')

		//hide details
		targetDetals.hide('normal', function() {
			// set detail copy
			$('#prod_tagline').html(val.tagline);
			$('#prod_class span').html(val.pclass);
			$('#prod_objective span').html(val.objective);
			$('#prod_copy').html(val.copy);
			$('#prod_results span').html(val.results);

			// show detail
			targetDetals.show('fast');
		})
	})
	SP.initScroll();
}
SP.buildContent = function(json) {
	var target = $('#prod-id-content')[0];

	var item = json.items;
	$.each(item, function(i, val) {
		var trigger = $('<img src="' + val.thumb + '" class="thumb" />');

		trigger.bind('click', function(e) {
			e.preventDefault();
			SP.updateContent(e, val)

		})
		trigger.appendTo(target);
	});
	// run for first item
	SP.updateContent(null, item[0])
};



SP.initRequest = function() {
	$('#prod-description-container').hide();
	SP.buildContent(SP.jsonData());
};

SP.jsonData = function() {
	var data = eval(
				{
					"items": [
						{
							"name": "Calida",
							"thumb": "/resources/images/casestudies/products/calida-thumb.jpg",
							"detail": "/resources/images/casestudies/products/calida-detail.jpg",
							"tagline": "gift with purchase",
							"pclass": "Consumer Promotion",
							"objective": "To increase sales of pyjamas",
							"copy": "Calida of Switzerland is one of Europe&lsquo;s leading brands of high quality lingerie, underwear and nightwear for women, men and children. In an attempt to increase their brand image and to sell more of their pyjamas during the Swedish fathers day, Calida planned a gift with purchase promotion. The gift had to be unisex, of high-quality and preferably Swiss. The Victorinox Classic pocket knife complied perfectly with these requirements. A black handled knife was chosen and pad printed with the yellow, black and white Calida-logo making it a stylish accessory. Accompanying actions included fashionable posters and ads.",
							"results": "Participating shops reported: &quot;Very positive and very good for the brand and image. Sold more than we could dream of.&quot;"
						},
						{
							"name": "Florap",
							"thumb": "/resources/images/casestudies/products/belt-thumb.jpg",
							"detail": "/resources/images/casestudies/products/belt-detail.jpg",
							"tagline": "merchandising",
							"pclass": "Brand building",
							"objective": "To strengthen core brand values",
							"copy": "The dairy brand Floralp stands for typical Swiss quality dairy products such as butter, milk, cream etc. To strengthen their traditional down to earth image a range of ethno Style products was crested. The range included shirts, belts and an original Victorinox Soldier Knife. With its silver ribbed aluminium handles it was an obvious choice. To make it more in line with the company&lsquo;s brand building activities, their blue &quot;Gentian&quot; logo was stamped in lieu of the Victorinox Cross and shield emblem. There was a wide spread media coverage of these ethno items.",
							"results": "Company officials were highly satisfied"
						},
						{
							"name": "BMW",
							"thumb": "/resources/images/casestudies/products/bmw-thumb.jpg",
							"detail": "/resources/images/casestudies/products/bmw-detail.jpg",
							"tagline": "Consumer promotion",
							"pclass": "incentive",
							"objective": "To recruit &quot;test drivers&quot;",
							"copy": "BMW Motorcycles USA was looking for a 3D product attracting people to test drive their brand new bike. Their idea was to use an article with comparable attributes. Like BMW, Victorinox&lsquo; commitment to excellence has never wavered. Our ribbed aluminium handled Classic knife seemed therefore the perfect choice: multifunctional, stylish or in short: perceived quality throughout. The little &quot;Bijou&quot; featured a black anodized imprint on the reverse handle reading &quot;BMW Motorcycles&quot;. The promotion included ads in newspapers and motorcycle magazines and mailings. People who went to have the &quot;see and feel&quot; got the little pocket tool as a premium souvenir packaged in a small sliding silver gift box.",
							"results": "21,000 knives speak for themselves"
						},
						{
							"name": "Macguiver DVD",
							"thumb": "/resources/images/casestudies/products/macguiver-thumb.jpg",
							"detail": "/resources/images/casestudies/products/macguiver-detail.jpg",
							"tagline": "in-pack/premium",
							"pclass": "B2C",
							"objective": "To promote DVD sales",
							"copy": "Paramount wanted to create a Special Limited Edition of its first MacGyver cult episodes collection DVD to be sold exclusively through Amazon.de An Original Swiss Army Knife, Huntsman 1.3713, was chosen as an in-pack / premium item due to McGyver&lsquo;s closely linked adventures with this Victorinox product. A specially designed gift cardboard box depicting the actor Richard Dean Anderson and some action scenes plus a 1 : 2 relief imprint of the Original Swiss Army Knife on all 4 sides was developed. The knife itself was 1c pad printed on both handles and in its standard silver box.",
							"results": "The 3000 pieces of this Special Limited Tool Edition providing more than 1000 minutes of tension and excitement were eagerly awaited by a huge number of MacGyver aficionados and created quite a stir."
						},
						{
							"name": "MIGROS",
							"thumb": "/resources/images/casestudies/products/heidi-thumb.jpg",
							"detail": "/resources/images/casestudies/products/heidi-detail.jpg",
							"tagline": "in-pack",
							"pclass": "Consumer promotion",
							"objective": "To thank customers for their loyalty",
							"copy": "MIGROS, Switzerland&lsquo;s largest retail chain, celebrated its 80th anniversary. For this reason, special priced merchandise was offered periodically by the different divisions of its 12 regional cooperatives during one year. Their dairy division needed an in-pack that would contain 300 grams of Swiss Gruyere Cheese plus a tool to make it an ideal &quot;All Swiss Original Picknick-Item&quot;. A logoed 9-feature pocket tool (2.3303.7R2) was chosen for this purpose. Packaged in its standard gift-box it was then placed in a specially commissioned cardboard-box with a deep-draw inlay. The rock-bottom priced In-pack was widely advertised in their own newspaper of which 1.5 million copies are distributed each week. The program was a logistical &quot;tour de force&quot; considering the products expiration date.",
							"results": "90,000 pieces were sold during the 4 week period which made the promotion a huge success compared with other promotions during the anniversary."
						},
						{
							"name": "prod b",
							"thumb": "/resources/images/casestudies/products/watch-knife-thumb.jpg",
							"detail": "/resources/images/casestudies/products/watch-knife-detail.jpg",
							"tagline": "merchandising",
							"pclass": "Consumer promotion",
							"objective": "Merchandising offer to patrons and friends",
							"copy": "Offer high quality branded products to patrons and friends through quarterly magazine sent to patrons only. Products must have strong connection to Rega Air Rescue to strengthen relationship. Reliability and Precision are key factors for the success of Rega Air Rescue. The customized Altimeter with Rega logo imprint, stored in a handy genuine leather belt pouch, features exactly the same attributes and develops an emotional platform.",
							"results": "Much higher than hoped for. More than 8,500 customized Altimeters sold to patrons and friends."
						}

					]
				}

			);

	return data;
}


$(document).ready(function() { SP.initRequest(); });


