
window.addEvent('domready',function(){
	if (!(PHPview == 'user' && PHPcontext == 'upload')) {
		$('content_wrap').setStyle('opacity',0).set('tween',{duration: 200, transition: 'sine:in:out'}).tween('opacity', 1);
	}
});


// VIEW
switch (PHPview) {
	
	// VIEW Start
	case 'start':
		window.addEvent('domready', initializeThumbs);
		break;
	
	// VIEW Thumbs
	case 'thumbs':
		window.addEvent('domready', initializePages);
		break;
	
	// VIEW Albums
	case 'albums':
		window.addEvent('domready', function(){
		initializeThumbs();
		initializePages();
		});
		break;
	
	// VIEW Picture
	case 'picture':
		var currentPic, picpage, pic, desc, pageTriggerPrev, pageTriggerNext, picRequest, descAvailable, descEventIsSet;
		window.addEvent('domready', initializePics);
		break;
	
	case 'photographers':
		window.addEvent('domready', initializePages);
		break;
	
	case 'blog':
		window.addEvent('domready', initializeBlog);
		break;
	
	default:
		break;
	
}

function initializeBlog() {
	allentries_comments = $$('.blogentry_comments');
	allentries_comments.each(function(blogentry_comments) {
		
		currentid = blogentry_comments.get('id').substring(18);
		
		//Kommentare ausblenden
		initializeFadeSlideToggle($('blogentry_commenttitle'+currentid),$('blogentry_comments_wrap'+currentid),0);
		//Formulare ausblenden
		initializeFadeSlideToggle($('newcomment_toggle'+currentid),$('blogentry_newcomment'+currentid),0);
		//Kommentare neu laden
		loadBlogEntryComments(currentid);
		loadBlogEntryCommentForm(currentid);
		
	});
	
}

function initializeBlogCommentDeletes(entryid) {
	allcomments_commentdeletes = $$('.blogentry'+entryid+'_comment_delete');
	allcomments_commentdeletes.each(function(comment_delete_div) {
		
		commentid = comment_delete_div.get('id').substring(24);
		comment_delete_div.setStyles({cursor: 'pointer', color: '#D90000'})
		callback = function(x,y) { return function(){if (confirm('Wirklich löschen?')) {deleteComment(x,y);}};};
		comment_delete_div.addEvent('click',callback(commentid,entryid));
	});
}

function deleteComment(commentid, entryid) {
	removeReq = new Request({method: 'get', noCache: true, url: ('../view/templates/comment.php?do=remove&id='+commentid), onSuccess: function(responseText){
			if (responseText.substr(responseText.length-2) != 'ok') {
				alert(responseText);
			} else {
				$('blogentry_commenttitle'+entryid).fireEvent('click');
				$('blogentry_comments_wrap'+entryid).get('slide').chain(function(){
					loadBlogEntryComments(entryid);
					$('blogentry_newcomment_wrap'+entryid).setStyle('display','none');
					$('blogentry_commenttitle'+entryid).fireEvent('click','',600);
				});			}
		}
	});
	removeReq.get();
}

function initializeFadeSlideToggle(toggle,slide,showonstart) {
	slide.set('tween',{duration: 250, transition: 'sine:in:out'});
	slide.set('slide',{duration: 800, transition: 'pow:in:out'});
	if (showonstart) {
		slide.slide('show').fade('show');
	} else {
		slide.slide('hide').fade('hide');
	}
	
	callbackHelper = function(x) {return function(){
		if (x.getStyle('opacity')==1) {
			x.fade('out').get('tween').chain(function(){
				x.slide('out');
			});
		} else {
			x.slide('in').get('slide').chain(function(){
				x.fade('in');
			});
		}
	};};
	toggle.setStyle('cursor','pointer');
	toggle.addEvent('click',callbackHelper(slide));
}

function loadBlogEntryComments(entryid) {
	loadReq = new Request.HTML({method: 'get', noCache: true, url: '../view/templates/comment.php?do=load&type=blogentry&id='+entryid, update: $('blogentry_comments'+entryid), evalResponse: true, onSuccess: function(){
			initializeBlogCommentDeletes(entryid);
		}
	});
	loadReq.get();
}

