// JavaScript Document

//cross browser event utility
function bind_event(target, event_type, event_handler) {
	if(target.addEventListener) {
		target.addEventListener(event_type, event_handler, false);
	}
	else if(target.attachEvent){
		target.attachEvent('on' + event_type, event_handler);
	}
}

//get browser dimensions
function get_window_geometry() {
	var doc = (!document.compatMode || document.compatMode == 'CSS1Compat') ? document.documentElement : document.body;
	
	if(window.innerWidth)	{
		var browser_width = window.innerWidth;
		var browser_height = window.innerHeight;
	} 
	else {		
		// IE
		var browser_width = doc.clientWidth;
		var browser_height = doc.clientHeight;								
	}
		
	var body_width = Math.max(doc.scrollWidth, browser_width);
	var body_height = Math.max(doc.scrollHeight, browser_height);
	
	var scroll_x = (body_width > browser_width);
	var scroll_y = (body_height > browser_height);
		
	return {window_width:browser_width, window_height:browser_height, body_width:body_width, body_height:body_height, scroll_x:scroll_x, scroll_y:scroll_y};	
}

function centre_elem(elem_id) {
	var elem = document.getElementById(elem_id);
	elem.style.position = 'absolute';
	
	var browser_dims = get_window_geometry();
	
	//on centre if elem is smaller than window
	if(browser_dims.window_height > elem.offsetHeight) {
		elem.style.top = ((browser_dims.window_height - elem.offsetHeight)/2) + 'px';
	}

	if(browser_dims.window_width > elem.offsetWidth) {
		elem.style.left = ((browser_dims.window_width - elem.offsetWidth)/2) + 'px';
	}
}
