function mouseOver(elem) {
	document.getElementById(elem).src = '/img/skin/target.gif';
}
function mouseOut(elem) {
	document.getElementById(elem).src = '/img/skin/circle.gif';	
}
function mouseClick(elem) {
	// hide all targets
	var elems = document.getElementById('locationBullets').getElementsByTagName('img');
	for (var i=0; i<elems.length; i++)
	{
	   elems[i].src = "/img/skin/circle.gif";
	}
	
	// hide all location details
	var elems = document.getElementById('locations').getElementsByTagName('div');
	for (var i=0; i<elems.length; i++)
	{
	   elems[i].style.display = "none";
	}
		
	// set location class
	var elems = document.getElementById('locationsList').getElementsByTagName('a');
	for (var i=0; i<elems.length; i++)
	{
	   elems[i].className = "location";
	}
	
	document.getElementById(elem+'_d').style.display = 'block';
	document.getElementById(elem+'_d').opacity = 0;
	document.getElementById(elem+'_d').filter = "alpha(opacity=0)";
	var fadeElem = elem+'_d';
	fade(fadeElem, 0, 100, 900);
	document.getElementById(elem+'_l').className = 'locationSelected';
	document.getElementById(elem).src = '/img/skin/target.gif';
	
	topPos = document.getElementById(elem+'_l').offsetTop;
	document.getElementById('locationsList').scrollTo = topPos;
	
	var objDiv = document.getElementById('locationsList');
	objDiv.scrollTo = topPos;
	
	return false;
}
function showHide(elem) {
	if (document.layers)
	{
		current = (document.layers[elem].display == 'none') ? 'block' : 'none';
		document.layers[elem].display = current;
	}
	else if (document.all)
	{
		current = (document.all[elem].style.display == 'none') ? 'block' : 'none';
		document.all[elem].style.display = current;
	}
	else if (document.getElementById)
	{
		vista = (document.getElementById(elem).style.display == 'none') ? 'block' : 'none';
		document.getElementById(elem).style.display = vista;
	}
}
function confirmation(msg, formToSubmit) {
	if (confirm(msg)) 
	{
		document.getElementById(formToSubmit).submit(); 
	}
}
function imgSwap(elem, attr) {
	elem.src = elem.getAttribute(attr || "origsrc");
}
function setImgSwapHandlers() {
	var elems = document.getElementsByTagName("img");
	for (var i=0; i<elems.length; i++)
	{
		var oversrc = elems[i].getAttribute("oversrc");
		if (!oversrc) continue;
		// preload image
		// comment the next two lines to disable image pre-loading
		elems[i].oversrc_img = new Image();
		elems[i].oversrc_img.src = oversrc;
		// set event handlers
		elems[i].onmouseover = new Function("imgSwap(this,'oversrc');");
		elems[i].onmouseout = new Function("imgSwap(this);");
		// save original src
		elems[i].setAttribute("origsrc", elems[i].src);
	}
}
function displayImg(id) {
	var elems = document.getElementById('imgLarge').getElementsByTagName('img');
	for (var i=0; i<elems.length; i++)
	{
	   elems[i].style.display = "none";
	}
	document.getElementById(id).style.display = 'block';
}
function fade(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}
function colorFade(id,element,start,end,steps,speed) {
  var startrgb,endrgb,er,eg,eb,step,rint,gint,bint,step;
  var target = document.getElementById(id);
  steps = steps || 20;
  speed = speed || 20;
  clearInterval(target.timer);
  endrgb = colorConv(end);
  er = endrgb[0];
  eg = endrgb[1];
  eb = endrgb[2];
  if(!target.r) {
    startrgb = colorConv(start);
    r = startrgb[0];
    g = startrgb[1];
    b = startrgb[2];
    target.r = r;
    target.g = g;
    target.b = b;
  }
  rint = Math.round(Math.abs(target.r-er)/steps);
  gint = Math.round(Math.abs(target.g-eg)/steps);
  bint = Math.round(Math.abs(target.b-eb)/steps);
  if(rint == 0) { rint = 1 }
  if(gint == 0) { gint = 1 }
  if(bint == 0) { bint = 1 }
  target.step = 1;
  target.timer = setInterval( function() { animateColor(id,element,steps,er,eg,eb,rint,gint,bint) }, speed);
}
function animateColor(id,element,steps,er,eg,eb,rint,gint,bint) {
  var target = document.getElementById(id);
  var color;
  if(target.step <= steps) {
    var r = target.r;
    var g = target.g;
    var b = target.b;
    if(r >= er) {
      r = r - rint;
    } else {
      r = parseInt(r) + parseInt(rint);
    }
    if(g >= eg) {
      g = g - gint;
    } else {
      g = parseInt(g) + parseInt(gint);
    }
    if(b >= eb) {
      b = b - bint;
    } else {
      b = parseInt(b) + parseInt(bint);
    }
    color = 'rgb(' + r + ',' + g + ',' + b + ')';
    if(element == 'background') {
      target.style.backgroundColor = color;
    } else if(element == 'border') {
      target.style.borderColor = color;
    } else {
      target.style.color = color;
    }
    target.r = r;
    target.g = g;
    target.b = b;
    target.step = target.step + 1;
  } else {
    clearInterval(target.timer);
    color = 'rgb(' + er + ',' + eg + ',' + eb + ')';
    if(element == 'background') {
      target.style.backgroundColor = color;
    } else if(element == 'border') {
      target.style.borderColor = color;
    } else {
      target.style.color = color;
    }
  }
}
function colorConv(color) {
  var rgb = [parseInt(color.substring(0,2),16), 
    parseInt(color.substring(2,4),16), 
    parseInt(color.substring(4,6),16)];
  return rgb;
}
