/* Javascripts */

window.onresize = setDivPosition;

var myWidth;
var myHeight;

function getSize() {
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
}

function setDivPosition() {
	getSize();
	var leftPos = (myWidth-944)/2;
	var topPos = (myHeight-550)/2;
	document.getElementById('container').style.left = leftPos;
	document.getElementById('container').style.top = topPos;
	document.getElementById('container').style.visibility = 'visible';
}

/* Contact Form Check */
function checkContactForm() {
	if (!document.forms['contact'].elements['name'].value.length > 0) {
		alert("Please enter your name");
		document.forms['contact'].elements['name'].focus();
		return false;
	}
	if (!document.forms['contact'].elements['e-mail'].value.length > 0) {
		alert("Please enter your e-mail address");
		document.forms['contact'].elements['e-mail'].focus();
		return false;
	}
}


/* JavaScript Menu */

var timeouts = new Object();
var menu_grace_period = 100;

function _resolve(id) {
	var obj = document.getElementById(id);
	if (! obj)
		alert("Sorry, missing object for: '" + id + "'");
		return obj;
}

function visibilize(id) {
// if there are any visible other menus, close them on focusing new
	for (var ex_id in timeouts) {
		clearTimeout(timeouts[ex_id]);
		delete(timeouts[ex_id]);
		unvisibilize(ex_id);
	}
	var obj = _resolve(id);
	obj.style.visibility = 'visible';
}

function unvisibilize(id) {
	var obj = _resolve(id);
	obj.style.visibility = 'hidden';
}

// after a grace period, kill the visible <div> unless cancelled
function time_unvisibilize(id) {
	var closure = function() {
		unvisibilize(id);
		delete(timeouts[id]);
	}
	timeouts[id] = setTimeout(closure, menu_grace_period);
}

function cancel_unvisibilize(id) {
	var timer = timeouts[id];
	if (timer) {
		clearTimeout(timer);
		delete(timeouts[id]);
	}
}


