function changeSlider(to) {
	dojo.require("dojo.fx");
	
	// Motive
	var anim = false;
	var currentSlider = false;
	var allSliders = dojo.query('.slider');
	var animArray = new Array();
	
	for(var i=1; i <= allSliders.length; i++) {
		currentSlider = allSliders[i-1];
		if(currentSlider.id != ('slider-' + to)) {
			anim = dojo.fadeOut({ node: currentSlider});
			dojo.connect(anim,"onEnd",function(){						
				if(dojo.byId('slider-' + i)) {
					dojo.byId('slider-' + i).style.display = 'none';
				}
			});
			animArray.push(anim);
		}
	}
	
	var anim2 = dojo.fadeIn({ node: "slider-" + to });
	dojo.connect(anim,"beforeBegin",function(){						
		dojo.byId("slider-" + to).style.display = 'block';
    });
    animArray.push(anim2);
    
    // Text
    var currentText = false;
    var allSlidersTexts = dojo.query('.motive-text');
    for(var i=1; i <= allSlidersTexts.length; i++) {
		currentSliderText = allSlidersTexts[i-1];
		if(currentSliderText.id != ('motive-text-' + to)) {
			anim = dojo.fadeOut({ node: currentSliderText});
			dojo.connect(anim,"beforeBegin",function(){						
				if(dojo.byId('motive-text-' + i)) {
					dojo.byId('motive-text-' + i).style.display = 'none';
				}
			});
			anim.play();
			//animArray.push(anim);
		}
	}
    
    var animText = dojo.fadeIn({ node: "motive-text-" + to });
	dojo.connect(animText,"beforeBegin",function(){						
		if(dojo.byId("motive-text-" + to)) {
			dojo.byId("motive-text-" + to).style.display = 'block';
		}
    });
    //animArray.push(animText);
    animText.play();
    dojo.fx.combine(animArray).play();
    
    // Links    
    var motivePaging = dojo.byId('motive-paging');
    var allLinks = motivePaging.getElementsByTagName('li'); 
    
    for(var j=0; j < allLinks.length; j++) {
    	var currentLink = allLinks[j];
    	currentLink.className = '';
    }
    
    if(dojo.byId('motive-paging-' + to)) {
    	dojo.byId('motive-paging-' + to).className = 'active';
    }
    
    return false;
}

var sliderTimeout = 5000;
var currentSliderCounter = 1;
var nextSlideCounter = 2;
 
function setTimerForSlides() {
	if(currentSliderCounter > maxSliderCounter) {
		currentSliderCounter = 1;
		nextSlideCounter = currentSliderCounter + 1;
	} else if(currentSliderCounter == maxSliderCounter) {
		nextSlideCounter = 1
	} else {
		nextSlideCounter = currentSliderCounter + 1;
	}
	
	changeSlider(nextSlideCounter);
	currentSliderCounter++;
	
	window.setTimeout('setTimerForSlides()', sliderTimeout);
}



/*
*	TabsController
*/

function tabsController() {
	this.controller = false;
	this.contentDivs = new Array;
	
	this.setController = TC_setController;
	this.setContentDivs = TC_setContentDivs;
	this.setActiveTabIndex = TC_setActiveTabIndex;
	this.initialize = TC_initialize;
	this.showDiv = TC_showDiv;
	this.setSimpleController = TC_setSimpleController;
	this.disableBlur = TC_disableBlur;
	this.checkAnchors = TC_checkAnchors;
}


function TC_setController(controllElement) {
	this.controller = controllElement;
}

function TC_setContentDivs(divs) {
	this.contentDivs = TC_setContentDivs.arguments;
}

