function FGet(f,x,type)
{
	var Work;
	switch((Work=fYes(f,x))?Work.type:0)
	{
	case "text":return(Work.value);
	case "select-one":
		switch(type)
		{
		case 'elem':
			return(Work.options[Work.selectedIndex]);
		case 'value':
			return(Work.options[Work.selectedIndex].value);
		case 'text':
			return(Work.options[Work.selectedIndex].text);
		case 'index':
			return(Work.selectedIndex);
		}
	}
	return (0);
}

function form_clean(f)
{
	var i,j;
	for(i=0;i<f.length;i++)
	{
		e=f.elements[i];
		switch(e.type)
		{
		case "textarea":
		case "text":
			e.value='';
			break;
		case "select-one":
			if(!e.length)
				break;
			e.options[0].selected=1;
			break;
		}
	}
}

function is_number(sText)
{
	var ValidChars = "0123456789.,";
	var Char;

   	for(var i=0;i<sText.length;i++)
	{
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1)
			return false;
	}
	return true;
}

function is_dmy(sText)
{
	adate = sText.split('.');
	if(adate.length!=3)
		return false;
	for(i=0;i<3;i++)
	{
		adate[i]=parseInt(adate[i],10);
		if(isNaN(adate[i]) || adate[i]<=0)
			return false;
	}
	odate=new Date(adate[2],adate[1]-1,adate[0]);
	if(odate.getDate()!=adate[0] || odate.getMonth()!=(adate[1]-1) || odate.getFullYear()!=adate[2])
		return false;
	return true;
}

function intformat(n,m)
{
	var s=""+n;
	if(s.length>=m)
		return s;
	//add m-s.length '0'
	var r="";
	for(ii=0;ii<m-s.length;ii++)
		r+="0";
	r+=s;
	return r;
}

function offsetx(e)
{
	var x = e.offsetLeft;
	for(var i=e.offsetParent; i; i=i.offsetParent)
	x+=i.offsetLeft;
	return x;
}

function offsety(e)
{
	var y = e.offsetTop;
	for(var i=e.offsetParent; i; i=i.offsetParent)
	y+=i.offsetTop;
	return y;
}

function date_parse(sdate)
{
	var adate = sdate.split('.');
	if(adate.length!=3)
		return 1;
	for(var i=0;i<3;i++)
	{
		adate[i]=parseInt(adate[i],10);
		if(isNaN(adate[i]) || adate[i]<=0)
			return 2;
	}
	var odate=new Date(adate[2],adate[1]-1,adate[0]);
	if(odate.getDate()!=adate[0] || odate.getMonth()!=(adate[1]-1) || odate.getFullYear()!=adate[2])
		return 3;
	return odate;
}

/*************************/
var stormDialog=null;
var stormDialogForm=null;
var stormDialogField=null;
var stormDialogElem=null;

function storm_showModalDialog(url,param)
{
	if(stormDialog==null || stormDialog.closed)
	{
		stormDialog=window.open (url,'stormdialog',param);
		if(stormDialog==null)
		{
			alert('Cannot open dialog window');
			return;
		}
	}
	stormDialog.window.focus();
}
function dialog_param(parentelem,w,h)
{
	return "left="+(screen.availWidth-w)/2+",top="+(screen.availHeight-h)/2+",width="+w+", height="+h+", center=yes, help=no, resizable=yes, status=no";
}

function dialog_open(parentelem,ename,fname,href,w,h)
{
	stormDialogForm=fname;
	stormDialogField=ename;
	stormDialogElem=document.forms[fname].elements[ename];
	param=dialog_param(parentelem,w,h);
	storm_showModalDialog(href,param);
}

function db_select_hand(e)
{
	if(!e) e=window.event;
	db_select_exec(e.keyCode);
}

function db_select_exec(code)
{
	form=document.forms['db_select_form'];
	switch(code)
	{
	case 36: //Home
		if(form.next.selectedIndex)
		{
			form.next.selectedIndex=0;
			form.submit();
		}
		break;
	case 35: //End
		if(form.next.selectedIndex!=(form.next.options.length-1))
		{
			form.next.selectedIndex=form.next.options.length-1;
			form.submit();
		}
		break;
	case 33: //PgUp
		if(form.next.selectedIndex>0)
		{
			form.next.selectedIndex--;
			form.submit();
		}
		break;
	case 34: //PgDn
		if(form.next.selectedIndex<form.next.options.length)
		{
			form.next.selectedIndex++;
			form.submit();
		}
		break;
	case 38: //Up
		break;
	case 40: //Down
		break;
	case 27: //Esc
		break;
	case 13: //Enter
		break;
	case 113: //F2
		break;
	case 121: //F10
		break;
	}
}

