
function writesearchform(){
	var par=arguments[0] ? arguments[0] : new Object();
	var df={formname:'searchform', formstyle:'', o:'', size:8, maxlength:20, kwname:'keywd', inputstyle:"class='font-s' style='border:1px solid ;padding:0px;margin:0px;'", act:'search', buttontype:'link', buttonvalue:'Search', buttontitle:'', hiddenvalue:{}, action:'?'};
	for(var i in par)df[i]=par[i];
	if(!par.o)df.o=location2value('o');
	if(!par.buttontitle) df.buttontitle="Search "+df.o;
	var button=df.buttontype!='link' ? ("<input type='submit' value='"+df.buttonvalue+"'>") : "<a href='javascript:document."+df.formname+".submit();' title='"+df.buttontitle+"'>"+df.buttonvalue+"</a>";
	var hidden='';
	if(df.hiddenvalue){
		for(var i in df.hiddenvalue){
			hidden+="<input type='hidden' name='"+i+"' value='"+htmlescape(df.hiddenvalue[i])+"'>";
		}
	}

	document.write("<form name='"+df.formname+"' method='get' action='"+df.action+"' "+df.formstyle+"> <input type='hidden' name='o' value='"+df.o+"'><input type='hidden' name='act' value='"+df.act+"'><input type='text' name='"+df.kwname+"' value='"+htmlescape(location2value(df.kwname))+"' "+df.inputstyle+" onkeypress='if(event.keycode==13)document."+df.formname+".submit();' size='"+df.size+"' maxlength='"+df.maxlength+"'> "+button+hidden+"</form>");
}

function appendhtml(obj, html){
	if(!obj)return;
	var e=document.createElement('span');
	e.innerHTML=html;
	obj.appendChild(e);

}

function writepagebar(total, perpage){
	var curpage, n=5, max, pc, url=locationprechange('page'), prev, next, bar='', blurcur=1, iconright="Next", iconleft="Prev", i, k;
	var par=arguments[2] ? arguments[2] : new Object();
	if(par.iconleft)iconleft=par.iconleft;
	if(par.iconright)iconright=par.iconright;
	if(par.urlprepage)url=par.urlprepage;
	var astyle=par.astyle ? (' '+par.astyle) : '';
	pc=url;
	total=parseInt(total);
	perpage=parseInt(perpage);

	if(total<=perpage){
		if(par['iconalwayson']){
			prev=iconleft+'&nbsp; ';
			next=' &nbsp;'+iconright;
		}
		else {
			prev='';
			next='';
		}
		if(par.alwayson)document.write(prev+"<a href='"+pc+"1'"+astyle+">1</a>"+next);
		return;
	}

	if(!(total>0 && perpage>0))return;

	max=Math.ceil(total/perpage);
	if(par.curpage)curpage=parseInt(par.curpage);
	else curpage=parseInt(location2value('page'));
	if(curpage<0)curpage=max+1+curpage;
	if(!(curpage>0))curpage=1;


	k=curpage-1;
	prev=(curpage<=1 || iconleft=='') ? '' : "<a href='"+pc+k+"'"+astyle+">"+iconleft+"</a>&nbsp;&nbsp;";
	k=curpage+1;
	next=(curpage>=max || iconright=='') ? '' : "&nbsp;&nbsp;<a href='"+pc+k+"'"+astyle+">"+iconright+"</a>";
	bar+=!par.noblur ? "<span class='bold'>"+curpage+"</span>" : "<a href='"+pc+curpage+"'"+astyle+">"+curpage+"</a>";
	if(curpage>1){
		for(i=curpage-1; (i>=1 && (i+n)>=curpage); i--) bar="<a href='"+pc+i+"'"+astyle+">"+i+"</a>, "+bar;
	}

	if(1 || curpage<max){
		for(i=curpage+1; (i<=max && (i-n)<=curpage); i++) bar+=", <a href='"+pc+i+"'"+astyle+">"+i+"</a>";
	}
	if(curpage>(n+1)){
		k=(curpage==(n+2)) ? ',' : ' ...';
		bar="<a href='"+pc+"1'"+astyle+">1</a>"+k+" "+bar;
	}
	k=curpage==(max-n-1) ? ',' : ' ...';
	if(curpage<(max-n))bar+=k+" <a href='"+pc+max+"'"+astyle+">"+max+"</a>";
	if(par['iconalwayson']){
		if(!prev)prev=iconleft+'&nbsp; ';
		if(!next)next=' &nbsp;'+iconright;
	}
	bar=prev+bar+next;
	document.write(bar);
}

