var ax={};

ax.init=function(){
	if(ax.browser){ ax.browser.init(); }
	if(ax.menu){ ax.menu.init("b","#bbccff");	}
	if(ax.clock){ ax.clock.init();	}
	if(ax.search){ ax.search.init(); ax.search.string('Første'); }
	if(ax.gallery){ ax.gallery.init('thumbnails'); }
	if(ax.iefix){ax.iefix.init();}
};

ax.iefix={
	init:function(){
		var t=document.getElementsByTagName("td");
		for(var n=0;n<t.length;n++){
			if(t[n].innerHTML==""){
				t[n].innerHTML="&nbsp;";
			}
		}
	}
};

ax.diag=function(str){
	try {
		eval(str);
	}
	catch(e){
	
	}
};

ax.clock={
	init:function(cl){
		var s=['td','div','span'];
		if(ax.clock.object===undefined){
			for(var i=0;i<s.length;i++){
				var t=document.getElementsByTagName(s[i]);
				for(var j=0;j<t.length;j++){
					if(t[j].getAttribute('class')==cl||t[j].getAttribute('className')==cl){
						ax.clock.object=t[j];
						break;
					}
				}
				if(ax.clock.object!==undefined){
					ax.clock.update=function(){
						var n  = new Date();
						var h = n.getHours();
						var m  = n.getMinutes();
						var s  = n.getSeconds();
						if (m<10){m='0'+m;}
						if (h<10){h='0'+h;}
						if (s<10){s='0'+s;}
						ax.clock.object.innerHTML=h+':'+m+':'+s;
						setTimeout("ax.clock.update();",1000);
					}
					ax.clock.update();
					break;
				}
			}
		}
	}	
};

ax.xml=function(f){
	var	x = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLDOM") : document.implementation && document.implementation.createDocument ? document.implementation.createDocument("","",null) : null;
	if(x!==null){
		x.async=false;
		x.load(f);
		return x;
	}
};

ax.ajax={
	query:function(c,q){
		if(ax.ajax.object===undefined){
			try	{ax.ajax.object=new XMLHttpRequest();}
			catch(e){ 
				try	{ax.ajax.object=new ActiveXObject("Msxml2.XMLHTTP");}
				catch(e){
					try {ax.ajax.object=new ActiveXObject("Microsoft.XMLHTTP");}
					catch(e){
						ax.ajax.object=null;
					}
				}
			}
		}
		if(ax.ajax.object!==null){
			ax.ajax.object.onreadystatechange=function(){
				if(ax.ajax.object.readyState==4){
					var r=ax.ajax.object.responseText;
					if(r.length>0){document.getElementById(c).innerHTML=r;}
					window.scroll(0,0);
				}
				ax.ajax.object.open("GET",q,true);
				ax.ajax.object.send(null);
			}
		}	
	}
};

ax.search={
	init:function(){ ax.search.xml=ax.xml('xml/blogg.xml'); },
	string:function(q){
		var obj=document.getElementById('blog');
		if(obj){
			obj.innerHTML='';
			var s=ax.xml('xml/blogg.xml');
			var t=s.getElementsByTagName('thread');
			for(i=0;i<t.length;i++)
				{
				if(t[i].getElementsByTagName('title')[0].childNodes[0].nodeValue.toLowerCase().indexOf(q.toLowerCase())!=-1||t[i].getElementsByTagName('comment')[0].childNodes[0].nodeValue.toLowerCase().indexOf(q.toLowerCase())!=-1)
					{
					obj.innerHTML+='<h6>'+t[i].getElementsByTagName('title')[0].childNodes[0].nodeValue+'</h6>';
					obj.innerHTML+='<p style="margin-bottom: 3px;">'+t[i].getElementsByTagName('date')[0].childNodes[0].nodeValue+'</p>';
					for(j=0;j<t[i].getElementsByTagName('comment').length;j++)
						obj.innerHTML+='<p style="margin-bottom: 3px;">'+t[i].getElementsByTagName('comment')[j].childNodes[0].nodeValue+'</p>';
					}
				}
		}
	},
	send:function(e,v){
		var c=window.event ? e.keyCode : e.which;
		if(c==13)
			{ ax.search.string(v); }
	}
};
		
