var Site = new Class({
	initialize: function()
	{
		
	},
	set_cabin: function(ship, cabin)
	{
		var ld = $('loading');
		ld.setStyle('display', 'block');
		//$('name').set('text', 'Cabin ' + cabin.toUpperCase());
		var img = Asset.image('/images/ships/' + ship + '/cabins/t/' + cabin + '.jpg', {onload: function(){
			$('image').src = img.src;
			ld.setStyle('display', 'none');
			for (var i = 0; i < cabins_.length; i++)
			{
				if (cabins_[i][0] == cabin.toUpperCase())
				{
					$('table').set('text', cabin.toUpperCase()).setStyle('background-color', '#'+ cabins_[i][2]);
					$('desc').set('html', cabins_[i][1]);
					break;
				}
			}
		}});
	},
	show_img: function(a)
	{
		var ld = $('loading');
		ld.setStyle('display', 'block');
		//alert(a.childNodes[0].src);
		var img = Asset.image(a.childNodes[0].src.replace('/t', ''), {onload: function(){
			ld.setStyle('display', 'none');
			$('image').src = img.src;
		}});
	},
	zoom_map: function()
	{
		var src = $('map').src.replace('/t_', '/');
		this.zoom_image(src);
	},
	zoom_cabin: function()
	{
		var src = $('image').src.replace('/t/', '/');
		this.zoom_image(src);
	},
	zoom_image: function(src)
	{
		var img = Asset.image(src, {onload: function(){
			var bg = new Element('div');
			var div = new Element('div');
			var p = new Element('p');
			var aa = new Element('a', {'href': '#close', 'text': 'close'});
			var ab = new Element('a', {'href': '#close'});
			var s = window.getScrollSize();
			//
			bg.setStyles({'background-color': '#000', 'opacity': .8, 'width': s.x, 'height': s.y, 'z-index': 9998});
			p.setStyles({'text-align': 'right', 'padding': '3px 0'});
			aa.setStyle('color', '#fff');
			img.setStyle('border', '1px #aaa solid');
			div.setStyle('z-index', 9999);
			//
			p.grab(aa);
			div.grab(p);
			ab.grab(img);
			div.grab(ab);
			$(document.body).grab(bg);
			$(document.body).grab(div);
			bg.position();
			div.position();
			//
			aa.addEvent('click', function(){
				div.destroy();
				bg.destroy();
			});
			ab.addEvent('click', function(){
				div.destroy();
				bg.destroy();
			});
		}});
	}
});
var Slideshow = new Class({
	Implements: Options,
	options: {
		id: 'slideshow',
		folder: 'slideshow',
		startimg: 1,
		endimg: 10,
		duration: 2000,
		fade_dur: 3000,
		width: 400,
		height: 237,
		el: null,
		img: null,
		currimg: null,
		imgs: [null, null],
		fx: null
	},
	initialize: function(options){
		this.setOptions(options);
		this.options.el = $(this.options.id);
		this.options.currimg = this.options.startimg;
	},
	start: function(){
		if (this.set_elements())
		{
			setTimeout(this.progress.bind(this), this.options.duration);
		}
	},
	progress: function()
	{
		if (this.options.currimg == this.options.endimg) this.options.currimg = this.options.startimg - 1;
		this.options.currimg++;
		var i = this.options.currimg;
		if (i < 10) i = '0' + i;
		//
		me = this;
		var img = new Asset.images(['/images/' + me.options.folder + '/' + i + '.jpg'], {onComplete: function(){
			//
			me.options.imgs[1].src = img[0].src;
			me.options.fx.start(1, 0).chain(function(){
				me.options.fx.set(1);
				me.options.imgs[0].src = me.options.imgs[1].src;
				me.progress();
			});
		}});
	},
	set_elements: function()
	{
		if (this.options.el == null) return this.error('Missing HTML container element!');
		// get first img el
		this.options.imgs[0] = this.options.el.getFirst();
		if (this.options.imgs[0] == null) return this.error('Missing container\'s image element');
		// create second image element
		this.options.imgs[1] = new Element('img', {'src': '', 'alt': '', 'width': this.options.width, 'height': this.options.height});
		this.options.el.grab(this.options.imgs[1]);
		this.set_styles();
		this.options.fx = new Fx.Tween(this.options.imgs[0], {property: 'opacity', duration: this.options.fade_dur});
		return true;
	},
	set_styles: function()
	{
		if (this.options.imgs[0] != null && this.options.imgs[1] != null)
		{
			this.options.imgs[0].setStyle('position', 'absolute');
			this.options.imgs[1].setStyle('position', 'absolute');
			this.options.imgs[0].setStyle('z-index', 99);
		}
	},
	error: function(msg)
	{
		alert(msg);
		return false;
	}
});
var AutoComplete = new Class({
	selected_id: null,
	initialize: function()
	{
		this.selected_id = 0;
	},
	attach: function(el, arr, msg, callback)
	{
		me = this;
		el.addEvent('focus', function(){
			if (this.value == msg)
			{
				this.value = '';
				this.setStyle('color', '#000');
			}
			else
			{
				this.select();
			}
		});
		el.addEvent('blur', function(){
			if (this.value == '')
			{
				this.value = msg;
				this.setStyle('color', '#999');
			}
		});
		el.value = msg;
		el.setStyle('color', '#999');
		var s = el.getDimensions();
		var div = new Element('div', {'id': 'autocomplete', 'class': 'autocomplete'});
		//
		el.addEvent('keyup', function(){
			if (el.value == '') return;
			if (div.getStyle('display') == 'none') div.setStyle('display', 'block');
			div.set('html', '');
			var txt = el.value.toLowerCase();
			var found = false;
			var rx = null;
			for (var i = 0; i < arr.length; i++)
			{
				if (arr[i][1].toLowerCase().indexOf(txt, 0) != -1)
				{
					var a = new Element('a', {'id': 'aci_'+ arr[i][0], 'href': '#' + arr[i][0], 'html': arr[i][1].replace(new RegExp('(' + txt + ')', 'ig'), '<span>$1</span>')});
					a.addEvent('click', function(){
						div.setStyle('display', 'none');
						el.value = this.get('html').replace(/<\/?span>/ig, '');
						me.selected_id = this.id.replace('aci_', '');
						callback();
					});
					div.grab(a);
					var found = true;
				}
			}
			if (!found) div.setStyle('display', 'none'); else {div.setStyle('display', 'block');div.position({'relativeTo': el, 'position': 'bottomLeft', 'edge': 'upperLeft', 'offset': {'x': -1, 'y': 1}});}
		});
		//
		div.setStyles({'width': s.x, 'display': 'none'});
		$('content').grab(div);
		div.position({'relativeTo': el, 'position': 'bottomLeft', 'edge': 'upperLeft', 'offset': {'x': 0, 'y': 1}});
	}
});
var site = null;
window.addEvent("domready", function(){site = new Site();_load();});
