// javascript library of functions
function fadeBak(imgName) {
	preload("../images/backgrounds/"+imgName+".jpg");
	new Effect.Opacity('inner', { 
						duration: 1.0, 
						transition: Effect.Transitions.linear, 
						from: 1, to: 0, 
						afterFinish: function(){ changeBak(imgName);} });
}
function changeBak(imgName)	{
	$('inner').style.backgroundImage="url('../images/backgrounds/"+imgName+".jpg')";
	
	$('inner').innerHTML = '';
	new Effect.Opacity('inner', { duration: 2.0, transition: Effect.Transitions.linear, from: 0, to: 1 });
	//new Effect.Opacity('menu', { duration: 2.0, transition: Effect.Transitions.linear, from: 0, to: 1 });
}

function fadeOut(pageURL) {
	var pos = findPos($('menu'));
	if(pos[1] == 577) 
	{
		new Effect.MoveBy( $('menu'), -250, 0 , {duration: 0.5,  transition: Effect.Transitions.slowstop});
	}
	 
	 new Effect.Opacity('inner', { 
						duration: 1.0, 
						transition: Effect.Transitions.linear, 
						from: 1, to: 0, 
						afterFinish: function(){ updateFunction(pageURL);} });
}

function updateFunction(pageURL)	{
	//alert(pageURL);
	ajax_do('loadpage.php?p='+pageURL+'');
	new Effect.Opacity('inner', { duration: 2.0, transition: Effect.Transitions.linear, from: 0, to: 1 });
	//new Effect.Opacity('menu', { duration: 2.0, transition: Effect.Transitions.linear, from: 0, to: 1 });
}

function changePortfolio(mid,pid) {
	var id = mid+'_'+pid;
	new Effect.Opacity('work', { 
						duration: 1.0, 
						transition: Effect.Transitions.linear, 
						from: 1, to: 0, 
						afterFinish: function(){ changeIt(id)} });
}

function changeIt(id) {
	$('work').innerHTML = $(''+id+'').innerHTML;
	new Effect.Opacity('work', { duration: 2.0, transition: Effect.Transitions.linear, from: 0, to: 1 });
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

function showHide(div) {	
	var tempc = div;
	var c = $(tempc);
	if(c.style.display != 'none'){
		Effect.toggle(tempc,'appear',{duration:1.5});
	}
	else {
		Effect.toggle(tempc,'appear',{duration:1.5, queue: 'front'});
		Effect.toggle($('menu'),'appear',{duration:1, queue: 'end'});
	}
}

// Get base url
var url = document.location.href;
xend = url.lastIndexOf("/") + 1;
var base_url = url.substring(0, xend);


function ajax_do (url) {
		    // Does URL begin with http?
        if (url.substring(0, 4) != 'http') {
                url = base_url + url;
        }

        // Create new JS element
        var jsel = document.createElement('SCRIPT');
        jsel.type = 'text/javascript';
        jsel.src = url;
		
        // Append JS element (therefore executing the 'AJAX' call)
        document.body.appendChild (jsel);
}

function preload(img) {
	var newImage = new Image();
	newImage.src = img;	
}

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

function insertFlash( src, width, height, version, name, FlashVars )
{
	var output = '';
	
	output += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + version + ',0,0,0" width="' + width + '" height="' + height + '" id="' + name + '" align="middle">';
	output += '<param name="allowScriptAccess" value="sameDomain" />';
	output += '<param name="movie" value="' + src + '" />';
	output += '<param name="quality" value="high" />';
	output += '<param name="bgcolor" value="#ffffff" />';
	output += '<param name="wmode" value="transparent" />';
	output += '<param name="scale" value="noscale" />';
	output += '<param name="FlashVars" value="' + FlashVars + '" />';
	
	output += '<embed src="' + src + '" quality="high" FlashVars="' + FlashVars + '" wmode="transparent" bgcolor="#ffffff" width="' + width + '" height="' + height + '" name="' + name + '" scale="noscale" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	output += '</object>';

	return output;
}
function writeFlash( src, width, height, version, name, FlashVars )
{
	document.write( insertFlash( src, width, height, version, name, FlashVars ) );
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);