startUrl=(window.location).toString();
splitUrl=startUrl.split("/");
myUrl="";
for(i=0;i<(splitUrl.length)-1 ;i++) {
   myUrl=myUrl+splitUrl[i];
   if (i!=(splitUrl.length)-2){
       myUrl=myUrl+"/";
   }
}
abspath=myUrl;
var imgPath = 'img/gallery/products/';
var codesPath = 'img/codes/';

var ie7=null;
var ie6=null;
$(document).ready(function(){
	((document.all)&&(navigator.appVersion.indexOf("MSIE 7.")!=-1)) ? (ie7=true) : (ie7=false);
	((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? (ie6=true) : (ie6=false);	
});

$(window).load(function(){
	loadXML();
	setLayout();
	//setActions();
	hp.open();
	//gallery.open();
});


$(document).ready(function() {
		$('#prdLink')
			.hover(
				function(){ $('#prd_on').fadeIn('fast') },
				function(){ $('#prd_on').fadeOut('fast') })
			.click(function() { hp.close() });
	});

function setLayout(){
	var h_wp=$(window).height()-29;
	var w_wp=$(window).width();
	m_top = ((703 - h_wp) / 2);
	$('#layout, #gallery').height(h_wp);
	$('#footer').css({top:h_wp, visibility:'visible'});
	$('#colsx, #coldx, #gal-logo').css({top: (90 - m_top) });
	$('#outWrapper').css({top: (172 - m_top) });
	$('#landing').css({ top:(h_wp - 590)/2, left: (w_wp - 876)/2 });
		
	$(window).resize(function(){
		var h_wp=$(window).height()-29;
		var w_wp=$(window).width();
		m_top = ((703 - h_wp) / 2);
		$('#layout, #gallery').height(h_wp);
		$('#footer').css({top:h_wp});
		$('#colsx, #coldx, #gal-logo').css({top: (90 - m_top) });
		$('#outWrapper').css({top: (172 - m_top) });
		$('#landing').css({ top:(h_wp - 574)/2, left: (w_wp - 828)/2 });
	});	
}; 

var hp = {
	open : function() {
		$('#landing').fadeIn('slow', function() {
			$('#logo').fadeIn('slow', function() {
				$('#candy1').fadeIn('slow', function() {
					$('#candy2').fadeIn('slow', function() {
						$('#prdLink').fadeIn('slow');
						});
					});
				});
			if(ie6) $('#logo').pngFix();
			});
	},
	close : function() {
		$('#landing').fadeOut('slow', function() {
			gallery.open();
			});
	}
}

var gallery = {
	open : function() {
		$('#gallery').fadeIn('slow', function() {
			$('#colsx').fadeIn('slow');
			$('#coldx').fadeIn('slow', function() {
				$('#gal-logo').fadeIn('slow', function() {
					$('#imgWrapper').fadeIn('slow');
					$('#varcodes-head').fadeIn('slow');
					$('#total').text(gallery.items.length);
					gallery.openImg(1);
				});
			});
		})
	},
	openImg : function(n) {
		gallery.currItem = n = (n == 0) ? gallery.items.length : (n > gallery.items.length) ? 1 : n;
		$('#current').text(gallery.currItem);
		gallery.codes();
		var pic = new Image();
		picSrc = $(gallery.items).eq(gallery.currItem-1).attr('src');
		code = $(gallery.items).eq(gallery.currItem-1).attr('code');
		$(pic).load(function(){
			//$('#prCode').text(code).fadeIn('slow');
			$('#prBrowser').fadeIn('slow');
			gallery.bindEvs();
			$('#imgWrapper')
				.append(pic)
				.find('img')
				.fadeIn('slow');
				});
		$(pic).attr({src:imgPath + picSrc}).addClass('prImg');
	},
	browse : function(n) {
		$('#arrows a').unbind('click');  // avoid multiple clicks
		// reset scrollbar
		$('.jScrollPaneTrack, .jScrollArrowUp, .jScrollArrowDown').fadeOut();
		$('#varcodes').fadeOut('slow', function() {
			$(this).html('').css({left:0, visibility:'hidden', display: 'block'});		
			}); 
		$('.prImg').fadeOut('slow', function() { 
			$(this).remove(); 
			gallery.openImg(gallery.currItem + n);
			});
	},
	bindEvs : function() {
		$('a#prev').bind('click', function() { gallery.browse(-1) });
		$('a#next').bind('click', function() { gallery.browse(1) });
		},
	codes : function() {
		var varcodes = $(gallery.items).eq(gallery.currItem-1).find('variant');
		if(varcodes.length > 0) {
			var html = '<ul>';
			$(varcodes).each(function() {
				html += '<li><span>'+$(this).attr('code')+'</span> <img src="'+codesPath+$(this).attr('src')+'" />';
				});
			html += '</ul>';
			$('#varcodes')
				.append(html)
				.jScrollPane()
				.css({ display:'none', visibility: 'visible'})
				.parent()
				.find('#varcodes, .jScrollPaneTrack')
				.fadeIn('fast');
			}
	}
}
		

function MM_showHideLayers() { 
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

function loadXML() {
	$.ajax({
        type: "GET",
        url: "data.xml",
        dataType: "xml",
        success: function(xmlData) {
			gallery.xmlFile = xmlData;
			},
		complete : function(xmlData) {
			gallery.items = $(gallery.xmlFile).find('item');
			},
		error:function(){
			alert('Error loading xml data. Please, reload this page and try again.')
			}	
		});
	}


/********************** PLUGINS ************************/
//jScrollPane
jQuery.fn.jScrollPane = function(settings)
{
	settings = jQuery.extend(
		{
			scrollbarHeight : 14,
			scrollbarMargin : 0,
			wheelSpeed : 18,
			showArrows : true,
			arrowSize : 14,
			animateTo : false,
			dragMinWidth : 1,
			dragMaxWidth : 99999,
			animateInterval : 100,
			animateStep: 3,
			maintainPosition: true,
			scrollbarOnLeft: false
		}, settings
	);
	return this.each(
		function()
		{
			var $this = jQuery(this);
			
			if (jQuery(this).parent().is('.jScrollPaneContainer')) {
				var currentScrollPosition = settings.maintainPosition ? $this.offset({relativeTo:jQuery(this).parent()[0]}).top : 0;
				var $c = jQuery(this).parent();
				var paneWidth = $this.innerWidth();
				var paneHeight = $this.height();
				var trackWidth = paneWidth;
				jQuery('>.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown', $c).remove();
				$this.css({'top':0});
				$c.css({'width':paneWidth+'px'});
			} else {
			var currentScrollPosition = 0;
			var paneWidth = $this.innerWidth();
			var paneHeight = $this.height();
			var trackWidth = paneWidth;
			$this.wrap(
				jQuery('<div></div>').attr(
					{'className':'jScrollPaneContainer'}
				).css({'height':paneHeight+'px', 'width':paneWidth+'px'}));
			}
			
			var cssToApply = {
				'width': paneWidth,
				'height':paneHeight - settings.scrollbarHeight - settings.scrollbarMargin + 'px',
				'borderBottom' : 'none'
			}

			$this.css(cssToApply);

			//calcolo contentWidth
			var contentWidth = 0;
			$('#varcodes ul span').each(function(){
				contentWidth += $(this).width() + 21 + 19;  // text label width + image width + image margins 
			});
			
			contentWidth -= 14; //elimino margin-right ultima immagine

			var percentInView = paneWidth / contentWidth;

			if (percentInView < .99) {
				var $container = $this.parent();
				$container.append(
					jQuery('<div></div>').attr({'className':'jScrollPaneTrack'}).css({'height':settings.scrollbarHeight+'px'}).append(
						jQuery('<div></div>').attr({'className':'jScrollPaneDrag'}).css({'height':settings.scrollbarHeight+'px'})
					)
				);
				
				var $track = jQuery('>.jScrollPaneTrack', $container);
				var $drag = jQuery('>.jScrollPaneTrack .jScrollPaneDrag', $container);
				
				if (settings.showArrows) {
					
					var currentArrowButton;
					var currentArrowDirection;
					var currentArrowInterval;
					var currentArrowInc;
					var speed;
					var whileArrowButtonDown = function()
					{
						if (currentArrowInc > 4 || currentArrowInc%4==0) {
							positionDrag(dragPosition + currentArrowDirection * mouseWheelMultiplier);
						}
						currentArrowInc ++;
					};
					var onArrowMouseUp = function(event)
					{
						jQuery('html').unbind('mouseup', onArrowMouseUp);
						currentArrowButton.removeClass('jScrollActiveArrowButton');
						clearInterval(currentArrowInterval);
					};
					var onArrowMouseDown = function() {
						jQuery('html').bind('mouseup', onArrowMouseUp);
						currentArrowInc = 0;
						whileArrowButtonDown();
						currentArrowInterval = setInterval(whileArrowButtonDown, 100);
					};
					$container
						.append(
							jQuery('<a></a>')
								.attr({'href':'javascript:;', 'className':'jScrollArrowUp'})
								.html('Scroll up')
								.bind('mousedown', function()
								{
									currentArrowButton = jQuery(this);
									currentArrowDirection = -1;
									onArrowMouseDown();
									this.blur();
									return false;
								}),
							jQuery('<a></a>')
								.attr({'href':'javascript:;', 'className':'jScrollArrowDown'})
								.html('Scroll down')
								.bind('mousedown', function()
								{
									currentArrowButton = jQuery(this);
									currentArrowDirection = 1;
									onArrowMouseDown();
									this.blur();
									return false;
								})
						);
					var $upArrow = jQuery('>.jScrollArrowUp', $container);
					var $downArrow = jQuery('>.jScrollArrowDown', $container);
					if (settings.arrowSize) {
						trackWidth = paneWidth - settings.arrowSize - settings.arrowSize;
						$track
							.css({'width': trackWidth+'px'})
					} 
				}
				
				var $pane = jQuery(this).css({'position':'absolute', 'overflow':'visible'});
				
				var currentOffset;
				var maxX;
				var mouseWheelMultiplier;
				// store this in a seperate variable so we can keep track more accurately than just updating the css property..
				var dragPosition = 0;
				var dragMiddle = percentInView*paneHeight/2;
				
				// pos function borrowed from tooltip plugin and adapted...
				var getPos = function (event, c) {
					var p = c == 'X' ? 'Left' : 'Top';
					return event['page' + c] || (event['client' + c] + (document.documentElement['scroll' + p] || document.body['scroll' + p])) || 0;
				};
				
				var ignoreNativeDrag = function() {	return false; };
				
				var initDrag = function()
				{
					ceaseAnimation();
					currentOffset = $drag.offset(false);
					currentOffset.left -= dragPosition;
					maxX = trackWidth - dragW;
					//alert(maxX);
					mouseWheelMultiplier = 2 * settings.wheelSpeed * maxX / contentWidth;
				};
				
				var onStartDrag = function(event)
				{
					initDrag();
					dragMiddle = getPos(event, 'X') - dragPosition - currentOffset.left;
					jQuery('html').bind('mouseup', onStopDrag).bind('mousemove', updateScroll);
					if (jQuery.browser.msie) {
						jQuery('html').bind('dragstart', ignoreNativeDrag).bind('selectstart', ignoreNativeDrag);
					}
					return false;
				};
				var onStopDrag = function()
				{
					jQuery('html').unbind('mouseup', onStopDrag).unbind('mousemove', updateScroll);
					dragMiddle = percentInView*paneHeight/2;
					if (jQuery.browser.msie) {
						jQuery('html').unbind('dragstart', ignoreNativeDrag).unbind('selectstart', ignoreNativeDrag);
					}
				};
				var positionDrag = function(destX)
				{
					destX = destX < 0 ? 0 : (destX > maxX ? maxX : destX);
					dragPosition = destX;
					$drag.css({'left':destX+'px'});
					var p = destX / maxX;
					$pane.css({'left':((paneWidth-contentWidth)*p) + 'px'});
					$this.trigger('scroll');
				};
				var updateScroll = function(e)
				{
					positionDrag(getPos(e, 'X') - currentOffset.left - dragMiddle);
				};
				
				var dragW = Math.max(Math.min(percentInView*(paneWidth-settings.arrowSize*2), settings.dragMaxWidth), settings.dragMinWidth);

				$drag.css(
					{'width':dragW+'px'}
				).bind('mousedown', onStartDrag);
				
				var trackScrollInterval;
				var trackScrollInc;
				var trackScrollMousePos;
				var doTrackScroll = function()
				{
					if (trackScrollInc > 8 || trackScrollInc%4==0) {
						positionDrag((dragPosition - ((dragPosition - trackScrollMousePos) / 2)));
					}
					trackScrollInc ++;
				};
				var onStopTrackClick = function()
				{
					clearInterval(trackScrollInterval);
					jQuery('html').unbind('mouseup', onStopTrackClick).unbind('mousemove', onTrackMouseMove);
				};
				var onTrackMouseMove = function(event)
				{
					trackScrollMousePos = getPos(event, 'X') - currentOffset.left - dragMiddle;
				};
				var onTrackClick = function(event)
				{
					initDrag();
					onTrackMouseMove(event);
					trackScrollInc = 0;
					jQuery('html').bind('mouseup', onStopTrackClick).bind('mousemove', onTrackMouseMove);
					trackScrollInterval = setInterval(doTrackScroll, 100);
					doTrackScroll();
				};
				
				$track.bind('mousedown', onTrackClick);
				
				var _animateToPosition;
				var _animateToInterval;
				function animateToPosition()
				{
					var diff = (_animateToPosition - dragPosition) / settings.animateStep;
					if (diff > 1 || diff < -1) {
						positionDrag(dragPosition + diff);
					} else {
						positionDrag(_animateToPosition);
						ceaseAnimation();
					}
				}
				var ceaseAnimation = function()
				{
					if (_animateToInterval) {
						clearInterval(_animateToInterval);
						delete _animateToPosition;
					}
				};
				var scrollTo = function(pos, preventAni)
				{
					if (typeof pos == "string") {
						$e = jQuery(pos, this);
						if (!$e.length) return;
						pos = $e.offset().top - $this.offset().top;
					}
					ceaseAnimation();
					var destDragPosition = -pos/(paneWidth-contentWidth) * maxX;
					if (preventAni || !settings.animateTo) {
						positionDrag(destDragPosition);
					} else {
						_animateToPosition = destDragPosition;
						_animateToInterval = setInterval(animateToPosition, settings.animateInterval);
					}
				};
				$this[0].scrollTo = scrollTo;
				
				$this[0].scrollBy = function(delta)
				{
					var currentPos = -parseInt($pane.css('top')) || 0;
					scrollTo(currentPos + delta);
				};
				
				initDrag();
				
				scrollTo(-currentScrollPosition, true);

			} else {
				$this.css(
					{
						'width':paneWidth-this.originalSidePaddingTotal+'px'
					}
				);
				
				$('ul', $this).css(
					{
						'marginLeft' : (paneWidth - contentWidth)/2 + 'px'
					}
				);
				// remove from active list?
			}
			
		}
	)
};
//pngfix
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(s($){3.1s.1k=s(j){j=3.1a({12:\'1m.1j\'},j);8 k=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 5.5")!=-1);8 l=(n.P=="r 10 Z"&&U(n.v)==4&&n.v.E("14 6.0")!=-1);o(3.17.16&&(k||l)){3(2).L("1r[@m$=.M]").z(s(){3(2).7(\'q\',3(2).q());3(2).7(\'p\',3(2).p());8 a=\'\';8 b=\'\';8 c=(3(2).7(\'K\'))?\'K="\'+3(2).7(\'K\')+\'" \':\'\';8 d=(3(2).7(\'A\'))?\'A="\'+3(2).7(\'A\')+\'" \':\'\';8 e=(3(2).7(\'C\'))?\'C="\'+3(2).7(\'C\')+\'" \':\'\';8 f=(3(2).7(\'B\'))?\'B="\'+3(2).7(\'B\')+\'" \':\'\';8 g=(3(2).7(\'R\'))?\'1d:\'+3(2).7(\'R\')+\';\':\'\';8 h=(3(2).1c().7(\'1b\'))?\'19:18;\':\'\';o(2.9.y){a+=\'y:\'+2.9.y+\';\';2.9.y=\'\'}o(2.9.t){a+=\'t:\'+2.9.t+\';\';2.9.t=\'\'}o(2.9.w){a+=\'w:\'+2.9.w+\';\';2.9.w=\'\'}8 i=(2.9.15);b+=\'<x \'+c+d+e+f;b+=\'9="13:11;1q-1p:1o-1n;O:W-V;N:1l;\'+g+h;b+=\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\';b+=\'J:I:H.r.G\'+\'(m=\\\'\'+3(2).7(\'m\')+\'\\\', D=\\\'F\\\');\';b+=i+\'"></x>\';o(a!=\'\'){b=\'<x 9="13:11;O:W-V;\'+a+h+\'q:\'+3(2).q()+\'u;\'+\'p:\'+3(2).p()+\'u;\'+\'">\'+b+\'</x>\'}3(2).1i();3(2).1h(b)});3(2).L("*").z(s(){8 a=3(2).T(\'N-S\');o(a.E(".M")!=-1){8 b=a.X(\'1g("\')[1].X(\'")\')[0];3(2).T(\'N-S\',\'1f\');3(2).Q(0).Y.J="I:H.r.G(m=\'"+b+"\',D=\'F\')"}});3(2).L("1e[@m$=.M]").z(s(){8 a=3(2).7(\'m\');3(2).Q(0).Y.J=\'I:H.r.G\'+\'(m=\\\'\'+a+\'\\\', D=\\\'F\\\');\';3(2).7(\'m\',j.12)})}1t 3}})(3);',62,92,'||this|jQuery||||attr|var|style|||||||||||||src|navigator|if|height|width|Microsoft|function|padding|px|appVersion|margin|span|border|each|class|alt|title|sizingMethod|indexOf|scale|AlphaImageLoader|DXImageTransform|progid|filter|id|find|png|background|display|appName|get|align|image|css|parseInt|block|inline|split|runtimeStyle|Explorer|Internet|relative|blankgif|position|MSIE|cssText|msie|browser|hand|cursor|extend|href|parent|float|input|none|url|after|hide|gif|pngFix|transparent|blank|line|pre|space|white|img|fn|return'.split('|'),0,{}));
