// h neun js work using jquery by Ichier 2011
// www.hneun.de
// www.ichier.de

var delay = 5000; // muß ganzzahlig durch 4 teilbar sein!
var fspeed = 1000;
var cur_mode;
var rotate;
var pre_pr;
var cur_pr = -1;
var jump = -1;
var arr_pr_imgs = [];
var arr_pr_pics = [];
var pre_pr_pic = 0;
var cur_pr_pic = 0;
var infobig = false;
var infoh;
var infoz;
var infos;
var infot;
var pinfoh;
var pinfoz;
var pinfot;


function hneun_init() {
	$('#stage') .show();

	$('.container').wvAlign();
	$('.navi').css('height', $(window).height());
	
	$('#entertouch') .hide();
	$('#prevtouch') .hide();
	$('#nexttouch') .hide();
	$('#texttouch') .hide();

	$('#entertouch') .click(enter_project);
	
	$('#prevtouch') .click(function () { clearTimeout(rotate); hneun_project_slide('p'); });
	$('#nexttouch') .click(function () { clearTimeout(rotate); hneun_project_slide(); });
	
	$('#texttouch') .click(infoclick);
	$('#infobox') .click(infoclick);

	$('.top') .mouseenter(function () { $('#navi').fadeIn(180); });
	$('#navi') .mouseleave(function () { $('#navi').fadeOut(180); });
}


function infoclick () {
	if(!infobig) {
		var s = 470;
		$('#infobox').css('z-index', 600);
		$('#projecttitle').fadeOut(200);
	} else {
		var s = 0;
		if(cur_mode=='main') { rotate = setTimeout('hneun_main_rotate()', (delay/4)); }
		$('#infobox').css('z-index', 100);
		$('#projecttitle').fadeIn(200);
	}
	$('#infobox').animate({ height: +s  }, 200, function() {});
	infobig = !infobig;
}


function hneun_main_rotate(pri,nto,qui) {
	pre_pr = cur_pr;
	if(typeof(nto)=='undefined') { nto = false; }

	if(typeof(pri)=='number') { cur_pr = pri-1; }
	cur_pr++;
	if(cur_pr>=arr_pr.length) { cur_pr = 0; }
	
	infoh = obj_pr[arr_pr[cur_pr]]['title'];
	infoz = obj_pr[arr_pr[cur_pr]]['subtitle'];
	infos = obj_pr[arr_pr[cur_pr]]['teaser'];
	infot = obj_pr[arr_pr[cur_pr]]['text'];

	// load image n action
	if(typeof(arr_pr_imgs[cur_pr])=='undefined') {
		if(obj_pr[arr_pr[cur_pr]]['types']['000']=='img') {
			arr_pr_imgs[cur_pr] = new Image();
			$(arr_pr_imgs[cur_pr])
				.load( function () { $(this).hide(); $('#stage').append(this); main_fade(pri,nto,qui); })
				.attr('src', web_path+'projects/'+arr_pr[cur_pr]+'/000.jpg')
				.attr('alt', obj_pr[arr_pr[cur_pr]]['title'])
			;
		}
		if(obj_pr[arr_pr[cur_pr]]['types']['000']=='htm') {
			arr_pr_imgs[cur_pr] = $('<div class="htm">' + obj_pr[arr_pr[cur_pr]]['contents']['000'] + '</div>');
			$('#stage').append($(arr_pr_imgs[cur_pr]));
			$(arr_pr_imgs[cur_pr]).hide();
			main_fade(pri,nto,qui);
		}



	} else {
		main_fade(pri,nto,qui);
	}
}

function main_fade(pri,nto,qui) {
	if(typeof(arr_pr_imgs[pre_pr])!='undefined' && typeof(pri)=='undefined') { $(arr_pr_imgs[pre_pr]).hide(); }
	if(!nto) { $('#projecttitle').hide(); }

	$('#projecttitle').empty(); 	$('#projecttitle').append(infoh);
	$('#infotitle').empty();		$('#infotitle').append(infoh);
	$('#infosubtitle').empty();		$('#infosubtitle').append(infoz);
	$('#infotext').empty();			$('#infotext').append(infot);
	$('#teaser').empty();			$('#teaser').append(infos);

	if(infoh=='') {
		$('#entertouch') .hide();
	} else {
		$('#entertouch') .show();
	}

	if(!nto) {
		$(arr_pr_imgs[cur_pr]).fadeIn(fspeed);
		$('#projecttitle').fadeIn(fspeed);
		var d = delay;
		if(typeof(obj_pr[arr_pr[cur_pr]]['delay'])!='undefined') { if(typeof(obj_pr[arr_pr[cur_pr]]['delay']['000'])!='undefined') { d = obj_pr[arr_pr[cur_pr]]['delay']['000']; }}
		var d = (typeof(qui)!='undefined') ? (qui ? d/2 : d) : d;
		rotate = setTimeout('hneun_main_rotate()', d);
	}
}

