var albums = new Array();
var tracks = new Array();
var zusatz = new Array();
var termine_old = new Array();
var termine = new Array();
var pics = new Array();
var shop = new Array();

//Google analytics
/*var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-22371479-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();*/

$(document).ready(function() {
	//alert('ready');
	if(!jQuery.support.opacity)
			$("#mainNav > li").toggleClass('txtNormal');
			
	$("#mainNav > li").each(function(i) {
		$(this).click(function() {
			startMainNav(this, i);
		}),
		$(this).css({"opacity":0.7})
	});
	
	albums = jsonParse($.ajax({
		        	url: "libs/php/graphGetAlbums.json.php",
		        	global: false,
		        	type: "POST",
		        	dataType: "html",
		        	async:false
			}).responseText);
        
	termine = jsonParse($.ajax({
		        	url: "libs/php/graphGetTermine.json.php",
		        	global: false,
		        	type: "POST",
		        	dataType: "html",
		        	async:false
			}).responseText);
     termine.termine_past.reverse();
     
     var pics = $.ajax({
        	url: "libs/php/graphGetPics.json.php",
        	global: false,
        	type: "POST",
        	dataType: "html",
        	async:false,
        	success:function(data){
        		testAjax(data);
        	}
        }).responseText;
        
        
     
	var strHtml = '';	
	for(i=0; i<=albums.length-1; i++) {
		strHtml = '<a href=\"#\" class=\"txtNormal\" onClick=\"changeAlbum(this,'+i+');\">' + albums[i]['title'] + '</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		$('#albumNav').append(strHtml);
	}
})

function testAjax(data) {
	$('#galleria').galleria({dataSource: jsonParse(data)});
}

//######################### mainNavHandle ############################

function startMainNav(elm, index) {
	if(elm != content.mainNavItemSelected) {
		removeOnClick();
		switch (index) {
		  case 0:
		    showAlbumNav(elm);
		    break;
		  case 1:
		    loadPics('koelnCamouflage12012006', elm);
		    break;
		  case 2:
		    mail();
		    addOnClick();
		    break;
		  case 3:
		    setTermine();
		    break;
		  default:
		    break;	    
		}
		if(index != 2)
			fadeMainNav(elm);
	}
}

function fadeMainNav(elm) {
	if(content.mainNavItemSelected) {
		$(content.mainNavItemSelected).css("opacity", 0.7);
	}
	content.mainNavItemSelected = elm;
	$(elm).fadeTo(10, 1.0);
}

//######################### subNavHandle ############################

function fadeAlbumNav(index) {
	$($("#albumNav > a")[content.albumNavItemSelectedIndex]).fadeTo(10, 1.0);
	content.albumNavItemSelectedIndex = index;
	$($("#albumNav > a")[content.albumNavItemSelectedIndex]).fadeTo(10, 0.5);
}

function showSubMenu(id) {
	if(content.visibleSubMenu) {
		$(content.visibleSubMenu).hide();
	}
	
	$(id).show();
	content.visibleSubMenu = id;
}

function hideSubMenu() {
	if(content.visibleSubMenu) {
		$(content.visibleSubMenu).hide();
		content.visibleSubMenu = null;
	}
}

//######################### musicHandle ############################

function showAlbumNav(elm)
{
	if(!content.boolPlayerIsComp) {
		showSubMenu($('#albumNav'));
	}
	content.boolPlayerIsComp = false;	

	writePlayer($("#albumNav > a")[content.albumNavItemSelectedIndex], content.albumNavItemSelectedIndex);
	fadeAlbumNav(content.albumNavItemSelectedIndex);
	showElement('#playerComplete');
	content.boolPlayerIsVisible = true;
	content.albumNavItemSelectedIndex = content.albumNavItemSelectedIndex;
}

function changeAlbum(elm,index)
{
	if(content.boolPlayerIsVisible) {
		$('#playerComplete').fadeOut('slow', function() {writePlayer(elm, index)});
	} else {
		writePlayer(elm, index);
	}
	
	fadeAlbumNav(index);
	showElement('#playerComplete');
	content.boolPlayerIsVisible = true;
	content.albumNavItemSelectedIndex = index;
}

