var sliding = false;

function finished() {
	sliding = false;
}

function checkIE() {
	if (navigator.appName == "Microsoft Internet Explorer") return true;
	return false;
}

function slide(direction) {
	if(sliding == true) return;
	sliding = true;
	var sliderContent = document.getElementById("sliderContent");
	var correction = 0;
	if(!checkIE()) {
		var height = sliderContent.style.height;
		sliderContent.style.height = 'auto';
		correction = sliderContent.offsetHeight - sliderContent.parentNode.offsetHeight;
		sliderContent.style.height = height;
	}

	var sliderContentCopy = document.getElementById("sliderContentCopy");
	if(!sliderContentCopy) { // goed in IE en FF
		sliderContentCopy = sliderContent.cloneNode(true);
		sliderContentCopy.id = 'sliderContentCopy';
		sliderContentCopy.style.top = parseInt(sliderContent.style.top) + sliderContent.offsetHeight+correction+'px';
		sliderContentCopy.style.left = parseInt(sliderContent.style.left) + sliderContent.offsetLeft+'px';
		sliderContent.parentNode.appendChild(sliderContentCopy);
	}

	var newTopValue = 0;
	var newTopValueCopy = 0;
	if(direction == true) { // up // GOED IN IE EN FF
		if((parseInt(sliderContent.style.top)+sliderContent.parentNode.offsetHeight) < 0) {
			sliderContent.style.top = (parseInt(sliderContentCopy.style.top) + sliderContent.offsetHeight+correction)+'px';
		}
		if(parseInt(sliderContentCopy.style.top) + sliderContent.parentNode.offsetHeight < 0) {
			sliderContentCopy.style.top = (sliderContent.offsetHeight+correction)+'px';
		}
		newTopValue = parseInt(sliderContent.style.top) - sliderContent.parentNode.offsetHeight;
		newTopValueCopy = parseInt(sliderContentCopy.style.top) - sliderContentCopy.parentNode.offsetHeight;

	} else { // down
		if(parseInt(sliderContent.style.top) >  sliderContent.parentNode.offsetHeight) {
			sliderContent.style.top = (parseInt(sliderContentCopy.style.top) - sliderContent.offsetHeight-correction)+'px';
		}
		if(parseInt(sliderContentCopy.style.top) > sliderContentCopy.parentNode.offsetHeight) {
			sliderContentCopy.style.top = '-'+(sliderContentCopy.offsetHeight+correction)+'px';
		}
		newTopValue = parseInt(sliderContent.style.top) + sliderContent.parentNode.offsetHeight;
		newTopValueCopy = parseInt(sliderContentCopy.style.top) + sliderContentCopy.parentNode.offsetHeight;

	}
	animate("sliderContent",0, newTopValue,sliderContent.offsetWidth,sliderContent.offsetHeight,300, finished);
	animate("sliderContentCopy",0, newTopValueCopy,sliderContentCopy.offsetWidth,sliderContentCopy.offsetHeight,300, finished);
}

function animate(elementID, newLeft, newTop, newWidth,
      newHeight, time, callback)
{
  var el = document.getElementById(elementID);
  if(el == null)
    return;
 
  var cLeft = parseInt(el.style.left);
  var cTop = parseInt(el.style.top);
  var cWidth = parseInt(el.style.width);
  var cHeight = parseInt(el.style.height);
 
  var totalFrames = 1;

  if(time> 0)
    totalFrames = time/40;

  var fLeft = newLeft - cLeft;
  if(fLeft != 0)
    fLeft /= totalFrames;
 
  var fTop = newTop - cTop;
  if(fTop != 0)
    fTop /= totalFrames;
 
  var fWidth = newWidth - cWidth;
  if(fWidth != 0)
    fWidth /= totalFrames;
 
  var fHeight = newHeight - cHeight;
  if(fHeight != 0)
    fHeight /= totalFrames;
   
  doFrame(elementID, cLeft, newLeft, fLeft,
      cTop, newTop, fTop, cWidth, newWidth, fWidth,
      cHeight, newHeight, fHeight, callback);
}

function doFrame(eID, cLeft, nLeft, fLeft,
      cTop, nTop, fTop, cWidth, nWidth, fWidth,
      cHeight, nHeight, fHeight, callback)
{
   var el = document.getElementById(eID);
   if(el == null)
     return;

  cLeft = moveSingleVal(cLeft, nLeft, fLeft);
  cTop = moveSingleVal(cTop, nTop, fTop);
  cWidth = moveSingleVal(cWidth, nWidth, fWidth);
  cHeight = moveSingleVal(cHeight, nHeight, fHeight);

  el.style.left = Math.round(cLeft) + 'px';
  el.style.top = Math.round(cTop) + 'px';
  el.style.width = Math.round(cWidth) + 'px';
  el.style.height = Math.round(cHeight) + 'px';
 
  if(cLeft == nLeft && cTop == nTop && cHeight == nHeight
    && cWidth == nWidth)
  {
    if(callback != null)
      callback();
    return;
  }

  setTimeout( 'doFrame("'+eID+'",'+cLeft+','+nLeft+','+fLeft+','
    +cTop+','+nTop+','+fTop+','+cWidth+','+nWidth+','+fWidth+','
    +cHeight+','+nHeight+','+fHeight+','+callback+')', 40);
}

