var ie6 = (window.external &&	typeof window.XMLHttpRequest == "undefined");
var ieblows=/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
var $frm_indep=false;

function target(targ){
	if(typeof(targ)!='object'){targ=ge(targ);}
	return targ;
}
function ctl_readonly(v,act){
	var targ=ge(v);
	var v=targ.getElementsByTagName('INPUT');
	for(var i=0;i<v.length;i++){
		v[i].readOnly=act;
	}
}
function fi(ctl,f){	if(!f){f=form;}	return f.elements[ctl];}
function f0(ctl,f){	
	if(!f){f=document.body.getElementsByTagName("form")[0];}
	return f.elements[ctl];
}
function gi(ctl){return document.getElementById(ctl);}
function gev(ctl){return $pdg_e.getSVGDocument().getElementById(ctl)}
function ge(ctl,vl,div,single,typ){
	if(isarray(ctl) || div){
		var simple=(single==1)?1:false;
		var trimi=false;
		var v=[];
		var lbl;
		var invalid='',ni=0,min,minx,typ;
		if(vl===1){
			simple=1;trimi=1;vl=false;
		}else if(vl===66){
			simple=66;trimi=1;vl=false;
		}
		if(div){ctl=document.getElementById(div).getElementsByTagName('INPUT');}
		for(var i=0;i<ctl.length;i++){			
			if(vl){
				lbl=(vl[i]);
			}else{
				lbl=div?rip(ctl[i].id,'.',0):rip(ctl[i],'.',0);
			}
			targ=div?ctl[i]:document.getElementById(ctl[i]);
			if(targ){
				typ=typ?typ:0;
				v[lbl]=db_val(targ,typ,1,false,simple,trimi);
				mag=targ.getAttribute('mag');
				min=targ.getAttribute('minlen');
				minx=min?(v[lbl].length-2<min):false;
				if(mag==99 && (v[lbl]=='Null' || minx)){
					ni++;
					lbl=targ.parentNode.childNodes[1].innerHTML;
					if(!lbl){
						lbl=targ.parentNode.innerHTML;
						lbl=rip(lbl,'>',0,true);
					}
					if(min){lbl+=' (minimum '+min+' characters)'}
					invalid+='\n&#9658; '+lbl+' &#9668;';
				}else if(mag=22 && (v[lbl]=='Null' || minx)){
					v[lbl]=0;
				}
			}
		}
		if(invalid){
			var s=(ni>1)?'s':'';
			var si=(ni>1)?'are':'is';
			valert('The following mandatory field'+s+' '+si+' not filled in correctly:\n  '+invalid);
			v='invalid';
		}else if(single){
			v=v[lbl];
		}		
		return v;
	}else{
		return document.getElementById(ctl);
	}
}
function ge_sum(v){
	var x=0;
	for(i in v){
		x+=ge(v[i]).value*1;
	}
	return x;
}

//nodes
function node_clear(targ){
	targ=target(targ);
	if(targ){
		while(targ.hasChildNodes()){
			targ.removeChild(targ.lastChild);
		}	
	}
}

function node_append(targ,element,id,attribute,htm,typ){
	if(targ!='body'){targ=target(targ);}
	var elm = document.createElement(element);var key;
	if(id){elm.id=id;}
	if(htm){elm.innerHTML=htm;}
	if(attribute){
		for(key in attribute){
			elm.setAttribute(key,attribute[key]);
		}
	}
	if(typ){elm.type=typ;}
	if(targ=='body'){
		document.body.appendChild(elm);
	}else{
		if(!targ){
			alert(node_append.caller.toString())
		}else{
			targ.appendChild(elm);
		}
	}
	return elm;
}

