var domain;

window.addEvent('domready', function() {
	setLink();
	setEvents();
	setGreyThumbs();

	var myURI = new URI();
	domain = myURI.toString();

$$('a').addEvents({'dblclick':function(){
	// alert('simple click please ;)');
	return false;
}})
});

var LOCATION = document.location.href;
if(LOCATION.contains('#')){
	var ArrayLoc = LOCATION.split('#');
	LOCATION = ArrayLoc[0];
}


function setLink(){
	var javascriptLink = document.getElements('a.javascript');
	javascriptLink.each(function(link){
		link.set({
			'href':link.get('alt'),
			'alt': ''
			});
		link.removeClass('javascript');
	});
	
	var linkedbt = document.getElements('a.linkedBt');
	linkedbt.each(function(bt){
		if (bt.get('id').contains('i')){
			var b = document.getElement('a[id='+bt.get('id').replace('i','b')+']');
			if (b){
				bt.addEvents({
					'mouseenter': function(){
						b.addClass('select');
						if(b.getElement('img')){
							var im = b.getElement('img');
							im.set({'src':im.get('src').replace('_1','_2')});
						}
					},
					'mouseleave': function(){
						b.removeClass('select');
						if(b.getElement('img')){
							var im = b.getElement('img');
							im.set({'src':im.get('src').replace('_2','_1')});
						}
					}
				})
			}
		} else if (bt.get('id').contains('b')){
			var i = document.getElements('a[id='+bt.get('id').replace('b','i')+']');
			i.each(function(ci){
				var img = ci.getElement('img');
				var src = img.get('src');
				bt.addEvents({
					'mouseenter': function(){
						img.set({'src':src.replace('image.php?file=','')})
					},
					'mouseleave': function(){
						img.set({'src':src})
					}
				})
			})
		}
	})
}
var imStatus = 0;
function setEvents(){
	$$('.WorkInfoTarget').each(function(WorkInfoTarget){
		var info = WorkInfoTarget.getElement('.WorkInfo');
		var myFx1 = new Fx.Tween(info,{ duration: 400 });
		var myFx2 = new Fx.Tween(info,{ duration: 800 });
		WorkInfoTarget.addEvents({
			'mouseenter': function(){
				myFx1.pause();
				myFx2.pause();
				myFx1.start('top', WorkInfoTarget.getCoordinates().height-info.getCoordinates().height+'px');
				myFx2.start('opacity',0,0.7);
			},
			'mouseleave': function(){
				myFx1.pause();
				myFx2.pause();
				myFx1.start('top', WorkInfoTarget.getCoordinates().height+'px');
				myFx2.start('opacity',0.7,0);
			}
		})
	});
	
	if (document.getElements('.GaleryThumb').length > 1){
		
		var thumbs = document.getElements('.GaleryThumb');
		thumbs.each(function(thumb){
			imStatus = 0
			var desc = thumb.getElement('.description').get('html');
			
			var img = thumb.getElement('img');
			
			thumb.addEvents({
				'click': function(event){
					var i = thumbs.indexOf(thumb);
					if (i!=imStatus){
						imStatus = i;
						if(thumb.getElement('.description').hasClass('video')){
							$('GaleryImage').empty();
							$('GaleryImage').set('html', desc);
							$$('.WorkInfoTarget').setStyles({'display':'none'});
							$('WorkInfo').addClass('noDisplay');
						}else{
							$$('.WorkInfoTarget').setStyles({'display':'block'});
							$('WorkInfo').removeClass('noDisplay');
							var ImageGalery = $('GaleryImage').getElement('img');
							if(!ImageGalery){
								$('GaleryImage').empty();
							}
							$('WorkInfo').set('html', desc);
							var src = img.get('alt');
							var myImage = new Asset.image(src, {
								'class': 'newImage',
								onload: function(){
									$('GaleryImage').adopt(myImage);
									if(ImageGalery){
										var myFx = new Fx.Tween(ImageGalery,{
											duration: 400,
											onComplete: function(){
												ImageGalery.dispose();
												var ImageGalery2 = $('GaleryImage').getElement('img');

												ImageGalery2.removeClass('newImage');
												ImageGalery2.addClass('oldImage');

											}}).start('opacity',0);
									}else{
										myImage.set('opacity', 0);
										var myFx = new Fx.Tween(myImage,{
											duration: 400
										}).start('opacity',1);
									}
								}});
						}
					}
				}
			})
		
		})
		SetGaleryNav();
	}
}

