/* Toogle text in search field functions
---------------------------------------------------------------- */

function focusField(f,txt){

	// Declare variable
	var field = document.getElementById(f.id);
	
	// Clean field, markup if text is not the same as original
	if(field.value==txt){
		field.value = '';
	}else{
		field.select();
	}

}

function blurField(f,txt){

	// Declare variable
	var field = document.getElementById(f.id);
	
	// Restore field if not text is original
	if(field.value==''){
		field.value = txt;
	}

}

/* Link function
---------------------------------------------------------------- */

function goToUrl(popup,url){

	// If popup is true, then open in popup, else open normal
	if(url){
		if(popup){
			window.open(url);
		}else{
			location.href = url;
		}
	}

}

/* Show / hide drop down
---------------------------------------------------------------- */

function showDrop(f){
	if(document.getElementById(f)){
		document.getElementById(f).style.display = 'block';
	}
}

function hideDrop(f){
	if(f=='drop_box'){
		if(document.getElementById('drop_box')){
			setTimeout("document.getElementById('drop_box').style.display = 'none'", 200);
		}
	}
	if(f=='depart_box'){
		if(document.getElementById('depart_box')){
			setTimeout("document.getElementById('depart_box').style.display = 'none'", 200);
		}
	}
	if(f=='down_box_1'){
		if(document.getElementById('down_box_1')){
			setTimeout("document.getElementById('down_box_1').style.display = 'none'", 200);
		}
	}
	if(f=='down_box_2'){
		if(document.getElementById('down_box_2')){
			setTimeout("document.getElementById('down_box_2').style.display = 'none'", 200);
		}
	}	
}

function setDrop(f,parse){

	var department = document.getElementById('department');
	var department_hid = document.getElementById('department_hid');
	
	if(f && parse){
		department.value = f;
		department_hid.value = parse;
	}

}

/* Tab box
---------------------------------------------------------------- */

function setTab(f){
	
	// Reset all tabs
	for(var i=1;i<=10;i++){
		if(document.getElementById('tab_box_'+i+'_li') && document.getElementById('tab_box_'+i+'_ext')){
			document.getElementById('tab_box_'+i+'_li').className='';
			document.getElementById('tab_box_'+i+'_ext').style.display='none';
		}else{
			break;
		}
	}
	
	// Set current to selected, show text box
	if(document.getElementById(f.id+'_li') && document.getElementById(f.id+'_ext')){
		document.getElementById(f.id+'_li').className = 'selected';
		document.getElementById(f.id+'_ext').style.display = 'block';
	}
	
	// Blur current
	document.getElementById(f.id).blur();
	
}


/* History pagination
---------------------------------------------------------------- */

// Global variables
var timer;
var move;
var step = 0;
var running = false;
var itemWidth = 65;
var itemMargin = 0;
var visibleItems = 8;

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' || items[t].className=='itm_p_sel'){
			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 * itemWidth) + itemMargin) + 'px';
	}
	
	// Set forward arrow to (in)active?
	if(all>visibleItems){
		document.getElementById('btn_forward').className = 'forward';
	}else{
		document.getElementById('btn_forward').className = 'forward_dis';
	}
	
}

function loadPrev(){

	// Get number of items
	var all = countItems();
	
	if(all>visibleItems){
	
		var maxLeft;
		var maxLeftPx;
		var curLeft;
		var nextItem;
	
		// If there is more than X 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';

				moveSmooth('back',(curLeft+itemWidth));
			
				// Have we reached the end?
				nextItem = (curLeft + itemWidth);
				
				if(nextItem==maxLeftPx){
					document.getElementById('btn_back').className = 'back_dis';
				}
			}
		}	
	}
}

function loadNext(){

	// Get number of items
	var all = countItems();
	
	if(all>visibleItems){
	
		var maxLeft;
		var maxLeftPx;
		var curLeft;
		var nextItem;
	
		// If there is more than X items, then find the max left position
		maxLeft = all - visibleItems;
		maxLeftPx = -(maxLeft * itemWidth);
		
		// 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';

				moveSmooth('forward',(curLeft-itemWidth));
			
				// Have we reached the end?
				nextItem = (curLeft - itemWidth);
				
				if(nextItem==maxLeftPx){
					document.getElementById('btn_forward').className = 'forward_dis';
				}

			}
			
		}	
	}
}

function moveSmooth(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<40){
				document.getElementById('rel').style.left = (curLeft + 5) + 'px';
				timer = setTimeout("moveSmooth('back')", 10);
			}else if(step>=40 && step<=65){
				document.getElementById('rel').style.left = (curLeft + 1) + 'px';
				timer = setTimeout("moveSmooth('back')", 30);
			}
		}
	}
	
	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<40){
				document.getElementById('rel').style.left = (curLeft - 5) + 'px';
				timer = setTimeout("moveSmooth('forward')", 10);
			}else if(step>=40 && step<=65){
				document.getElementById('rel').style.left = (curLeft - 1) + 'px';
				timer = setTimeout("moveSmooth('forward')", 30);
			}
		}
	}
	
}

function showDetails(f,page){
	// Reset all
	resetItems();
	
	// Set item to selected
	if(f){
		if(f.id){
			document.getElementById(f.id).className='itm_p_sel';
			document.getElementById(f.id).blur();
		}else{
			document.getElementById(f).className='itm_p_sel';
		}
	}
	// Load page
	if(page){
		ajaxpage(page,'czone');
	}
	
}

