/* e-service common function */
$e=
{
	data:{
		_submit:function(n){
			$g.form=document.forms[n.form];
			ColdFusion.Ajax.submitForm(n.form,n.url,n.callback);
		},
		_callback:function(n){
			var obj=ColdFusion.JSON.decode(n);
			for(i in obj){
				if($g.form[i]){
					$e.message._show({type:"error",text:obj[i]});
					if($g.form[i].length>1){
						$g.form[i][0].focus();
					}
					else{
						$g.form[i].focus();
					}
				}
				else{
					$e.message._clear({type:"error"});
					for(j in obj){
						$e.message._append({type:"error",text:obj[j]});
					}
				}
				return false;
			}
			return true;
		},
		_inline:function(n){
			var obj=ColdFusion.JSON.decode(n);
			var status=true;
			var isFocus=0;
			$e.error._clear();
			for(i in obj){
				$("err_"+i).style.display="inline";
				$("err_"+i).innerHTML=obj[i];
				$g.error[i]="err_"+i;
				status=false;

				if(!isFocus){
					var type={};
					type[$g.form[i].type]=0;
					type["text"]=1;
					if(type[$g.form[i].type]){
						isFocus=1;
						$g.form[i].focus();
					}
				}
			}
			return status;
		},
		_return:function(n){
			var obj=ColdFusion.JSON.decode(n);
			if(obj.length){
				var item=[];
				$e.message._clear({type:"error"});
				for(var i=0;i<obj.length;i++){
					for(j in obj[i]){
						item[i]=j;
						$e.message._append({type:"error",text:obj[i][j]});
					}
				}
				if($g.form[item[0]]){
					$g.form[item[0]].focus();
				}
				return false;
			}
			return true;
		},
		_onerror:function(n){
		}
	},
	error:{
		_process:function(n){
			var cf=ColdFusion.JSON.decode(n);
			var error=cf.error;
			if(error.length){
				var isFocus=0;
				$e.message._show({type:"error",text:"Error found."});
				$e.error._clear();
				for(var i=0;i<error.length;i++){
					for(id in error[i]){
						$e.error._show({id:id,text:error[i][id]});
					}
					if(!isFocus){
						var type={};
						type[$g.form[id].type]=0;
						type["text"]=1;
						if(type[$g.form[id].type]){
							isFocus=1;
							$g.form[id].focus();
						}
					}
				}
				return false;
			}
			else{
				$e.message._remove({type:"error"})
				$e.error._clear();
			}
			return true;
		},
		_clear:function(n){
			for(id in $g.error){
				$($g.error[id]).style.display="none";
			}
		},
		_show:function(n){
			var id="e_"+n.id;
			$(id).style.display="block";
			$(id).innerHTML=n.text;
			$g.error[n.id]=id;
		}
	},
	message:{
		_create:function(n){
			if(!$(n.type)){
				div=document.createElement("div");
				div.setAttribute("id",n.type);
				div.className=n.type;
				$("message").innerHTML="";
				$("message").appendChild(div);
			}
		},
		_remove:function(n){
			if($(n.type)){
				$("message").removeChild($(n.type));
			}
		},
		_clear:function(n){
			$e.message._create(n);
			$(n.type).innerHTML="";
		},
		_show:function(n){
			$e.message._create(n);
			$(n.type).innerHTML=n.text;
		},
		_append:function(n){
			$e.message._create(n);
			$(n.type).innerHTML+=n.text+"<br/>";
		}
	}
};
/* e-service temporary storage */
$g=
new function(n){
	this.error={};
}
