﻿/* Toogle text
---------------------------------------------------------------- */

var field = function(){
	return {
		focus:function(f,txt){
			if(f.value==txt){
				f.value='';
			}else{
				f.select();
			}
		},
		blur:function(f,txt){
			if(f.value==''){
				f.value=txt;
			}
		}
	};
}();


/* Link function
---------------------------------------------------------------- */

var url = function(){
	return {
		href:function(url,blank){
			if(blank){
				window.open(url);
			}else{
				location.href = url;
			}
		}
	};
}();

/* search form submit if  q field not empty */
var frm = function(){
	return {
		fsubmit:function(f, val){
			if (val ==''){
				return false;
			}
			else
			{
				f.submit();
			}
		}
		
	};
}();


/* Ajax
---------------------------------------------------------------- */

var ajax = function(){
	return {
		nocache:function(){
			var minutes = 1000 * 60;
			var hours = minutes * 60;
			var days = hours * 24;
			var years = days * 365;
			var d = new Date();
			var t = d.getTime();
			return t;
		},
		load:function(url,container,load){
			var obj = document.getElementById(container);
			var loader = '<div class="loading"></div>';
			if(obj && url){
				if(load){obj.innerHTML = loader;}
				ajax.page(url,container);
			}
		},
		page:function(url,container){
			var _url,_no;
			if(url.indexOf("?")==-1){_no = '?~' + ajax.nocache();}else{_no = '&~' + ajax.nocache();}
			_url = url + _no;
			
			if(window.XMLHttpRequest){
				page_request = new XMLHttpRequest();
			}else if(window.ActiveXObject){
				try{
					page_request = new ActiveXObject('Msxml2.XMLHTTP');
				}catch(e){
					try{
						page_request = new ActiveXObject('Microsoft.XMLHTTP');
					}catch(e){}
				}
			}else{
				return false;
			}

			page_request.onreadystatechange = function(){
				ajax.parse(page_request,container);
			}
			page_request.open('GET', _url, true);
			page_request.send(null);
		},
		parse:function(page_request,container){
			if(page_request.readyState==4 && (page_request.status==200 || window.location.href.indexOf('http')==-1)){
				document.getElementById(container).innerHTML = page_request.responseText;
				ajax.completed();
			}
		},
		completed:function(){
			// After complete functions here..
		}
	};
}();


/* Dark layer
---------------------------------------------------------------- */

var darken = function(){
	return {
		create:function(){
			var dark = document.getElementById('layerdark');
			if(!dark){
				var dot = document.createElement("div");
				dot.id = 'layerdark';
				dot.style.opacity = 0.5;
				dot.style.filter = 'alpha(opacity=50)';
				dot.style.width = '100%';
				dot.style.height = '100%';
				dot.style.position = 'absolute';
				dot.style.zIndex = '1000';
				dot.style.backgroundColor = '#000000';
				dot.style.left = '0px';
				dot.style.top = '0px';
				dot.onclick = function(){darken.kill();}
				document.body.appendChild(dot);
			}
		},
		show:function(){
			darken.create();
			var dark = document.getElementById('layerdark');
			var height = document.documentElement.scrollHeight;
			if(dark){
				dark.style.height = height + 'px';
				dark.style.display = 'block';
			}
		},
		fixed:function(){
			var dark = document.getElementById('layerdark');
			var height = document.documentElement.scrollHeight;
			if(dark){
				dark.style.height = height + 'px';
			}
		},
		kill:function(){
			var dark = document.getElementById('layerdark');
			if(dark){dark.style.display = 'none';}
		}
	};
}();


/* Validation
---------------------------------------------------------------- */

var validate = function(){
	var execute = true;
	return {
		err:function(step,f){
			var obj = document.getElementById(f);
			if(obj){
				if(step=='1'){obj.style.backgroundColor = '#ffabab';setTimeout("validate.err('2','"+f+"');", 50);}
				if(step=='2'){obj.style.backgroundColor = '#ffc5c5';setTimeout("validate.err('3','"+f+"');", 50);}
				if(step=='3'){obj.style.backgroundColor = '#ffdfdf';setTimeout("validate.err('4','"+f+"');", 50);}
				if(step=='4'){obj.style.backgroundColor = '#fef1f1';setTimeout("validate.err('5','"+f+"');", 50);}
				if(step=='5'){obj.style.backgroundColor = '#fff';}
			}
		},
		email:function(str){
			var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
			if(filter.test(str)){return true;}else{return false;}
		},
		empty:function(str){
			var filter = /^\s+$/;
			var expression;
			if(filter.test(str) || str==''){expression = false;}else{expression = true;}
			return expression;
		},
		onlynumbers:function(evt){
			var charCode = (evt.which) ? evt.which : event.keyCode;
			if(charCode > 31 && (charCode < 48 || charCode > 57)){return false;}else{return true;}
		},
		dummy:function(f){
			if(!validate.email(f.field1.value)){
				execute = false;
				validate.err('1',f.field1.id);
			}
			if(!validate.empty(f.field2.value)){
				execute = false;
				validate.err('1',f.field2.id);
			}
			return execute;
		}
	};
}();


