
var $j = jQuery.noConflict();

window.addEvent('domready', function(){
	
	$$('img').each(function(img){
		img.setProperty('galleryimg','no');
		var t = img.getCoordinates(img.getParent()).top;
		var l = img.getCoordinates(img.getParent()).left;
		var myDrag = new Drag(img,{
			onDrag: function(){
				img.setStyles({
					'top':t,
					'left':l
				})
			}
		});
		img.addEvents({
			'contextmenu': function(event){
				return false;
			}
		});
	})
	
	var myTips = new Tips('a.pointy',{offset:{'x': 15, 'y': -15}});
	
	$$('.slide-item-webpage').each(function(obj){
		
		// var text = obj.getElement('.contact-item-text');
		// var title = obj.getElement('.contact-item-title');
		// var info = obj.getElement('.contact-item-info');
		var backgroundFx = new Fx.Tween(obj, { duration: 300, link: 'cancel', property: 'background-color' });
		// info.set('reveal', {duration: 200, transition: 'quad:in'});

		obj.addEvents({
			'mouseenter': function(){
				backgroundFx.start('#e6e6e6');
			},
			'mouseleave': function(){
				backgroundFx.start('#f5f5f5');
			},
			'click': function(){
				// document.location.href = obj.get('rel');
			}
		})
	});
	
	$$('.slide-item-webpage-parent').each(function(obj){
		
		var childs = document.getElements('div[rel='+obj.get('id')+']');
		var more_bt = obj.getElement('.more-bt');
		var home_bt = obj.getElement('.home-bt');

		obj.addEvents({
			'mouseenter': function(){
				if (childs[0].hasClass('slide-item-hidden')){
					more_bt.setStyles({'display':'block'});
				} else {
					home_bt.setStyles({'display':'block'});
				}
			},
			'mouseleave': function(){
				more_bt.setStyles({'display':'none'});
				home_bt.setStyles({'display':'none'});
			},
			'click': function(){
				if (childs[0].hasClass('slide-item-hidden')){
					more_bt.setStyles({'display':'none'});
					home_bt.setStyles({'display':'block'});
					openParent(obj);
				} else {
					more_bt.setStyles({'display':'block'});
					home_bt.setStyles({'display':'none'});
					closeChilds(childs);
					(function(){ openParents(obj); }).delay(500);
				}
			}
		})
	});
	
	$$('.slide-item-webpage-children').each(function(obj){
		
		var home_bt = obj.getElement('.home-bt');
		var parent = $(obj.get('rel'));
		var childs = document.getElements('div[rel='+obj.get('rel')+']');

		obj.addEvents({
			'mouseenter': function(){
				home_bt.setStyles({'display':'block'});
			},
			'mouseleave': function(){
				home_bt.setStyles({'display':'none'});
			},
			'click': function(){
				closeChilds(childs);
				(function(){ openParents(parent); }).delay(500);
			}
		})
	});

	
	window.addEvents({
		'mousemove': function(event){
			setSlideArrowPosition(event.page.y);
		}
	});
	
	window.addEvent('resize',function(){ resizePage(); });
	resizePage();
	
});

function goToHome(){
	closeParents();
	(function(){ openParents(); }).delay(600);
}

function goToNode(node){
	var parent = $('node'+node);
	$$('#Menu a').removeClass('select');
	openParent(parent);
}

function openCurrentParent(obj){
	var menu_link = document.getElements('a[rel='+obj.get('id')+']');
	menu_link.addClass('select');
	if (obj.hasClass('slide-item-hidden')){
		var widthFx = new Fx.Tween(obj, { duration: 300, link: 'cancel', property: 'width' }).start(310);
		(function(){
			obj.removeClass('slide-item-hidden');
			obj.addClass('slide-item-visible');
			updateSlideElements($$('#slide-content .slide-item-visible'));
		}).delay(300);
	}
}

function openParent(obj){
	var childs = document.getElements('div[rel='+obj.get('id')+']');
	if (myMainCarousel.currentSlide > 0){
		myMainCarousel.goTo(0);
		(function(){ closeParents(obj); }).delay(500);
		(function(){ openCurrentParent(obj); }).delay(900);
		(function(){ openChilds(childs); }).delay(1000);
	} else {
		closeParents(obj);
		(function(){ openCurrentParent(obj); }).delay(400);
		(function(){ openChilds(childs); }).delay(500);
	}
}

