var old_project = new Array(-1, 0);
var old_contest = new Array(-1, 0);
var base_url = '/';
var curid;
var contentLeft = '';
var contentSub = '';
var orga;
var teamCats;
var team_filter;
var map;

function resetImprintCol(e, pos) {
  for(var i=0;i<9;i++) {
    document.getElementById('impressum'+i).style.color = '#808080';
    e.style.color = '#000000';
    document.getElementById('contentRightInner').style.top = pos+'px';
  }
}

function load(a,b,c) {
   if (GBrowserIsCompatible()) {
     map = new GMap2(document.getElementById("map"));
     var ov = new GOverviewMapControl(null);
	 map.enableScrollWheelZoom();
	 map.enableContinuousZoom();
     map.setCenter(new GLatLng(a,b), 15);
     map.addControl(new GSmallMapControl());
     map.addControl(new GMapTypeControl());
     map.openInfoWindowHtml(map.getCenter(), c);
   }
 }

function show_project_data(id, has_project, back_id, type, select, linktitle, header) {

  if(header != 0 && !header) header = 1;
	switch(type) {
		case 0:
		type = 'project';
		break;
		case 1:
		type = 'contest';
		break;
		case 2:
		type = 'news';
		break;
		case 3:
		type = 'reference';
	}
	if(old_project[0] > -1 && has_project != 3) {
		if(old_project[1] == 1) {
			document.getElementById('project'+old_project[0]).style.color = '#aa957f';
		} else {
			document.getElementById('project'+old_project[0]).style.color = '#b2b2b2';
		}
	}
	old_project[0] = id;
	old_project[1] = has_project;
	switch(has_project) {
		case 1:
		document.getElementById('contentSub').innerHTML = '<a href="'+base_url+'view/'+type+'/'+lang+'/'+id+'/'+back_id+'/0/'+select+'">'+linktitle+'</a>';
		document.getElementById('contentSub').style.backgroundImage = 'url(/public/images/scroll_right.gif)';
		document.getElementById('contentSub').style.backgroundRepeat = 'no-repeat';
		document.getElementById('contentSub').style.backgroundPosition = '0px 2px';
		document.getElementById('project'+id).style.color = '#562c00';
		break;
		
		case 2:
		if(lang=='en') {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="getNewsPics('+id+', 0)">Images</a>';			
		} else {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="getNewsPics('+id+', 0)">Bilder</a>';			
		}
		document.getElementById('contentSub').style.backgroundImage = 'url(/public/images/scroll_right.gif)';
		document.getElementById('contentSub').style.backgroundRepeat = 'no-repeat';
		document.getElementById('contentSub').style.backgroundPosition = '0px 2px';
		document.getElementById('project'+id).style.color = '#000';
		break;
		
		case 3:
		contentSub = document.getElementById('contentSub').innerHTML;
		document.getElementById('contentSub').style.backgroundImage = 'url(/public/images/scroll_right.gif)';
		document.getElementById('contentSub').style.backgroundRepeat = 'no-repeat';
		document.getElementById('contentSub').style.backgroundPosition = '0px 2px';
		contentLeft = document.getElementById('contentLeftInner').innerHTML;
		if(lang == 'en') {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="resetPortfolio()">back</a>';
		} else {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="resetPortfolio()">zur&uuml;ck</a>';
		}

		break;
		
		default:
		document.getElementById('contentSub').innerHTML = '';
		document.getElementById('project'+id).style.color = '#000';
	}
	var sUrl = base_url+"view/ajax_"+type+"/"+lang+"/"+id+"/"+header;
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackProject);
}

function resetPortfolio() {
	document.getElementById('contentSub').innerHTML = contentSub;
	document.getElementById('contentLeftInner').innerHTML = contentLeft;
}

function getNewsPics(id, img_id) {
	var sUrl = base_url+"view/ajax_news_pics/"+lang+"/"+id+"/"+img_id;
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackNewsPics);
}

var handleSuccessNewsPics = function(o){

	if(o.responseText !== undefined){
		var response = o.responseText.split("~~");
		document.getElementById('contentRightInner').innerHTML = response[0];
		document.getElementById('contentSubRight').innerHTML = response[2];
		document.getElementById('contentSubRightCopyright').innerHTML = response[1];
		if(lang == 'en') {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="filter_list('+curid+', 2)">back</a>';
		} else {
			document.getElementById('contentSub').innerHTML = '<a href="#" onclick="filter_list('+curid+', 2)">zur&uuml;ck</a>';
		}
		document.getElementById('contentRightInner').style.top = '0px';
		document.getElementById('contentRightScrollUp').style.display = 'none';
		document.getElementById('contentRightScrollDown').style.display = 'none';
	}
}