var SlideThumbs = new Class({
    initialize: function(thumbs,nb,prev,next){
		this.prev = prev;
		this.next = next;
		this.thumbs = thumbs;
		this.nb = nb;
		this.i = 0;
		this.nbtoslide = thumbs.length - this.nb;
		this.prev.setStyles({'display':'none'});

		this.bound = {
			'goprev': this.goprev.bind(this),
			'gonext': this.gonext.bind(this)
		};
		
		this.prev.addEvent('click',this.bound.goprev)
		this.next.addEvent('click',this.bound.gonext)
    },
	goprev: function(){
		this.i--;
		var myelement = this.thumbs[this.i];
		var myFx = new Fx.Tween(myelement).start('width','140px');
		if (this.i==0){
			this.prev.setStyles({'display':'none'});
		}
		if (this.i==this.nbtoslide-1){
			this.next.setStyles({'display':'block'});
		}
    },
	gonext: function(){
		var myelement = this.thumbs[this.i];
		var myFx = new Fx.Tween(myelement).start('width','0px');
		this.i++;
		if(this.i==this.nbtoslide){
			this.next.setStyles({'display':'none'});
		}
		if (this.i==1){
			this.prev.setStyles({'display':'block'});
		}
	}
});


function SetGaleryNav(){
	if($('GaleryThumbs') && document.getElements('.GaleryThumb').length > 5){
		var next = new Element('div',{'class':'nextBt'}).injectInside($('GaleryThumbs'));
		var prev = new Element('div',{'class':'prevBt'}).injectInside($('GaleryThumbs'));
		var nav = new SlideThumbs(document.getElements('.GaleryThumb'),5,prev,next);
	} else if ($('GaleryThumbsWebpage') && document.getElements('.GaleryThumb').length > 3){
		var next = new Element('div',{'class':'nextBt'}).injectInside($('GaleryThumbsWebpage'));
		var prev = new Element('div',{'class':'prevBt'}).injectInside($('GaleryThumbsWebpage'));
		var nav = new SlideThumbs(document.getElements('.GaleryThumb'),3,prev,next);
	}
}



function setGreyThumbs(){
	var greyThumbs = document.getElements('img.greythumbs');
	greyThumbs.each(function(img){
		var src = img.get('src');
		img.addEvents({
			'mouseenter': function(){
				img.set({'src':src.replace('image.php?file=','')})
			},
			'mouseleave': function(){
				img.set({'src':src})
			}
		})
		// alert(img.get('src'));
	});
}

function loadUrlIn(url,target){
	var myHTMLRequest = new Request.HTML({
		url: url,
		update: $(target),
		onComplete: function(){
			fadeImgs($(target));
			setLink();
			setEvents();
			setGreyThumbs();
		}}).get();
}

