/**

 */
var superInit=init;

init = function() {
	
	superInit();
	
	$('#selectColor').click(function(){
		if($('#ColorBox').css('display')=='none'){
			selectTab('color');
			$('#selectColor').css('background-image', 'url(images/down.gif)');
			$('#selectProduct').css('background-image', 'url(images/up.gif)');
		} else {
			$('#ColorBox').hide();
			$('#selectColor').css('background-image', 'url(images/up.gif)');
		}
		
	});
	
	$('#selectProduct').click(function(){
		if($('#ProductSelectionBox').css('display')=='none'){
			selectTab('product');
			$('#selectProduct').css('background-image', 'url(images/down.gif)');
			$('#selectColor').css('background-image', 'url(images/up.gif)');
		} else {
			$('#ProductSelectionBox').hide();
			$('#selectProduct').css('background-image', 'url(images/up.gif)');
		}
	});
	

	$('.contact[rel]').overlay({
		expose: {
			color: '#000',
			closeSpeed: 'slow',
			opacity: 0.5
 		},
		closeOnClick: true,
		closeOnEsc: true,
		api: true
	});
	
	$('.favorites').click(function(){
		$('.contact[rel]').overlay().close();
	});
}
/**

 */
function initHoverAccordion() {
}

/**

 */
function initColorButtons() {
	$('#ColorSelector').addColorPicker({
		clickCallback: function(c) {
			onColorPicker(c);
		},
		colors: [	
		         '#CCC189', '#CEB487', '#D0B172', '#F2AD00', '#E4A700', '#C79600', 
		         '#D99300', '#E69400', '#AF8552', '#D8BA2E', '#E5DFCC', '#DFCEA1', 
		         '#E6D9BD', '#ECEA41', '#F6B256', '#FDDA38', '#A6937A', '#F2C000', 
		         '#B89650', '#A4861A', '#F7A11F', '#EBA557', '#D97604', '#BB4926', 
		         '#C13524', '#E8540D', '#F46F29', '#DB5316', '#D6654E', '#A02725', 
		         '#870A24', '#6C1B2A', '#581E29', '#402226', '#6D312B', '#791F24', 
		         '#C68872', '#CF7178', '#E3A0AC', '#AB392D', '#CC515E', '#CA3F51', 
		         '#BF111B', '#B01D42', '#A7323E', '#865D86', '#903F51', '#CA5B91', 
		         '#69193B', '#7D63A1', '#912D76', '#48243E', '#853D7C', '#9D8593', 
		         '#2F4A70', '#0E4665', '#162E7A', '#193058', '#1A1D2A', '#38618D',
		         '#2D3944', '#245878', '#00427E', '#1A2740', '#2782BB', '#202E53', 
		         '#657A9A', '#0070B5', '#004C91', '#138992', '#005688', '#00747C', 
		         '#28275A', '#486591', '#6391B0', '#327663', '#266D3B', '#276230', 
		         '#4E553D', '#004547', '#0E4438', '#3B3D33', '#2B3626', '#302F22', 
		         '#213529', '#426E38', '#68835F', '#293A37', '#76785B', '#443F31', 
		         '#383B34', '#00654F', '#4D8542', '#4B9B3E', '#B2D8B4', '#394937', 
		         '#87A180', '#3C372A', '#56713D', '#005C54', '#77BBBD', '#2E554B', 
		         '#00855A', '#3F8885', '#75ADB1', '#798790', '#8D969F', '#837C67', 
		         '#79796C', '#9A9A9F', '#6D7170', '#766A5D', '#756444', '#585E55', 
		         '#565957', '#575E62', '#585346', '#4C5057', '#2E3236', '#464644', 
		         '#7E8379', '#484B52', '#354044', '#919089', '#5B686F', '#7A8476', 
		         '#928E75', '#C4CACA', '#7D8083', '#B0B3AF', '#9AA0A7', '#92989A', 
		         '#505455', '#BAB9B0', '#8B7045', '#9C6935', '#774C3B', '#825333', 
		         '#904E3B', '#6B442A', '#725230', '#5B3927', '#64312A', '#49372A', 
		         '#5A2E2A', '#4F3128', '#45302B', '#3B3332', '#1E1A1A', '#A45C32', 
		         '#7A5741', '#765D4D', '#4F3B2B', '#EEE9DA', '#DADBD5', '#F8F9FB'
		         ]
	});
	
}
/**

 */
function initializeModules() {

	initializeLightbox();
	
	initializeCategory();
	
	initializeSlider();
	
	listPositionFeedback($("#ProductList"), showPositionInProductList);
	listHoverFadein($("#carousel"));
}

function initializeCategory() {
	showTransparent();
	$('#showPanel').click(function(){
		if($('#transparent').css('display')== 'none'){
			showTransparent();
		}else{
			hideTransparent();
		}
	});
	
	$('#MenuBox').mouseleave(function(){
		hideTransparent();
	});
	
	$('#Content').click(function(){
		hideTransparent();
	});
	
	$('#left').click(function(){
		hideTransparent();
	});
}

function showTransparent() {
	$('#transparent').slideDown('slow');
	$('#transparent_background').slideDown('slow');
}

