



document.observe('dom:loaded', function() {
	
	initProductImages();
	initSlide();
	
	// When the form is submitted
	$('search_mini_form').observe('submit', function(e) {													
		
		// Check whether some form fields are empty
		var gender = $F('gender').empty();
		var manufacturer = $F('manufacturer').empty();
		var size = $F('size').empty();
		var style = $F('style').empty();
		var colour = $F('colour').empty();
		
		// If ONLY a gender is selected...
		if (!gender && manufacturer && size && style && colour) {
			
			// Variable for new (redirect) location
			var newLocation = '';
			
			// Based on the value of the gender field
			switch ($F('gender')) {
				case '8':
					newLocation = '/mens-shoes';
				break;
				case '9':
					newLocation = '/womens-shoes';
				break;
			}
			
			// If we've found a gender value we know, redirect
			if (!newLocation.empty()) {
				window.location = newLocation;
			}
			
			// Don't submit the form
			Event.stop(e);	
		} 		
	});	
});



// Initiate the bottom logo slider
function initSlide() {	
	
	// Look for the brand links box
	var brandLinks = $('brandLinks');
	
	// If we haven't found it, don't do anytghing more
	if ( brandLinks  == null) {
		return;
	}
	
	// Find the slides
	var slides = $$('#brandLinks .slide');
	
	// Insert arrows
	brandLinks.insert( { 	before: '<a href="#" rel="prev" class="carousel-control control" id="leftControl">Move left</a><a href="#" rel="next" class="carousel-control control" id="rightControl">Move right</a>'} );
	
	// How wide should the container be?
	var numberOfSlides = slides.length
	var totalWidth = numberOfSlides * slides.first().getWidth()
	$('carousel-content').setStyle( { width: totalWidth+'px', height: '67px' } );
	
	// Function to update the opacity of the arrows based on the position that is passed in
	var updateArrows = function(newPos) {
		if (newPos == 0) {
				$('leftControl').setOpacity(0.3);
				$('rightControl').setOpacity(1);
			} else if (newPos == numberOfSlides-1) {
				$('leftControl').setOpacity(1);
				$('rightControl').setOpacity(0.3);
			} else {
				$('leftControl').setOpacity(1);
				$('rightControl').setOpacity(1);
		}
	}
	
		
	// Init the carousel behaviour
	var theCarousel = new Carousel('brandLinks', slides, $$('a.carousel-control'), { wheel: false, afterMove: function() { 
			var newPos = theCarousel.current._index; 
			updateArrows(newPos);
		} 
	} );
	
	// Update the arrows initially
	updateArrows(0);
	
}

//Refresh the image in the 
function resetImage(){
	var currentImage = $('image').src;
	if($("imageLink")){
		$("imageLink").href = currentImage;
	}
	
	if($('zoomView')){
		$("zoomView").src=currentImage;
	}
	
	MojoZoom.init();
	return true;
	
}