var handleSuccessProject = function(o){

	if(o.responseText !== undefined){
		document.getElementById('contentLeftInner').innerHTML = o.responseText;
		document.getElementById('contentLeftInner').style.top = '0px';
		document.getElementById('contentScrollUp').style.display = 'none';
		if(document.getElementById('contentLeftInner').offsetHeight > 330) document.getElementById('contentScrollDown').style.display = 'block';
		spamSpan();
	}
}

var handleSuccessProjectList = function(o){

	if(o.responseText !== undefined){
		document.getElementById('contentRightInner').innerHTML = o.responseText;
		document.getElementById('contentRightInner').style.top = '0px';
		contentTop = 0;
		document.getElementById('contentRightScrollUp').style.display = 'none';
		document.getElementById('contentSub').innerHTML = '';
		document.getElementById('contentSubRight').innerHTML = '';
		document.getElementById('contentSubRightCopyright').innerHTML = '';
		if(document.getElementById('contentRightInner').offsetHeight > document.getElementById('content').offsetHeight - 248) {
			document.getElementById('contentRightScrollDown').style.display = 'block';
		} else {
			document.getElementById('contentRightScrollDown').style.display = 'none';
		}
	}
}

var handleFailure = function(o){

	if(o.responseText !== undefined){
	}
}

var callbackProject =
{
  success:handleSuccessProject,
  failure:handleFailure,
  argument: { }
};

var callbackProjectList =
{
  success:handleSuccessProjectList,
  failure:handleFailure,
  argument: { }
};

var callbackContestList =
{
  success:handleSuccessProjectList,
  failure:handleFailure,
  argument: { }
};

var callbackNewsPics =
{
  success:handleSuccessNewsPics,
  failure:handleFailure,
  argument: { }
};

function filter_list(id, type) {
	switch(type) {
		case 0:
		type = 'project';
		break;
		case 1:
		type = 'contest';
		break;
		case 2:
		type = 'news';
		break;
	}
	old_project[0] = -1;
	old_project[1] = 0;
	var filter = document.getElementById('typologie').value;
	var sUrl = base_url+"view/ajax_"+type+"_list/"+lang+"/"+id+'/'+filter;
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackProjectList);
	curid = id;
}


var contentTop = 0;
var doScrollDown = false;
var doScrollUp = false;
var doScrollDownRight = false;
var doScrollUpRight = false;
var doScrollLeft = false;
var doScrollRight = true;
var dontopen = false;

