/*
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│		GRAPHIC FUNCTIONS                                                                        │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
//var ival, elementID, total, steps, maxx, maxy, currentx, currenty, dx, dy;

// PROPERTIES ___________________________________________________________________________________
// Get the height and width of an element
function getProperties(filename, elementID) {
	objref = eval("document.getElementById('"+elementID+"')");
	var maxy = objref.height;
	var maxx = objref.width;
}

// SWAP _________________________________________________________________________________________
// Swap one image with another based on the element ID
function swapImage(filename, elementID) {
	var newImg = new Image();
	newImg.src = filename;
	maxy = newImg.height;
	maxx = newImg.width;
	objref = eval("document.getElementById('"+elementID+"')");
	objref.src = filename;
	objref.height = maxy;
	objref.width = maxx;
}

// Toggle an image based on the element ID
function toggle(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display != 'none' ? 'none' : '' );
}

// ZOOM _________________________________________________________________________________________
// Expand an image NOTE:alignment of image element determins direction
function zoomImg(filename, elementID, total, steps, type) {
	var newImg = new Image();
	newImg.src = filename;
	maxy = newImg.height;
	maxx = newImg.width;
	objref = eval("document.getElementById('"+elementID+"')");
	objref.src = filename;
	stepx = maxx / steps;
	stepy = maxy / steps;
	inttime = (total * 40) / steps;

	switch(type) {
		case "XY":	// \/ -> if element is centered <- \/ -> if element is aligned right \/ <- 
			objref.width = 0;
			objref.height = 0;
			functionRef = "expandXY('"+elementID+"', "+stepx+", "+stepy+", "+maxx+", "+maxy+")";
	  break;    
	
		case "Y":		//	-> if element is centered <- -> if element is aligned right <-
			objref.width = 0;
			objref.height = maxy;
			functionRef = "expandY('"+elementID+"', "+stepx+", "+stepy+", "+maxx+", "+maxy+")";
	  break;    
	
		case "TopX":		// \/
			objref.width = maxx;
			objref.height = 0;
			functionRef = "expandTopX('"+elementID+"', "+stepx+", "+stepy+", "+maxx+", "+maxy+")";
	  break;    
	}
	
	ival = setInterval(functionRef, inttime);
}

function expandXY(elementID, dx, dy, maxx, maxy) {
	objref = eval("document.getElementById('"+elementID+"')");
	currentx = objref.width;
	currenty = objref.height;
	if ((currentx<maxx-dx) && (currenty<maxy-dy)) {
		objref.height = currenty + dy;
		objref.width = currentx + dx;
	}else {
		clearInterval(ival);
		objref.height = maxy;
		objref.width = maxx;
   }
}

function expandY(elementID, dx, dy, maxx, maxy) {
	objref = eval("document.getElementById('"+elementID+"')");
	currentx = objref.width;
	//currenty = objref.height;
	if ((currentx<maxx-dx)) {
		//objref.height = currenty + dy;
		objref.width = currentx + dx;
	}else {
		clearInterval(ival);
		//objref.height = maxy;
		objref.width = maxx;
   }
}

function expandTopX(elementID, dx, dy, maxx, maxy) {
	objref = eval("document.getElementById('"+elementID+"')");
	//currentx = objref.width;
	currenty = objref.height;
	if ((currenty<maxy-dy)) {
		objref.height = currenty + dy;
		//objref.width = currentx + dx;
	}else {
		clearInterval(ival);
		objref.height = maxy;
		//objref.width = maxx;
   }
}
/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: HunBug | http://www.astral-consultancy.co.uk/ */

var fadeOpacity  = new Array();
var fadeTimer    = new Array();
var fadeInterval = 100;  // milliseconds

function fade(o,d) {
  // o - Object to fade in or out.
  // d - Display, true =  fade in, false = fade out

  var obj = document.getElementById(o);

  if((fadeTimer[o])||(d&&obj.style.display!='block')||(!d&&obj.style.display=='block')) {
    if(fadeTimer[o])
      clearInterval(fadeTimer[o]);
    else
      if(d) fadeOpacity[o] = 0;
      else  fadeOpacity[o] = 9;
  
    obj.style.opacity = "."+fadeOpacity[o].toString();
    obj.style.filter  = "alpha(opacity="+fadeOpacity[o].toString()+"0)";
    
    if(d) {
      obj.style.display = 'block';
      fadeTimer[o] = setInterval('fadeAnimation("'+o+'",1);',fadeInterval);
    } else
      fadeTimer[o] = setInterval('fadeAnimation("'+o+'",-1);',fadeInterval);
  }
}

function fadeAnimation(o,i) {
  // o - o - Object to fade in or out.
  // i - increment, 1 = Fade In

  var obj = document.getElementById(o);
  fadeOpacity[o] += i;
  obj.style.opacity = "."+fadeOpacity[o].toString();
  obj.style.filter  = "alpha(opacity="+fadeOpacity[o].toString()+"0)";

  if((fadeOpacity[o]=='9')|(fadeOpacity[o]=='0')) {
    if(fadeOpacity[o]=='0')
      obj.style.display = 'none';
    else {
      obj.style.opacity = "1";
      obj.style.filter  = "alpha(opacity=100)";
    }

    clearInterval(fadeTimer[o]);
    delete(fadeTimer[o]);
    delete(fadeTimer[o]);
    delete(fadeOpacity[o]);
  }  
}