function start_main_rotate(pri,nto,qui) {
	cur_mode = 'main';
	if(!nto) {
		$('#prevtouch') .hide();
		$('#nexttouch') .hide();
		$('#texttouch') .hide();
		//$('#entertouch') .show();
	}
	hneun_main_rotate(pri,nto,qui);
}


function hneun_project_slide(cd,jump) {
	var arr_cur_pics = obj_pr[arr_pr[cur_pr]]['files'];
	var arr_cur_typs = obj_pr[arr_pr[cur_pr]]['types'];
	var arr_cur_cnts = obj_pr[arr_pr[cur_pr]]['contents'];
	if(typeof(jump)=='undefined') { jump = -1; }

	// direction
	pre_pr_pic = cur_pr_pic;
	if(typeof(cd)!='undefined' && cd =='p') {
		cur_pr_pic--;
		if(cur_pr_pic<=0) { back_to_main(); } //cur_pr_pic = arr_cur_pics.length-1; }
		if(cur_pr_pic==arr_cur_pics.length-2) { $('#nexttouch') .show(); }
		var dir = 'p';
	} else {
		cur_pr_pic++; 
		if(jump>-1 && jump<arr_cur_pics.length) { cur_pr_pic = jump; }
		//if(cur_pr_pic>=arr_cur_pics.length) { cur_pr_pic = 0; }
		if(cur_pr_pic==(arr_cur_pics.length-1)) { $('#nexttouch') .hide(); }
		var dir = 'n';
	}
	
	
	// in case of missing info
	if(typeof(obj_pr[arr_pr[cur_pr]]['info'][arr_cur_pics[cur_pr_pic]])=='undefined') { var cur_pic = []; }
	else { var cur_pic = obj_pr[arr_pr[cur_pr]]['info'][arr_cur_pics[cur_pr_pic]]; }
	if(typeof(cur_pic['title'])=='undefined') { cur_pic['title'] = null; }
	if(typeof(cur_pic['subtitle'])=='undefined') { cur_pic['subtitle'] = null; }
	if(typeof(cur_pic['teaser'])=='undefined') { cur_pic['teaser'] = null; }
	if(typeof(cur_pic['text'])=='undefined') { cur_pic['text'] = null; }

	// info per pic
	pinfoh = cur_pic['title'];
	pinfoz = cur_pic['subtitle'];
	pinfos = cur_pic['teaser'];
	pinfot = cur_pic['text'];
	
	// load image n action
	if(typeof(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic])=='undefined') {
		if(arr_cur_typs[arr_cur_pics[cur_pr_pic]]=='img') {
			arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic] = new Image();
			$(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic])
				.load( function () { $(this).hide(); $('#stage').append(this); project_slide(dir, ((jump>-1)?true:false)); })
				.attr('src', web_path+'projects/'+arr_pr[cur_pr]+'/'+arr_cur_pics[cur_pr_pic]+'.jpg')
				.attr('alt', cur_pic['title'])
			;
		}
		if(arr_cur_typs[arr_cur_pics[cur_pr_pic]]=='htm') {
			arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic] = $('<div class="htm">' + arr_cur_cnts[arr_cur_pics[cur_pr_pic]] + '</div>');
			$('#stage').append($(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic]));
			project_slide(dir, ((jump>-1)?true:false));
		}
	} else {
		project_slide(dir, ((jump>-1)?true:false));
	}
}