function initPage() {
if(document.getElementById('map')) {
	load(54.324661,10.14268,'<span style=\'font-size: 11px; font-family: verdana, arial, sans-serif;\'><strong>Brockstedt Bergfeld Petersen<br />Architekten BDA</strong><br /><br />Rantzaubau<br />D&auml;nische Stra&szlig;e 44<br />24103 Kiel</span>');
	document.getElementById('contentSub').style.backgroundImage = 'url(/public/images/scroll_right.gif)';
	if(lang == 'en') {
		document.getElementById('contentSub').innerHTML = '<a href=\'http://maps.google.com/maps?f=q&hl=de&q=d%C3%A4nische+stra%C3%9Fe+44,+kiel&sll=50.092393,10.195313&sspn=19.570348,41.132813&layer=&ie=UTF8&om=1&z=17&ll=54.324661,10.14268&spn=0.004336,0.010042&iwloc=addr\' class="linkmap" target="_blank">Bigger view with routing<\/a>';	
	} else {
		document.getElementById('contentSub').innerHTML = '<a href=\'http://maps.google.de/maps?f=q&hl=de&q=d%C3%A4nische+stra%C3%9Fe+44,+kiel&sll=50.092393,10.195313&sspn=19.570348,41.132813&layer=&ie=UTF8&om=1&z=17&ll=54.324661,10.14268&spn=0.004336,0.010042&iwloc=addr\' class="linkmap" target="_blank">Gro&szlig;ansicht mit Routenplanung<\/a>';
	}
	document.getElementById('contentSub').style.backgroundRepeat = 'no-repeat';
	document.getElementById('contentSub').style.backgroundPosition = '0px 2px';
}
	document.getElementById('menu').onmouseover = function(oEvent) {
		var visible = 8;
		var all = parseInt(document.getElementById('topmenu_mask').offsetWidth / 105);
		if(all > visible) {
			scrollTopMenu(oEvent);
		}
	}
	document.getElementById('menu').onmouseout = function(oEvent) {
		try { window.clearTimeout(scrollid); } catch(e) {}
		stopScrollTopMenu = true;
		startScrollTopMenu = true;
	}
	if(!dontopen) {
		if(parseInt(document.getElementById('contentRightInner').offsetHeight) > 330) {
			var availHeight = window.innerHeight;
			if(!availHeight) availHeight = document.documentElement.clientHeight;
			availHeight -= 100;
			document.getElementById('contentRight').style.height = availHeight+'px';
			document.getElementById('content').style.height = availHeight+'px';
			document.getElementById('all').style.height = availHeight+'px';
			document.getElementById('contentRightScrollUp').style.top = (availHeight - document.getElementById('content').offsetTop - 30) +'px';
			document.getElementById('contentRightScrollDown').style.top = (availHeight - document.getElementById('content').offsetTop - 15) +'px';
		}
		if(parseInt(document.getElementById('contentLeftInner').offsetHeight) > 330) {
			var availHeight = window.innerHeight;
			if(!availHeight) availHeight = document.documentElement.clientHeight;
			availHeight -= 130;
			var org = 195;
			document.getElementById('contentLeft').style.height = (availHeight-org)+'px';
			document.getElementById('content').style.height = (availHeight+30)+'px';
			document.getElementById('all').style.height = (availHeight+30)+'px';
			document.getElementById('contentScrollUp').style.top = (availHeight - document.getElementById('content').offsetTop - 25) +'px';
			document.getElementById('contentScrollDown').style.top = (availHeight - document.getElementById('content').offsetTop - 10) +'px';
			document.getElementById('contentSub').style.top = (document.getElementById('contentLeft').offsetHeight - 330) +'px';
		}
	} else {
		document.getElementById('contentRightScrollUp').style.visibility = 'hidden';
		document.getElementById('contentRightScrollDown').style.visibility = 'hidden';
	}
}

var scrollid;
var startScrollTopMenu = true;
var stopScrollTopMenu = false;
var scrollTopMenuAmount = 0;

function doScrollTopMenu() {
	if(!stopScrollTopMenu) {
		if(document.getElementById('topmenu_mask').offsetLeft + scrollTopMenuAmount > 0) {
			document.getElementById('topmenu_mask').style.left = '0px';
			document.getElementById('topmenu_bbp_scroll_left').style.display = 'none';
		} else if(document.getElementById('topmenu_mask').offsetLeft + scrollTopMenuAmount < -(document.getElementById('topmenu_mask').offsetWidth-840)) {
			document.getElementById('topmenu_mask').style.left = -(document.getElementById('topmenu_mask').offsetWidth-840);
			document.getElementById('topmenu_bbp_scroll_right').style.display = 'none';
		} else {
			document.getElementById('topmenu_mask').style.left = (document.getElementById('topmenu_mask').offsetLeft+scrollTopMenuAmount)+'px';
		}
		if(document.getElementById('topmenu_mask').offsetLeft + scrollTopMenuAmount < 0) document.getElementById('topmenu_bbp_scroll_left').style.display = 'block';
		if(document.getElementById('topmenu_mask').offsetLeft + scrollTopMenuAmount > -(document.getElementById('topmenu_mask').offsetWidth-840)) document.getElementById('topmenu_bbp_scroll_right').style.display = 'block';
		scrollid = window.setTimeout("doScrollTopMenu()",10);
	}	
}
function scrollTopMenu(oEvent) {
	try {
		var pos = event.clientX;
	} catch(exception) {
		var pos = oEvent.clientX;
	}
	scrollTopMenuAmount = parseInt(((pos - document.getElementById('all').offsetLeft - 420) * -1) / 140);
	if(startScrollTopMenu) {
		stopScrollTopMenu = false;
		startScrollTopMenu = false;
		doScrollTopMenu();
	}
}

function scroll_left(amount) {
if(document.getElementById('topmenu_mask').offsetLeft + amount > 0) {
doScrollLeft = false;
document.getElementById('topmenu_bbp_scroll_left').style.display = 'none';
} else {
document.getElementById('topmenu_bbp_scroll_right').style.display = 'block';
document.getElementById('topmenu_mask').style.left = (document.getElementById('topmenu_mask').offsetLeft+amount)+'px';
if(doScrollLeft) setTimeout("scroll_left("+amount+");", 25);
}
}

