
//load cufon
Cufon.replace('#nav > ul > li', { fontFamily: 'Futura Md BT' });
Cufon.replace('h2', { fontFamily: 'Futura Md BT' });
Cufon.replace('h3.subtitle', { fontFamily: 'Futura Md BT' });
Cufon.replace('h3.tabtitle', { fontFamily: 'Futura Md BT' });
Cufon.replace('.category', { fontFamily: 'Futura Md BT' });

Cufon.replace('.replace', { fontFamily: 'Hand Of Sean' });


/*---- Slider ---------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/

// Callback function called after the slider has been created and added to the DOM.
// It creates the two buttons that are positioned to the left & right of the slider.
var buttonManager = {
		timer: null,
		buttonID: null,
		incVal: 1,
		createButtons: function (opts) {
				
			var sldr = document.getElementById("fd-slider-" + opts.elem.id),
			btn  = document.createElement("button"),
			btL, btR;
		
			btn.setAttribute("type", "button");           
			btn.className = "demoButton";
			
			btL = btn.cloneNode(true);
			//btL.appendChild(document.createTextNode("-"));
			btL.id = opts.elem.id + "-L";
			
			btL.onclick = buttonManager.buttonClick;
			btL.onmousedown = btL.onkeydown = buttonManager.buttonDown;
			btL.onmouseup   = btL.onkeyup   = buttonManager.buttonUp;
			
			btR = btn.cloneNode(true);
			//btR.appendChild(document.createTextNode("+"));
			btR.id = opts.elem.id + "-R";
			
			btR.onclick = buttonManager.buttonClick;
			btR.onmousedown = btR.onkeydown = buttonManager.buttonDown;
			btR.onmouseup   = btR.onkeyup   = buttonManager.buttonUp;
			
			opts.elem.parentNode.insertBefore(btL, sldr);
			opts.elem.parentNode.insertBefore(btR, sldr.nextSibling);
		},
		increment:function(e) {
			fdSliderController.increment(buttonManager.buttonID, buttonManager.incVal);        
		},
		// EventHandler for buttons
		buttonClick: function(e) {
			var LR = this.id.match(/-(L|R)$/); 
			buttonManager.buttonID = this.id.replace(/-(L|R)$/, "");
			buttonManager.incVal = LR[0].search(/-L$/) != -1 ? -1 : 1;
			
			buttonManager.increment();
		},
		buttonDown: function(e) {
			if(buttonManager.timer != null) return false;
				
			e = e || window.event;
				
			if(e.keyCode) {
				if(e.keyCode == 9)  return true;        // Allow the TAB key
				if(e.keyCode != 13) return false;       // Return false on anything else but ENTER
			};        
			
			var LR = this.id.match(/-(L|R)$/); 
			buttonManager.buttonID = this.id.replace(/-(L|R)$/, "");
			buttonManager.incVal = LR[0].search(/-L$/) != -1 ? -1 : 1;                 
			buttonManager.timer = setInterval(buttonManager.increment, 500);
				
			return true;
		},
		buttonUp: function(e) {
			buttonManager.incVal = 0;
			clearInterval(buttonManager.timer);
			buttonManager.timer = null;
		}
};

// Callback function called after the slider has been created and added to the DOM
// and also whenever the slider value changes.
function updateLabel(opts) {
	var sValue = opts.value;
	sValue = sValue.substring(sValue.indexOf("-")+1, sValue.length);
	sValue = sValue.replace(/-_-/gi, " ");
	sValue = sValue.replace(/_-_/gi, "/");

    $$('.fd-slider-handle')[0].update(sValue);
	
	var contentList = $('slidercontent').childElements('li');
	
	contentList.each(function(s) {
		s.setStyle({
			display: 'none'
		});
	});
	
	//show content
	$(opts.value).setStyle({
		display: 'block'
	});
};


/*---- Gallery Pager --------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
function createPager() {
	$('gallery_pager').setStyle({
		display: 'block'
	});

	var actualPage = 0;
	
	//get all gallery pages
	var pageCount = $$('.galleryPage');
	var pages = $$('.subcolumns');
	pages.pop();
	
	var pageNum = new Array();
	for(var i = 0; i < (pages.length * 2); i++) {
		if(i%2 != 0) {
			pageNum.push(i);
		}
	}
	
	//get pager txt
	var pager_left = $$('.pager_left')[0];
	var plTxt = pager_left.down('span');
	var plLink = pager_left.down('a');
	
	var pager_right = $$('.pager_right')[0];
	var prTxt = pager_right.down('span');
	
	//hide all
	hideAll(pages);
	
	//hide prev arrow
	hideElement($('link_prev'));
	
	//show actual
	showElement(pages[actualPage]);
	//update pager txt
	plTxt.update("<strong>" + pageNum[actualPage] + "</strong>/" + pageCount.length);
	prTxt.update("<strong>" + (pageNum[actualPage] + 1) + "</strong>/" + pageCount.length);
	
	//add eventlistener for submit links
	pager_left.down('a').observe('click', function(event) {
		if(actualPage > 0) {
			actualPage--;
			hideAll(pages);
			showElement(pages[actualPage]);
			
			plTxt.update("<strong>" + pageNum[actualPage] + "</strong>/" + pageCount.length);
			prTxt.update("<strong>" + (pageNum[actualPage] + 1) + "</strong>/" + pageCount.length);
			
			// Show right pager div
			showElement($('pager_right'));
			
			// Hide prev arrow
			if (actualPage == 0) {
				hideElement($('link_prev'));
			}
			
			// Show next arrow
			if (actualPage != (pages.length-1)) {
				showElement($('link_next'));
			}
		}
		
		Event.stop(event);
	});
	
	pager_right.down('a').observe('click', function(event) {
		if(actualPage < pages.length-1) {
			actualPage++;
			hideAll(pages);
			showElement(pages[actualPage]);
			
			plTxt.update("<strong>" + pageNum[actualPage] + "</strong>/" + pageCount.length);
			prTxt.update("<strong>" + (pageNum[actualPage] + 1) + "</strong>/" + pageCount.length);
			
			// Hide right pager div
			if ((pageNum[actualPage] + 1) > pageCount.length) {
				hideElement($('pager_right'));
			}
			
			// Show prev arrow
			if (actualPage != 0) {
				showElement($('link_prev'));
			}
			
			// Hide next arrow
			if (actualPage == (pages.length-1)) {
				hideElement($('link_next'));
			}
		}
		
		Event.stop(event);
	});
	
}


/*---- common funcs ---------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
function hideAll(elemArray) {
	elemArray.each(function(s) {
		s.setStyle({
			display: 'none'
		});
	});
}

function showElement(elem) {
	elem.setStyle({
		display: 'block'
	});
}

function hideElement(elem) {
	elem.setStyle({
		display: 'none'
	});
}

/*---- retrieve flash data an fill form -----------------------------------*/
/*---------------------------------------------------------------------------*/
function sendToJavaScript(value) {
	$('promocode').value = value;
	$('form_promocode').submit();
}

/*---- init -----------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
document.observe('dom:loaded', function() {
	if($('galerie')) {
		createPager();
	}
	
});