function openParents(parent){
	$$('#Menu a').removeClass('select');
	$$('.slide-item-webpage-first-level').each(function(obj){
		if (obj != parent){
			var widthFx = new Fx.Tween(obj, { duration: 300, link: 'cancel', property: 'width' }).start(310);
			(function(){
				obj.removeClass('slide-item-hidden');
				obj.addClass('slide-item-visible');
				updateSlideElements($$('#slide-content .slide-item-visible'));
			}).delay(300);
		}
	});
}

function closeParents(parent){
	$$('.slide-item-webpage').each(function(obj){
		if (obj != parent){
			var widthFx = new Fx.Tween(obj, { duration: 300, link: 'cancel', property: 'width' }).start(0);
			(function(){
				obj.removeClass('slide-item-visible');
				obj.addClass('slide-item-hidden');
				updateSlideElements($$('#slide-content .slide-item-visible'));
			}).delay(300)
		}
	});
}

function openChilds(childs){
	childs.each(function(child){
		var widthFx = new Fx.Tween(child, { duration: 300, link: 'cancel', property: 'width' }).start(310);
		(function(){
			child.removeClass('slide-item-hidden');
			child.addClass('slide-item-visible');
			updateSlideElements($$('#slide-content .slide-item-visible'));
		}).delay(300);
	});
}

function closeChilds(childs){
	childs.each(function(child){
		var widthFx = new Fx.Tween(child, { duration: 300, link: 'cancel', property: 'width' }).set(310).start(0);
		(function(){
			child.removeClass('slide-item-visible');
			child.addClass('slide-item-hidden');
			updateSlideElements($$('#slide-content .slide-item-visible'));
		}).delay(300);
	});
}

function updateSlideElements(slides){
	
	myMainCarousel.updateElements(slides);
	
}

function resizePage(){
	$('Main').setStyles({'height': window.getHeight() });
	$$('.slide-item-content').setStyles({'height': window.getHeight()});
}

function setSlideArrowPosition(y){
	var pos_y = (y>37) ? ((y>window.getHeight()-37) ? window.getHeight()-37 : y ) : 37;
	$$('#slide-arrow-left .arrow').setStyles({'top' : pos_y });
	$$('#slide-arrow-right .arrow').setStyles({'top' : pos_y });
}

window.addEvent('load', function(){
	$$('.loading').setStyles({'background':'none'});
});


function toogleDiv(div,bt){
	if (div.getStyle('display') == 'block'){
		div.dissolve();
		bt.set({'class':'toggled'});
		$$('.tohide').setStyles({ 'display' : 'none' })
	} else {
		div.reveal();
		bt.set({'class':'toggle'});
		$$('.tohide').setStyles({ 'display' : 'block' })
	}
}


function hideContent(){
	$('MainContent').setStyles({'visibility':'hidden'});
	$('LeftContent').setStyles({'visibility':'hidden'});
	$('RightContent').setStyles({'visibility':'hidden'});
	$('Hide').setStyles({'display':'none'});
	$('Show').setStyles({'display':'block'});
}

function showContent(){
	$('MainContent').setStyles({'visibility':'visible'});
	$('LeftContent').setStyles({'visibility':'visible'});
	$('RightContent').setStyles({'visibility':'visible'});
	$('Hide').setStyles({'display':'block'});
	$('Show').setStyles({'display':'none'});
}

function strpad(val){
	if (val.toString().length==1){
		return "00"+val;
	} else if (val.toString().length==2){
		return "0"+val;
	} else {
		return val;
	}
}

function changegrid(url,grid){
	var myRequest = new Request({
		url: 'setsessions.php?name=imagegride&value='+grid,
		onComplete: function(response){
			document.location.href = url;
		}}).get();
}


function setCookies(name,value,complete){
	var myRequest = new Request({
		url: 'setcookies.php?name='+name+'&value='+value,
		onComplete: function(response){
			if (complete){
				document.location.reload();
			}
		}}).get();
}

function setSessions(name,value,complete){
	var myRequest = new Request({
		url: 'setsessions.php?name='+name+'&value='+value,
		onComplete: function(response){
			if (complete){
				document.location.reload();
			}
		}}).get();
}