//time
function time_format(timex){
	if(!timex){return '';}
	var t=timex.split(':');
	if(right(t[1],2)=='PM'){
		if(t[0]!='12'){
			t[0]=t[0]*1+12;
		}
	}else{
		if(t[0]=='12'){
			t[0]='00';
		}
	};
	return '0000-00-00 ' + t[0] + ':' + t[1].substring(0,2);
}
function time_num(timex,slot,minutes){
	if(timex.length==0){
		return -1;
	}else{
		var t=timex.split(':');
		if(right(t[1],2)=='PM'){
			if(t[0]!='12'){
				t[0]=t[0]*1+12;
			}
		}else{
			if(t[0]=='12'){
				t[0]='00';
			}
		};
		var mins=t[1].substring(0,2)*1;
		if(slot){
			if(mins>0){
				mins= Math.round((mins/slot)-0.50);
			}
			var hm=t[0]*60;
			//alert(hm+mins);
			if(hm<480 || hm+mins>1139){ //if outside slot trange
				return -1;
			}else{
				return hm/slot + mins;
			}
		}else{
			if(minutes){
				return t[0]*60 + mins;
			}else{
				return t[0]*100 + mins;
			}
		}
	}
}

//date
function date_break(d){
	var v=[];
	if(d.indexOf('-')>-1){
		d=d.split('-');
		return [d[0]*1,mmm_month(d[1]),d[2]*1];
	}else{
		return [d.substr(6,2)*1,d.substr(4,2)*1,d.substr(0,4)*1];
	}
}
function date_age(dob,ref){
	var d;
	var d0=new Date();
	var d1=new Date();			
	d=date_break(ref);d0.setFullYear(d[2],d[1],d[0]);					
	d=date_break(dob);d1.setFullYear(d[2],d[1],d[0]);					
	var age=((d0.getTime()-d1.getTime()) / (60*60*24*1000*365.25));
	age=Math.round(age*100)/100;
	return age;
}
function date_format(datex,typ,blank){
	var d=datex.split('-');
	var m=new Array(12);
	var rdate=blank?'':'!';
	m[1]='Jan';
	m[2]='Feb';
	m[3]='Mar';
	m[4]='Apr';
	m[5]='May';
	m[6]='Jun';
	m[7]='Jul';
	m[8]='Aug';
	m[9]='Sep';
	m[10]='Oct';
	m[11]='Nov';
	m[12]='Dec';
	for(var i=1; i<13; i++){
		if(d[1]==m[i]){
			if(!typ){
				rdate=d[2]*10000 + i*100 + d[0]*1;
			}else{
				if(typ=='date'){
					var rdate=new Date();
					rdate.setFullYear(d[2],i,d[0]);					
				}else{
					rdate=0;
				}
			}
			i=13;
		}
	}
	return rdate;
}
function form_date(dtx){
	if(dtx==null){return '';}
	if(dtx.length>8){
		return dtx.substr(8,2) + '-' + month_mmm(dtx.substr(5,2)*1) + '-' + dtx.substr(0,4);
	}else{
		return dtx.substr(6,2) + '-' + month_mmm(dtx.substr(4,2)*1) + '-' + dtx.substr(0,4);
	}
}
function form_date_now(display,full){
	var v=new Array();
	var now = new Date();
	var month = now.getMonth() + 1;
	var day = now.getDate();
	var year = now.getFullYear();
	if(display){
		return zpad(day,2) + '-' + month_mmm(month) + '-' + year;
	}else{
		return year + '' + zpad(month,2) + '' + zpad(day,2);
	}
}
function mmm_month(mo){var m={'Jan':1,'Feb':2,'Mar':3,'Apr':4,'May':5,'Jun':6,'Jul':7,'Aug':8,'Sep':9,'Oct':10,'Nov':11,'Dec':12};return m[mo];}
function month_mmm(ix){var m=Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');return m[ix-1];}

//style
function style_get(oElm, strCssRule){
  var strValue = "";
  if(document.defaultView && document.defaultView.getComputedStyle){
    strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
  }else if(oElm.currentStyle){
    strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){return p1.toUpperCase();});
    strValue = oElm.currentStyle[strCssRule];
  }
  return strValue;
}