function ShowSubMenu(id){
	if($(id).getStyle('display') == 'block'){
		$(id).setStyles({'display':'none'});
	} else {
		$(id).setStyles({'display':'block'});
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////         STAFF         ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function gotoStaffNode(node){
	document.location.href = LOCATION+"#/staff/"+node;
}

function fadeforStaffNode(node){
	fadeImgs($('WorkTarget'));
	(function(){ loadStaffNode(node) }).delay(($('Content').getElements('.thumbs').length*40)+400);
}

function loadStaffNode(node){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('ChapterMenu').getElements('.select');
	selected.removeClass('select');
	$('bc'+node).addClass('select');
	setBt(node);
	loadUrlIn('content.staffnode.inc.php?node='+node+'&lng='+LNG,$('Content'));
}


function gotoStaff(id){
	document.location.href = LOCATION+"#/staff/"+id;
	
}

function fadeforStaff(id, node){
	
	fadeImgs($('WorkTarget'));
	(function(){ loadStaff(id, node) }).delay(($('WorkTarget').getElements('.thumbs').length*40)+400);
}

function loadStaff(id, node){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('Content').getElements('.select');
	$('bc'+node).addClass('select');
	setBt(node);
	selected.removeClass('select');
	selected.addClass('visited');
	
	if($('bw'+id)){
		
		$('bw'+id).removeClass('visited');
		$('bw'+id).addClass('select');
		loadUrlIn('content.staff.inc.php?node='+node+'&id='+id+'&lng='+LNG,$('WorkTarget'));
	}
	else{
		loadUrlIn('content.staff.inc.php?node='+node+'&id='+id+'&menu=1&lng='+LNG,$('Content'));
	}

	var myCookie = new Request.HTML({ url: 'setcookies.php' }).get({'id': id});
	
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////         NEWS         ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function gotoNewsNode(node){
	document.location.href = LOCATION+"#/news/"+node;
}

function fadeforNewsNode(node){
	fadeImgs($('WorkTarget'));
	(function(){ loadNewsNode(node) }).delay(($('Content').getElements('.thumbs').length*40)+400);
}

function loadNewsNode(node){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('ChapterMenu').getElements('.select');
	selected.removeClass('select');
	$('bc'+node).addClass('select');
	setBt(node);
	loadUrlIn('content.newsnode.inc.php?node='+node+'&lng='+LNG,$('Content'));
}


function gotoNews(id){
	document.location.href = LOCATION+"#/news/"+id;
	
}

function fadeforNews(id, node){
	
	fadeImgs($('WorkTarget'));
	(function(){ loadNews(id, node) }).delay(($('WorkTarget').getElements('.thumbs').length*40)+400);
}

function loadNews(id, node){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('Content').getElements('.select');
	$('bc'+node).addClass('select');
	setBt(node);
	selected.removeClass('select');
	selected.addClass('visited');
	
	if($('bw'+id)){
		
		$('bw'+id).removeClass('visited');
		$('bw'+id).addClass('select');
		loadUrlIn('content.news.inc.php?node='+node+'&id='+id+'&lng='+LNG,$('WorkTarget'));
	}
	else{
		
		loadUrlIn('content.news.inc.php?node='+node+'&id='+id+'&menu=1&lng='+LNG,$('Content'));
	}

	var myCookie = new Request.HTML({ url: 'setcookies.php' }).get({'id': id});
	
	
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////        CHAPTER       ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function gotoChapter(id){
	document.location.href = LOCATION+"#/chapter/"+id;
}

function fadeforChapter(id){
	fadeImgs($('Content'));
	(function(){ loadChapter(id) }).delay(($('Content').getElements('.thumbs').length*40)+400);
}

function loadChapter(id){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('ChapterMenu').getElements('.select');
	selected.removeClass('select');
	$('bc'+id).addClass('select');
	setBt(id);
	loadUrlIn('content.chapter.inc.php?id='+id+'&lng='+LNG,$('Content'));
}


function setBt(id){
	var Bts = $$('.chapterbt');
	Bts.each(function(Bt){
		if (Bt.get('id')!='bc'+id){
			Bt.getElement('img').set({'src':Bt.getElement('img').get('src').replace('_2','_1')});
			var src = Bt.getElement('img').get('src');
			Bt.addEvents({
				'mouseenter': function(){
					Bt.getElement('img').set({'src':src.replace('_1','_2')});
				},
				'mouseleave': function(){
					Bt.getElement('img').set({'src':src});
				}
			})
		} else {
			Bt.getElement('img').set({'src':Bt.getElement('img').get('src').replace('_1','_2')});
			// Bt.removeEvents('mouseout');
			// Bt.removeEvents('mouseover');
			Bt.removeEvents('mouseenter');
			Bt.removeEvents('mouseleave');
		}
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////        WORKS         ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function gotoWork(id){
	document.location.href = LOCATION+"#/work/"+id;
	
}

function fadeforWork(id,node){
	
	fadeImgs($('WorkTarget'));
	(function(){ loadWork(id,node) }).delay(($('WorkTarget').getElements('.thumbs').length*40)+400);
}

function loadWork(id,node){
	$('Menu2').removeClass('menuWebpage2');
	$('Menu3').removeClass('menuWebpage3');
	var selected = $('Content').getElements('.select');
	selected.removeClass('select');
	selected.addClass('visited');
	
	if($('bws'+id)){
		
		$('bws'+id).removeClass('visited');
		$('bws'+id).addClass('select');
		if ($('bws'+id).getParent('.SubWorkMenu')){
			var p = $('bws'+id).getParent('.SubWorkMenu').get('id').replace('s','');
			var myCookie = new Request.HTML({ url: 'setcookies.php' }).get({'id': p});
			$('bw'+p).addClass('select');
			if(($('bws'+id).getParent('.SubWorkMenu').getChildren('.linkedBt')).length != 1)
				$('bws'+id).getParent('.SubWorkMenu').setStyles({'display':'block'});
			closeSubmenu($('bws'+id).getParent('.SubWorkMenu'));
		} else {
			
			closeSubmenu();
		}
	}

	var myCookie = new Request.HTML({ url: 'setcookies.php' }).get({'id': id});

	if($$('.submenu').length>0){
		loadUrlIn('content.work.inc.php?id='+id+'&node='+node+'&lng='+LNG,$('WorkTarget'));
	} else {
		
		var selected = $('ChapterMenu').getElements('.select');
		selected.removeClass('select');
		$('bc'+node).addClass('select');
		setBt(node);
		loadUrlIn('content.work.inc.php?id='+id+'&node='+node+'&menu=1&lng='+LNG,$('Content'));
	}
}

function closeSubmenu(div){
	$$('.SubWorkMenu').each(function(s){
		if (!div || div!=s)
			s.setStyles({'display':'none'});
	});
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////          WEBPAGES         ////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function fadeforWebpage(node){
	fadeImgs($('Content'));
	(function(){ loadWebpage(node) }).delay(($('Content').getElements('.thumbs').length*40)+400);
}

function loadWebpage(node){
	//$('Menu2').addClass('menuWebpage2');
	//$('Menu3').addClass('menuWebpage3');
	var selected = $('ChapterMenu').getElements('.select');
	selected.removeClass('select');
	$('bc'+node).addClass('select');
	setBt(node);
	loadUrlIn('content.webpage.inc.php?node='+node+'&lng='+LNG,$('Content'));
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function fadeImgs(target){
	if(!target){
		target = $('Content');
	}
	var x = new Array(".x6",".x5",".x4",".x3",".x2",".x1");
	var y = new Array(".y4",".y3",".y2",".y1");
	var i = 0;
	y.each(function(cy){
		x.each(function(cx){
			target.getElements(cx+cy).each(function(obj){
				(function(){ fadeImg(obj) }).delay(40*i);
				i++;
			})
			
		});
	});
}

function fadeImg(img){
	if(img){
		if(img.getStyle('display')=='block'){
			var myFx = new Fx.Tween(img,{
				duration: 400,
				onComplete: function(){
					img.dispose();
				}
			}).start('opacity',0);
		} else {
			img.setStyles({'opacity':0,'display':'block'});
			var myFx = new Fx.Tween(img,{
				duration: 400,
				onComplete: function(){
					// img.dispose();
				}
			}).start('opacity',1);
		}
	}
}




////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var stateVar;
function PromptMe() {
	this.historyListener = function(historyHash) {
		stateVar = historyHash;
		if (historyHash == ''){
			viewHome();
			fadeImgs(document);
			setBt(1);
			document.title = 'top secret communication';
		} else {	
			var params = historyHash.split('/');

			var node = params[1];
			// Works
			if (NODE_WORK.contains(node)){
				if (params.length > 3){
					var id = params[2];
					fadeforWork(id,node);
				} else if (params.length == 3){
					fadeforChapter(node);
				}
			} else if (NODE_WEBPAGE.contains(node)){
				fadeforWebpage(node);
			} else if (NODE_NEWS.contains(node)){
				if (params.length > 3){
					var id = params[2];
					fadeforNews(id,node);
				} else if (params.length == 3){
					fadeforNewsNode(node);
				}
			} else if (NODE_STAFF.contains(node)){
				if (params.length > 3){
					var id = params[2];
					fadeforStaff(id,node);
				} else if (params.length == 3){
					fadeforStaffNode(node);
				}
			}
			if($('VideoTarget')){
				$('VideoTarget').dispose();
			}
			
			document.title = 'top secret communication | ' + params[params.length-1];
		}

	};
	unFocus.History.addEventListener('historyChange', this.historyListener);

	this.historyListener(unFocus.History.getCurrent());
};

function viewHome(){
	if($('HomePageContent')){
		$('HomePageContent').setStyles({'display':'block'});
	}
}

window.addEvent('domready', function() {
	var demoApp = new PromptMe();
});


function changelng(url,lng){
	document.location.href = url+lng+'/#'+stateVar;
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////             RESIZE             ////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	window.addEvent('resize',function(){
		$('VideoTarget').setStyles({
			'width':window.getCoordinates().width-20,
		    'height': window.getCoordinates().height
		});
		try {
			$('Video').setStyles({
				'width':window.getCoordinates().width,
			    'height': window.getCoordinates().height
			});
		} catch(e){}
		try {
			obj.setProperties({
				'width': window.getCoordinates().width,
			    'height': window.getCoordinates().height
			});
		} catch(e){}
	});