function hideTransparent() {
	$('#transparent').slideUp('slow');
    $('#transparent_background').slideUp('slow');
}

function selectTab(tabName) {

	var tabs={
		"product": ["#ProductSelectionBox"],
		"color": ["#ColorBox"]
	}
	
	if(tabs[tabName]==null) {
		alert("unknown tab '"+tabName+"'");
		return;
	}
	
	for(name in tabs) {
		if(name==tabName) {
			$(tabs[name][0]).show(); // content
		} else {
			$(tabs[name][0]).hide();
		}
	}
}

/**

 */
function isCentered() {
    return false;
}

/**

 */
function shapeSelected(sceneObjectIndex) {
	selectSceneObject(sceneObjectIndex);
}

/**

 */

function listPositionFeedback(element, callback) {
	var list=$('ul:last', element);
	var li=list.children('li');

	var self = this;
	if (li.size() > 0) {
		var i=0;
		var size=li.size();
		li.each(function() {
			i++;
			this.listPosition=i+"/"+size;
			$(this).mouseenter(callback);
		});

		callback.call(li.get(0));
	}
}

function colorListPositionFeedback(element, callback) {
	var list=$('div', element);

	var self = this;
	if (list.size() > 0) {
		var i=0;
		var size=list.size();
		list.each(function() {
			i++;
			this.listPosition=i+"/"+size;
			$(this).mouseenter(callback);
		});

		callback.call(list.get(0));
	}
}

function showPositionInProductList() {
	$('.showPositionProductList').text(this.listPosition);
}

function listHoverFadein(element, callback) {
	var span=$('li>a>span', element);

	span.hover(
		function() {
			$(this).stop(true).fadeTo('fast', 1);
		},
		function(){
			$(this).fadeTo('fast', 0.8);
		}
	);
}

function initializeSlider() {
	$("#slider").slider({
		animate: true,
		range: true,
		min: 0,
		max: 8,
		values: [0, 8],
		start: function(event, ui) {





			var this_slider=$(this).data("slider");
			this_slider.moveBothHandles=!$(event.originalEvent.target).is(".ui-slider-handle");
			

			if(!this_slider.super_slide) {
				this_slider.super_slide=this_slider._slide;
				
				this_slider._slide=function(event, index, newVal) {
					if(!this.moveBothHandles) {
						this.super_slide(event, index, newVal);
						return;
					}
					var position = { x: event.pageX, y: event.pageY };

					newVal=this._leftValueFromMouse(position);
					this.values([newVal, newVal+this.options.step]);
				};


				this_slider._leftValueFromMouse=function(position) {
					var pixelTotal, pixelMouse;
					if ('horizontal' == this.orientation) {
						pixelTotal = this.elementSize.width;
						pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
					} else {
						pixelTotal = this.elementSize.height;
						pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
					}
	
					var percentMouse = (pixelMouse / pixelTotal);
					if (percentMouse > 1) percentMouse = 1;
					if (percentMouse < 0) percentMouse = 0;
					if ('vertical' == this.orientation)
						percentMouse = 1 - percentMouse;
	
					var valueTotal = this._valueMax() - this._valueMin(),
						valueMouse = percentMouse * valueTotal,
						valueMouseModStep = valueMouse % this.options.step,
						normValue = this._valueMin() + valueMouse - valueMouseModStep;
	


					if(normValue>=this._valueMax())
						normValue -=this.options.step;
	


					return parseFloat(normValue.toFixed(5));
				};
			}
		},
		slide: function(event, ui) {

			if(ui.values[0]==ui.values[1]) return false;
			return true;
		},
		change: function(event, ui) {
			var this_slider=$(this).data("slider");
			if(this_slider.noPropagation==true || this_slider.noPropagation==ui.handle) return;
			

			$(".ui-slider-range", this).queue(function () {
				onIntensitySlider(ui.values[0], ui.values[1]);
				$(this).dequeue();
			});
		}
	});
	

	$("#slider .ui-slider-handle").each(function(i) { $(this).addClass("handle"+i); });
	
	refreshSliderValues();
	
	$("#resetButton>a").click(function() {
		var s=$("#slider");
		setSliderValues(s, [s.slider("option", "min"), s.slider("option", "max")], true, false);
	});
}

/**

 */
function refreshSliderValues(animated) {
	var s=$("#slider");
	
	var intensity=$("#intensity>li");
	setSliderValues(s, [(intensity.length>0 ? parseInt(intensity[0].innerHTML) : s.slider("option", "min")),
			(intensity.length>1 ? parseInt(intensity[1].innerHTML) : s.slider("option", "max"))], animated, true);
}

/**






 */
function setSliderValues(s, newValues, animated, noPropagation) {



	var this_slider=$(s).data("slider");
	
	var old_animateOff=this_slider._animateOff;
	if(!animated) this_slider._animateOff=!animated;
	
	var old_np=this_slider.noPropagation;
	if(noPropagation) this_slider.noPropagation=noPropagation;
	else this_slider.noPropagation=this_slider.handles[0];
	
	s.slider("values", newValues);
	
	this_slider._animateOff=old_animateOff
	this_slider.noPropagation=old_np;
}

