function lib_bwcheck(){ //Browsercheck
  this.ver=navigator.appVersion;
  this.agent=navigator.userAgent;
  this.dom=document.getElementById?1:0;
  this.opera5=this.agent.indexOf("Opera 5")>-1;
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.ie=this.ie4||this.ie5||this.ie6;
  this.mac=this.agent.indexOf("Mac")>-1;
  this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
  return this;
}
var bw=new lib_bwcheck();

var basetimeout = 5000;
var timeout = 5000;
var pos = 0;
var banner_arr;
var obj_id;
var wref;
function init_rotating_banners(id, arr) {
  banner_arr = arr;
  obj_id = id;
  var evnt = bw.dom ? document.getElementById(obj_id) : bw.ie4 ? document.all[obj_id] : bw.ns4 ? document.layers[obj_id] : 0;
  if(evnt) {
    var css  = bw.dom || bw.ie4 ? evnt.style : bw.ns4 ? evnt : 0;
    wref = bw.dom || bw.ie4 ? evnt : bw.ns4 ? css.document : 0;
  }
  pos = Math.floor(Math.random()*banner_arr.length); /* choose randomly among the banners */
  rotate_banners();
}

function rotate_banners() {
  var html = "<a href='"+banner_arr[pos][0]+"'><img src='"+banner_arr[pos][1]+"' alt='Banner' border='0' width='468' height='60'></a>";
  if(wref) {
    if (bw.ns4){
      wref.write(html);
      wref.close();
    }
    else
      wref.innerHTML = html;
  }

  if (typeof banner_arr[pos][2] != "undefined")
    timeout = basetimeout * banner_arr[pos][2];

  if (++pos == banner_arr.length) pos = 0;
  if (timeout>0) setTimeout("rotate_banners()", timeout);
}

function writeEmailAddress(user,domain,day,month) {
  var ret = '';

  // add user name:
  var user_chars = user.split(',');
  for (var i=0; i<user_chars.length; i++) ret += String.fromCharCode(user_chars[i]-day);

  // add @:
  ret += String.fromCharCode(256>>2);

  // add domain:
  var domain_chars = domain.split(',');
  for (var i=0; i<domain_chars.length; i++) ret += String.fromCharCode(domain_chars[i]-month);

  return ret;
}

function sendmail(user,domain,day,month) {
  return String.fromCharCode(109, 97, 105, 108, 116, 111, 58) + writeEmailAddress(user,domain,day,month); // mailto: + address
}

function show_status(txt,obj) {
  window.status = txt;
  if (typeof obj!='undefined') obj.title = txt;
}


function switch_style(id) {
  //var elem = document.getElementById('main_css');
  //if (elem && typeof elem != 'undefined') {
  //  elem.href = './design_'+id+'/storsalen.css';
  //}
  //elem = document.getElementById('ie_css');
  //if (elem && typeof elem != 'undefined') {
  //  elem.href = './design_'+id+'/storsalen_ie.css';
  //}

  var pos = 0;
  if ((pos = document.location.href.indexOf('style='))>0) {
    var pos2 = document.location.href.indexOf('&',pos+6);
    var href = document.location.href.substring(0,pos+6) + id;
    if (pos2>=pos) href += document.location.href.substring(pos2);
    document.location.href = href;
  }
  else {
    if ((pos = document.location.href.indexOf('?'))>0)
      document.location.href += '&style='+id;
    else
      document.location.href += '?style='+id;
  }
}


/*** search ***/

function toggle_adv(m)
{
  if (typeof m == 'undefined') m = -1;
  var opt = document.getElementById('adv_search_opt');
  var adv = document.getElementById('adv_search_show');
  var mode = document.getElementById('adv_search_opt_mode');
  var hlp_adv_label = document.getElementById('search_help_adv_label');
  var hlp_adv = document.getElementById('search_help_adv');

  if (m==1 || m==-1 && opt && opt.className == 'hidden') {
    if (adv) adv.childNodes[0].innerHTML = '> Skjul avanserte valg';
    if (opt) opt.className = 'visible';
    if (mode) mode.value = 1;
    if (hlp_adv_label) hlp_adv_label.className = 'hidden';
    if (hlp_adv) hlp_adv.className = 'visible';
  } else if (m==0 || m==-1 && opt && opt.className == 'visible') {
    if (adv) adv.childNodes[0].innerHTML = '> Vis avanserte valg';
    if (opt) opt.className = 'hidden';
    if (mode) mode.value = 0;
    if (hlp_adv_label) hlp_adv_label.className = 'visible';
    if (hlp_adv) hlp_adv.className = 'hidden';
  }
}

function validate_search()
{
  //FIX
  return false;
}

function suggest(word)
{
  //FIX: update query form field and submit
  var url = document.location.href;
  url = url.replace(/query=([^&]*)/g, 'query='+word); //FIX:?? ascii2hex(word)
  document.location.href = url;
}

function search_set_tag(tag_id)
{
  var tag = document.getElementById('tag_'+tag_id);
  if (tag) {
    /* disselect all */
    var all_tags = document.getElementsByTagName('INPUT');
    for (var i=0; i<all_tags.length; i++) {
      if (all_tags[i].id && all_tags[i].id!='tag_'+tag_id && all_tags[i].id.indexOf('tag_')==0) {
	//all_tags[i].checked = false;
	search_toggle_tag(all_tags[i].id.substring(4),true,false);
      }
    }

    /* select one */
    search_toggle_tag(tag_id,true,true);

    /* submit */
    document.search.submit();
  }
}

function search_toggle_tag(tag_id,set_tag,force_val)
{
  var tag = document.getElementById('tag_'+tag_id);
  var box_tag = document.getElementById('box_tag_'+tag_id);
  if (tag && set_tag) {
    /* select one */
    tag.checked = typeof force_val != 'undefined' ? force_val : !tag.checked;
  }
  if (box_tag) {
    var base_class = box_tag.className.substring(0,box_tag.className.indexOf('_')+1);
    box_tag.className = base_class + (tag.checked ? 'checked' : 'unchecked');
  }
}

function goto_page(page)
{
  //FIX: use hidden form field instead (OBS: remember to reset to 1 when submitting a new query)
  if (page>0) {
    var url = document.location.href;
    if (url.indexOf('page=')>0) {
      url = url.replace(/page=([0-9]*)/g, 'page='+page);
    } else {
      url += '&page='+page;
    }
    document.location.href = url;
  }
}

var search_navbar_curr_group = -1;
function goto_page_group(group, curr_page, num_in_group)
{
  if (search_navbar_curr_group<0)
    search_navbar_curr_group = Math.floor(curr_page / num_in_group);
  var gr = document.getElementById('nav_bar_gr_'+group);
  var pages = document.getElementById('nav_bar_gr_pages_'+group);

  /* explode new group */
  if (gr && pages) {
    gr.className = 'hidden';
    pages.className = 'visible_inline';
  }

  /* implode old group */
  gr = document.getElementById('nav_bar_gr_'+search_navbar_curr_group);
  pages = document.getElementById('nav_bar_gr_pages_'+search_navbar_curr_group);
  if (gr && pages) {
    gr.className = 'visible_inline';
    pages.className = 'hidden';
  }

  search_navbar_curr_group = group;
}

function ascii2hex(url)
{
  var hex = '';
  for (i=0; i<url.length; i++)
    hex += '%' + url.charCodeAt(i).toString(16);
  return hex;
}