function project_slide(d,inst) {
$('#entertouch') .hide(); //warum auch immer :/
	$('#infotitle').empty();
	$('#infosubtitle').empty();
	$('#infotext').empty();
	$('#teaser').empty();
	if(pinfoh!=null) { $('#infotitle').append(pinfoh); 		} else { $('#infotitle').append(infoh); }
	if(pinfoz!=null) { $('#infosubtitle').append(pinfoz);	} else { $('#infosubtitle').append(infoz); }
	if(pinfot!=null) { $('#infotext').append(pinfot);		} else { $('#infotext').append(infot); }
	if(pinfos!=null) { $('#teaser').append(pinfos);			} else { $('#teaser').append(infos); }

	if(inst) {
		$(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic]) .css('left', '0px') .show();
	} else {
		if(d=='n') {
			$(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic]) .css('left', '610px') .show() .animate({ left: 0  }, fspeed, function() {});
			$(arr_pr_pics[arr_pr[cur_pr]][pre_pr_pic]) .animate({ left: -610  }, fspeed, function() { $(this).hide(); });
		} else {
			$(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic]) .css('left', '-610px') .show() .animate({ left: 0  }, fspeed, function() {});
			$(arr_pr_pics[arr_pr[cur_pr]][pre_pr_pic]) .animate({ left: 610  }, fspeed, function() { $(this).hide(); });
		}
	}
}


function enter_project() {
	cur_mode = 'project';
	clearTimeout(rotate);
	$('#entertouch') .hide();
	$('#prevtouch') .show();
	$('#nexttouch') .show();
	if(arr_pr[cur_pr]!='h9') { $('#texttouch') .show(); }
	if(arr_pr[cur_pr]=='h9') { $('#projecttitle').fadeOut(200); }
	$(arr_pr_imgs[cur_pr]).hide();
	if(typeof(arr_pr_pics[arr_pr[cur_pr]])=='undefined') { arr_pr_pics[arr_pr[cur_pr]] = []; }
	arr_pr_pics[arr_pr[cur_pr]][0] = arr_pr_imgs[cur_pr];
	$(arr_pr_pics[arr_pr[cur_pr]][0]).show();
	obj_pr[arr_pr[cur_pr]]['info']['000'] = [];
	obj_pr[arr_pr[cur_pr]]['info']['000']['title'] = obj_pr[arr_pr[cur_pr]]['title'];
	obj_pr[arr_pr[cur_pr]]['info']['000']['text'] = obj_pr[arr_pr[cur_pr]]['text'];
	cur_pr_pic = 0;
	hneun_project_slide('n',jump);
	jump = -1;
}

function back_to_main() {
	if(cur_pr_pic!=0) {
		//$(arr_pr_pics[arr_pr[cur_pr]][pre_pr_pic]) .hide();
		$(arr_pr_imgs[cur_pr]) .css('left', '-610px') .show() .animate({ left: 0  }, fspeed, function() {});
		$(arr_pr_pics[arr_pr[cur_pr]][cur_pr_pic]) .animate({ left: 610  }, fspeed, function() { $(this).hide(); });
	} else {
		$(arr_pr_imgs[cur_pr]) .show();
	}
	if(arr_pr[cur_pr]=='h9') { $('#projecttitle').fadeIn(200); }
	
	start_main_rotate(cur_pr,false,true);
}




// helpers

(function ($) { // adapted from http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/
$.fn.wvAlign = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(window).height();
	var mh = Math.ceil((ph-ah) / 2);
	if(mh>0) { $(this).css('top', mh); }
	});
};
})(jQuery);



/*
(function ($) {
$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = Math.ceil((ph-ah) / 2);
	$(this).css('margin-top', mh);
	});
};
})(jQuery);
*/
function print_r(input, _indent) { //taken from phpbuilder.com posted by bubblenut + ednark
	if(typeof(_indent) == 'string') {
		var indent = _indent + '    ';
		var paren_indent = _indent + '    ';
	} else {
		var indent = '    ';
		var paren_indent = '';
	}
	switch(typeof(input)) {
		case 'boolean':
			var output = (input ? 'true' : 'false') + "\n";
			break;
		case 'object':
			if ( input===null ) {
				var output = "null\n";
				break;
			}
			var output = ((input.reverse) ? 'Array' : 'Object') + " (\n";
			for(var i in input) {
				output += indent + "[" + i + "] => " + print_r(input[i], indent);
			}
			output += paren_indent + ")\n";
			break;
		case 'number':
		case 'string':
		default:
			var output = "" + input + "\n";
	}
	return output;
}

