/******************************** A N I M A T I O N ********************************/

var Animation = function(box){
	var parent = this;
	parent.box = box;
	parent.st = false;
	parent.tmp = false;
	parent.l = 0;
	parent.k = 0;
	parent.dir = 1;
	parent.images = new Array();
	parent.srcs = new Array();
	parent.durations = new Array();
	parent.speeds = new Array();
	parent.attributes = new Array();
	parent.links = new Array();
	parent.width = 1;
	
	parent.load = function(src, duration, speed, attribute, link){
	 	if( !duration | duration<0 ) duration = 3000;
		if( !speed | speed===undefined ) speed = 2;
		if( src!='' ){
			parent.srcs.push(src);
			parent.durations.push(duration);
			parent.speeds.push(speed);
			parent.attributes.push(attribute);
			parent.links.push(link? link:false);
		}else{
			alert('error!');
		}
	}
	parent.width = function(val){
		stardust.width(parent.box, val);
	}
	parent.height = function(val){
		stardust.height(parent.box, val);
	}
	
	parent.initbuttons = function(){
		var parent2 = this;
		parent2.dir2 = 1;
		parent2.o2 = false;
		parent2.st2 = false;

		var as = getElementsByClassName('js_anim', 'a', document);
		for(k in as){
			addEvent(as[k], 'mouseover', function(){
				var divs = createTag('div', {position:'absolute',overflow:'hidden',left:'0px',width:'0px',top:'0px',padding:'3px',backgroundColor:'#000',color:'#FFF',fontSize:'15px',fontFamily:'Courier New',textAlign:'center',whiteSpace:'nowrap'});
				divs.innerHTML = this.getAttribute('title');
				divs.style.zIndex = 1100;
				this.insertBefore(divs, this.childNodes[0]);
				parent2.dir2 = 1;
				parent2.o2 = divs;
				window.clearTimeout(parent2.st2);
				parent2.st2 = window.setTimeout(parent2.roll, 100);
				this.style.cursor = 'pointer';
			}, false);
			as[k].onmouseout = function(){
				this.removeChild(this.childNodes[0]);
			}
			as[k].onclick = function(){
				var frame = parseInt(this.getAttribute('name'));
				if( !frame ) return false;
				for(k in parent.images){
					SetOpacity(parent.images[k], 0);
					parent.images[k].style.display = 'none';
				}
				parent.k = frame-1;
				parent.dir = 1;
				window.clearTimeout(parent.st);
				parent.st = window.setTimeout(parent.fade, 100);
				return false;
			}
		}
		
		parent2.roll = function(){
			if(isObject(parent2.o2)){
				var max = parseInt(parent2.o2.innerHTML.length)*10;
				var w = GetW(parent2.o2);
				if(w==0) w = 10;
				var ratio = (w/max)*300;
				w += ((parent2.dir2>0)? ratio:-ratio);
				SetW(parent2.o2, w);
				if(parent.width==1 | 1) parent2.o2.style.left = '-'+(w)+'px';
				if(w<max & w>0) parent2.st2 = window.setTimeout(parent2.roll, 50);
				else{
				 	SetW(parent2.o2, parseInt(max+4));
				 	if(parent.width==1 | 1) parent2.o2.style.left = '-'+(max+4)+'px';
					parent2.o2 = false;
				}
			}
		}
	}
	
	parent.setbuttons = function(){
		var as = getElementsByClassName('js_anim', 'a', document);
		for(k in as){
			var i = parseInt(as[k].getAttribute('name'))-1;
			var img = as[k].getElementsByTagName('img')[0];
			img.src = img.src.split( (i<=parent.k)?'_anim_nact':'_anim_act' ).join( (i<=parent.k)?'_anim_act':'_anim_nact' );
		}
	}
	
	parent.start = function(){
		parent.srcs.push(parent.srcs[0]);
		parent.speeds.push(parent.speeds[0]);
		parent.durations.push(100);
		parent.attributes.push('');
		parent.links.push('');
						
		parent.l = parent.srcs.length;
		parent.load_image();
		//parent.initbuttons();
	}
	
	parent.debug = function( val ){
		if( !parent.debug_field ){
			parent.debug_field = createTag('div', {position:'absolute',top:'0px',left:'0px',zIndex:'2000',background:'#FFF'});
			//document.insertBefore(document.childNodes[0], parent.debug_field);
			document.body.appendChild(parent.debug_field);
		}
		parent.debug_field.innerHTML += val + '<br>';
	}
	//alert(document.body.childNodes[0]);
	parent.load_image = function(){
		window.clearTimeout(parent.st);
		parent.loader(1-parent.srcs.length/parent.l);
		if( parent.srcs.length>0 ){
			parent.tmp = new Image();
			stardust.opacity(parent.tmp, 0);
			parent.tmp.style.zIndex = 1000 + parent.images.length;
			parent.tmp.style.position = 'absolute';
			parent.tmp.style.display = 'none';
			var w = stardust.width(parent.box);
			var h = stardust.height(parent.box);
			stardust.left(parent.tmp, 0);
			stardust.right(parent.tmp, 0);
			stardust.addEvent(parent.tmp, 'load', function(){ 
				parent.images.push(parent.tmp);
				parent.st = window.setTimeout(parent.load_image, 10);
			}, false);
			parent.tmp.src = parent.srcs.shift();
			parent.box.appendChild(parent.tmp);
		}else{
			parent.st = window.setTimeout(function(){
			 	parent.loader(2);
			 	parent.fade();
			}, 10);
		}
	}
	
	parent.loader = function(state){
		if(state==0){
			parent.div = stardust.createTag('div', {textAlign:'center',fontSize:'16px',color:'#FFF',paddingTop:'60px',fontSize:'40px',left:'0px',top:'0px',overflow:'hidden'});
			parent.div.innerHTML = '0%';
			parent.box.appendChild(parent.div);
		}
		if(parent.div){
			parent.div.innerHTML = parseInt(state*100)+'%';
			if(state==2) parent.div.parentNode.removeChild(parent.div);
		}
	}
	parent.fade = function(){
	 	var o = parent.images[parent.k];
		o.style.display = 'block';
		//var step = 0.2; var speed = 150;
		switch( parent.speeds[parent.k] ){
			case 1: var step = 0.125; var speed = 20; break
			case 2: var step = 0.0625; var speed = 35; break
			case 3: var step = 0.02; var speed = 70; break
			default: var step = 0.0625; var speed = 35;
		}
		var p = stardust.opacity(o);
		//if( Math.round(p)==0 ) parent.setbuttons();
		p += (parent.dir>0)? step:-step;
		var w = stardust.width(parent.box);
		var h = stardust.height(parent.box);

		switch( parent.attributes[ parent.k ] ){
			case 'left': stardust.left(o, -((1-p)*w)); break;
			case 'right': stardust.left(o, ((1-p)*w)); break;
			case 'top': stardust.top(o, -((1-p)*h)); break;
			case 'bottom': stardust.top(o, ((1-p)*h)); break;
			case 'behind': stardust.top(o, (1-p)*h/2 );	stardust.left(o, (1-p)*w/2 ); stardust.height(o, p*h );	stardust.width(o, p*w ); break;
			case 'cutleft': stardust.crop(o, 0, (p*w), h, 0); break
			case 'cutright': stardust.crop(o, 0, w, h, ((1-p)*w)); break
			case 'cuttop': stardust.crop(o, 0, w, (p)*h, 0); break
			case 'cutbottom': stardust.crop(o, (1-p)*h, w, h, 0); break
			case 'cuthorizontal': stardust.crop(o, (h-p*h)/2, w, (h+p*h)/2, 0 ); break
			case 'cutvertical': stardust.crop(o, 0, (w+p*w)/2, h, (1-p)*w/2 ); break
			case 'cutbehind': stardust.crop(o, (h-p*h)/2, (w+p*w)/2, (h+p*h)/2, (1-p)*w/2 ); break
			//default: SetL(parent.tmp, 0); SetT(parent.tmp, 0); break;
		}
		stardust.opacity(o, p);
		if( p>=1 & parent.attributes[ parent.k ]=='clear' ){
			for(i=0;i<parent.k-1;i++) parent.images[i].style.display = 'none';
		}
		window.clearTimeout(parent.st);
		if(p<1 & p>0){
			parent.st = window.setTimeout(parent.fade, speed);
		}else if( Math.round(p)==1 ){
			stardust.opacity(parent.images[0], 1);
			parent.images[0].style.display = 'block';
			stardust.width(o, w);
			stardust.height(o, h);
			stardust.left(o, 0);
			stardust.top(o, 0);
			parent.k += 1;
			
			//parent.debug( parent.k+'/'+parent.l+' = '+parent.durations[parent.k] );
			if( parent.k==parent.l ){
				for(i=1;i<parent.l-1;i++){
					stardust.opacity(parent.images[i], 0);
					parent.images[i].style.display = 'none';
				}
				parent.k = parent.l-1;
				parent.dir = -1;
			}
			parent.st = window.setTimeout(parent.fade, parent.durations[parent.k-1]);
			
		}else if( Math.round(p)==0 ){
			parent.k = 1;
			parent.dir = 1;
			parent.st = window.setTimeout(parent.fade, parent.durations[parent.k]);
		}
		o.parentNode.onmouseover = function(){ this.style.cursor = (parent.links[parent.k-1]===false)? '':'pointer'; }
		o.parentNode.onclick = function(){ if(parent.links[parent.k-1]===false) return false; else window.location.href = parent.links[parent.k-1]; }
		return true;
	}
}