function writePlayer(elm, index) {
	var strAlbumTitle = "album:&nbsp;";
	var strHtmlTracks = "";
	var strHtmlZusatz = "";
	var strHtmlPlay = "";
	var strOnClick = "";
	var strPlay = "";
	var strLoad = "";
	var strDspTrack = "";
	
	var thisAlbum = albums[index];
	strAlbumTitle += thisAlbum['title'];
	var tracks = thisAlbum['tracks'];

	for(var k in tracks)
	{
		strDspTrack = tracks[k].substr(tracks[k].lastIndexOf("/") + 1, tracks[k].length);
		strDspTrack = strDspTrack.substr(0 , strDspTrack.lastIndexOf("."));
		strHtmlTracks += strDspTrack + "<br>";
		var strTemp = tracks[k].replace(/ /g, '_');
		strOnClick_play = "callSong('" + strTemp + "');";
		strOnClick_down = "downFile('" + tracks[k].replace(/ /g, '_') + "','" + tracks[k] + "','audio/mpeg');";
		strPlay = "<img src=\"grafix/play.jpg\" width=6 border=0 alt=\"play\">";
		if(index == 2) {
			strLoad = "";
		}else{
			strLoad = "<img src=\"grafix/load.jpg\" width=6 border=0 alt=\"download\">";
		}
		
		strHtmlPlay += "<a href=\"#\" onClick=\"" + strOnClick_play + "\" class=\"links\">" + strPlay + "</a>&nbsp;&nbsp;";
		strHtmlPlay += "<a href=\"#\" onClick=\"" + strOnClick_down + "\" class=\"links\">" + strLoad + "</a><br>";
	}
	
	strHtmlZusatz = thisAlbum['zusatz'];
	
	$('#album').html(strAlbumTitle);
	$('#tracks').html(strHtmlTracks);
	$('#zusatz').html(strHtmlZusatz);	
	$('#play').html(strHtmlPlay);

	changePic("cover", thisAlbum['cover']);
	
	$('#cover').css("border", "1px solid black");
}

function changePic(id, pic)
{
	if(document.getElementById)
		document.getElementById(id).src = pic;
	else if(document.all)
		document.all[''+id].src = pic;
	else if(document.layers)
		document.images[''+id].src = pic;
}

//######################### pictureHandle ############################

function loadPics(fold, elm)
{
	hideSubMenu();
	$('.galleria-container').hide(function(){
		$('.galleria-container').animate({left:'273px'}, 1, function(){
			showElement('.galleria-container');
		});
	});
}

//######################### termineHandle ############################

function setTermine()
{
	$('#termine').empty();
	var strHTML = "<table>";
	var $objTable = $('<table/>');

	if(termine.termine_next[0]) {
		$('<tr><th colspan=4 class=\"head\">next:<br></th></tr>').appendTo($objTable);
		getTermineRow($objTable, termine.termine_next);
	}
	if(termine.termine_past[0]) {
		$('<tr><th colspan=4 class=\"head\">past:<br></th></tr>').appendTo($objTable);
		getTermineRow($objTable, termine.termine_past);
	}
	
	$objTable.appendTo('#termine');
	hideSubMenu();
	showElement('#termine');
}

function getTermineRow(objTable, arrTermine) {
	var strSpace = "&nbsp;&nbsp;&nbsp;&nbsp;";
	for(var l in arrTermine) {
		var $objRow = $('<tr/>');
		$('<td>' + arrTermine[l].date + strSpace + '</td>').appendTo($objRow);
		$('<td>' + getLocation(arrTermine[l]) + strSpace +'</td>').appendTo($objRow);
		$('<td>' + arrTermine[l].city + strSpace + '</td>').appendTo($objRow);
		//$('<td>' + getInfo(arrTermine[l]) + strSpace +'</td>').appendTo($objRow);
		$(getInfo(arrTermine[l])).appendTo($objRow);
		$objRow.appendTo(objTable);
	}		
}

function getLocation(item) {
	var strLocation = "";
	if(item.url != "") {
		strLocation = "<a href=\"" + item.url + "\" target=\"blank\" class =\"links\">" + item.location + "</a>";
	} else {
		strLocation = item.location;
	}
	return strLocation;
}