function writebuttonlink(txt, script){
	document.write("<span style='border:1px solid black;background-color:#ccc;padding:3px 8px;' onMouseOver='this.style.cursor=\"pointer\";' onmouseout='this.style.cursor=\"default\";' onclick='"+script.replace(/'/g, '&#039;')+"'>"+txt+"</span>");
}

function url2obj(url){
	if(url==null || url=='')return '';
	var obj=new Object();
	var a=url.split('&');
	if(a==null || a.length==null)return '';
	for(var i=0; i<=a.length; i++){
		if(a[i]==null) continue;
		var a2=a[i].split('=', 2);
		if(a2[1]!=null && a2[1]!='') obj[a2[0]]=decodeURIComponent(a2[1]);
	}
	return obj;
}

function obj2url(obj){
	var r='';
	for(var i in obj)r+="&"+i+'='+obj[i];
	return r.substring(1);
}
function locationprechange(vname){
	var obj=url2obj(window.location.search.substr(1));
	delete obj[vname];
	var r=obj2url(obj);
	return '?'+r+'&'+vname+'=';
}
function url2value(url, vname){
	var obj=url2obj(url);
	return obj[vname] ? obj[vname] : '';
}
function location2value(vname){
	return url2value(window.location.search.substr(1), vname);
}


function DueDate(oy, om, od){
	this.oy=oy;
	this.om=om;
	this.od=od;
	this.nearyr=1;

	this.getdatestr=function (){
		var a=this.om.value, b=this.od.value;
		if(a<10) a='0'+a;
		if(b<10) b='0'+b;
		return this.oy.value+'-'+a+'-'+b;
	}
	this.setduedate=function(dd){
		var y, m, d;
		var today=new Date();
		var ty=today.getFullYear();
		var tm=today.getMonth();
		var td=today.getDate();

		if(this.oy.length<1){
			for(i=0; i<=2*this.nearyr; i++) this.oy.options[i]=new Option(ty-this.nearyr+i, ty-this.nearyr+i);
			for(i=0; i<12; i++) this.om.options[i]=new Option(i+1, i+1);
			for(i=0; i<31; i++) this.od.options[i]=new Option(i+1, i+1);
		}
		if(dd!=''){
			y=dd.substr(0,4)-0;
			m=dd.substr(5,2)-0;
			d=dd.substr(8,2)-0;
		}
		else{
			if(tm==11){
				y=ty+1;
				m=1;
			}
			else {
				y=ty;
				m=tm+2;
			}
			d=td;
		}
		if(!setSelect(this.oy, y)) {
			this.oy.options[this.oy.length]=new Option(y, y);
			this.oy.selectedIndex=this.oy.length-1;
		}
		setSelect(this.om, m);
		setSelect(this.od, d);
		this.adjustday();
	};
	this.adjustday2=function (){
		var days=[31,28,31,30,31,30,31,31,30,31,30,31];
		var y=this.oy.value, m=this.om.value;
		if(y%4==0)days[1]=29;
		if(this.od.selectedIndex>days[m-1]-1) this.od.selectedIndex=days[m-1]-1;
		if(this.od.length<days[m-1])
			for(i=this.od.length; i<days[m-1]; i++)this.od.options[i]=new Option(i+1, i+1);
		if(this.od.length-1>=days[m-1])
			for(i=this.od.length-1; i>days[m-1]-1; i--)this.od.options[i]=null;
	}
	this.adjustday=function(){
		this.adjustday2();
	}
}
function DueDate_create(vn, oy, om, od){
	eval(vn+'=new DueDate(oy, om, od);');
	eval(vn+".adjustday=function(){ "+vn+".adjustday2("+");}");
	eval("oy.attachEvent('onchange', "+vn+'.adjustday);');
	eval("om.attachEvent('onchange', "+vn+'.adjustday);');
}