// Initialise product image changer
function initProductImages() {
	
	//If the product doesn't vary on colour, ABORT and just fun the image switcher
	if ($('attribute76') == undefined){
		// If we're not on a product page, do nothing...
		if (!$$('body').first().hasClassName('catalog-product-view')) {
			return;
		}
	
		// Where are we putting big image?
		var bigContainer = $('image');
		var thumbs = $$('ul#thumbnails li a');
		
		// Go through each thumbnail's link
		thumbs.each ( function(s) {
			
			// Attach a function to each click of the link
			s.observe('click', function(e) {	
			
				// Stop the default action of the link from taking place
				Event.stop(e);
				
				// Swap the big container source for the link href
				bigContainer.src = s.href;
				resetImage(); 
				
				
			})
		});
	}
	//Otherwise, run the colour sync, the clickable tabs and the image switcher.
	else
	{
		// If we're not on a product page, do nothing...
		if (!$$('body').first().hasClassName('catalog-product-view')) {
			return;
		}
	
		// Where are we putting big image?
		var bigContainer = $('image');
		var thumbs = $$('ul#thumbnails li a');
		
		// Go through each thumbnail's link
		thumbs.each ( function(s) {
			
			// Attach a function to each click of the link
			s.observe('click', function(e) {	
			
				// Stop the default action of the link from taking place
				Event.stop(e);
				
				// Swap the big container source for the link href
				bigContainer.src = s.href;
				resetImage(); 
				
			})
		});
		
		
		// This function syncs the visible thumbs with the colour dropdown
		function syncThumbsWithDropdown(c) {
			
				var dropDown = $('attribute76');
				var attrName = dropDown.options[dropDown.selectedIndex].innerHTML;
				var imageset = 0;
				thumbs.each ( function(t) {
					
					// t is a link, so go down to find its image
					var img = t.down('img')
					if (img.alt == attrName) {
						t.show();	
						if(imageset == 0){
							bigContainer.src = t.href;
							imageset=1;
							
						}
					} else {
						t.hide();	
					}
					
					
					
				});
		}
		
		
		
		// When the colour selector changes, update the visible thumbs
		$('attribute76').observe('change', syncThumbsWithDropdown);
		$('attribute76').observe('change', resetImage);
		
		// Also do it when a colour swatch is clicked
		$$('.swatchColor').each( function(swatch) { swatch.observe('click', syncThumbsWithDropdown) } );
		$$('.swatchColor').each( function(swatch) { swatch.observe('click', resetImage) } );
		
		// Initially remove the first option (which does nothing), and select the first option.
		// This should be done in HTML, but we'll do it here for now.
		Element.extend($('attribute76').options[0]).remove();
		fireEvent($('attribute76'), 'change');
	}
}






// A plugin to fire browser native events (Prototype's Event.fire apparently doesn't work with browser native events)
function fireEvent(element,event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}