var db_select_size=0,db_select_sizepage=0,db_select_elem=0,db_select_numbpage=0,db_select_elempage=0;
function db_select_init(size,sizepage,elempage)
{
	db_select_size=size;
	db_select_sizepage=sizepage;
	db_select_elem=0;
	db_select_numbpage=(size%sizepage) ? parseInt(size/sizepage)+1 :  parseInt(size/sizepage);
	db_select_elempage=elempage;
	document.body.onkeydown=db_select_hand;
}

function db_select(id,value)
{
	if(typeof(window.opener)=="undefined")
		return;
	var elem = window.opener.stormDialogElem;
	if(typeof(elem)!="undefined")
		elem.value=value;
	idname=elem.name.substr(4);
	if(typeof(elem.form.elements[idname])!="undefined")
		elem.form.elements[idname].value=id;
	else
		alert("ERROR");
	window.close();
}

function db_select_clean(type)
{
	if(type)
	{
		if(typeof(window.opener)=="undefined")
			return;
		var elem = window.opener.stormDialogElem;
		if(typeof(elem)!="undefined")
			elem.value='';
		idname=elem.name.substr(4);
		if(typeof(elem.form.elements[idname])!="undefined")
			elem.form.elements[idname].value=0;
		else
			alert("ERROR");
	}
	window.close();
}

var dialog_count_cols=0;
function dialog_sync()
{
	if(self.innerHeight)
	{
		h=self.innerHeight;
		document.getElementById('dbbody').style.height=h-document.getElementById('dbtool').offsetHeight-document.getElementById('dbkeys').offsetHeight-document.getElementById('dbfoot').offsetHeight-document.getElementById('dbhead').offsetHeight;
	}
	else
	{
		h=document.body.clientHeight;
		document.getElementById('dbbody').style.height=h-document.getElementById('dbtool').offsetHeight-document.getElementById('dbkeys').offsetHeight;
	}
	document.getElementById('dbhead').style.left = document.getElementById('dbbody').offsetLeft;
	document.getElementById('dbhead').style.top = document.getElementById('dbbody').offsetTop;
	document.getElementById('dbhead').style.width = document.getElementById('dbbody').offsetWidth-20;

	document.getElementById('dbfoot').style.left = document.getElementById('dbbody').offsetLeft;
	document.getElementById('dbfoot').style.top = document.getElementById('dbbody').offsetTop+document.getElementById('dbhead').offsetHeight;
	document.getElementById('dbfoot').style.width = document.getElementById('dbbody').offsetWidth-20;

//        document.getElementById('dbbody').style.paddingTop = document.getElementById('dbhead').offsetHeight+document.getElementById('dbfoot').offsetHeight-2;

	document.getElementById('dbkeys').style.top = h-document.getElementById('dbkeys').offsetHeight;

	if(!dialog_count_cols)
	{
		dialog_count_cols=30;
		for(j=0;j<30;j++)
			if(!document.getElementById('imghead'+j))
			{
				dialog_count_cols=j;
				break;
			}
	}
	for(j=0;j<dialog_count_cols;j++)
		document.getElementById('imghead'+j).width = document.getElementById('imgbody'+j).width = document.getElementById('imgfoot'+j).width = 1;
	for(j=0;j<dialog_count_cols;j++)
	{
		l=document.getElementById('tdbody'+j).offsetWidth;
		if(l < document.getElementById('tdhead'+j).offsetWidth)
			l=document.getElementById('tdhead'+j).offsetWidth;
		if(l < document.getElementById('tdfoot'+j).offsetWidth)
			l=document.getElementById('tdfoot'+j).offsetWidth;
		document.getElementById('imghead'+j).width = document.getElementById('imgbody'+j).width = document.getElementById('imgfoot'+j).width = l-2;
	}
//        window.onresize=dialog_sync;
}