function scrollRight(amount) {
if(document.getElementById('topmenu_mask').offsetLeft - amount < -(document.getElementById('topmenu_mask').offsetWidth-840)) {
doScrollRight = false;
document.getElementById('topmenu_bbp_scroll_right').style.display = 'none';
} else {
document.getElementById('topmenu_bbp_scroll_left').style.display = 'block';
document.getElementById('topmenu_mask').style.left = (document.getElementById('topmenu_mask').offsetLeft-amount)+'px';
if(doScrollRight) setTimeout("scrollRight("+amount+");", 25);
}
}

function scrollUpRight(amount) {
if(contentTop + amount > 0) {
doScrollUpRight = false;
document.getElementById('contentRightScrollUp').style.display = 'none';
} else {
document.getElementById('contentRightScrollDown').style.display = 'block';
contentTop += amount;
document.getElementById('contentRightInner').style.top = contentTop+'px';
if(doScrollUpRight) setTimeout("scrollUpRight("+amount+");", 25);
}
}
function scrollDownRight(amount) {
if(contentTop - amount < -(document.getElementById('contentRightInner').offsetHeight - document.getElementById('content').offsetHeight + 248)) {
doScrollDownRight = false;
document.getElementById('contentRightScrollDown').style.display = 'none';
} else {
document.getElementById('contentRightScrollUp').style.display = 'block';
contentTop -= amount;
document.getElementById('contentRightInner').style.top = contentTop+'px';
if(doScrollDownRight) setTimeout("scrollDownRight("+amount+");", 25);
}
}

function scrollUp(amount) {
if(contentTop + amount > 0) {
doScrollUp = false;
document.getElementById('contentScrollUp').style.display = 'none';
} else {
document.getElementById('contentScrollDown').style.display = 'block';
contentTop += amount;
document.getElementById('contentLeftInner').style.top = contentTop+'px';
if(doScrollUp) setTimeout("scrollUp("+amount+");", 25);
}
}
function scrollDown(amount) {
if(contentTop - amount < -(document.getElementById('contentLeftInner').offsetHeight - document.getElementById('content').offsetHeight + 248)) {
doScrollDown = false;
document.getElementById('contentScrollDown').style.display = 'none';
} else {
document.getElementById('contentScrollUp').style.display = 'block';
contentTop -= amount;
document.getElementById('contentLeftInner').style.top = contentTop+'px';
if(doScrollDown) setTimeout("scrollDown("+amount+");", 25);
}
}


var active_content = '';

 /** This is high-level function; REPLACE IT WITH YOUR CODE.
 * It must react to delta being more/less than zero.
 */
function handle(delta) {
	if(window.opera) delta *= -1;
	if (delta < 0) {
		if(active_content == 'left' && document.getElementById('contentLeftInner').offsetHeight > 330) scrollDown(16);
		if(active_content == 'right' && document.getElementById('contentRightInner').offsetHeight > 330) scrollDownRight(16);
	} else {
		if(active_content == 'left' && document.getElementById('contentLeftInner').offsetHeight > 330) scrollUp(16);
		if(active_content == 'right' && document.getElementById('contentRightInner').offsetHeight > 330) scrollUpRight(16);
	}
}

/** Event handler for mouse wheel event.
 */
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handle(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}
/*
function wheel(event){
	var delta = 0;
	if (!event) event = window.event;
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera) delta = -delta;
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta)
		handle(delta);
        if (event.preventDefault)
                event.preventDefault();
        event.returnValue = false;
}

/* Initialization code. */
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

function filterTeam(catid) {
	var i = 0;
	var j = 0;
	document.getElementById('filterTeam0').style.color = '#808080';
	for(i=0;i<teamCats+1;i++) {
		document.getElementById('filterTeam'+(i+1)).style.color = '#808080';
		for(j=0;j<orga[i].length;j++) {
			if(catid == 0) {
				document.getElementById(orga[i][j]).style.visibility = 'visible';
			} else {
				document.getElementById(orga[i][j]).style.visibility = 'hidden';
			}
		}
	}
	document.getElementById('filterTeam'+catid).style.color = '#000';
	if(catid > 0) {
		for(i=0;i<orga[catid-1].length;i++) {
			document.getElementById(orga[catid-1][i]).style.visibility = 'visible';
		}
	}
	team_filter = catid;
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