ax.displaythread=function(n){
	var t=document.getElementsByTagName('div');
	for(var i=0;i<t.length;i++){
		if(t[i].id.indexOf('threadcontent')===0)
			{ t[i].style.display='none'; }
	}
	var b=document.getElementById('threadcontent'+n);
	if(b!==null){
		b.style.display=b.style.display=='none'?'block':'none';
	}
};

ax.menu={
	init:function(cl,co){
		ax.menu.link=[];
		var bool=false;
		var t=["td","div","li"];
		for(var n=0;n<t.length;n++){
			var b=document.getElementsByTagName(t[n]);
			for(var i=0;i<b.length;i++){
				if(b[i].getAttribute("class")==cl||b[i].getAttribute("className")==cl){
					bool=bool===false?true:false;
					var a=b[i].getElementsByTagName("a")[0];
					if(b[i].id===undefined||b[i].id===null||b[i].id==""){
						b[i].id='ax_b'+i;
					}
					ax.menu.link[b[i].id]=a.href;
					if(ax.browser.browser=='Explorer'){
						b[i].onclick=function(){window.location=ax.menu.link[this.id];};
						b[i].onmouseover=function(){this.style.background=co; this.style.cursor='hand';};
						b[i].onmouseout=function(){this.style.background=''; this.style.cursor='auto';};
					}
					else {
						b[i].setAttribute("onclick","window.location=ax.menu.link[this.id]; this.setAttribute('onclick','');");
						b[i].setAttribute("onmouseover","this.style.background='"+co+"'; this.style.cursor='pointer';");
						b[i].setAttribute("onmouseout","this.style.background=''; this.style.cursor='auto';");
					}
					b[i].innerHTML=a.innerHTML;
				}
			}
		if(bool===true){break;}
		}
	}
};

ax.gallery={
	init:function(g){
		if(document.getElementById(g)&&document.getElementById("ax_image")){
			var a=document.getElementById(g).getElementsByTagName("img");
			for(var n=0;n<a.length;n++){
				if(ax.browser.browser!='Explorer'){ a[n].setAttribute("onclick","ax.gallery.open(this);"); }
				else { a[n].onclick=function(){ax.gallery.open(this);}; }
			}
		ax.gallery.object=document.getElementById("ax_image");
		ax.gallery.polarity=-.1;
		ax.gallery.object.style.opacity=1;
		}
	},
	open:function(i){
		ax.gallery.destination=i.src;
		ax.gallery.fade();
	},
	fade:function(){
		var o=ax.gallery.object.style.opacity;
		var p=ax.gallery.polarity;
		ax.gallery.object.style.opacity-=(-p);
		if(o==0&&p<0){
			ax.gallery.polarity=.1;
			ax.gallery.object.src=ax.gallery.destination;
		}
		if(o==1&&p>0){
			ax.gallery.polarity=-.1;
		}		
		if(o>0&&p<0||o==0&&p<0||o<1&&p>0){
			setTimeout("ax.gallery.fade();",45);
		}
	}
};

ax.login=function(f,u,p){
	var e="1M2n3-B4v5C£>7xZ9a=S~¨8d*F6g,H§0jK_l[Øæ!ÅãÃäÄp|O\"i#Uy:ËÊëêüÜ@ÛûÿñÑõÕöôÔ¤Tr^E+%w´Qm&N;bV/cX]€zA\\sDf{8Gh(JkL.øÆå)Po<Iu}YtR?`eWq";
	var t=[document.getElementById(u),document.getElementById(p)];
	var s=[0,0];
	var b=true;
	
	for(var n=0;n<2;n++){
		if(t[n]){
			if(t[n].value.length>0){
				for(var i=0;i<t[n].value.length;i++){
					if(e.indexOf(t[n].value.charAt(i))!=-1){
						s[n]-=(-Math.pow(Math.abs(e.indexOf(t[n].value.charAt(i))),2));
						s[n]-=(-Math.pow(i,4));
					}
					else { b='Invalid character found: '+t[n].value.charAt(i); break; break; }
				}
			}
			else { b='Input error: Empty field!'; break; }
		}
		else { b="Invalid input field:  Contact site admin!"; break; }
	s[n]=s[n].toString(18);
	}
	if(b===true){
		for(var n=0;n<2;n++){
			t[n].name=t[n].id;
			t[n].type="hidden";
			t[n].value=s[n];
		}
		f.submit();
	}
	else alert(b);
};

ax.browser={
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
