/*** 
    Utilities 
***/
var util = new Object;

util.addEvent = function(thisE, evType, fn, useCapture){
	if(thisE.AddEventListener){
		thisE.AddEventListener(evType, fn, useCapture);
		return true;
	} else if(thisE.attachEvent){
		var r = thisE.attachEvent('on' + evType, fn);
		return r;
	} else {
		var xEventFn = thisE['on' + evType];
		if(typeof thisE['on' + evType] != 'function'){
			thisE['on' + evType] = fn;
		} else {
			thisE['on' + evType] = function(e){ xEventFn(e); fn(e); };
		}
	}
};

util.getTarget = function(e){
	if (typeof e == 'undefined') {
		var e = window.event;
	}
	var source;
	if(typeof e.target != 'undefined'){
		source = e.target;
	} else if(typeof e.srcElement != 'undefined'){
		source = e.srcElement;
	} else {
		return true;
	}
	if (source.nodeType == 3) {
		source = source.parentNode;
	}
	return source;
};


/*** 
    Primary Navigation 
***/

var menu = new Object;

menu.timeout 	= 500;
menu.DOMID 		= 'navigation';
menu.subMenu	= false;
menu.timer		= false;

menu.init = function(){
	items = document.getElementById(menu.DOMID).childNodes;
	first = false;
	for(i=0; i<items.length; i++){
		targetA  = items[i].getElementsByTagName('a')[0];
		targetUL = items[i].getElementsByTagName('ul')[0];
		util.addEvent(targetA, "mouseover", menu.show, false);
		util.addEvent(targetA, "mouseout",  menu.setTimer, false);
		if(targetUL){
			util.addEvent(targetUL, "mouseover", menu.killTimer, false);
			util.addEvent(targetUL, "mouseout",  menu.setTimer, false);
		}
	}
};

menu.show = function(e){
	menu.killTimer();
	menu.hide();
	elmnt = util.getTarget(e).parentNode;
	sub = elmnt.getElementsByTagName('ul')[0];
	if(sub){
		menu.subMenu = sub;
		menu.subMenu.style.display = 'block';
	}
};

menu.hide = function(){
	if(menu.subMenu) menu.subMenu.style.display = 'none';
};

menu.setTimer = function(){
	menu.timer = window.setTimeout(menu.hide, menu.timeout);
};

menu.killTimer = function(){
	if(menu.timer){
		window.clearTimeout(menu.timer);
		menu.timer = false;
	}
};

util.addEvent(window, "load", menu.init, false);



/*** 
    Expanding Boxes
***/

var expanding_boxes = new Object;

expanding_boxes.init = function(){
	divs = document.getElementsByTagName('div');
	first = false;
	for(i=0; i<divs.length; i++){
		if(divs[i].className.match('expanding_box')){
			box = divs[i];
			util.addEvent(box.getElementsByTagName('h3')[0], "mousedown", expanding_boxes.toggle, false);			
		}
	}
};

expanding_boxes.toggle = function(e){
	divs = document.getElementsByTagName('div');
	for(i=0; i<divs.length; i++){
		if(divs[i].className.match('expanding_box')){
			box = divs[i];
			box.className = 'expanding_box';			
		}
	}
	box = util.getTarget(e).parentNode;
	if(box.className.match('expanded'))
		box.className = 'expanding_box';
	else 
		box.className += ' expanded';
};

util.addEvent(window, "load", expanding_boxes.init, false);



/*** 
    Email Page
***/

var mailer = new Object;

mailer.actionURL = 'http://www.kone.com/corporate/en/Contact/Worldwide/_layouts/KONEcom/MailThisPage.aspx?page='

mailer.init = function(){
	util.addEvent(
		document.getElementById('nt_email').getElementsByTagName('a')[0], 
		"mousedown", 
		(function(){
			params = "location=1,status=1"  
			 +",scrollbars=0"
			 +",width=500"
			 +",height=500"
			 +",resizable=0";
			win = window.open(mailer.actionURL+window.location, 'KONE', params);
		    try{win.focus();}
			catch(err) {}
		}),
		false
	);
};

util.addEvent(window, "load", mailer.init, false);



/*** 
    Print Stylesheet Switcher
***/

var css_switcher = new Object;

css_switcher.init = function(){

	util.addEvent(
		document.getElementById('nt_print').getElementsByTagName('a')[0], 
		"mousedown", 
		(function(){
			link = false;
			links = document.getElementsByTagName('link');
			for(i=0; i<links.length; i++){
				if(links[i].href.match(/print\.css/))
					link = links[i];
			}
			if(!link) return;
			
			try{
				parent = link.parentNode;
				link.parentNode.removeChild(link);
			} catch(e){}
			
			if(link.media == 'print'){
				link.media = 'all';
				document.getElementById('nt_print').getElementsByTagName('a')[0].innerHTML = 'View Normal';
			} else {
				link.media = 'print';
				document.getElementById('nt_print').getElementsByTagName('a')[0].innerHTML = 'Printable';
			}
			
			try{
				parent.appendChild(link);
			} catch(e){}
			
			
			if(link.media == 'all'){
				btn = document.createElement('button');
				btn.innerHTML = 'Print This Page';
				btn.setAttribute('id', 'btn_print');
				
				util.addEvent(
					btn, 
					"mousedown",
					(function(){
						window.print();
					}),
					false
				);
				document.getElementById('header').appendChild(btn);
			} else {
				btn = document.getElementById('btn_print');
				btn.parentNode.removeChild(btn);			
			}
			
		}),
		false
	);
};

util.addEvent(window, "load", css_switcher.init, false);



/*** 
    Egotistical Headshots (this is just stupid)
***/

var headshots = new Object;

headshots.init = function(){

	arVersion = navigator.appVersion.split("MSIE");
	headshots.version = parseFloat(arVersion[1]);
	links = document.getElementsByTagName('a');
	
	for(i=0; i<links.length; i++){
		link = links[i];
		if(link.className == 'headshot'){
			util.addEvent(
				link,
				"mouseover",
				(function(e){
					elmnt = util.getTarget(e)
					src = elmnt.href.replace(/mailto.([^\.]+.[^\@]+).*/, "photo-$1.png");
					src = 'style/img/' + src;
					
					// IE6 (Transparent PNG Support)
					if((headshots.version >= 5.5) && (document.body.filters)){ 
						span = document.createElement('span');
						span.className = 'headshot';
						span.style.filter	= 'progid:DXImageTransform.Microsoft.AlphaImageLoader'
							+ '(src="' + src + '", sizingMethod=\'scale\')';
						elmnt.parentNode.appendChild(span);
					} 
					
					// Everyone Else
					else {					
						img = document.createElement('img');
						img.src = src;
						img.className = 'headshot';
						elmnt.parentNode.appendChild(img);
					}
				}),
				false
			);
			util.addEvent(
				link,
				"mouseout",
				(function(e){
					elmnt = util.getTarget(e);				
					// IE6
					if((headshots.version >= 5.5) && (document.body.filters))
						img = elmnt.parentNode.getElementsByTagName('span')[0];
						
					// Everyone Else
					else
						img = elmnt.parentNode.getElementsByTagName('img')[0];
						
					// Kill it
					elmnt.parentNode.removeChild(img);
					
				}),
				false
			);
		}
	}
};

util.addEvent(window, "load", headshots.init, false);