/*

Carousel
http://code.google.com/p/prototype-carousel/

Copyright (c) 2009 Victor Stanciu - http://www.victorstanciu.ro

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
*/
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}('1C=19.1a(1D,{1b:7(c,d,e,f){4.o=t;4.h=$(c);4.8=d;4.k=e;4.5=F.G({p:1,1c:t,1d:3,q:1,1e:\'H-1E\',1f:\'H-1F\',I:\'H-1G\',J:\'H-1H\',r:t,v:K,w:\'1g\',S:\'T\'},f||{});6(4.5.w==\'L\'){4.5.r=K}4.8.1I(7(a,b){a.M=b});6(4.k){4.k.N(\'U\',\'V\',4.V.z(4))}6(4.5.v){4.h.U(\'1J\',4.v.1h(4)).U(\'1K\',4.v.1h(4))}6(4.5.1c){4.A()}6(4.5.1i){9 g=4.8.1L($(4.5.1i));6(g>(4.5.q-1)&&4.5.q>1){6(g>4.8.i-(4.5.q+1)){g=4.8.i-4.5.q}}4.l(4.8[g])}},V:7(a){4.B();9 b=a.1M(\'a\');6(!b.W(4.5.I)){6(b.W(4.5.1e)){1N("4."+b.1j+"()")}s 6(b.W(4.5.1f)){4.l(b.1j);6(4.5.J){4.k.N(\'1k\',4.5.J);b.1l(4.5.J)}}}4.X();a.B()},l:7(a){6(4.5.Y&&(Z 4.5.Y==\'7\')){4.5.Y()}4.10=4.m?4.m:4.8[0];4.m=$(a);9 b=4.h.1m();9 c=4.m.1m();6(4.o){4.o.1O()}1n(4.5.w){O\'L\':4.o=11 n.1o(4.h,{1p:1.0,1q:0,p:4.5.p,12:(7(){4.h.C=c[0]-b[0];4.h.D=c[1]-b[1];11 n.1o(4.h,{1p:0,1q:1.0,p:4.5.p,12:(7(){6(4.k){4.P()}6(4.5.u&&(Z 4.5.u==\'7\')){4.5.u()}}).z(4)})}).z(4)});Q;O\'1g\':1r:9 d;1n(4.5.S){O\'1s\':d=n.1t.1s;Q;O\'T\':1r:d=n.1t.T;Q}4.o=11 n.13(4.h,{p:4.5.p,x:(c[0]-b[0]),y:(c[1]-b[1]),S:d,12:(7(){6(4.k){4.P()}6(4.5.u&&(Z 4.5.u==\'7\')){4.5.u()}4.o=t}).z(4)});Q}R t},1u:7(){6(4.m){9 a=4.m.M;9 b=(a==0)?(4.5.r?4.8.i-1:0):a-1}s{9 b=(4.5.r?4.8.i-1:0)}6(b==(4.8.i-1)&&4.5.r&&4.5.w!=\'L\'){4.h.C=(4.8.i-1)*4.8.14().1P();4.h.D=(4.8.i-1)*4.8.14().1Q();b=4.8.i-2}4.l(4.8[b])},15:7(){6(4.m){9 a=4.m.M;9 b=(4.8.i-1==a)?(4.5.r?0:a):a+1}s{9 b=1}6(b==0&&4.5.r&&4.5.w!=\'L\'){4.h.C=0;4.h.D=0;b=1}6(b>4.8.i-(4.5.q+1)){b=4.8.i-4.5.q}4.l(4.8[b])},14:7(){4.l(4.8[0])},1R:7(){4.l(4.8[4.8.i-1])},1S:7(){6(4.10){4.l(4.8[4.10.M])}s{R t}},B:7(){6(4.E){1v(4.E)}},A:7(){4.16()},1T:7(){4.B();4.P()},1U:7(b){6(b){9 c=b.1V||b.1W;6(!c||(!4.8.1X(c)&&!4.8.1Y(7(a){R c.1Z(a)}))){4.A()}}s{4.A()}},16:7(){6(4.E!=20){1v(4.E);4.15()}4.E=21(4.16.z(4),4.5.1d*22)},v:7(a){a.23=K;a.B();9 b=0;6(!a){a=24.25}6(a.1w){b=a.1w/26}s 6(a.1x){b=-a.1x/3}6(!4.o){4.X();6(b>0){4.1u()}s{4.15()}}R 27.28(b)},X:7(){4.k.N(\'1l\',4.5.I)},P:7(){4.k.N(\'1k\',4.5.I)}});n.13=19.1a();F.G(F.G(n.13.1y,n.29.1y),{1b:7(a){4.j=$(a);9 b=F.G({x:0,y:0,1z:\'1A\'},2a[1]||{});4.A(b)},2b:7(){6(4.5.2c&&!4.j.1B){4.j.2d();4.j.1B=K;4.j.2e(4.j.2f)}4.17=4.j.C;4.18=4.j.D;6(4.5.1z==\'1A\'){4.5.x-=4.17;4.5.y-=4.18}},2g:7(a){4.j.C=4.5.x*a+4.17;4.j.D=4.5.y*a+4.18}});',62,141,'||||this|options|if|function|slides|var||||||||scroller|length|element|controls|moveTo|current|Effect|scrolling|duration|visibleSlides|circular|else|false|afterMove|wheel|effect|||bind|start|stop|scrollLeft|scrollTop|timer|Object|extend|carousel|disabledClassName|selectedClassName|true|fade|_index|invoke|case|activateControls|break|return|transition|sinoidal|observe|click|hasClassName|deactivateControls|beforeMove|typeof|previous|new|afterFinish|SmoothScroll|first|next|periodicallyUpdate|originalLeft|originalTop|Class|create|initialize|auto|frequency|controlClassName|jumperClassName|scroll|bindAsEventListener|initial|rel|removeClassName|addClassName|cumulativeOffset|switch|Opacity|from|to|default|spring|Transitions|prev|clearTimeout|wheelDelta|detail|prototype|mode|absolute|_ext|Carousel|Abstract|control|jumper|disabled|selected|each|mousewheel|DOMMouseScroll|indexOf|findElement|eval|cancel|getWidth|getHeight|last|toggle|pause|resume|relatedTarget|toElement|include|any|descendantOf|null|setTimeout|1000|cancelBubble|window|event|120|Math|round|Base|arguments|setup|continuous|cleanWhitespace|appendChild|firstChild|update'.split('|'),0,{}))