function getInfo(item) {
	var $strSpace = $("<font>&nbsp;&nbsp;&nbsp;&nbsp;</font>");
	var strInfo = "";
	var which = 'past';
	var $objCell = $('<td/>');
	if(item.info != "") {
		var $objFont = $('<font class=\"links info\">more infos</font>');
		$objFont.click(function(e){
			var strInfo = item.info.replace(/#/g, "<br>");
			showInfo(e, strInfo);
		});
		$objFont.mouseover(function(e){
			$(this).css('cursor','pointer');
		});
		$objFont.mouseout(function(e){
			hideInfo();
		});
		$objFont.appendTo($objCell);
		$objFont.after($strSpace);
	}
	
	return $objCell;
}

function showInfo(e, strInfo) {
	var leftPos = parseInt($('#termine').css('left')) + parseInt($('#termine > table').css('width')) + "px";
	$('#termineInfo').css({'left':leftPos, 'top':e.pageY});
	$('#termineInfo').html(strInfo);
	$('#termineInfo').slideDown('slow');
}

function hideInfo() {
	$('#termineInfo').slideUp('fast');
}

//######################### HELPERS ############################

function playerTogglex(elm) {
	
	if(content.boolPlayerIsPlaying) {
		if(!content.boolPlayerIsComp) {
			if(elm.attr('id') == ($('#playerComplete').attr('id'))) {
				$(content.visibleContentItem).fadeOut('slow', function() {
					$('#playerComplete').animate({top:'281px', height:'380'}, 1000, function() {
						$(elm).fadeIn('fast', function() {
							$('#player_info').fadeIn('slow', function() {
								showSubMenu($('#albumNav'));
								addOnClick();
							});	
						});
					});
				});
				content.boolPlayerIsComp = false;
			} else {
				$('#player_info').fadeOut('slow', function() {
					$('#playerComplete').animate({top:'154px', height:'30'}, 1000, function() {
						$(elm).fadeIn('slow', function() {
							addOnClick();
						});	
					});
				});
				content.boolPlayerIsComp = true;	
			}
		} else {
			$(content.visibleContentItem).fadeOut('slow', function() {$(elm).fadeIn("slow", function() {addOnClick();});});
		}				
	} else {
		$(content.visibleContentItem).fadeOut('slow', function() {$(elm).fadeIn("slow", function() {addOnClick();});});
	}
}

function removeOnClick() {
	$("#mainNav > li").each(function(i) {
		$(this).unbind('click');
	});
}

function addOnClick() {
	$("#mainNav > li").each(function(i) {
		$(this).click(function() {
			startMainNav(this, i);
		})
	});
}

function showElement(id)
{
	if(content.visibleContentItem) {
		playerTogglex($(id));			
	} else {
		$(id).fadeIn("slow", function() {
			addOnClick();
		});
	}	
	content.visibleContentItem = $(id);
}

function hideElement() {
	if(content.visibleContentItem) {
		$(content.visibleContentItem).fadeOut('slow');
	}
}

function newWindow(url, X, Y, posX, posY, scroller, resize)
{
	Fenster = window.open(url, "newWindow", "width="+X+",height="+Y+",left="+posX+",top="+posY+"scrollbars="+scroller+",resizable="+resize);
	Fenster.moveTo(posX,posY);
	Fenster.focus();
}

function downFile(file, dir, typ)
{
	strUrl = 'download.php?file=' + file + '&dir=&typ=' + typ;
	newWindow(strUrl, 300, 200, 300, 300, 'yes', 'no');
}

function mail(){
	MailFenster = window.open("graphMail.html", "Mailfenster", "width=450,height=425,scrollbars=no");
	MailFenster.moveTo(170,40);
	MailFenster.focus();
}

var content = {
	mainNavItemSelected: null,
	albumNavItemSelectedIndex: 2,
	visibleContentItem: null,
	boolPlayerIsVisible: false,
	boolPlayerIsPlaying: false,
	boolPlayerIsComp: false,
	visibleSubMenu: null
}


