/*********************************************************************
  generated by H2G Internetagentur, CH-Aarau, www.h2g.ch, January 09  
**********************************************************************/

if (typeof(Partssearch) == 'undefined')

var Partssearch = {};

Partssearch = Class.create();

Object.extend(Partssearch.prototype, {

	initialize: function() {

		this.domain = "http://www.partsworldshop.com";
		
		this.fadeDuration = 0.6; // duration to fade to next step
		this.lang = "en"; // language of part descriptions
		this.distance = 224; // scroll distance in pixels
		this.duration = 0.8; // scroll move duration in seconds
		this.position = 0;
		this.scrollCount = 0;
		this.utf8 = true;
		
	},step1:function(stepOn) {
		
		Effect.Fade($('psStep'+stepOn), { duration: this.fadeDuration });

		window.setTimeout(function() {
			Effect.Appear($('psStep1'), { duration: partssearch.fadeDuration });
		}, partssearch.fadeDuration*1000);

		
		
		// remove cookie selection
		// save bike selection in cookie for further use
		jar = new CookieJar ({
			expires: 31536000,
			path: '/',
			domain: 'partsworldshop.com'
		});
 
		jar.put('partssearch', 0);

		
		
	},step2:function(type, lang) {

		// set global lang
		this.lang = lang;
		
		Effect.Fade($('psStep1'), { duration: this.fadeDuration });
		
		new Ajax.Request(this.domain + '/partssearch/_ajax/step2.php', {
			method: 'GET',
			crossSite: true,
			parameters: { type: type },
			onLoading: function() {
				$('psLoading').show();
			},
			onSuccess: function(transport) {
				window.setTimeout(function() {
					Element.hide($('psLoading'));
					Effect.Appear($('psStep2'), { duration: partssearch.fadeDuration });
				}, partssearch.fadeDuration*1000);
			}
		});
		
	},step3:function(brand) {
	
		Effect.Fade($('psStep1'), { duration: this.fadeDuration });
		Effect.Fade($('psStep2'), { duration: this.fadeDuration });
		
		new Ajax.Request(this.domain + '/partssearch/_ajax/step3.php', {
			method: 'GET',
			crossSite: true,
			parameters: {brand: brand},
			onLoading: function() {
				$('psLoading').show();
			},
			onSuccess: function(transport) {				
				window.setTimeout(function() {
					Element.hide($('psLoading'));
					Effect.Appear($('psStep3'), { duration: partssearch.fadeDuration });
				}, partssearch.fadeDuration*1000);
			}
		});
		
	},step4:function(bikeID) {
	
		var currentlocation = document.location.toString();
		var searchString = currentlocation.search('://shop.');
		
		if (searchString != -1) {
			this.utf8 = false;
		}
	
		Effect.Fade($('psStep1'), { duration: this.fadeDuration });
		Effect.Fade($('psStep2'), { duration: this.fadeDuration });
		Effect.Fade($('psStep3'), { duration: this.fadeDuration });

		new Ajax.Request(this.domain + '/partssearch/_ajax/step4.php', {
			method: 'GET',
			crossSite: true,
			parameters: {bikeid: bikeID, lang: this.lang, utf8: this.utf8},
			onLoading: function() {
				$('psLoading').show();
			},
			onSuccess: function(transport) {
				window.setTimeout(function() {
					Element.hide($('psLoading'));
					Effect.Appear($('psStep4'), { duration: partssearch.fadeDuration });
				}, partssearch.fadeDuration*1000);
			}
		});
		
		// save bike selection in cookie for further use
		jar = new CookieJar ({
			expires: 31536000,
			path: '/',
			domain: 'partsworldshop.com'
		});
 
		jar.put('partssearch', bikeID);

	},partover:function(partID) {
	
		$('squarepic'+partID).src = this.domain + '/_img/partssearch/step4_square_on.gif';
		$$('#squareright'+partID+' img')[0].src = this.domain + '/_img/partssearch/step4_square_on.gif';
		$('squarerightLink'+partID).addClassName("on");
		
	},partout:function(partID) {
	
		$('squarepic'+partID).src = this.domain + '/_img/partssearch/step4_square.gif';
		$$('#squareright'+partID+' img')[0].src = this.domain + '/_img/partssearch/step4_square.gif';
		$('squarerightLink'+partID).removeClassName("on");
		
	},scroll:function(direction) {
	
		// set operator and new position
		if (direction == "down") {
			this.operator = "+";
			this.position++;
		} else if (direction == "up") {
			this.operator = "-";
			this.position--;
		}
		
		// check cookies, if user chose bike before, go back to it
		if (this.scrollCount == 0) {
			jar = new CookieJar ();
			partssearchCookie = jar.get('partssearch');
			
			if(partssearchCookie) {
				if(partssearchCookie != 0) {
					this.lang = $$('body')[0].className;
					this.step4(partssearchCookie, this.lang);
				}
			}
		
		}
		
		this.scrollCount++;
		
		// calculate layer move (direction and distance)
		yMove = this.operator+this.distance;
		
		// move the tube which contains all content layers
		new Effect.Move($('partssearch'), { x: 0, y: yMove, mode: 'relative', duration: this.duration });
		
		// disable trigger link while performing the move
		Event.unloadCache();

		$$('#partssearchLink a')[0].href = "javascript:void(0)";
		// wait for the move to end
		
		window.setTimeout(function(position) {
			partssearch.setTriggers(partssearch.position);
		}, partssearch.duration*1000);
			
	},setTriggers:function(position) {

		// check if we're on first or last position - if so deactivate trigger links
		if (position == 0) {
			// layer is hidden
			$$('#partssearchLink a')[0].observe('click', function() { partssearch.scroll('down') } );
			$$('#partssearchLink a')[0].title = "Expand Parts Search";
			$('partssearchContent').removeClassName('arrowUp');
			$('partssearchContent').addClassName('arrowDown');
		} else if (position == 1) {
			// layer is visible
			$$('#partssearchLink a')[0].href = "javascript:partssearch.scroll('up')";
			$$('#partssearchLink a')[0].title = "Hide Parts Search";
			$('partssearchContent').removeClassName('arrowDown');
			$('partssearchContent').addClassName('arrowUp');
			
		}
		
	}
});

partssearch = new Partssearch;

// set click event function to link trigger after page is loaded (new H2G 13.10.2010)
Event.observe(window, 'load', function() {
  $$('#partssearchLink a')[0].observe('click', function() { partssearch.scroll('down') } );
});
