var projects = new Array();
var projectTypes = new Array("studium", "bund", "freelancer");

Array.prototype.inArray = function (value) {
    var i;
    for (i=0;i<this.length;i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

function am_yesNoAlert(link) {
  var antwort = false;
  antwort = confirm('Wollen Sie wirklich die alten Daten wieder herstellen?');
  if (antwort) {
    self.location.href = link;
  }
} 

function showHide (layer, switcher, showText, hideText)  {
  if ($(layer).style.display == '' || $(layer).style.display == 'inline')
    $(layer).style.display = 'none';
  else
    $(layer).style.display = 'inline';

  if ($(switcher).firstChild.firstChild.data==hideText)
    $(switcher).firstChild.firstChild.data=showText;
  else 
    $(switcher).firstChild.firstChild.data=hideText;
}

function am_jumpMenu(targ,selObj,restore){ //v3.0
  if (selObj.options[selObj.selectedIndex].value!="XXX")
  	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) 
  	selObj.selectedIndex=0;
}

/*
 * work in progress:
 * @todo: hide/unhide and resize the width's of the projects containing divs such as xy_headline and port_xy
 */
function filterProjects(reselect) {
  var filterFrom=parseInt($("filterfrom").value);
  var filterTo=parseInt($("filterto").value);
  var showRange=new Array();
  var elems=new Array();
  var myDuration = 0.5;
  cntProjectsVisible=0;
  cntAllProjects=0;
  if (reselect==undefined)
    reselect=false;
  
  if (filterTo<=filterFrom) {
  	$("filterto").value=parseInt(filterFrom)+1;
  	filterTo=parseInt(filterFrom)+1;
  }
  
  //put values into php session
  ajaxGet("inc/params.php","filterfrom",filterFrom);
  ajaxGet("inc/params.php","filterto",filterTo);
  
  for (i=filterFrom;i<=filterTo;++i)
    showRange.push(i);
  	  
  for (k=0;k<projects.length;++k) {
  	if (showRange.inArray(projects[k]["date"])) {
      //Effect.Appear(projects[k]["title"], {duration: myDuration}); 
      $(projects[k]["title"]).style.display="block";
      projects[k]["visible"]=true;
  	} else {
  	  //Effect.Fade(projects[k]["title"], {duration: myDuration});
  	  $(projects[k]["title"]).style.display="none";
      projects[k]["visible"]=false;
  	}
  }
  
  //Handling of sorrounding div containers
  $("port_leiste").style.width=(projects.length*304).toString()+"px";
  for (j=0;j<projectTypes.length;++j) {
  	for (k=0;k<projects.length;++k) {
  	  if (projects[k]["type"]==projectTypes[j] && projects[k]["visible"])
  	      ++cntProjectsVisible;
  	}
  	idHeadline="headline_"+projectTypes[j];
  	idTypeContainer="port_"+projectTypes[j];
  	if ($(idHeadline)!=undefined) {
  	  if (cntProjectsVisible==0) {
  	    $(idHeadline).style.display="none";
  	    $(idTypeContainer).style.display="none";
  	  } else {
  	    $(idTypeContainer).style.width=(cntProjectsVisible*304).toString()+"px";
  	    $(idHeadline).style.display="block";
  	    $(idTypeContainer).style.display="block";
  	  }
  	}
  	cntAllProjects+=cntProjectsVisible;
  	cntProjectsVisible=0;
  } 
  $("port_leiste").style.width=(cntAllProjects*304).toString()+"px";
  if (cntAllProjects*304>999)
    $("scroll").style.display="block";
  else 
    $("scroll").style.display="none";
  if (! reselect)
    Effect.Shake("port_leiste", {duration: 0.1});
  
  }


function customSubmit ( form, action, target) {
  //Default: Post
  form.method = 'post';
  form.action = action;
  form.target = target; 
  form.onSubmit = ajaxSubmit();
  //form.submit();
}

function MM_openBrWindow(theURL,winName,features) {
  popup = window.open(theURL, winName, features); 
  popup.focus();
  return false;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function changeText (id, showText, hideText) {
	if ($(id).firstChild.firstChild.data==hideText)
	  $(id).firstChild.firstChild.data=showText;
	else 
	  $(id).firstChild.firstChild.data=hideText;
}

var inProgress = false;
function toggleBox(elementId, myDuration, switcher, showText, hideText) {
	if ($(elementId) && !inProgress) {
		inProgress = true;
		if (myDuration == undefined)
			myDuration = 0.5;
		if ($(elementId).style.display == 'none')  {
			//show
			ajaxGet("inc/params.php","show",elementId);
			Effect.BlindDown(elementId, {duration: myDuration, afterFinish:function(){inProgress = false;changeText(switcher, showText, hideText);}}); 
		}
		else {
			//hide
			ajaxGet("inc/params.php","hide",elementId);
			Effect.BlindUp(elementId, {duration: myDuration, afterFinish:function(){inProgress = false;changeText(switcher, showText, hideText);}});
		}

	}
	return false;
}

function ajaxGet(action,param,value) {
	new Ajax.Request(action, { method: 'post',
							   postBody: param+'='+value,
							   onSuccess: function (t) { },
							   onFailure: function (t) { }
	  }
    )
}

function ajaxSubmit (form,action,season) {
	$("progress").src="Bilder/working_"+season+".gif";
	$("result").innerHTML="";
	new Ajax.Updater("", action, {asynchronous:true, 
								  parameters:Form.serialize(form),
								  encoding: 	"UTF-8",
								  onSuccess: function (t) {
									res=t.responseText.split("|");
									if (res[0]==0) {
  									  $("progress").src="Bilder/done_"+season+".gif";
  									  form.reset();
									} else {
  									  $("progress").src="Bilder/failure_"+season+".gif";
									}
									$("result").innerHTML=res[1];
									},
									onFailure: function (t) {
									  $("progress").src="Bilder/failure_"+season+".gif";
									  $("result").innerHTML="Ajax-Error";
									}
									}); 
}



var delay = 5000;
var startFrame = 0;

function initSlideshow() {
	if ($("slide-images")) {
		$("slide-images").style.visibility = "visible";
		var slides = $("slide-images").getElementsByTagName("li");
		for (i = 0; i < slides.length; i++) {
			if (i != 0) {
				slides[i].hide();
			}
		}
		endFrame = slides.length - 1;
		startSlideshow(startFrame, endFrame, delay, slides);
	}
}

function startSlideshow (startFrame, endFrame, delay, slides) {
	setTimeout(fadeInOut(startFrame, startFrame, endFrame, delay, slides), delay);
}


function fadeInOut (frame, startFrame, endFrame, delay, slides) {
	return (function() {
		slides = $('slide-images').getElementsByTagName("li");
		Effect.Fade (
			slides[frame],
			{ duration: 2.0 }
		);
		if (frame == endFrame) { 
			frame = startFrame; 
		} else { 
			frame++; 
		}
		slide = slides[frame];
		image = $(slide.className);
		$("slide-text").update (
			image.title 
			+ ' <a href="' 
			+ image.alt 
			+ '" target="_blank" class="externallink">' 
			+ image.className + '</a>' 
		);
		setTimeout (
			"Effect.Appear(slide);", 
			0
		);
		setTimeout(fadeInOut(frame, startFrame, endFrame, delay), delay + 1850);
	});
}


Event.observe(window, "load", initSlideshow, false);