if(!lteIE6) jAsset.event.ready(function() {
	var LANG = document.body.parentNode.lang,
		currentHash = '';

	function openBox(box) {
		if(box && !box.hasClass('selected')) {
			currentHash = location.hash = $('#language').hash = '#' + box.id;

			var trans = [
						{type:'height', end:390},
						{type:'width', end:390}/*,
						{type:'backgroundPositionX', end:-590},
						{type:'backgroundPositionY', end:-12}*/
					];

			var contents = box.getFirstChild().getChildren();
			contents.splice(1,1);

			if(box.getStyle('margin-top', true)) {
				trans.push({type:'margin-top', end: -195});
			}

			if(box.getStyle('margin-left', true)) {
				trans.push({type:'margin-left', end: -195});
			}

			jAsset.effects.transition(box, trans, function() {
				jAsset.CSS.clearStyle(box);
				jAsset.CSS.show(contents);
			});

			jAsset.CSS.hide(contents);
			jAsset.CSS.addClass(box, 'selected');
		}
	}

	function closeBox(box) {
		box = box || $('.box.active.selected');

		if(box) {
			var clearStyle = jAsset.CSS.clearStyle.curry([box]);

			var trans = [{type:'height', end:120},{type:'width', end:120}];

			var contents = box.getFirstChild().getChildren();
			contents.splice(1,1);

			if(box.getStyle('margin-top', true)) {
				trans.push({type:'margin-top', end: -60});
			}

			if(box.getStyle('margin-left', true)) {
				trans.push({type:'margin-left', end: -60});
			}

			jAsset.effects.transition(box, trans, function() {
				jAsset.CSS.clearStyle(box);
				jAsset.CSS.removeClass(box, 'selected');
			});

			jAsset.CSS.hide(contents);
		}

		currentHash = location.hash = $('#language').hash = '';
	}

	$$('.active.box').forEach(function(box){
		jAsset.DOM.create('a',{
			href: '#',
			className: 'closebutton',
			innerHTML: 'Close',
			title: 'Close'
		})
		.bind('click', function(evt) {
			closeBox(this.parentNode.parentNode);
			evt.stopPropagation();
			evt.preventDefault();
		})
		.insert(jAsset.DOM.getFirstChild(box), 'start');

		box.bind('click', function(evt) {
			openBox(this);
		});
	});

	$('#contact form').bind('submit', function(evt) {
		if(jAsset.forms.getEmptyFields(this).length) {
			alert(LANG == 'el'? 'Παρακαλώ συμπληρώστε όλα τα πεδία.' : 'Please complete all fields.');

			evt.preventDefault();
		}
	});

	function navigate() {
		if(location.hash != currentHash) {
			if(location.hash) {
				// A box needs to be opened
				var box = $(location.hash);

				if(box && jAsset.CSS.hasClass(box, 'active')) {
					openBox(box);
					var currentHash = location.hash;
				}
			}
			else {
				// Home, sweet home
				closeBox();
			}
		}
	}

	if(location.hash) {
		navigate();
	}
	else if($$('#contact .message').length) {
		// A mail was sent, navigate to #contact
		$('#contact dl').hide();

		$('.message a.ifjs').bind('click', function(evt) {
			jAsset.CSS.hide(this.parentNode);
			$('#contact dl').show();
			evt.preventDefault();
		})

		openBox($('#contact'));
	}

	// Check every half second to see whether the hash has changed (for back/forward buttons)
	setInterval(navigate, 500);
});
