/*
 *		D2 - some common javascript functions - (C) 2000 Tuomas Salo
 *		
 *		[xyzzy]
 */


function check_date(date) {

  var m;
  var d;
  var y;


  var found;

  // pp.kk.vvvv[.]
  found = date.match(/^(\d+)\.(\d+)\.(\d+)\.?$/);
  if(found != null) {
    return check_date_2(found[1], found[2]-1,found[3]);
  }

  // kk/pp/vvvv
  found = date.match(/^(\d+)\/(\d+)\/(\d+)$/);
  if(found != null) {
    return check_date_2(found[2],found[1]-1,found[3]);
  }

  // Aug 15, 2000
  found = date.match(/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +(\d+), *(\d+)$/);
  if(found != null) {
    return check_date_2(found[2], found[1], found[3]);
  }

  return null;

}


function check_date_2(d,m,y) {
  var Months = new Array('Jan', 'Feb', 'Mar', 'Apr',
                         'May', 'Jun', 'Jul', 'Aug',
                         'Sep', 'Oct', 'Nov', 'Dec');

  var D = new Date;

  if(isNaN(m)) {
    D = new Date(Date.parse(m + " " + d + ", " + y));

    if(D==null) {
      return null;
    }
    if(Months[D.getMonth()] != m || D.getDate() != d || D.getYear() != y) {
      return null;
    }
    
  } else {
    D = new Date(y,m,d);
    if(D==null) {
      return null;
    }

    if(D.getMonth() != m || D.getDate() != d || (D.getYear() != y && D.getYear()+1900 != y)) {
      return null;
    }
  }
  var yy = D.getYear();
  if(yy<1900) {
    yy+=1900;
  }

  
  return D.getDate() + "." + (D.getMonth()+1) + "." + yy;
}


	// set_dd -- changes a dropdown field's selection.
  // calling: 
	// set_dd(form_object, dropdown_name, dropdown_value, dropdown_name, dropdown_value, ...)

	function set_dd() {
		
		var args = set_dd.arguments;
		
		var f = args[0]; // the form object
		 
		for(i=1;i<args.length;i+=2) {
			var dd = f.elements[args[i]];
			var val= unescape(args[i+1]);
		
			if(dd == null) {
				alert("Invalid set_dd call (" + args[i] + ")");
				return;
			}
		
			var j;
			for(j=0;j<dd.options.length;j++) {
				if(dd.options[j].value == val) {
					dd.selectedIndex=j;
					j=dd.options.length; // jump out
				}
			}
		}
	}


	function winstd(uri,winname) {
		return win(uri,winname,620,440,'resizable,scrollbars');
	}

	function win(uri,winname,wid,hei,moreparams) {

		if(moreparams && moreparams.length>0)
			moreparams += ',';
		
		var w;
		eval("w=top.SUBWINDOW"+winname);
		if(w != null) {
			if(w.closed==false) {
				w.close();
			}
		}
		
		w=window.open(uri,winname,moreparams+'width='+wid+',height='+hei);
		if (!w.opener) w.opener = self;
		eval("top.SUBWINDOW"+winname+"=w");
		w.focus();
		
		return false;
	}



	function open_image_window(uri,wid,hei) {
		var Wid=wid+16;
		var Hei=hei+16;
		if(window.showimgWindow!=null && window.showimgWindow.closed==false) {
			window.showimgWindow.close();
		}
//		var n = window.open('about:blank','showimg','resizable=yes,width='+Wid+',height='+Hei);
		var n = window.open('','showimg','resizable=yes,width='+Wid+',height='+Hei);
		window.showimgWindow = n;
		
		showimgWindow.document.open();
		showimgWindow.document.write('<html><head><title>-</title></head><body topmargin=0 leftmargin=0 bgcolor="#000000">'+
											'<div align="center"><center><table border=0 cellspacing=0 cellpadding=0 height=100%>'+
											'<tr height=100%><td valign="middle"><a href="javascript:window.close();">'+
											'<img src="'+uri+'" width='+wid+' height='+hei+' border=0></a></td></tr></table></center></div></body></html>');
		showimgWindow.document.close();
		
		showimgWindow.focus();
		
		return false;
	}

// Fokosoidaan ekan formin eka  näkyväelementti
function focusfirst() {
	var f = document.forms[0];
	if(f) {
		var elem;
		for(elem=0;elem<20;elem++) {
			if(f.elements[elem] != null && f.elements[elem].type != 'hidden') {
				f.elements[elem].focus();
				return;
			}
		}
	}
}

