/**
 * Dynamic HTML effects
 */


/**
 * Store nav manual highlighting 
 * 
 * Set locally to activate store nav
 */

StoreNavActive = '';



/**
 * Return back link and label
 */

function get_link_back(Default)
{
	if(document.referrer && document.referrer.indexOf(window.location.hostname) != -1)
	{
		var docref = document.referrer + '&';
		var Label = '';
		if(docref.indexOf('?page=50&') != -1)//store list
			Label = 'Back to list';
		else if(docref.indexOf('?page=51&') != -1)//product
			Label = 'Back to product';
		else if(docref.indexOf('?page=1&') != -1)//home
			Label = 'Back to list';
		else if(docref.indexOf('?page=41&') != -1)//news
			Label = 'Back to article';
		else if(Default)
			return '<a href="'+Default[0]+'" class="Link-Feature" >&laquo; '+Default[1]+'<\/a>';
		else
			Label = 'Back';

		if(Label)
			//return '<a href="'+document.referrer+'" class="Link-Feature" >&laquo; '+Label+'<\/a>';
			return '<a href="javascript:history.go(-1)" class="Link-Feature" >&laquo; '+Label+'<\/a>';
	}

	return '';
}



/**
 * Onload
 */

window.addEvent('domready', function() {	



/**
 * Site nav
 */

var SiteNav = $$('.Site-Nav li');
if(SiteNav)
	SiteNav.each(function(el,i){
		var Links = el.getElements('a');

		if(Links)
			for(var Links_i = 0;Links_i < Links.length;Links_i++)
			{
				if(!Links[Links_i].href)
					continue;
				var Link = Links[Links_i].href+'&';
				var LinkReq = url+Req+'&';
				if(LinkReq == Link || LinkReq.indexOf(Link) === 0)// || (StoreNavActive && el.hasClass(StoreNavActive)))
				{
					el.addClass('Active');
					break;
				}
			}
	});





/**
 * Store nav
 */

var StoreNavGroups = $$('.Store-Nav li.Group');
if(StoreNavGroups)
	StoreNavGroups.each(function(el,i){
		var Links = el.getElements('a');

		if(Links)
			for(var Links_i = 0;Links_i < Links.length;Links_i++)
			{
				if(!Links[Links_i].href)
					continue;
				var Link = Links[Links_i].href+'&';
				var LinkReq = url+Req+'&';
				if(LinkReq == Link || LinkReq.indexOf(Link) === 0 || (StoreNavActive && el.hasClass(StoreNavActive)) || Links[Links_i].hasClass('On'))
				{
					el.addClass('Active');
					break;
				}
			}
	});

/**
 * Disable disabled links
 */

var Dlinks = document.getElement('body').getElements('a.Disabled');
if(Dlinks)
	Dlinks.each(function(el,i){
		el.removeProperty('href');
		el.addEvent('click',function(){this.blur;return false;});
	});





/**
 * Banners
 */

Banners = $$('.Banners');
if(Banners)
	Banners.each(function(el,i) {
	
	if(el.hasClass('Inactive'))
		return false;
	
	Banners[i].Timer = null;
	Banners[i].Interval = $chk('BannerTimer')? BannerTimer:1000;
	Banners[i].i_self = i;
	Banners[i].i = 0;
	Banners[i].Imgs = el.getElements('.Banner');
	Banners[i].Running = false;
	Banners[i].Dist = el.getSize().x;
	Banners[i].SlideBox = el.getElement('.Banners-Content');
	Banners[i].Fx = null;
	Banners[i].Nav = Banners[i].getNext('.Banners-Nav');

	if(Banners[i].Nav)
		Banners[i].Nav = Banners[i].Nav.getElements('a');

	if(Banners[i].Imgs)
	{
		Banners[i].Fx = new Fx.Tween(Banners[i].SlideBox,{ 
			wait: false,
			transition: Fx.Transitions.Cubic.easeOut,
			duration: 1000
		});

		//create phantom additional first image (so auto scroll is always left to right)
		var PhantomBanner = Banners[i].Imgs[0].clone();
		PhantomBanner.inject(Banners[i].SlideBox);

		Banners[i].ChangeSlide = function(i) {
			this.i = (this.i + 1 >= this.Imgs.length)? 0:this.i + 1;
			var x = this.i * this.Dist;

			//phantom additional first
			if(this.i == 0)
				x = (this.Imgs.length * this.Dist);
			
			//reset phantom additional first (if set)
			if(this.SlideBox.getStyle('margin-left')+'' == '-'+(this.Imgs.length * this.Dist)+'px')
				this.SlideBox.style.marginLeft = 0;

			this.Fx.start('margin-left',(x == 0? x:'-'+x)+'px');
			Banners[this.i_self].SetNav();
			this.Timer = setTimeout('Banners['+this.i_self+'].ChangeSlide('+i+')',this.Interval);
		};

		Banners[i].GoToSlide = function(i) {
			if(this.i == i)
				return false;

			this.i = i;
			var x = this.i * this.Dist;

			//reset phantom additional first (if set)
			if(this.SlideBox.getStyle('margin-left')+'' == '-'+(this.Imgs.length * this.Dist)+'px')
				this.SlideBox.style.marginLeft = 0;

			this.Fx.start('margin-left',(x == 0? x:'-'+x)+'px');
			Banners[this.i_self].SetNav();
			this.Timer = setTimeout('Banners['+this.i_self+'].ChangeSlide('+i+')',(this.Interval*2));
		};

		Banners[i].Stop = function() {
			clearTimeout(Banners[this.i_self].Timer);
			this.Running = false;
		};
		
		Banners[i].SetNav = function() {
			for(var n = 0;n < this.Nav.length;n++)
			{
				if(n != this.i)
					this.Nav[n].removeClass('Active');
				else
					this.Nav[n].addClass('Active');
			}
		};
		
		if(Banners[i].Imgs.length > 1)
		{
			Banners[i].SetNav();
			Banners[i].Timer = setTimeout('Banners['+i+'].ChangeSlide(1)',Banners[i].Interval);
		}

		if(Banners[i].Nav)
		{
			var w = (Banners[i].Dist / Banners[i].Nav.length) - ((Banners[i].Nav[0].getStyle('padding-left').toInt() + Banners[i].Nav[0].getStyle('padding-right').toInt()));
			for(var Navi = 0;Navi < Banners[i].Nav.length;Navi++)
			{
				Banners[i].Nav[Navi].style.width = w+'px';
				Banners[i].Nav[Navi].Bannersi = i;
				Banners[i].Nav[Navi].i = Navi;
				Banners[i].Nav[Navi].addEvent('click',function(){
					Banners[this.Bannersi].Stop();
					Banners[this.Bannersi].GoToSlide(this.i);
					return false;
				});
			}
		}
	}

	});





/**
 * Products
 */

var Products = $$('.Products-List li');
if(Products)
	Products.each(function(el,i){
		el.addEvent('mouseenter',function(){ this.addClass('Hover'); });
		el.addEvent('mouseleave',function(){ this.removeClass('Hover'); });
		if(!el.hasClass('Gallery-Item'))
			el.addEvent('click',function(){ location.href=this.getElement('A').href; });
	});


	$(document.body).getElements('.Product-List-Img').each(function(el,ii){ 
		if(el.title.indexOf('::') == -1)//skip non-product items, e.g. article lists using this class
			return false;
		el.removeProperty('alt');//conflicts with DHTML tips in WinIE
		var t = el.get('title').split('::');
		el.store('tip:title',t[0]);
		
		//t[1] = t[1]+'|Size one|Size two (sold out)';
		t[1] = t[1].replace(/ \| /g,'<br />');
		t[1] = t[1].replace(/<br \/>/,'<br /><span class="Types">')+'<\/span>';
		t[1] = t[1].replace(/>([^\<\>]+)\(sold out\)/g,'><span class="Sold-Out">$1(sold out)<\/span>');
		el.store('tip:text',t[1]);
	});
	var ProductsTips = new Tips('.Product-List-Img',{ className:'tipbox-products-list' });





/**
 * Currency tool bar tip text
 */

$(document.body).getElements('.Currency a').each(function(el,ii){ 
	el.store('tip:title',el.title);
	el.store('tip:text','');
});
var CurrencyTips = new Tips('.Currency a',{ className:'' });





/**
 * Site nav tip text
 */

$(document.body).getElements('.Site-Nav a').each(function(el,ii){ 
	el.store('tip:title',el.title);
	el.store('tip:text','');
});
var SiteNavTips = new Tips('.Site-Nav a',{ className:'' });

$(document.body).getElements('.Page-Footer a').each(function(el,ii){ 
	el.store('tip:title',el.title);
	el.store('tip:text','');
});
var PageFooterTips = new Tips('.Page-Footer a',{ className:'' });





/**
 * Share buttons tip text
 */

$(document.body).getElements('.Share a').each(function(el,ii){ 
	el.store('tip:title',el.title);
	el.store('tip:text','');
});
var ShareButton = new Tips('.Share a',{ className:'' });





/**
 * Mailing list forms
 */

mlForms = $(document.body).getElements('form.Mailing-List');
if(mlForms)
	for(var i = 0;i < mlForms.length;i++)
	{
			mlForms[i].Input = mlForms[i].getElement('input');
			mlForms[i].Btn = mlForms[i].getElement('button');
			mlForms[i].Msg = mlForms[i].getElement('p.RequestMsg');
			mlForms[i].MsgText = mlForms[i].Msg.childNodes[0];
			mlForms[i].myRequest = new Request({
				url : SitePath+'/?page=subscribe',
				method : 'post'
			});
			mlForms[i].myRequest.i = i;

			mlForms[i].addEvent('submit',function() {
				this.MsgText.innerHTML = '';
				this.Btn.blur();
				this.addClass('Loading');
				this.action = '#';
				this.Input.readOnly = true;
				this.Input.className = "Disabled";
				this.myRequest.send(this.Input.name+'='+this.Input.value);
				return false;
			});

			mlForms[i].myRequest.onSuccess = function(responseText,responseXML) {

				if(responseText == 'success')
				{
					mlForms[this.i].removeClass('Error');
					mlForms[this.i].addClass('Success');
					mlForms[this.i].MsgText.innerHTML = '';
				}
				else if(responseText == 'invalid')
					mlForms[this.i].MsgText.innerHTML = 'That email address appears to be invalid!';
				else
					mlForms[this.i].MsgText.innerHTML = 'An error occured! Please check your email address or contact us directly...';

				mlForms[this.i].removeClass('Loading');
				if(responseText != 'success')
				{
					mlForms[this.i].addClass('Error');
					mlForms[this.i].removeClass('Success');
					mlForms[this.i].Input.readOnly = false;
					mlForms[this.i].Input.className = "";
					setTimeout('mlForms['+this.i+'].Msg.style.visibility="hidden"',200);
					setTimeout('mlForms['+this.i+'].Msg.style.visibility="visible"',400);
					setTimeout('mlForms['+this.i+'].Msg.style.visibility="hidden"',600);
					setTimeout('mlForms['+this.i+'].Msg.style.visibility="visible"',800);
				}
			}
	}


//end window.addEvent()
});