function TC_initialize() {
	/*
	 * Hide all Divs, except the first one
	 */
	 for(var i=0; i < this.contentDivs.length; i++) {
	 	var div = document.getElementById(this.contentDivs[i]);
	 	if(div && i > 0) {
	 		div.style.display = 'none';
	 	}
	 }
	 	 
	 /*
	  * Create the Tab-Controller
	  */
 	 var rootElement = document.getElementById(this.controller);
 	 if(rootElement) {
		var as = rootElement.getElementsByTagName('a');
		for(var j=0; j < as.length; j++) {
			var a = as[j];
			if(a.className != 'notab') {
				a.setAttribute('control', this.contentDivs[j]);
				a.setAttribute('number', j);
				
				var owner = this;
				
				a.onclick = function() {
					owner.showDiv(this.getAttribute('control'));
					owner.setActiveTabIndex(this.getAttribute('number'));
					
					// Anpassen des InnerFrames
					if(typeof(resize_iframe) == 'function') {
						resize_iframe();
					}
					
					return false;
				};
			}	
			this.disableBlur(a);
		}
 	 }
 	 
 	 this.checkAnchors();
}

function TC_showDiv(divId) {
	
	/*
	 * Hide all Divs first
	 */
	 for(var i=0; i < this.contentDivs.length; i++) {
	 	var div = document.getElementById(this.contentDivs[i]);
	 	if(div) {
	 		div.style.display = 'none';
	 	}
	 }
	
	var div = document.getElementById(divId);
	if(div) {
		div.style.display = 'block';
	}
}

function TC_setActiveTabIndex(index) {
	var controller = document.getElementById(this.controller);
	if(controller) {
 		var lis = controller.getElementsByTagName('li');
		for(var i=0; i < lis.length; i++) {
			var li = lis[i];
			if(i == index) {
				li.className = 'active';
			} else {
				li.className = '';
		 	}
		}
	}
}

function TC_setSimpleController(id, contentId, index) {
	var rootElement = document.getElementById(id);
	if(rootElement) {
		var as = rootElement.getElementsByTagName('a');
		for(var j=0; j < as.length; j++) {
			var a = as[j];
			var owner = this;
						
			a.onclick = function() {
				owner.showDiv(contentId);
				owner.setActiveTabIndex(index);
				return false;
			};
			
			this.disableBlur(a);

		}
	}
}

function TC_disableBlur(e) {
	e.onfocus = function() {
		this.blur();
	};
}

function TC_checkAnchors() {
	var anchor = window.location.hash;
	if(anchor) {
		anchor = anchor.substr(1);
		for(var i=0; i < this.contentDivs.length; i++) {
			var actDiv = this.contentDivs[i];
			if(actDiv == anchor) {				
				this.showDiv(actDiv);
				this.setActiveTabIndex(i);
				break;
			}
		}
	}
}
/**
	Ende Tabs Controller
*/

function showWeather(url) {
	if(url != '') {
		dojo.require("dojox.xml.DomParser");		
		dojo.xhrGet({
		    url: "/httpcontent/get_base64_encoded/" + url,
		    handleAs: "text",
		    load: function(data,args){
		    	var jsdom = dojox.xml.DomParser.parse(data);
				var weatherContent = jsdom.childNodes[3].childNodes[0].childNodes[6].childNodes[5].childNodes[0].nodeValue;
				if(dojo.byId('hidden-weather-content')) {
					dojo.byId('hidden-weather-content').innerHTML = weatherContent;
					
					var temps = dojo.query('span.temp');
					if(temps.length > 0) {
						dojo.byId('weather-temperature').innerHTML = temps[0].innerHTML; 
					}
					
					var icons = dojo.query('img.icon');
					if(icons.length > 0) {
						dojo.byId('weather-icon').src = icons[0].src; 
					}
					
					if(dojo.byId('humidity')) {
						dojo.byId('weather-humidity').innerHTML = dojo.byId('humidity').innerHTML; 
					}
					
					if(dojo.byId('windspeed')) {
						dojo.byId('weather-wind-speed').innerHTML = dojo.byId('windspeed').innerHTML;
					}
					
					if(dojo.byId('winddir')){
						dojo.byId('weather-wind-direction').innerHTML = dojo.byId('winddir').innerHTML;
					}
				}
				
		    },
		    error: function(error,args){
				//console.warn("error!",error);
		    }
		});
	}
}

