// copyright 2000-2005, eSolutions	Ltd., email: info@esol-group.com
/*
function getTokenValue(s,t1,t2){
var pos=s.indexOf(t1)
if(pos!=-1){
    s=s.substr(pos+t1.length)
    return s.substr(0,s.indexOf(t2))
  }else{
    return ''
  }
}
*/

function wndPopup(url,w,h,pos,props){
	var left=0,top=0
	if(pos=='center'){left=(screen.width)?(screen.width-w)/2:100; top=(screen.height)?(screen.height-h)/2:100;}
	props='width='+w+',height='+h+',top='+top+',left='+left+(props==''?'':','+props)
	window.open(url,'',props)
}
function sFormat(s,l){ // format string s, l=max length
  return s.length>l ? s.substr(0,l-3)+'...' : s
}

/*******************************************************************
  xTD - single click table sort xbtn
*******************************************************************/
function xTD(self,fm,x,gfx){
	this.sortValue=function(){
		switch (fm.replace(/[0-9]/g,'')){
			case 'fmCmDBX': return fmCmDBX.dbxSort.value
		}
	}
	this.onclick=function(s,td){ // td = <td/> element
    if(typeof td.sortDesc != 'undefined'){ // non-XML search form for non-IE browsers which always submits entire form
      if(typeof td.sortDesc=='string') td.sortDesc = parseInt(td.sortDesc) || td.sortDesc == 'true' // when called for first time
    	td.sortDesc = !td.sortDesc
    	s = s.replace(/ desc/,'')
    	if(td.sortDesc)s = s += ' desc'
    }
		switch (fm.replace(/[0-9]/g,'')){
			case 'fmCmDBX': dbxSort(s); break;
		}
	}
	this.HTML=function(fv,tx,fAsc,x2){
    var tx0=getMField(0,tx), tx1=getMField(1,tx); if(!tx1)tx1=tx0
  	if(fv==''){return '<td '+x+' '+x2+'>&nbsp;'+tx0+'</td>'}
  	var gfxArrow='arrow'+(gfx?gfx:'Tra')
  	var s1=this.sortValue(), ar=s1.split(','); for(var i=0;i<ar.length;i++)if(fv==getMField(0,ar[i],' '))s1=ar[i] // pluck fv from multi-sort criteria
    var sortDesc=(s1.search(' desc')>=0)
  	if(sortDesc)s1=s1.replace(/ desc/,'')
    if(s1!=fv)sortDesc=fAsc // if sorted by fv, s1==fv
  	return '<td '+x+' '+x2+' class=xbtn nowrap onclick="'+self+'.onclick(\''+fv+(sortDesc?'':' desc')+'\',this)" sortDesc='+sortDesc
  		+' title="Sort '+(sortDesc?'ascending':'descending')+' by '+tx1+'">'
  		+tx0+' '+(s1==fv?'<img src=/sys/'+gfxArrow+(sortDesc?3:1)+'.gif>':'')+'</td>'
	}
	this.create=function(fv,tx,fAsc,x2){ document.write(this.HTML(fv,tx,fAsc,x2))	}
}
var dbxTD=new xTD('dbxTD','fmCmDBX')
