myDeco.buythelook_showcase = {

	init: function(){
		try {
			
			var super_btls = $$('#look-showcase > div');
			
			super_btls.each(function(btl){

				btl.look_id = btl.select('.look')[0].id;
				
				btl.initSuperSlider = function() {
					var snap_map = myDecoBTLData[btl.look_id]['snap_points'];
					btl.snap_points = $A();
					btl.snap_photos = $A();
					snap_map.each(function(e) {
						btl.snap_points.push(parseFloat(e[1].price).toFixed(2));
						btl.snap_photos.push(e[1].full_photo);
					});

					var main_image = btl.select('.look a img')[0];
					main_image.src = btl.snap_photos[0];
					btl.min_price = myDecoBTLData[btl.look_id]['min_price'];
					btl.max_price = myDecoBTLData[btl.look_id]['max_price'];
					btl.curr_selected_price = btl.min_price;
					btl.superslider = new Control.Slider('price-slider-handle_'+btl.look_id, 'price-slider-track_'+btl.look_id, {
													range: $R(btl.min_price, btl.max_price),
													sliderValue: btl.min_price,
													onSlide: btl.slideToPoint,
													onChange: btl.slidePointSelected
													
					});
					btl.updateBTLSuperLinks();
					

					this.isClicked = false;
					this.isSliding = false;
					setTimeout(function() { new Effect.Fade(btl.select('.slide-me')[0], {duration:2.0, from:1.0, to:0}); }, 5500);
				};
				
				btl.slideToPoint = function(value) {
					btl.updateAndShowSliderBubble(value);
					btl.isSliding = true;
	
					// this reads in and compares each point with the array, 
					// but there is a pointer to keep track (one on each side)
					var new_price = value;
					var lowest_diff = btl.max_price;
					var nearest_set;
					var nearest_price;

					btl.snap_points.each(function(i) {
						
						if (Math.abs(i - new_price) < lowest_diff) {
							lowest_diff = Math.abs(i - new_price);
							nearest_price = i;
						}
					});
					var snap_idx = btl.snap_points.indexOf(nearest_price);
					if(snap_idx >= 0) {
						var snap_photo_src = btl.snap_photos[snap_idx];
						var main_image = btl.select('.look a img')[0];
						if(main_image.src != snap_photo_src) {
							main_image.src = snap_photo_src;
						}
					}
				};
				
				btl.updateAndShowSliderBubble = function(value) {
				
					btl.select('.price-bubble .blue-bubble-text')[0].innerHTML = 
						'Under <br />' + myDeco.settings.LOCALECONV.currency_symbol + Math.round(value);
					btl.select('.price-bubble')[0].style.display = 'block';
				};
				
				btl.slidePointSelected = function(value) {
					if(btl.superslider.event){
						isTrack = (Event.element(btl.superslider.event) == -1) ? false : true;
						if(isTrack){btl.isSliding = true}
						btl.isClicked = true;
					}
					if(btl.isClicked){
						btl.slideToPoint(value);
						btl.isClicked = false;
					}

					if(btl.isSliding) {
						var new_price = value;
						var lowest_diff = btl.max_price;
						var nearest_set;
						var nearest_price;
						
						btl.snap_points.each(function(i) {
						
							if (Math.abs(i - new_price) < lowest_diff) {
								lowest_diff = Math.abs(i - new_price);
								nearest_price = i;
							}
						});
						btl.isSliding = false;
						btl.curr_selected_price = nearest_price;

						// if there isn't a settimeout >400ms - the slider sometimes behaves erratically
						setTimeout(function() { btl.updateSliderToReflectPrice(); }, 400);
						
						btl.renderCurrentPrice(value);
						btl.updateBTLSuperLinks();
						btl.updateAndShowSliderBubble(value);
						setTimeout(function() { btl.select('.price-bubble')[0].style.display = 'none'; }, 1500);
						
					}
					btl.updateAndShowSliderBubble(Math.ceil(value/100)*100); // Round up to nearest 100 
					btl.updateBTLSuperLinks();
					btl.isSliding = false;
					btl.renderCurrentPrice(value);
				};
				btl.renderCurrentPrice = function(price) {
					var priceVal = btl.select('.total-price .priceval')[0];
					/*if (priceVal.hasChildNodes()) {
  						priceVal.removeChild(priceVal.lastChild);
					}*/
					priceVal.innerHTML = '';
					var priceTextNode = document.createTextNode(myDeco.settings.LOCALECONV.currency_symbol + Math.round(price));
					priceVal.appendChild(priceTextNode);
				};
				
				btl.updateSliderToReflectPrice = function() {
					btl.isSliding = false;
					var total = btl.curr_selected_price;
					if(!isNaN(total)){
						btl.superslider.setValue(total);
					}
				};
				
				btl.updateBTLSuperLinks = function() {
					
					var main_link = btl.select('.look a')[0];
					var bttn_link = btl.select('.look-slider > a')[0];
					var new_url = myDeco.urls.buythelookDetail + btl.look_id + '/?btl_price=' + btl.curr_selected_price;
					main_link.href = new_url;
					bttn_link.href = new_url;
				}
				
				btl.initSuperSlider();
			});
			
		}
		catch (e) {
			//alert(e.message)
			console.log('Error : buythelook_showcase.js : myDeco.buythelook_showcase.init : ' + e );
		}

	}

}

addLoadEvent(myDeco.buythelook_showcase.init);