function resizeWindow() {
	var leftColumn = dojo.byId('left-column');
	if(leftColumn) {
		var leftColumnHeight = leftColumn.offsetHeight;	
		var contentColumn = dojo.byId('content');
		if(contentColumn) {
			var contentColumnHeight = contentColumn.offsetHeight;
			if(leftColumnHeight > 0) {
				if(leftColumnHeight > contentColumnHeight) {
					contentColumn.style.height = leftColumnHeight + 'px';  
				}
			}
		}
	}
}


function presetRoomSelection() {
	var urlParams = window.location.search;
	if(urlParams != "") {
		urlParams = urlParams.replace(/\?/, '');
		var paramArray = urlParams.split('&');
		for(var i=0; i < paramArray.length ; i++) {
			var currentParam = paramArray[i];
			if(currentParam.indexOf('room') != -1) {
				var currentParamArray = currentParam.split('=');
				var room = currentParamArray[1];
				if(room != '') {
					var selection = dojo.byId('selection-' + room);
					if(selection) {
						var selectElArray = selection.getElementsByTagName('select');
						if(selectElArray.length > 0) {
							var selectEl = selectElArray[0];
							selectEl.selectedIndex = 1;
						}
					}
				}
			}
		}
	}
}

var __currencies = new Array();
function preloadCurrencies(currencies) {
	dojo.require("dojox.xml.parser");
	dojo.xhrGet({
	    url: "/currency/convert/ZAR/EUR",
	    handleAs: "text",
	    preventCache: true,
	    timeout: 5000,
	    load: function(data,xhr){
	    	__currencies['EUR'] = data;
		}
	});
	dojo.xhrGet({
	    url: "/currency/convert/ZAR/USD",
	    handleAs: "text",
	    preventCache: true,
	    timeout: 5000,
	    load: function(data,xhr){
	    	__currencies['USD'] = data;
		}
	});
	dojo.xhrGet({
	    url: "/currency/convert/ZAR/GBP",
	    handleAs: "text",
	    preventCache: true,
	    timeout: 5000,
	    load: function(data,xhr){
	    	__currencies['GBP'] = data;
		}
	});
}

function loadCurrencies() {
	var contentWrap = dojo.byId('content-wrap');
	if(contentWrap) {
		var expression = new RegExp(/([0-9]{0,3}(\.|,)){0,1}[0-9]{1,3}(,|\.)[0-9]{1,2} (Z|S)AR/g);
		var results = contentWrap.innerHTML.match(expression);
		if(results && results.length > 0) {
			
			preloadCurrencies();
			
			for(var j=0; j < results.length; j++) {
				var result = results[j];
				resultSafe = result.replace(/\s/, '&nbsp;');
				var expression = new RegExp(result);
				var replacement = '<a onmouseover="getCurrencies(this, ' + getClearCurrency(result) + ')" onclick="return false;" class="currencyLink" href="#"><span class="currencyInfo">ca. <span class="EUR"></span>&nbsp;EUR<br />ca. <span class="GBP"></span>&nbsp;GBP<br />ca. <span class="USD"></span>&nbsp;USD</span>' + resultSafe + '</a>';
				contentWrap.innerHTML = contentWrap.innerHTML.replace(expression, replacement);
				
			}
		}
	}
}

function getCurrencies(el, clearCurrency) {
	var spans = el.getElementsByTagName('span');
	for(var i=0; i < spans.length; i++) {
		var cSpan = spans[i];
		for(var key in currenciesURLs) {
			if(cSpan.className == key) {
				cSpan.innerHTML = Math.round(clearCurrency * parseFloat(__currencies[key]));
			}
		}
	}
}

function getClearCurrency(currency) {
	var clear = currency.replace(/(,|\.)/g, '');
	clear = clear.substr(0, clear.length - 6);
	
	return parseInt(clear);
}