
function getElement(id) { 
  return document.getElementById ? document.getElementById(id) : document.all ? document.all(id) : null; 
} 

function getRealLeft(id) { 
  var el = getElement(id); 
  if (el) { 
    xPos = el.offsetLeft; 
    tempEl = el.offsetParent; 
    while (tempEl != null) { 
      xPos += tempEl.offsetLeft; 
      tempEl = tempEl.offsetParent; 
    } 
    return xPos; 
  } 
} 

function getRealTop(id) { 
  var el = getElement(id); 
  if (el) { 
    yPos = el.offsetTop; 
    tempEl = el.offsetParent; 
    while (tempEl != null) { 
      yPos += tempEl.offsetTop; 
      tempEl = tempEl.offsetParent; 
    } 
  return yPos; 
  } 
} 

function getPosition(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return {x:curleft,y:curtop};
}

function show_props(obj, objName) {   
  var result = ""   
  for (var i in obj) {      
    result += objName + "." + i + " = " + obj[i] + "<br>"+chr(13)   }   
  return result
}

function dkstring( s ) {
  s = repl( s, '&uuml;',  252 );  // ü
  s = repl( s, '&Aring;',  197 );  // AA
  s = repl( s, '&AElig;',  198 );  // AE
  s = repl( s, '&Oslash;', 216 ); // OE
  s = repl( s, '&aring;',  229  ); // aa
  s = repl( s, '&aelig;',  230 ); // ae
  s = repl( s, '&oslash;', 248 ); // oe
  
  s = repl( s, '&#197;', 197 );
  s = repl( s, '&#198;', 198 );
  s = repl( s, '&#216;', 216 );
  s = repl( s, '&#229;', 229 );
  s = repl( s, '&#230;', 230 );
  s = repl( s, '&#248;', 248 );
  s = repl( s, '&nbsp;', 32 );
  return s;
}

function repl( str, sch, newval ) {
  var t = '';
  var x = str.indexOf( sch ); 
  while( x != -1) {
    t  = str.substring( 0, x);
    t += String.fromCharCode( newval );
    t += str.substring( x + sch.length );
    str = t;
    x = str.indexOf( sch ); 
  }
  return str; 
}

function asint( value ) {
  if (!value) return 0;
  if (value == '') return 0;
  value = value.toString();
  if (isposint(value)) {
    if (value.charAt( 0 ) == '0') {
      do
        value = value.substring( 1, value.length );
      while ( value.charAt( 0 ) == '0');
    }
    if (value == '') return 0;
    return parseInt( value, 10 );
  }
  return 0;
}

//---------- default liste 

function deflist() {
  var res = new Array();
  res.add = deflist_add;
  return res;
}

function deflist_add( item ) {
  this[this.length] = item;
}

