/*
Copyright (c) 2004-2008 Ylab, www.ylab.nl
*/
var debugging=true;
var isOpera=(navigator.userAgent.indexOf("Opera") > -1);
var isIE=((!isOpera) && (navigator.appName.indexOf("Explorer") > -1 ));
if(!debugging){
	window.onerror=function(msg, url, line){
		window.status="Error on line "+line+":"+msg;
		return true;
	};
}
function debugAlert(){
	if(!debugging){
		return;
	}
	var code='';
	for(var i=0; i < arguments.length; i++){
		code+=arguments[i]+'\n';
	}
	debugging=confirm(code);
}
function $(el){
	if(typeof(el)=="string"){
		el=document.getElementById(el);
	}
	return el;
}
Array.prototype.in_array=function(element){
	for(var i=0; i<this.length; i++){
		if(this[i]==element){
			return true;
		}
	}
	return false;
};
function setEnabled(on){
	for(var i=1; i<arguments.length; i++){
		var obj=$(arguments[i]);
		if(!obj){
			continue;
		}
		obj.disabled=!on;
		if(on){
			removeClass(obj, 'disabled');
		}
		else{
			addClass(obj, 'disabled');
		}
		if(obj.hasChildNodes()){
			for(var j=0; j<obj.childNodes.length; j++){
				if(obj.childNodes[j].nodeType==1){
					setEnabled(on, obj.childNodes[j]);
				}
			}
		}
	}
}
function addClass(obj, strClass){
	if(!obj){
		return;
	}
	if(!obj.className){
		obj.className=strClass;
	}
	else if(!obj.className.match(strClass)){
		obj.className+=' '+strClass;
	}
}
function removeClass(obj, strClass){
	if(!obj || !obj.className){
		return;
	}
	obj.className=obj.className.replace(strClass, '');
}
function getCookie(name){
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	var getCookieVal=function(offset){
		var endstr=document.cookie.indexOf (";", offset);
		if(endstr==-1) endstr=document.cookie.length;
		return unescape(document.cookie.substring(offset, endstr));
	}
	while(i < clen){
		var j=i+alen;
		if(document.cookie.substring(i, j)==arg)
		return getCookieVal (j);
		i=document.cookie.indexOf(" ", i)+1;
		if(i==0) break;
	}
	return null;
}
function setCookie(name, value, expires, path, domain, secure){
	var nm=''+expires;
	if(nm.indexOf("+")==0){
		expires=new Date();
		expires.setMonth(expires.getMonth()+nm.substring(1));
	}
	document.cookie=name+'='+escape (value)+
	((expires) ? '; expires='+expires.toGMTString() : '')+
	((path) ? '; path='+path : '')+
	((domain) ? '; domain='+domain : '')+
	((secure) ? '; secure' : '');
}
function toggleMenu(bShow, dropdownMenus, dropped){
	var i;
	for(i=0; i<dropdownMenus.length; i++){
		dropdownMenus[i].style.height=(dropdownMenus[i].className=='selected' || (bShow && dropdownMenus[i]==dropped)) ? '160px' : '2.5em';
	}
}
function init(){
	var dropdownMenus, mainmenu = $('menu');
	if(mainmenu){
		dropdownMenus = mainmenu.getElementsByTagName('ul');
		if(dropdownMenus){
			for(i=0; i<dropdownMenus.length; i++){
				dropdownMenus[i].onmouseover=function(){
					toggleMenu(true, dropdownMenus, this);
				};
				dropdownMenus[i].onmouseout=function(){
					toggleMenu(false, dropdownMenus);
				};
				toggleMenu(false, dropdownMenus);
			}
		}
		inpPrep('user');
		inpPrep('pass');
		var imgs=[];
		var divs=$('key').getElementsByTagName('div');
		if(divs.length>0){
			for(var i=0; i<divs.length; i++){
				switch(divs[i].className){
					case 'keybox':
					imgs[i]=new Image();
					imgs[i].className='keyimg';
					imgs[i].src='/images/'+divs[i].id;
					divs[i].parentNode.insertBefore(imgs[i], divs[i]);
					case 'keycap':
					divs[i].onclick=drop;
					break;
					case 'keyabs':
					divs[i].onclick=drop;
					break;
				}
			}
		}
	}
	/*if(!getCookie('KBPS')){
		measureKBPS();
	}*/
}
function measureKBPS(){
	var test=new Image();
	test.started=(new Date).getTime();
	test.onload=measureReady;
	if(!isIE){
		test.fileSize=4202;
	}
	test.src='../graphics/logo.png?n='+test.started;
}
function measureReady(){
	this.finished=(new Date).getTime();
	var ms=(this.finished - this.started)||1;
	var KBPS=Math.round(8*this.fileSize/ms);
	setCookie('KBPS', KBPS);
}
function drop(){
	this.parentNode.style.height=(this.parentNode.style.height=='auto') ? '20px' : 'auto';
}
function inpPrep(id){
	var el=$(id);
	if(el.type=='password' && !isIE){
		el.onfocus=pssFocus;
		el.onblur=pssBlur;
		el.type='text';
	}
	else{
		el.onfocus=inpFocus;
		el.onblur=inpBlur;
	}
}
function inpFocus(){
	if(this.value==this.defaultValue){
		this.value='';
	}
}
function inpBlur(){
	if(this.value==''){
		this.value=this.defaultValue;
	}
}
function pssFocus(){
	if(this.value==this.defaultValue){
		this.type='password';
		this.value='';
	}
}
function pssBlur(){
	if(this.value==''){
		this.value=this.defaultValue;
		this.type='text';
	}
}
window.onload=init;