/* Cookies
---------------------------------------------------------------- */

var cookies = function(){
	return {
		create:function(name,value,days){
			if(days){
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = name+"="+value+expires+"; path=/";
		},
		read:function(name){
			var nameEQ = name + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++){
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
			return null;
		},
		erase:function(name){
			cookies.create(name,"",-1);
		}
	};
}();

/* Images pagination / slideshow
---------------------------------------------------------------- */

// Global variables
var timer;
var move;
var step = 0;
var running = false;

function countItems(){

	var items = document.getElementsByTagName('A');
	var count = items.length;
	var all = 0;

	for(var t=0;t<count;t+=1){
		if(items[t].className=='itm_p'){
			all++;
		}
	}
	
	return all;

}

function resetItems(){

	var items = document.getElementsByTagName('A');
	var count = items.length;
	var all = 0;

	for(var t=0;t<count;t+=1){
		if(items[t].className=='itm_p' || items[t].className=='itm_p_sel'){
			items[t].className='itm_p';
		}
	}

}

function loadItems(){
	
	// Get number of items
	var all = countItems();
	
	// Set new container width
	if(document.getElementById('rel')){
		document.getElementById('rel').style.width = ((all * 210)) + 'px';
	}
	
	// Set forward arrow to (in)active?
	if(all>3){
		if (document.getElementById('btn_forward')){
		document.getElementById('btn_forward').className = 'forward';
		}
	}else{
		if (document.getElementById('btn_forward')){
		document.getElementById('btn_forward').className = 'forward_dis';
		}
	}
	
}

function loadPrev(){

	// Get number of items
	var all = countItems();
	
	if(all>3){
	
		var maxLeft;
		var maxLeftPx;
		var curLeft;
		var nextItem;
	
		// If there is more than 4 items, then find the max left position
		maxLeft = 0;
		maxLeftPx = 0;
		
		// Get current left position
		curLeft = parseInt(document.getElementById('rel').style.left);

		if(maxLeftPx==curLeft){
			document.getElementById('btn_back').className = 'back_dis';
		}else{
				
			if(!running){

				document.getElementById('btn_back').className = 'back';
				document.getElementById('btn_forward').className = 'forward';

				moveCase('back',(curLeft+210));
			
				// Have we reached the end?
				nextItem = (curLeft + 210);
				
				if(nextItem==maxLeftPx){
					document.getElementById('btn_back').className = 'back_dis';
				}
			}
		}	
	}
}

function loadNext(){

	// Get number of items
	var all = countItems();
	
	if(all>3){
	
		var maxLeft;
		var maxLeftPx;
		var curLeft;
		var nextItem;
	
		// If there is more than 4 items, then find the max left position
		maxLeft = all - 3;
		
		
		maxLeftPx = -(maxLeft * 210);
		
		
		// Get current left position
		curLeft = parseInt(document.getElementById('rel').style.left);
		
		if(maxLeftPx==curLeft){
			document.getElementById('btn_forward').className = 'forward_dis';
		}else{
			
			if(!running){

				document.getElementById('btn_back').className = 'back';
				document.getElementById('btn_forward').className = 'forward';

				moveCase('forward',(curLeft-210));
			
				// Have we reached the end?
				nextItem = (curLeft - 210);
				
				if(nextItem==maxLeftPx){
					document.getElementById('btn_forward').className = 'forward_dis';
				}

			}
			
		}	
	}
}

function moveCase(direction,moveto){
	
	if(direction=='back'){
		if(moveto || moveto=='0'){move = moveto;}
		var curLeft = parseInt(document.getElementById('rel').style.left);
		if(curLeft==move){
			clearTimeout(timer);
			step = 0;
			running = false;
		}else{
			step++;
			running = true;
			if(step>=0 && step<41){
				document.getElementById('rel').style.left = (curLeft + 5) + 'px';
				timer = setTimeout("moveCase('back')", 1);
			}else if(step>=41 && step<=50){
				document.getElementById('rel').style.left = (curLeft + 1) + 'px';
				timer = setTimeout("moveCase('back')", 1);
			}
		}
	}
	
	if(direction=='forward'){
		if(moveto){move = moveto;}
		var curLeft = parseInt(document.getElementById('rel').style.left);
		if(curLeft==move){
			clearTimeout(timer);
			step = 0;
			running = false;
		}else{
			step++;
			running = true;
			if(step>=0 && step<41){
				document.getElementById('rel').style.left = (curLeft - 5) + 'px';
				timer = setTimeout("moveCase('forward')", 1);
			}else if(step>=41 && step<=50){
				document.getElementById('rel').style.left = (curLeft - 1) + 'px';
				timer = setTimeout("moveCase('forward')", 1);
			}
		}
	}
	
}

function showCase(page){
	if(page){
		goToUrl('',page);
	}
}

function previewCase(f,command){
	var element = document.getElementById(f.id);

	if(command=='show'){
		if(element){
			element.className = 'itm_p_sel';
		}
	}
	if(command=='hide'){
		if(element){
			element.className = 'itm_p';
		}
	}
}

var CurrentNewsTip = '';
var NewsTipClose = false;

function toggleNewsHide(){
	if (NewsTipClose && CurrentNewsTip!='') {
		document.getElementById(CurrentNewsTip).style.display = 'none';
		CurrentNewsTip='';
	}
}
	
var toggleNews = function(){
	return {
		show:function(elem){
			if (CurrentNewsTip != elem && CurrentNewsTip!='') {
				document.getElementById(CurrentNewsTip).style.display = 'none'
			}
			var elm=document.getElementById(elem);
			CurrentNewsTip=elem;
			NewsTipClose=false;
			(elm.style.display == 'block') ? elm.style.display = 'none' : elm.style.display = 'block' ;
			},
		hide:function(elem){
			NewsTipClose=true;
			var _timer = setTimeout(toggleNewsHide, 2000);
			}	
		}
	}();

var toggleView = function(){
	return {
		show:function(img, elemt){
			
			var elmt= document.getElementById(elemt).getElementsByTagName('div');


			var imgSrc = document.getElementById(img).src;
			
			
			if (imgSrc.indexOf('list-view.gif')>-1){
			imgSrc = imgSrc.replace('list-view.gif','grid-view.gif');
			
			}
			else
			{
		
			imgSrc = imgSrc.replace('grid-view.gif','list-view.gif');
			}
			
			document.getElementById(img).src = imgSrc;
			
			
			
			for (var i = 0; i < elmt.length; i++){
				
				
				if (elmt[i].className=='grid-view' || elmt[i].className=='list-view' ){
					
				(elmt[i].style.display == 'block') ? elmt[i].style.display = 'none' : elmt[i].style.display = 'block' ;
				}
				}
			}
		
		}
	}();
	
	
	var toggleKategori = function(){
	return {
		show:function(img, elem, pubs){
			var elm= document.getElementById(elem);
			var imgSrc = document.getElementById(img).src;
			
			if (!pubs){
			if (imgSrc.indexOf('galleri-closed.gif')>-1){
			imgSrc = imgSrc.replace('galleri-closed.gif','galleri-open.gif');
			
			}
			else
			{
		
			imgSrc = imgSrc.replace('galleri-open.gif','galleri-closed.gif');
			}
			}
			if (pubs=='1'){
			if (imgSrc.indexOf('publications-arr-closed.gif')>-1){
			imgSrc = imgSrc.replace('publications-arr-closed.gif','publications-arr-open.gif');
			
			}
			else
			{
		
			imgSrc = imgSrc.replace('publications-arr-open.gif','publications-arr-closed.gif');
			}
			}
			
			document.getElementById(img).src = imgSrc;
			if (elm.style.display==''){
			elm.style.display = 'block';	
				};
			(elm.style.display == 'block') ? elm.style.display = 'none' : elm.style.display = 'block' ;
			}
		
		}
	}();


/* Window events
---------------------------------------------------------------- */

window.onresize = function(){
	darken.fixed();
}