function validdate(value,danish){
  var err=0
  var psj=0;
  a = value.replace(/\//gi, "-")
  value=a
  
  // skal vaere 2 bindestreger
  
  
  pos1 = value.indexOf( '-' );
  if (pos1 == -1) return false;
  pos2 = value.indexOf( '-', pos1+1 );
  if (pos2 == -1) return false;
  
  if (!danish) {
    b = a.substring(0, pos1)// month
    dag = a.substring(pos1+1, pos2)// day
  } else {
    dag = a.substring(0, pos1)// day
    b = a.substring(pos1+1, pos2)// month
  }  
    
  f = a.substring(pos2+1, 255)// year


    if (isNaN(b) || isNaN(dag) || isNaN(f)) {
      err=1
    }
  

  //basic error checking
  if (b<1 || b>12) err = 1
  if (dag<1 || dag>31) err = 1
  if (f>99 && f<1950) err = 1
  if (f<100) f = parseFloat(f)+2000;
  
  //advanced error checking

  // months with 30 days
  if (b==4 || b==6 || b==9 || b==11){
    if (dag==31) err=1
  }

  // february, leap year
  if (b==2){
    // feb
    var g=parseInt(f/4)
    if (isNaN(g)) {
      err=1
    }

    if (dag>29) err=1
    if (dag==29 && ((f/4)!=parseInt(f/4))) err=1
  }

  if (err==1)
    return false
  else
   return true;
}

function extractword( value, no,delim ) {
  value = value.toString();
  first = -1;
  if (!delim) 
    delimiter = ','
  else
    delimiter = delim;
    
  if (no > 0) {
    for (var i = 0; i < no; i++ ) 
      first = value.indexOf( delimiter, first+1 );
    if (first == -1) return '';
  }
  tmp = value.substring( first+1 );  
  first = tmp.indexOf( delimiter);
  if (first != -1) 
    tmp = tmp.substring( 0,first );
//  alert(tmp);  
  return tmp;
}

function asdate(adate,format) {
  var y = adate.getFullYear();
  var m = adate.getMonth() + 1;
  var d = adate.getDate();
  if (!format) 
    return d + '/' + m + '-' + y;

  var res = '';  
  for (var i = 0; i < format.length; i++) {
    cur = ""
    switch (format.substring(i,i+1)) {
      case "d" : cur = d.toString();
                       break;
      case "D" : cur = d.toString().padleft('0',2);
                       break;
      case "m" : cur = m.toString();
                       break;
      case "M" : cur = m.toString().padleft('0',2);
                       break;
      case "y" : cur = y.toString().substring(2,4);
                       break;
      case "Y" : cur = y.toString();
                       break;
      default  : cur = format.substring(i,i+1)
    }
    if (cur != '') res += cur
  }
  return res;
}

function expand_date( value ) {
  if (value == '') return '';
  
  var datework = new Date();
  value = value.replace(/\//gi, "-")
  value = value.replace(/ /gi,"")
  if(value.indexOf('-') == -1) {
    if(value.length < 3) {
      value += '-'+(datework.getMonth()+1)+'-'+datework.getFullYear();
    } else {
      if(value.length < 5) {
        var t = value;
        value = t.substring(0,2) + '-' + t.substring(2,4) + '-' + datework.getFullYear();
      } else {
        // Skrevet fuldt ud uden - 
        var t = value;
        value = t.substring(0,2) + '-' + t.substring(2,4) + '-' + t.substring(4,10);
      }
    } 
  }
  
  var list = value.split('-');
  var y = asint(list[list.length-1]);
  if (y > 50 && y < 100 ) y += 1900
  if (y < 51) y += 2000  
  list[list.length-1] = y;
  value = list.join('-');
  return value;
}

var newwin_error = null
var newwin_stderror = null
function setnewwin_error(val) {
  newwin_error = val;
}

function newwin(url,left,top,width,height,params,name,resizeable) {
  if (screen) {
    left = (screen.width/2)-(width/2+10)
    top  = (screen.height/2)-(height/2+20)
  }
	if (!resizeable) var resizeable = "yes"
  if (!params) 
    var params = ''
  else
    params = ',' + params;
  if (!name) var name = "_blank"  
  
  var cError = 1
  try {
    res = window.open(url,name,'toolbar=no,resizable='+resizeable+',width='+ width +',height='+ height +',left='+left+',top='+top+',scrollbars=yes'+params);
    res.focus();
  } catch(cError) {
    if (cError != 1) {
      if (newwin_error != null) 
        eval(newwin_error)
      else
        if (newwin_stderror!=null) alert(newwin_stderror);
    }
  }
  newwin_error = null
}

function trim(s) {   
  s = repl(s, String.fromCharCode(160), 32);
  while (s.length > 0 && s.charAt(0) == ' ')
    s = s.substring(1);
  while (s.length > 0 && s.charAt(s.length-1) == ' ')
    s = s.substring(0, s.length-2);
  return s;  
}

function paramtext(s, list) {   
  var result = s
  var i = 1
  for (var i = 0; i <= list.length-1;i++) {
    result = result.replace(new RegExp('%' + (i+1) + '%',"gi"), list[i]);
  }
  return dkstring(result)
}

function ifthen( bool, truestr, falsestr) {
  if (bool) return truestr;
  return falsestr;
}


function writespan(name, text) {
  try {
    var ele = getElement(name)
    ele.innerHTML = text;
  }
  catch (e) {
    alert( 'HTML element : ' + Name + ' not found');
  }
}

function inurl( text ) {
  if (window.location.href.toLowerCase().indexOf(text.toLowerCase()) == -1)
    return false
  else
    return true;  
}

function isposint( val ) {
  if (!val) return false;
  val = val.toString();
  for (var i = 0; i < val.length; i++) {
    var ch = val.charAt( i );
  if (ch < "0" || ch > "9" ) {
    return false;
  }  
  }
  return true;
}

function str2date( value,danish ) {
  a=value.replace(/\//gi,'-');
  value=a
  pos1 = value.indexOf( '-' );
  if (pos1 == -1) return false;
  pos2 = value.indexOf( '-', pos1+1 );
  if (pos2 == -1) return false;
  
  if (!danish) {
    b = a.substring(0, pos1)// month
    dag = a.substring(pos1+1, pos2)// day
  } else {
    dag = a.substring(0, pos1)// day
    b = a.substring(pos1+1, pos2)// month
  }  
    
  f = asint(a.substring(pos2+1, 255))// year
  
  if (f > 50 && f < 100 ) f += 1900
  if (f < 51) f += 2000
  
  return new Date( f, b-1, dag );
}

function error( msg, field ) {
  alert (dkstring( msg ));                                 
  if (field) { 
    field.focus();
    field.select();
  }
  return false;
}

/* 23-1-2003 */
function togglelayer( name ) {
 var cur = eval(name);
 if (cur.style.display == 'none')
   cur.style.display = 'block'
 else
   cur.style.display = 'none';
}

function isfloat(str) {
  if (str == '') return false;
  var valid = "0123456789,."
  var ok = true;
  var temp;
  var count = 0;
  for (var i=0; i<str.length; i++) {
    temp = "" + str.substring(i, i+1);
    if (valid.indexOf(temp) == "-1") ok = false;
    if (temp == '.' || temp == ',') count++;
  }
  if (count > 1) ok = false;
  
  return ok;
}

function isundefined(cur) {
  return (typeof(cur)=="undefined")
}


function addday( d ) {
  if (d > 0) {
    for (var i = 0; i < d; i++) this.setDate(this.getDate() + 1);
  } else {
    for (var i = 0; i > d; i--) this.setDate(this.getDate() - 1);
  }
}

Date.prototype.addday = addday;

function justerdato(field, nodays) {
  var form = document.forms['searchform'];
  var fld = eval( 'form.' + field );
  fld.value = expand_date(fld.value);
  if (!validdate(fld.value, true)) {
    error('ugyldig dato')
  } else {
    var d = str2date(fld.value,true);
    d.addday(nodays);
    fld.value = asdate(d,'d-m-Y');
  }
}


function gettime_milliseconds() {
  var d = new Date();
  var h, m, s, ms
  h  = d.getHours();
  m  = d.getMinutes();
  s  = d.getSeconds();
  ms = d.getUTCMilliseconds();
  return h * 1000 * 60 * 60 +
         m * 1000 * 60 +
         s * 1000 +
         ms
}

function toggle_layer( ele ) {
  var e = getElement(ele);
	if (e.style.display == 'block' || e.style.display == '')
	  e.style.display = 'none'
	else
	  e.style.display = 'block';
		
}

function hideElement(ele) {
  var e = getElement(ele);
  if (e) {
    e.style.display = 'none';
  }
}

function showElement(ele) {
  var e = getElement(ele);
  if (e) {
    e.style.display = 'block';
  }
}

function elementDisplayStyle(ele, displayStyle) {
  var e = getElement(ele);
  if (e) {
    e.style.display = displayStyle;
  }
}

function isUndefined(cur) {
  return (typeof(cur)=="undefined")
}

function viskalender(field) {
  var form = document.forms['searchform'];
  var f = form[field];
  if (validdate( f.value, true )) {
    var work = f.value;
    var y = extractword( work,2,'-');
    if (asint(y)<100) y = 2000 + asint(y);
    var m = extractword( work,1,'-');
    var idag = new Date(y,m-1,1);
  } else
    var idag = new Date();
  kalenderurl = "kalender.asp?field=" + field + '&reqmonth=' + (idag.getMonth()+1)+ '&reqyear=' + idag.getFullYear() + '&highlight=6';
  newwin(kalenderurl,100,100,300,250, 'toolbar=no,location=no,directories=no,status=0,menubar=no,scrollbars=no,resizable=1', 'sima_kalender')
}

function gourl(aurl) {
  location.href = aurl;
}

function expandtext(textid, refid1, refid2) {
  var textObj = getElement(textid);
  var ref1Obj = getElement(refid1);
  var ref2Obj = getElement(refid2);  
  ref1Obj.style.display = "none";
  ref2Obj.style.display = "block";
  textObj.style.height = "auto";
}

function collapsetext(textid, refid1, refid2, maxheight) {
  var textObj = getElement(textid);
  var ref1Obj = getElement(refid1);
  var ref2Obj = getElement(refid2);
  ref1Obj.style.display = "block";
  ref2Obj.style.display = "none";
  var height = textObj.scrollHeight<maxheight?textObj.scrollHeight:maxheight;
  textObj.style.height = height+"px";
}

function collapsetext2(textid, refid1, refid2) {
  if(isArray(refid1)) {
    for(var i in refid1) showElement(refid1[i]);
  } else {
    showElement(refid1);
  }
  if(isArray(refid2)) {
    for(var i in refid2) hideElement(refid2[i]);
  } else {
    hideElement(refid2);
  }
  hideElement(textid);
}

function expandtext2(textid, refid1, refid2, d, track) {
  if(typeof(pageTracker)!='undefined' && track) pageTracker._trackPageview('/more'+location.pathname+unescape(location.search));
  if(isArray(refid1)) {
    for(var i in refid1) hideElement(refid1[i]);
  } else {
    hideElement(refid1);
  }
  if(isArray(refid2)) {
    for(var i in refid2) showElement(refid2[i]);
  } else {
    showElement(refid2);
  }
  showElement(textid);
}

String.prototype.padleft = function(padchar, newlength) {
  var r = this.toString();
  while (r.length < newlength) r = padchar + r;
  return r;
}

function isArray(obj) {
   return (obj.constructor.toString().indexOf("Array") != -1);
}

function externalLinks() { 
 if (!document.getElementsByTagName) return; 
 var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       anchor.getAttribute("rel") == "external") 
     anchor.target = "_blank"; 
 } 
}