function moveSingleVal(currentVal, finalVal, frameAmt)
{
  if(frameAmt == 0 || currentVal == finalVal)
    return finalVal;
 
  currentVal += frameAmt;
  if((frameAmt> 0 && currentVal>= finalVal)
    || (frameAmt <0 && currentVal <= finalVal))
  {
    return finalVal;
  }
  return currentVal;
}

function selectImage(el, projectImage, file1, file2, title) {
	var mainContent = document.getElementById('mainContent');
	if(mainContent == null || el == null) return;
	var description = el.parentNode.getElementsByTagName('div');
	description = description[0].innerHTML;

	var sliderImageContainer = document.getElementById('sliderImageContainer');

	if(projectImage != null && projectImage.length > 0) {
		var imageElementContainer = document.getElementById('imageElementContainer');
		imageElementContainer.innerHTML = '';
		var image = document.createElement('IMG');
		image.src = projectImage;
		imageElementContainer.appendChild(image);
	} else {
		var imageElementContainer = document.getElementById('imageElementContainer');
		imageElementContainer.innerHTML = '';
	}

	if(file1 != null && file1.length > 0) {
		var extension;
		file1 = file1.replace(/^\s|\s$/g, "");
		if (/\.\w+$/.test(file1)) {
			if (file1.match(/([^\/\\]+)\.(\w+)$/) ) {
				extension = RegExp.$2;
			}
		} else {
			if (data.match(/([^\/\\]+)$/) ) {
				extension = RegExp.$2;
			}
		}
		if(extension == null) return;

		switch(extension) {
		case 'swf':
			var playerContainer = document.getElementById('playerContainer');
			playerContainer.innerHTML = '';
			flash = document.createElement('DIV');
			flash.id = 'flash';
			playerContainer.appendChild(flash);
			var FO = { movie:file1, width:"400", height:"320", majorversion:"6", build:"40" }; 
			UFO.create(FO, "flash"); 
			break;    
		case 'flv':
			var playerContainer = document.getElementById('playerContainer');
			playerContainer.innerHTML = '';
			player = document.createElement('DIV');
			player.id = 'player';
			playerContainer.appendChild(player);
			var s1 = new SWFObject("templates/flash/flvplayer.swf","player","384","308","7");
			s1.addParam("allowfullscreen","true");
			s1.addVariable("file",file1);
			if(file2 != null && file2.length > 0) {
				s1.addVariable("image",file2);
			}
			s1.addVariable('javascriptid','player');
			s1.addVariable("autostart", "false");
			s1.write("player");
			break;
		}
	} else {
		var playerContainer = document.getElementById('playerContainer');
		playerContainer.innerHTML = '';
	}

	var projectDescription = document.getElementById('projectDescription');
	if(document.getElementById('arrow') != null) {
		projectDescription.innerHTML = '<center><img src="templates/images/up_gallery.gif" id="arrow"></center><div style="margin: 0 50px;">'+description+'</div>';
	} else {
		projectDescription.innerHTML = '<center>'+description+'</center>';
	}

}

var slidingDescription = false;

function finishedSlidingDescription() {
	slidingDescription = false;
}

function slideOpen() {
	if(slidingDescription == true) return;
	slidingDescription = true;
	var imageElement = document.getElementById('arrow');
	imageElement.src = 'templates/images/down_gallery.gif';
	animate('projectDescription', 0, 380, 496,400,100, finishedSlidingDescription);
}

function slideClose() {
	if(slidingDescription == true) return;
	slidingDescription = true;
	var imageElement = document.getElementById('arrow');
	imageElement.src = 'templates/images/up_gallery.gif';
	animate('projectDescription', 0, 510, 496,400, 100, finishedSlidingDescription);
}

function isMouseLeaveOrEnter(e, handler) {
	var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
	while (reltg && reltg != handler) reltg = reltg.parentNode;
	return (reltg != handler);
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}

function checkURL() {
	var contentID = getURLParam('contentID');
	if(contentID != null && contentID.length > 0) {
		var sliderImageContainer = document.getElementById('sliderContent');
		var elements = sliderImageContainer.getElementsByTagName('div');
		for (i=0; i<elements.length; i++) {
			if(elements[i].innerHTML == contentID) {
				var link = elements[i].parentNode.getElementsByTagName('A');
				link[0].onclick();
			}
		}
	}
}