function loadBlogEntryCommentForm(entryid) {
	loadReq = new Request.HTML({method: 'get', noCache: true, url: '../view/templates/comment.php?do=request&type=blogentry&id='+entryid, update: $('blogentry_newcomment'+entryid), evalScripts: true, onSuccess: function(){
			acti = '../view/templates/comment';
			acti += '.php?do=add&type';
			acti += '=blogentry&id='+entryid;
			$('blogentry_commentform'+entryid).set('action',acti);
			initBlogCommentFormcheck(entryid);
		}
	});
	loadReq.get();
}

function initBlogCommentFormcheck(entryid) {
	theCheck = new FormCheck('blogentry_commentform'+entryid,{
		display: {showErrors: 1},
		trimValue: true,
		submitByAjax: true,
		onAjaxSuccess: function(responseText) {
			if (responseText.substr(responseText.length-2) != 'ok') {
				alert(responseText);
			} else {
				$('blogentry_commenttitle'+entryid).fireEvent('click');
				$('blogentry_comments_wrap'+entryid).get('slide').chain(function(){
					loadBlogEntryComments(entryid);
					$('blogentry_newcomment_wrap'+entryid).setStyle('display','none');
					$('blogentry_commenttitle'+entryid).fireEvent('click','',600);
				});
			}
		}
	});
}

// Bigthumb mouseover Effekte
function initializeThumbs() {
	
	buttons = $$('.bigthumb').extend($$('.bigthumb_last'));
	buttons.getElement('.caption').setStyle('opacity',0);
	
	tween_options = {duration: 450, transition: 'sine:in:out'};
	
	buttons.each(function(item) {
			item.addEvents({
				'mouseenter': function(){
					this.set('tween', tween_options).tween('opacity', 1);
				}.bind(item.getElement('.caption')),
				'mouseleave': function(){
					this.set('tween', {}).fade('hide');
				}.bind(item.getElement('.caption'))
			});
	});
	
}

// Einzelbild initialisierung
function initializePics() {
		
	// Globale Variablen initialisieren
		
	currentPic = startPic;
	totalPics = pics.length;
	picpage = $('picpage');
	pic = $('pic');
	pageTriggerPrev = $('page_prev');
	pageTriggerNext = $('page_next');
	picRequest = new Request.HTML({method: 'get', onSuccess: handlePicResponse, url: 'view/templates/picload.php'});
	descEventIsSet = false;
	
	if (currentPic === 0) {pageTriggerPrev.setStyle('visibility','hidden');}
	if (currentPic === pics.length-1) {pageTriggerNext.setStyle('visibility','hidden');}
	
	// Effekte und Anfangszustand initialisieren
	// Pages initialisieren
	
	picpage.set('tween', {duration: '200', transition: 'sine:in:out', link: 'chain'});	
	pic.set('tween', {duration: '200', transition: 'sine:in:out', link: 'chain'});
	
	// Erstes Bild laden
	
	pic.fade('hide');
	makePicpageLoading();
	picRequest.get({picid: pics[currentPic]});
		
	var picPageKeyboardEvents = new Keyboard({
		active: true,
	    defaultEventType: 'keydown', 
	    events: { 
	        'left': prevPicPage,
	        'right': nextPicPage
	    }
	});
	
}

// Einzelbild Navigationsfunktionen
function nextPicPage() {
	if (currentPic < totalPics-1) {
		makePicpageLoading();
		picRequest.get({picid: pics[currentPic+1]});
		currentPic += 1;
	}
	if (currentPic === 1) {pageTriggerPrev.setStyle('visibility','visible');}
	if (currentPic === totalPics-1) {pageTriggerNext.setStyle('visibility','hidden');}
}

function prevPicPage() {
	if (currentPic > 0) {
		makePicpageLoading();
		picRequest.get({picid: pics[currentPic-1]});
		currentPic -= 1;
	}
	if (currentPic === 0) {pageTriggerPrev.setStyle('visibility','hidden');}
	if (currentPic === totalPics-2) {pageTriggerNext.setStyle('visibility','visible');}
}

// Einzelbild Ladebildschirm
function makePicpageLoading() {
	picpage.fade('out').get('tween').chain(function(){
		pic.fade('hide');
		picpage.setStyle('background','url(\'view/layoutfiles/loading.gif\') no-repeat center');
		picpage.fade('in');
	});
}