var anim = new Animation($('header_animation'));
anim.width(260);
anim.height(260);

anim.load('/content/images/header_star_0.gif', 0, 1, 'clear');
anim.load('/content/images/header_star_1.gif', 200, 2, 'behind');
anim.load('/content/images/header_star_2.gif', 1000, 2, 'behind');
anim.load('/content/images/header_star_3.gif', 200, 2, 'behind');
anim.load('/content/images/header_star_4.gif', 200, 2, 'behind');
anim.load('/content/images/header_star_5.gif', 5000, 2, 'behind');
anim.start();



/******************************** SCROLLER ********************************/

var stardustScroller = function()
{
	var parent = this;
	parent.allow = true;
	
	parent.move = function()
	{
		var d = stardust.left(parent.frame) - 1;
		if( stardust.width(parent.frame)==Math.abs(d) && d<0 ) d = parent.width;
		stardust.left(parent.frame, d);
		
		if( parent.allow ) window.setTimeout(parent.move, 10);
	}
	
	parent.init = function( params )
	{
		if( !params.element || !stardust.isObject(params.element) ) return false;
		if( !params.element || !stardust.isObject(params.element.childNodes[0]) ) return false;
		parent.element = params.element;
		parent.frame = parent.element.childNodes[0].cloneNode(true);
		
		parent.frame.style.position = 'absolute';
		parent.frame.style.width = (parent.frame.innerHTML.length*5)+'px';
		parent.width = params.width;
		stardust.left(parent.frame, params.width);
		stardust.top(parent.frame, 0);
		parent.element.childNodes[0].innerHTML = '&nbsp;';
		parent.element.childNodes[0].style.position = 'relative';
		parent.element.style.overflow = 'hidden';
		parent.element.childNodes[0].appendChild(parent.frame);
		parent.element.childNodes[0].insertBefore(parent.element.childNodes[0].childNodes[0], parent.frame);
		
		parent.frame.onmouseover = function()
		{
			parent.allow = false;
		}

		parent.frame.onmouseout = function()
		{
			parent.allow = true;
			window.setTimeout(parent.move, 10);
		}
		
		window.setTimeout(parent.move, 10);
	}
}
var scroller = new stardustScroller();
scroller.init({
	element:$('scroller'),
	width:880
	});