function getKeyCode(evt){
	evt = (evt) ? evt : ((event) ? event : null);
	
	var evver = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null );
	var keynumber = evt.keyCode;
	
	if(keynumber){
		return keynumber;
	}
}

// Get document events
document.onkeyup = function(event){

	// Get character code
	var charCode = getKeyCode(event);
	var prevBtn = document.getElementById('btn_back');
	var nextBtn = document.getElementById('btn_back');

	switch(charCode){
		
		// Forward arrows
		case 39: // Arrow -> Forward
			if(nextBtn){
				loadNext();
			}
			break;
		case 102: // Arrow -> Forward - Numbers
			if(nextBtn){
				loadNext();
			}
			break;
		// Backward arrows
		case 37: // Arrow -> Back
			if(prevBtn){
				loadPrev();
			}
			break;
		case 100: // Arrow -> Back - Numbers
			if(prevBtn){
				loadPrev();
			}
			break;
		
	}
	
}
// old, from dirf (clb):

function checkEmail(parEmail){
	var str = parEmail;
	var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;

	// Check if the e-mail is valid
	if(filter.test(str)){
		// Valid
		return true;
	} else {
		// Invalid
		return false;
	}
} // checkEmail

function $(element) {
	if (arguments.length > 1) {
		for (var i = 0, elements = [], length = arguments.length; i < length; i++) elements.push($(arguments[i]));
		return elements;
	}
	if (typeof element == 'string') element = document.getElementById(element);
	return element;
} // $


function validateForm(f,jsn){
// onclick="return validateForm(this);"
//var f = document.forms[0];
//alert('hello: '+jsn);
//alert('hello: '+$('pname_'+jsn).id);

//return false;
	var execute = true;

	// Reset fields
	$('pname_'+jsn).style.border = '1px solid #d3d3d3';
	$('address_'+jsn).style.border = '1px solid #d3d3d3';
	$('zip_'+jsn).style.border = '1px solid #d3d3d3';
	$('city_'+jsn).style.border = '1px solid #d3d3d3';
	$('country_'+jsn).style.border = '1px solid #d3d3d3';
	$('email_'+jsn).style.border = '1px solid #d3d3d3';
	
	$('pname_'+jsn+'_error').style.display = 'none';
	$('address_'+jsn+'_error').style.display = 'none';
	$('zip_'+jsn+'_error').style.display = 'none';
	$('city_'+jsn+'_error').style.display = 'none';
	$('country_'+jsn+'_error').style.display = 'none';
	$('email_'+jsn+'_error').style.display = 'none';
	
	// Validate fields
	if(!checkEmail($('email_'+jsn).value)){
		$('email_'+jsn).style.border = '1px solid red';
		$('email_'+jsn).focus();
		$('email_'+jsn+'_error').style.display = 'block';
		$('email_'+jsn+'_error').style.color = 'red';
		execute = false;
	}
	if($('country_'+jsn).value==''){
		$('country_'+jsn).style.border = '1px solid red';
		$('country_'+jsn).focus();
		$('country_'+jsn+'_error').style.display = 'block';
		$('country_'+jsn+'_error').style.color = 'red';
		execute = false;
	}
	if($('city_'+jsn).value==''){
		$('city_'+jsn).style.border = '1px solid red';
		$('city_'+jsn).focus();
		$('city_'+jsn+'_error').style.display = 'block';
		$('city_'+jsn+'_error').style.color = 'red';
		execute = false;
	}
	if($('zip_'+jsn).value==''){
		$('zip_'+jsn).style.border = '1px solid red';
		$('zip_'+jsn).focus();
		$('zip_'+jsn+'_error').style.display = 'block';
		$('zip_'+jsn+'_error').style.color = 'red';
		execute = false;
	}
	if($('address_'+jsn).value==''){
		$('address_'+jsn).style.border = '1px solid red';
		$('address_'+jsn).focus();
		$('address_'+jsn+'_error').style.display = 'block';
		$('address_'+jsn+'_error').style.color = 'red';
		execute = false;
	}
	if($('pname_'+jsn).value==''){
		$('pname_'+jsn).style.border = '1px solid red';
		$('pname_'+jsn).focus();
		$('pname_'+jsn+'_error').style.display = 'block';
		$('pname_'+jsn+'_error').style.color = 'red';
		execute = false;
	}

	return execute;

}


/* Countries switcher
---------------------------------------------------------------- */

function switchMap(f){
	var element = document.getElementById('countries');
	if(f){
		if(f=='norway'){element.className = 'bg_norway';}
		if(f=='sweden'){element.className = 'bg_sweden';}
		if(f=='denmark'){element.className = 'bg_denmark';}
		if(f=='finland'){element.className = 'bg_finland';}
	}
}
function restoreMap(){
	var element = document.getElementById('countries');
	element.className = 'bg_default';
}
function showCountry(country){

if (document.getElementById("countrybox")){
var container = document.getElementById("countrybox");
if (container.getElementsByTagName('div')){
var elems = container.getElementsByTagName('div');

for (i = 0; i < elems.length; i++) {
if (elems[i].className == 'lang'){
elems[i].style.display = 'none';
}
document.getElementById(country).style.display = 'block';
}

}
}
}