// Einzelbild geladenes Bild einsetzen
function handlePicResponse() {
	picpage.fade('out').get('tween').chain(function(){
		pic.innerHTML = picRequest.response.text;
		// Description initialisieren
		if (descAvailable) {
			desc_back = $('pic_desc_back');
			desc_wrap = $('pic_desc_wrap');
			desc_back.set('tween', {duration: '450', transition: 'quad:in:out', link: 'cancel'});	
			desc_wrap.set('tween', {duration: '450', transition: 'sine:in:out', link: 'cancel'});	
			desc_back.fade('hide');
			desc_wrap.fade('hide');
			if (descEventIsSet === false) { addDescEvent(); }
			descEventIsSet = true;
			
		}
		picpage.setStyle('background','none');
		pic.fade('show');
		picpage.fade('in');
	});
}

// Einzelbild Beschreibung mouseover Effekt
function addDescEvent() {
	pic.addEvent('mouseenter',function(){
		desc_back.fade(0.8);
		desc_wrap.fade('in');
	});
	pic.addEvent('mouseleave',function(){
		desc_wrap.fade('out');
		desc_back.fade('out');
	});	
}

// Seitennavigation für Bigthumbs und Thumbs
function initializePages() {
	
	// Globale Variablen initialisieren
	
	currentPage = startPage;
	pages = $$('.page');
	pageSlidewraps = $$('.page_slidewrap');
	pageTriggers = $$('.page_trigger');
	totalPages = pages.length;
	pageTriggerPrev = $('page_prev');
	pageTriggerNext = $('page_next');
	
	
	// Effekte und Anfangszustand initialisieren
	// Pages initialisieren
	
	
	for (var i=0; i < totalPages; i++) {
		
		pages[i].set('slide', {duration: '500', transition: 'sine:in:out', mode: 'horizontal', link: 'chain', wrapper: pageSlidewraps[i]});
		pages[i].set('tween', {duration: '500', transition: 'sine:in:out', link: 'chain'});
		
		if (currentPage == i) {
			pages[i].slide('show').fade('show');
		} else {
			pages[i].slide('hide').fade('hide');
		}
	}
	
	//Triggers initialisieren
	
	(currentPage === 0) ? pageTriggerPrev.setStyle('visibility','hidden') : pageTriggerPrev.setStyle('visibility','visible');
	(currentPage === (totalPages-1)) ? pageTriggerNext.setStyle('visibility','hidden') : pageTriggerNext.setStyle('visibility','visible');
	
	if (totalPages > 1) {
		
		pageTriggers[currentPage].set('class','page_trigger_active');
		
		var picPageKeyboardEvents = new Keyboard({
			active: true,
		    defaultEventType: 'keydown', 
		    events: { 
		        'left': prevPage,
		        'right': nextPage
		    }
		});
		
	}
	
}

// Seitennavigation zu bestimmter Seite auslösen
function triggerPageNavigation(pageToGoTo) {
	if (pageToGoTo !== currentPage) {
		(pageToGoTo === 0) ? pageTriggerPrev.setStyle('visibility','hidden') : pageTriggerPrev.setStyle('visibility','visible');
		(pageToGoTo === (totalPages-1)) ? pageTriggerNext.setStyle('visibility','hidden') : pageTriggerNext.setStyle('visibility','visible');
		pageTriggers[currentPage].set('class', 'page_trigger');
		pageTriggers[pageToGoTo].set('class', 'page_trigger_active');
		
		curr = currentPage;	
		if (pageToGoTo > curr ) {
			pages[pageToGoTo].fade('in').get('slide').show();
			pages[curr].fade('out').get('slide').slideOut();
		} else {
			pages[curr].fade('out');
			pages[pageToGoTo].fade('in').get('slide').slideIn().chain(function(){
				pages[curr].get('slide').hide();
			});
		}
		currentPage = pageToGoTo;
	}
}

// Seitennavigation schrittweise auslösen
function nextPage() {
	if (currentPage < totalPages-1) {
		triggerPageNavigation(currentPage+1);
	}
}

function prevPage() {
	if (currentPage > 0) {
		triggerPageNavigation(currentPage-1);
	}
}