/******************************** JS POPUPS ********************************/

var as = stardust.getElementsByClassName('js_popup', 'a', document);
for(i=0;i<as.length;i++){
	as[i].onclick = function(){
		var link = this.getAttribute('href');
		try{
			var dimension = this.childNodes[0].getAttribute('lang').split(':');
			// '<html><body style="padding: 0px; margin: 0px;">img src="' + link + '"></body></html>'
			if( dimension[0]==0 )
				openWindow(link,'',920,640);
			else
				openWindow(link, '', dimension[0], dimension[1]);
			return false;
		}catch(e){}
		openWindow(link,'',920,640);
		return false;
			/*var link = this.getAttribute('href');
			parent.open_window(link, link, 560, 800);
			var img = new Image();
			img.onload = function()
			{
				window.open(this.src, this.src, 'width=' + this.width + ', height=' + this.height + ',resizable=0,scrollbars=no,menubar=no,status=0,location=0');
			}
			img.src = link;
			return false;*/

	}
}

function openWindow(url, title, width, height) {
	window.open(url, title, 'width=' + width + ', height=' + height + ',resizable=0,scrollbars=no,menubar=no');
}
/* ******************************* GALLERY MINIATURES ******************************* */

var gallery_miniatures = function( list )
{
	try{
		//var list = stardust.getElementsByClassName('img', 'a', stardust.getElementsByClassName('hotels', 'ul', $('hotels') )[0] );
		for(k in list)
		{
			var src = list[k].childNodes[0];
			list[k].style.padding = '0px';
			list[k].style.backgroundImage = 'url(' + src.getAttribute('src') + ')';
			list[k].style.backgroundPosition = 'center';
			list[k].innerHTML = '<div style="width: 150px; height: 150px;" lang="'+((parseInt(src.width)*4)+20)+':'+((parseInt(src.height)*4)+10)+'"></div>';
		}
	}catch(e){}
}

if( $('hotels') )
{
	stardust.addLoadEvent(function(){
		new gallery_miniatures( stardust.getElementsByClassName('miniatures', 'a', $('hotels') ) );
	});
}