// Tab

function loadUrlIn(url,target,fade){
	if ((target.getCoordinates().top-window.getScroll().y > 0)){
		loadUrl(url,target,fade);
	} else {
		var myFx = new Fx.Scroll(window, {
		    offset: {
		        'x': 0,
		        'y': -100
		    },
		onComplete: function(){
			loadUrl(url,target,fade);
			}}).start(0,target.getCoordinates().top)
	}
}

function loadUrl(url,target,fade){
	if (fade){ var myFx2 = new Fx.Tween(target,{duration: 800, link: 'chain',transition: Fx.Transitions.Quad.easeIn}).set('opacity',0); }
	var myHTMLRequest = new Request.HTML({
		url: url,
		update: target,
		onComplete: function(){
			if (fade){ myFx2.start('opacity',1); }
		}}).get();
}


function contactSheetAdd(contact,portfolio,mfile){
	var myRequest = new Request({
		url: 'contact.sheet.add.php?contact='+contact+'&portfolio='+portfolio+'&mfile='+mfile,
		onComplete: function(response){
			$('ContactSheetCounter').set('html',response);
			// $('ContactSheetCounter').highlight('color','#fff');
			// $('ContactSheetCounter').highlight('color','#fff');
		}
	}).get();
}

function contactSheetRemove(contact,portfolio,mfile){
	var myRequest = new Request({
		url: 'contact.sheet.remove.php?contact='+contact+'&portfolio='+portfolio+'&mfile='+mfile,
		onComplete: function(response){
			$('ContactSheetCounter').set('html',response);
			document.location.reload();
		}
	}).get();
}


var MySimpleSlide = new Class({
	Implements: [Options, Events],
	options: {
//		onRotate: $empty,
//		onStop: $empty,
//		onAutoPlay: $empty,
//		onShowSlide: $empty,
		transitionDuration: 500,
		startIndex: 0,
		startMargin: 0,
		minSlide: 1,
		moveSlide: 1
	},
	initialize: function(container, slide, slides, arrawleft, arrawright, width, options){
		this.container = document.id(container);
		this.slide = document.id(slide);
		this.arrawleft = document.id(arrawleft);
		this.arrawright = document.id(arrawright);
		this.setOptions(options);
		this.width = width;
		this.slides = slides;
		this.transitionFx;
		this.setupAction();
		this.goTo(this.options.startIndex);
		return this;
	},
	toElement: function(){
		return this.container;
	},
	setupAction: function() {
		this.arrawleft.addEvent('click', function(){ this.goprev(); }.bind(this));
		this.arrawright.addEvent('click', function(){ this.gonext(); }.bind(this));
		
		this.transitionFx = new Fx.Tween(this.slide, {
			duration: this.options.transitionDuration,
			transition: 'quad:out',
			link: 'cancel',
			property: 'margin-left'
		});
		
		// this.buttons.each(function(el, idx){
		// 	document.id(el).addEvent(action, function() {
		// 		if (this.currentSlide != idx) this.showSlide(idx);
		// 		this.stop();
		// 	}.bind(this));
		// }, this);
	},
	updateElements: function(slides){
		this.slides = slides;
	},
	goTo: function(SlideIndex){
		this.transitionFx.start(this.options.startMargin-(SlideIndex*this.width));
		// this.slide.setStyles({'margin-left': this.options.startMargin-(SlideIndex*this.width) });
		this.currentSlide = SlideIndex;
	},
	gonext: function(){
		var current = this.currentSlide;
		if (current+this.options.moveSlide > this.slides.length-1 || current == this.slides.length-this.options.minSlide){
			var next = 0
		} else if (current+this.options.moveSlide > this.slides.length-this.options.minSlide){
			var next = this.slides.length-this.options.minSlide;
		} else {
			var next = current + this.options.moveSlide;
		}
		this.goTo(next);
		return this;
	},
	goprev: function(){
		var current = this.currentSlide;
		if (current == 0){
			var prev = this.slides.length-this.options.minSlide;
		} else if (current < this.options.moveSlide){
			var prev = 0;
		} else {
			var prev = current-this.options.moveSlide;
		}
		this.goTo(prev);
		return this;
	}
});

