
function DSForm(){this.action='';this.params=new Object();this.method='post';}
DSForm.prototype.getAction=function(){return this.action;}
DSForm.prototype.setAction=function(action){var location=this.parseUrl(action);this.action=location;}
DSForm.prototype.setMethod=function(method){this.method=method;}
DSForm.prototype.setPostCallback=function(callback){this.postCallback=callback;}
DSForm.prototype.setVar=function(name,val,append,remove){var added=0;if(!this.params[name]){this.params[name]=new Array();}
if(this.params[name]){var cur=-1;for(var i=0;i<this.params[name].length;++i){if(this.params[name][i]==val){cur=i;}}
if(cur>-1){if(remove){this.params[name].splice(cur,1);if(this.params[name].length==0){delete this.params[name];}
return;}else{return;}}
if(append!='1'){this.params[name]=new Array();this.params[name].push(val);}
added++;}
if(append||!added){this.params[name].push(val);}}
DSForm.prototype.getVar=function(name){return(this.params[name]?this.params[name]:new Array());}
DSForm.prototype.submit=function(submitType){var url;var f=DOMNode.create(null,'','form','action',this.action,'method',this.method);f.style.display='none';f.style.position='absolute';f.style.top=-4000+'px';f.style.width=0+'px';f.style.height=0+'px';document.getElementsByTagName('body')[0].appendChild(f);for(var i in this.params){for(var j=0;j<this.params[i].length;++j){var x=DOMNode.create(null,'','input','name',i,'value',this.params[i][j]);x.style.display='none';f.appendChild(x);if(submitType==1){url+=i+"="+this.params[i][j]+"&";}}}
if(submitType==1){(document.createElement('img')).src=this.action+";jsessionid="+u.sid+"?"+url+"noresponse=1";}else if(submitType==2){f.action=this.action+";jsessionid="+u.sid;f.submit();}else{f.submit();}}
DSForm.prototype.go=function(action,submitType,name,val){var frag;for(var i=2;i<arguments.length;i++){if(arguments[i]=='#'){frag=arguments[++i];continue;}
this.setVar(arguments[i],arguments[++i]);}
if(action){this.setAction(frag?action+'#'+frag:action);}
this.submit(submitType);return false;}
DSForm.prototype.postUrl=function(url){var location=this.parseUrl(url);if(this.postCallback){location=this.postCallback(location);}
this.go(location,0);}
DSForm.prototype.parseUrl=function(url){var u=new Url(url);var location=u.getLocation();var ps=u.getParamString();if(ps){location+=';'+ps;}
var keys=u.getQueryNames();for(var i=0;i<keys.length;++i){this.setVar(keys[i],u.getQuery(keys[i]));}
return location;}
DSForm.prototype.postLink=function(evt){var e;if(evt&&typeof evt.event!='undefined'){e=evt;}else{e=new DSBrowserEventObject(evt,window.event,this);}
if(e.getAltKey()||e.getCtrlKey()){return true;}
var t=e.getCurrentTarget()||e.getTarget();while(t.nodeName!='A'&&t.parentNode){t=t.parentNode;}
this.postUrl(t.href);if(DSBrowser.browser=='Safari'){t.href='#';}
e.preventDefault();return false;}
DSForm.prototype.copy=function(form){if(form.action){this.setAction(form.action);}
var dsform=this;array_walk(form.elements,function(o){dsform.setVar(o.name,o.value);});}