/*
'****************************************
'** Copyright (C)2000-2002 SoftGate AB **
'** Name:   lib_shared.js              **
'** Ver.:   v2.0 (2002-03-07)          **
'** Descr.: shared functions           **
'****************************************
*/

navigator.isNS = document.layers?true:false;
navigator.isIE = document.all?true:false;

//--- Navigation ---

function LoadPage(page, target) {
	if(target) {
		if( target == "_top") window.top.location.href = page;
		else if(navigator.isIE)	window.parent.frames(target).location.href = page;
		else window.parent.frames[target].location.href = page;
	}
	else {
		document.location.href = page;
	}	
}

function OpenWindow(url, toolbar, resize) {
	if(toolbar) t = 1; else t = 0;
	if(resize)  r = 1; else r = 0;
	win = window.open(
		url,
		"newWin",
		"toolbar=" + t +",location=" + t +",directories=" + t +",menuBar=" + t +",scrollbars=" + r +",resizable=" + r +",status=" + t
	);
	win.focus();
}

function OpenWindowExt(url, w, h, name, toolbar, resize) {
	if(toolbar) t = 1; else t = 0;
	if(resize)  r = 1; else r = 0;

	parameters = "toolbar=" + t +",location=" + t +",directories=" + t +",menuBar=" + t +",scrollbars=" + r +",resizable=" + r +",status=" + t;
	if(w!=0 || h!=0) parameters = parameters + ",width=" + w + ",height=" + h;

	win = window.open(url, name, parameters);
	win.focus();
}

//--- Query string ---

function MakeQueryID() {
	var d = new Date();
	return "qid=" + (d.getHours() * 360000 + d.getMinutes() * 6000 + d.getSeconds() * 100 + Math.round(Math.random()*100));
}

function BuildQueryString(base, key, value) {
	return ((base == null || base.length) == 0 ? "" : (base + "&")) + escape(key) + "=" + escape(value);
}

function SendQuery(query, page, target) {
	if( query && query.length > 0 ) page += "?" + query;
	LoadPage(page, target);
}

//--- Form ---

function SendForm(name, page, target) {
	var frm = document.forms[name];
 	var tmpTarget = frm.target;
	var tmpAction = frm.action;
	frm.target = target;
	frm.action = page;
	frm.submit();	
	frm.target = tmpTarget;
	frm.action = tmpAction;	
}

function ResetForm(name) {
	var frm = document.forms[name];
	frm.reset();	
}

//--- Layer ---

function LayerVisible(layer, show) {
    if(layer.style) layer = layer.style;
	layer.visibility = navigator.isIE?(show?"visible":"hidden"):(show?"show":"hide");
}

function IsLayerVisible(layer) {
	return navigator.isIE?layer.style.visibility!="hidden":layer.visibility!="hide";
}

function FindLayer(name) {
	return navigator.isIE?document.all(name):document.layers[name];
}

function MoveLayer(layer, x, y) {
    if(layer.style) layer = layer.style;
	layer.left = x;
	layer.top = y;
}	

//--- Function ---

function ExecuteFunction(fnc, arg, target) {
	if( target == null ) target = "";
	if( arg.indexOf("=") == -1 ) {
		SendForm( arg, "lib/fnc_" + fnc + ".asp", target);
	}
	else {
		SendQuery(arg, "lib/fnc_" + fnc + ".asp", target);
	}
}

//--- Style ---

function LoadStyle(base) {
	document.write("<LINK rel=\"stylesheet\" type=\"text/css\" href=\"" + base + (navigator.isNS?"_ns":"_ie") + ".css\">");
}

//--- Object ---

function FindObject(name, base)
{	
  var i,obj;
  if(!base) base=document;
  if(!(obj=base[name])&&base.all) obj=base.all[name];
  for(i=0;!obj&&i<base.forms.length;i++) obj=base.forms[i][name];
  for(i=0;!obj&&base.layers&&i<base.layers.length;i++) obj=FindObject(name,base.layers[i].document);
  return obj;
}

function sgFindObject(name, base)
{	
	return FindObject(name, base);
}


//--- Utility ---

function Random(low, high) { return parseInt((high - low + 1) * Math.random() + low);}

var _HexNumbers = "0123456789ABCDEF";
function Hex(v, n) { var s=""; do {s = _HexNumbers.charAt(v % 16) + s; v = Math.floor(v / 16);} while(s.length < n); return s;}

//--- Debug ---

function Trace(txt) {
	var d = new Date();
	var h = d.getHours().toString(), m = d.getMinutes().toString(), s = d.getSeconds().toString();
	txt = "<b><font color=blue>" + (h.length<2?"0":"") + h + ":" + (m.length<2?"0":"") + m + ":" + (s.length<2?"0":"") + s + "&nbsp;>></font></b> " + txt;
	win = window.open("", "Trace", "toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=1,status=0,width=500,height=200");
//	win.focus();
	win.document.writeln("<PRE>" + txt + "<PRE>");
}

//--- DreamWeaver ---

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