//cursor
function cursor_wait(){document.body.style.cursor = 'wait';}
function cursor_clear(){document.body.style.cursor = 'default';}
function cursor_tag(tag,cursor,prev){
	var e;
	tag=tag.split(',');
	for(ix in tag){
		e= document.getElementsByTagName(tag[ix]);
		for(var i=0;i<e.length;i++){
			e[i].style.cursor=cursor;
		}
	}
}
function cursor_end(box){
	if(ieblows){
		var rng = box.createTextRange();
		rng.collapse(true);
		rng.moveEnd('character',box.value.length);
		rng.moveStart('character',box.value.length);
		rng.select();
	}
}

//string
String.prototype.trim = function(){return this.replace(/^\s+|\s+$/g,"");}
function right(str,n){
  if(n <= 0){
    return "";
  }else if (n>String(str).length){
    return str;
  }else{
    var len=String(str).length;
    return String(str).substring(len,len - n);
  }
}
function trim(str,n){return ltrim(rtrim(str,n),n);}
function ltrim(str,n){n = n || "\\s";return str.replace(new RegExp("^[" + n + "]+", "g"), "");}
function rtrim(str,n){n = n || "\\s";return str.replace(new RegExp("[" + n + "]+$", "g"), "");}
function rip(tx,lead,tail,trim){
	p0=tx.indexOf(lead);
	if(p0==-1 || !lead){
		p0=0;
	}else{
		p0+=lead.length;
	}
	p1=tx.indexOf(tail,p0);
	if(!p1 || !tail){
		p1=tx.length;
	}
	tx=tx.substring(p0,p1);	
	if(trim){tx=tx.trim();}
	return tx;
}	
function text_wrap(tx,len,brk){
	var flag;
	var conti=0;
	var ret='';
	if(brk="\n"){
		tx=tx.replace(/\n/g,' ')
		tx=tx.replace(/\r/g,' ')
	}else{
		tx=tx.replace(/<br>/g,' ')
		tx=tx.replace(/<BR>/g,' ')
	}
	for(var i=0;i<tx.length;i++){
		chr=tx.substring(i,i+1);
		flag=(chr==' ');
		if(flag && conti>=len){
			ret+=brk;
			conti=0;
		}else{
			ret+=chr;
			conti++;
		}
	}
	return ret;
}
function zpad(tx,len){
	tx=tx+'';
	var n=tx.length;
	for(var i=n;i<len;i++){
		tx='0'+tx;
	}
	return tx;
}
function addslashes(str,quot){
	var tx=str.replace(/(["'\\])/g, "\\$1").replace(/\0/g, "\\0");
	if(quot){
		if(tx==''){
			tx="null";
		}else{
			tx="'"+tx+"'";
		}
	}
	return tx; 
}
function fil_ext(fil){
	ext='';
	for(i=fil.length-1;i>0;i--){
		x=fil.substring(i,i+1);
		if(x=="."){
			return ext;
		}
		ext=x+ext;
	}
}

//numbers
function nan(val,dec,x){
	if(isNaN(val) || val=='NaN' || val=='-Infinity'){
		return '';
	}else{
		if(dec){
			return val.toFixed(dec);
		}else{
			return val;
		}
	}	
}
function niv(val,replace){
	if(replace===undefined){replace='';}
	if(val===null || val==''){
		return replace;
	}else{
		return val;
	}
}
function decimatic(val){
	if(val.indexOf('.')>-1){
		v=val.split('.');
		if(v[1]*1==0){
			return v[0];
		}else{
			return val;
		}
	}else{
		return val;
	}
}
function isnumeric(x){x+=""; return x.match(/^(-)?(\d*)(\.?)(\d*)$/);}
function is_numeric(val,def,currency){
	val+='';
	if(currency){val=val.replace(/\$|\,/g,'');}
	if(val!=val.replace(/[^0-9\.\-]/g,'')){return false;}
	if(val.split('.').length>2){return false;}
	if(!def){def=false;}
	var ret=!isNaN(parseFloat(val))
	ret=ret?val*1:def;
  return (ret!==false);
}
function intval(mixed_var,base) {
	var tmp;
	if(typeof( mixed_var ) == 'string'){
			tmp = parseInt(mixed_var*1);
			if(isNaN(tmp) || !isFinite(tmp)){
				return 0;
			}else{
				return tmp.toString(base || 10);
			}
	}else if(typeof( mixed_var ) == 'number' && isFinite(mixed_var)){
		return Math.floor(mixed_var);
	}else{
		return 0;
	}
}

//array
function arraY(a){ //if in arraY(arr) to check existence
  var o={};
  for(var i=0;i<a.length;i++){
    o[a[i]]='';
  }
  return o;
}

function isobject(v){return (null !== v && 'object' == typeof(v));}
function isarray(v){if(v.constructor.toString().indexOf("Array") == -1){return false;}else{return true;}}
function array_ix(v,delim){
	if(!delim){delim=',';}
	var x=v.split(delim);v=[];
	for(i in x){v[x[i]]=1;}
	return v;
}
function array_from_post(v){
	var arr=[];
	v=v.split("&");
	for(var i in v){
		x=v[i].split("=");
		arr[x[0]]=x[1];
	}
	return arr;
}
function array_remix(arr,x){
	var arx=new Array();
	var i=0;
	for(ix in arr){
		if(ix!=x){
			arx[ix]=arr[ix];
			i++;
		}
	}
	if(i==0){arx=false;}
	return arx;
}
function array_to_post(arr,valu,dbv,noesc){
	var tx='';
	var val;
	for(v in arr){
		if(tx){tx+='&';}
		if(valu){
			val=arr[v].value;
			if(dbv){
				val=db_val(val,arr[v].getAttribute('typ'));
			}
			if(!noesc){val=escape(val);}
			tx+=v+'='+val;
		}else{
			if(!noesc){arr[v]=escape(arr[v]);}
			tx+=v+'='+arr[v];
		}
	}
	return tx;
}
function vv_default(v,vd){if(v===undefined){v={}};for(i in vd){if(v[i]==undefined){v[i]=vd[i];}} return v;}

//url
function url_var(vari,def){
	if(!def){def==false;}
	var v=window.location+'';
	v=v.split('?');
	if(v.length>1){
		v=v[1].split('&');
		var x;
		for(var i=0;i<v.length;i++){
			x=v[i].split('=');
			if(x[0]==vari){
				return x[1];
			}
		}
	}
	return def;
}
function url_gov(c,g){
	var v=location.href+'';
	v=v.split('?');
	var url=v[0];
	v=v[1].split('&');
	var x;
	var dat='';
	var kill=false;
	for(var i=0;i<v.length;i++){
		if(v[i]){
			x=v[i].split('=');
			if(x[0]=='_x_'){kill=true;}		
			if(kill==false){
				if(x[0] in c){	
					x[1]=c[x[0]];
					delete c[x[0]];
				}
				if(x.length<2){
					valert("Please call Vuk: x.length<2 -- url_gov");
					return
				}else	if(x[1]!='_x_'){
					x[1]=x[1].toString();
					dat+=dat?'&':'?';
					if(x[1].substring(x[1].length-1,x[1].length)=='#'){x[1]=x[1].substring(0,x[1].length-1)}
					dat+=x[0]+'='+x[1];
				}
			}
		}
	}
	for(ix in c){
		if(c[ix]!='_x_'){
			dat+=dat?'&':'?';
			dat+=ix+'='+c[ix];
		}
	}
	if(g){dat+='&'+g;}
	location.href=url+dat;
}
function url_go(href){location_go(href);}
function location_go(href){location.href=href;}
function img_error(targ){targ.style.display='none';}

//waiting
function page_shade(show){
	var shad=ge('page_shade');
	if(show){
		shad.style.height=page_height()+'px';
		shad.style.display='block';
	}else{
		shad.style.display='none';
	}
}
function hourglass(wait,shadfixed){
	if(!shadfixed){
		page_shade(wait);
	}
	var targ=ge('hourglass');
	if(!targ){targ=node_append(document.body,'div','hourglass');}
	if(wait){center_pop(targ,0,-11);targ.style.display='block';}else{targ.style.display='none';}
	if($frm_indep && !$cascade){
		var con=gi('content');
		if(con){con.className=wait?'frm_status_02':'frm_status_00';}
	}
}
function set_opacity(targ,opacity){
  opacity=(opacity==100)?99.999:opacity;
  if(ieblows){
		targ.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+ opacity + ");";
	}else{
		targ.style.opacity = opacity/100;
	}
}

//position
Element.prototype.pos=function(tscro){
	var obj=this;
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while(obj = obj.offsetParent){
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	if(tscro){
		curleft-=tscro.scrollLeft;
		curtop-=tscro.scrollTop;
	}
	return [curleft,curtop];
}
function f_pos(obj,tscro){
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	if(tscro){
		curleft-=tscro.scrollLeft;
		curtop-=tscro.scrollTop;
	}
	return [curleft,curtop];
}
function x_scro(){var val=document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft;return val*1;}
function y_scro(){var val=document.documentElement.scrollTop ?document.documentElement.scrollTop :document.body.scrollTop;return val*1 ;}
function page_dims(){
	var h=((document.documentElement.clientHeight > document.documentElement.scrollHeight) ? document.documentElement.clientHeight : document.documentElement.scrollHeight);
	var w=document.documentElement.scrollWidth;	
	return {hig:h,wid:w};
}
function page_height(){
	var hgt=0;
	var whg=window.innerHeight?window.innerHeight:0;
	if(window.innerHeight && window.scrollMaxY){
		hgt=window.innerHeight + window.scrollMaxY;
	}else if(document.body.scrollHeight>document.body.offsetHeight){
		hgt=document.body.scrollHeight;
	}else{ 
		hgt=document.body.offsetHeight + document.body.offsetTop; 
	}	
	if(hgt>whg){
		return hgt;
	}else{
		return whg;
	}
}

//popup
function popwin(url, wid, hgt, scrol){
  var winl = (screen.width-wid)/2;
  var wint = (screen.height-hgt)/2;
  if (winl < 0) {winl = 0;}
  if (wint < 0) {wint = 0;}
  newwindow=window.open(url,'',"width="+wid+",height="+hgt+",top="+wint+",left="+winl+",toolbar=0,scrollbars="+scrol+",location=0,directories=0,status=0,menuBar=0,resizable=0");
  newwindow.resizeTo(wid, hgt);
  if (window.focus) {newwindow.focus()}
}
function center_pop(targ,top_adj,lft_adj,wid,hig,noscro,ret){
	targ=target(targ);
	top_adj=top_adj?top_adj:0;
	lft_adj=lft_adj?lft_adj:0;
	var doc=document.documentElement;
	var x=doc.clientWidth;
	var y=doc.clientHeight;
	var x_scro=doc.scrollLeft*1;
	var y_scro=doc.scrollTop*1;
	if(!wid){wid=targ.offsetWidth;}
	if(!hig){hig=targ.offsetHeight;}
	//var wid=targ.offsetWidth;
	//var hig=targ.offsetHeight;
	var top=(y/2)-(hig/2)-35+top_adj;
	if(top<0){top=y_scro;}
	targ.style.left=(x_scro+(x/2)-(wid/2)+lft_adj)+'px';
	targ.style.top=top+'px' ;	
}
function center_show(targ,wid,hig,noscro){
	center_pop(targ,0,0,wid,hig,noscro);
}

//controls
function fire_event(targ,event){
	targ=target(targ);
	if (document.createEventObject){ // dispatch for IE
		var evt=document.createEventObject();
		if(ieblows){
			//alert(fire_event.caller.toString())
			eval('targ.on'+event+'()');
		}else{
			return targ.fire_event('on'+event,evt)
		}
	}	else{	// dispatch for firefox + others
		var evt=document.createEvent("HTMLEvents");
		evt.initEvent(event, true, true ); // event type, bubbling, cancelable
		return !targ.dispatchEvent(evt);
	}
}
function cell_rowindex(cell,a){
	if(a){cell=cell.parentNode;}
	var row = cell.parentNode;
	var table = row.parentNode;
	for (var i = 0; i < table.rows.length; i++)
	if (row == table.rows[i]) {
		return i;
	}
	return -1;
}
function key_code(e){
	var e=(e) ? e: ((event) ? event : null);
	return e.keyCode;
}
function clear_val(targ){
	if(targ.value!=''){
		targ.value='';
		if(targ.id.substring(0,5)=='i_fli'){
			targ=gi(targ.id.substring(6,targ.id.length));
			targ.value='';
		}
		if(targ.getAttribute('typ')!='d!'){
			frm_dirty(targ);
		}
	}
	if(window.ctl_cri){ctl_cri(targ,false);}
}


//alerts
function alerte(){valert('Database error 101.')}

//json
var $json={
  escapable:/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
	meta:{'\b': '\\b','\t': '\\t','\n': '\\n','\f': '\\f','\r': '\\r','"' : '\\"','\\': '\\\\'}, 
	encode:function(v){
		var jsn;
		if(isarray(v)){
			for(var i=0;i<v.length;i++){
				v[i]=this.build(v[i]);
			}
			jsn='['+v.join(',')+']';
		}else{
			jsn=this.build(v);
		}			
		return jsn;
	},
	build:function(v){
		var jsn='';
		for(i in v){
			jsn+=jsn?',':'';
			jsn+='"'+i+'":'+this.quote(v[i]);
		}
		return '{'+jsn+'}';
	},
  quote:function(tx){
		this.escapable.lastIndex = 0;
		return this.escapable.test(tx) ? '"' + tx.replace(this.escapable,function(a){var c=$json.meta[a];return typeof c==='tx'?c:'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);}) + '"' : '"' + tx + '"';
  }	
}

//access
function acc_check(lev,msg){
	if($vv_acc[lev]>0){
		return true;
	}else{
		msg=msg?msg:'You do not have privilege to perform this action.';
		valert(msg,'access control');
		return false;
	}
}

//MISC
function gt(v,ix,act){v[act+'^']=ix;v['p^']=$tv[ix].pot;return v;}
function browser_rowdisp(){if(navigator.appName== "Microsoft Internet Explorer"){return 'inline';}else{return 'table-row';}}
function email_client(to,subject,body){
	var mailto_link='mailto:'+to+'?Subject='+subject+'&Body='+body;
	location.href=mailto_link;
	return false;
} 
function email_client_i(targ){
	targ=target(targ);
	location.href='mailto:'+targ.value;
	return false;
} 
function email_valid(email){
  return email.toLowerCase().match(/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/);
}

function login_submit(typ){
	typ=typ?'?typ='+typ:'';
	form.method='post';
	form.action='y_validate.php'+typ;
  form.submit();
}
function session_set(vari,valu){
	$ajx='%';
	ajax_post('../00I/ajx_cfg.php?ix=session','var='+sys_v+'_'+vari+'&val='+valu);
	return;
}
function frm_special(act,v){
	if(!act){
		var sql=v.substring(8,v.length);
		qjax(0,'sql='+sql+'&sys='+sys_v);
	}else{
		valert(v)
	}
}

//get elements + attributes can't use now because of IE hell -maybe

Element.prototype.ga=function(attribute){return this.getAttribute(attribute)};
Element.prototype.sa=function(attribute,val){return this.setAttribute(attribute,val)};
Element.prototype.gt=function(tag){return this.getElementsByTagName(tag)};
Element.prototype.gc=function(cls){return this.getElementsByClassName(cls)};
Element.prototype.gea=function gea(attribute,tag,val){
	if(!tag){tag='*';}
	var e=this.getElementsByTagName(tag);
	var re = new Array();
	var o_aval=(typeof val != "undefined")? new RegExp("(^|\\s)" + val + "(\\s|$)", "i") : null;
	var o_cur;
	var o_attribute;
	for(var i=0; i<e.length; i++){
		o_cur = e[i];
		o_attribute = o_cur.ga && o_cur.ga(attribute);
		if(typeof o_attribute == "string" && o_attribute.length > 0){
			if(typeof val == "undefined" || (o_attribute_val&& o_aval.test(o_attribute))){
				re.push(o_cur);
			}
		}
	}
	return re;
}

