





var YAHOO=function(){


   return{


      

       util:{},


      

       widget:{},


      

       example:{},


      

       namespace:function(sNameSpace){


           if(!sNameSpace||!sNameSpace.length){
               return null;
          }


           var levels=sNameSpace.split(".");


           var currentNS=YAHOO;


          
           for(var i=(levels[0]=="YAHOO")?1:0;i<levels.length;++i){
               currentNS[levels[i]]=currentNS[levels[i]]||{};
               currentNS=currentNS[levels[i]];
          }


           return currentNS;


      }
  };

}();





YAHOO.util.Dom=new function(){


 

  this.get=function(el){
     if(typeof el=='string'){
        el=document.getElementById(el);
    }


     return el;
 };


 

  this.getStyle=function(el,property){
     var value=null;
     var dv=document.defaultView;


     el=this.get(el);


     if(property=='opacity'&&el.filters){        value=1;
        try{
           value=el.filters.item('DXImageTransform.Microsoft.Alpha').opacity/100;
       }catch(e){
           try{
              value=el.filters.item('alpha').opacity/100;
          }catch(e){}
       }
    }
     else if(el.style[property]){
        value=el.style[property];
    }
     else if(el.currentStyle&&el.currentStyle[property]){
        value=el.currentStyle[property];
    }
     else if(dv&&dv.getComputedStyle)
    {


        var converted='';
        for(i=0,len=property.length;i<len;++i){
           if(property.charAt(i)==property.charAt(i).toUpperCase()){
              converted=converted+'-'+property.charAt(i).toLowerCase();
          }else{
              converted=converted+property.charAt(i);
          }
       }


        if(dv.getComputedStyle(el,'').getPropertyValue(converted)){
           value=dv.getComputedStyle(el,'').getPropertyValue(converted);
       }
    }


     return value;
 };


 

  this.setStyle=function(el,property,val){
     el=this.get(el);
     switch(property){
        case'opacity':
           if(el.filters){
              el.style.filter='alpha(opacity='+val*100+')';


              if(!el.currentStyle.hasLayout){
                 el.style.zoom=1;
             }
          }else{
              el.style.opacity=val;
              el.style['-moz-opacity']=val;
              el.style['-khtml-opacity']=val;
          }
           break;
        default:
           el.style[property]=val;
    }
 };


 

  this.getXY=function(el){
     el=this.get(el);


    
     if(el.parentNode===null||this.getStyle(el,'display')=='none'){
        return false;
    }


    

     var parent=null;
     var pos=[];
     var box;


     if(el.getBoundingClientRect){
        box=el.getBoundingClientRect();
        var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
        var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;


        return[box.left+scrollLeft,box.top+scrollTop];
    }
     else if(document.getBoxObjectFor){
        box=document.getBoxObjectFor(el);
        pos=[box.x,box.y];
    }
     else{
        pos=[el.offsetLeft,el.offsetTop];
        parent=el.offsetParent;
        if(parent!=el){
           while(parent){
              pos[0]+=parent.offsetLeft;
              pos[1]+=parent.offsetTop;
              parent=parent.offsetParent;
          }
       }


       
        var ua=navigator.userAgent.toLowerCase();
        if(
           ua.indexOf('opera')!=-1

          ||(ua.indexOf('safari')!=-1&&this.getStyle(el,'position')=='absolute')
       ){
           pos[1]-=document.body.offsetTop;
       }
    }


     if(el.parentNode){parent=el.parentNode;}
     else{parent=null;}


     while(parent&&parent.tagName!='BODY'&&parent.tagName!='HTML'){
        pos[0]-=parent.scrollLeft;
        pos[1]-=parent.scrollTop;


        if(parent.parentNode){parent=parent.parentNode;}
        else{parent=null;}
    }


     return pos;
 };


 

  this.getX=function(el){
     return this.getXY(el)[0];
 };


 

  this.getY=function(el){
     return this.getXY(el)[1];
 };


 

  this.setXY=function(el,pos,noRetry){
     el=this.get(el);
     var pageXY=YAHOO.util.Dom.getXY(el);
     if(pageXY===false){return false;}


     if(this.getStyle(el,'position')=='static'){
        this.setStyle(el,'position','relative');
    }


     var delta=[
        parseInt(YAHOO.util.Dom.getStyle(el,'left'),10),
        parseInt(YAHOO.util.Dom.getStyle(el,'top'),10)

    ];


     if(isNaN(delta[0])){delta[0]=0;}
     if(isNaN(delta[1])){delta[1]=0;}


     if(pos[0]!==null){el.style.left=pos[0]-pageXY[0]+delta[0]+'px';}
     if(pos[1]!==null){el.style.top=pos[1]-pageXY[1]+delta[1]+'px';}


     var newXY=this.getXY(el);


    
     if(!noRetry&&(newXY[0]!=pos[0]||newXY[1]!=pos[1])){
        this.setXY(el,pos,true);
    }


     return true;
 };


 

  this.setX=function(el,x){
     return this.setXY(el,[x,null]);
 };


 

  this.setY=function(el,y){
     return this.setXY(el,[null,y]);
 };


 

  this.getRegion=function(el){
     el=this.get(el);
     return new YAHOO.util.Region.getRegion(el);
 };


 

  this.getClientWidth=function(){
     return(
        document.documentElement.offsetWidth

       ||document.body.offsetWidth

    );
 };


 

  this.getClientHeight=function(){
     return(
        self.innerHeight

       ||document.documentElement.clientHeight

       ||document.body.clientHeight

    );
 };};




function ConfirmAction(msg)
{
 if(confirm(msg)==true)
   return true;
 else

   return false;}


function UpdateLocalization(targetServerURL,applicationGuid,moduleID,workAreaID,key,culture,textControlID)
{
   var controlID=document.getElementById(textControlID);
   var value=controlID.value;
  

   var callBackData=textControlID;
var callBack=
{
	success:UpdateLocalizationResponse,
	failure:UpdateLocalizationResponseException,
	argument:callBackData,
	scope:this

}


   var formData="applicationGuid="+applicationGuid+"&moduleID="+moduleID+"&workAreaID="+workAreaID+"&key="+key+"&culture="+culture;
   formData=formData+"&value="+value;
   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,formData);}


UpdateLocalizationResponse=function(response)
{
var callBackData=response.argument.split(";");
var textControlID=callBackData[0];

var controlID=document.getElementById(textControlID);
   controlID.style.backgroundColor="white";}


UpdateLocalizationResponseException=function(response)
{
alert(response.responseText);
}


function OpenCase(basePath,data,submitForm,sourceControlID)
{
   basePath=basePath+"&ModuleName=SYS_ACC&WorkAreaName=MANAGE_ACCOUNT_HELPDESK_TICKETS&ViewName=MANAGE_ACCOUNT_HELPDESK_TICKETS&RegionID=Form1";
   basePath=basePath+"&__CASES_FORM1_FORM1_COMMENTS="+data;


   if(!submitForm)
  {      

       var popUp=OpenWindow(basePath,this,'dialogHeight: 800; dialogWidth: 740; edge: Raised; center: Yes; help: No; resizable: Yes; status: No; scrollbars: No;');
       popUp.focus();

  }
   else

  {

       var caseForm=document.forms["caseForm"]

    if((caseForm!=null)&&(sourceControlID!=""))
   {
	    var elem=document.getElementsByName('$$_CASES_FORM1_FORM1_BODY')[0];
	    if(elem!=null)
	   {
		    var sourceControl=document.getElementById(sourceControlID);
		    if(sourceControl!=null)
		   {
			    elem.value=sourceControl.innerHTML;
		   }
	   }
	    caseForm.action=basePath;
	    caseForm.submit();
   }
    else

   {
        alert('No case form found. cannot load case.');
   }  

}}


OpenWindow_dFeatures='dialogHeight: 500; dialogWidth: 700; edge: Raised; center: Yes; help: No; resizable: Yes; status: Yes; scrollbars: Yes;';
OpenWindow_modalWin="";
function OpenWindow(sURL,vArguments,sFeatures)
{

if(sURL==null||sURL=='')
{
	alert("Invalid URL input.");
	return false;
}
if(vArguments==null||vArguments=='')
{
	vArguments='';
}
if(sFeatures==null||sFeatures=='')
{
	sFeatures=OpenWindow_dFeatures;
}
sFeatures=sFeatures.replace(/ /gi,'');
aFeatures=sFeatures.split(";");
sWinFeat="directories=0,menubar=0,titlebar=0,toolbar=0,";
for(x in aFeatures)
{
	aTmp=aFeatures[x].split(":");
	sKey=aTmp[0].toLowerCase();
	sVal=aTmp[1];
	switch(sKey)

{
		case"dialogheight":
			sWinFeat+="height="+sVal+",";
			pHeight=sVal;
			break;
		case"dialogwidth":
			sWinFeat+="width="+sVal+",";
			pWidth=sVal;
			break;
		case"dialogtop":
			if(window.navigator.appVersion.indexOf("MSIE")!=-1)
		{
			    sWinFeat+="top="+sVal+",";							}
			else

		{
			    sWinFeat+="screenY="+sVal+",";			

		}
			break;
		case"dialogleft":
			if(window.navigator.appVersion.indexOf("MSIE")!=-1)
		{
			    sWinFeat+="left="+sVal+",";			

		}
			else

		{
			    sWinFeat+="screenX="+sVal+",";			

		}
			break;
		case"resizable":
			sWinFeat+="resizable="+sVal+",";
			break;
		case"status":
			sWinFeat+="status="+sVal+",";
			break;
		case"scrollbars":
			sWinFeat+="scrollbars="+sVal+",";
			break;
		case"center":
			if(sVal.toLowerCase()=="yes")
		{
				if(window.navigator.appVersion.indexOf("MSIE")!=-1)
			{
					sWinFeat+="top="+((screen.availHeight-pHeight)/2)+",";
					sWinFeat+="left="+((screen.availWidth-pWidth)/2)+",";
				

			}
				else

			{
					sWinFeat+="screenY="+((screen.availHeight-pHeight)/2)+",";
					sWinFeat+="screenX="+((screen.availWidth-pWidth)/2)+",";
			}
		}
			break;
}
}
OpenWindow_modalWin=window.open(String(sURL),"",sWinFeat);
if(vArguments!=null&&vArguments!='')
{
	OpenWindow_modalWin.dialogArguments=vArguments;
}


return OpenWindow_modalWin;}


function GetArrayIndex(array,key)
{
var length=array.length;
for(var i=0;i<length;i++)
{
	if(array[i]==key)
{
		return i;
}
}


return-1;}







function gridCheckAll(me)
{
   var index=me.name.indexOf('_');

   var prefix=me.name.substr(0,index);

   for(var i=0;i<document.forms[0].length;i++)
  {

       var o=document.forms[0][i];

       if(o.type=='checkbox')
      {

           if(me.name!=o.name)
          {
               if(o.name.substring(0,prefix.length)==prefix)
              {
                  
                   o.checked=!me.checked;

                   o.click();

              }
          }
      }

  }
}


function ctxMenuShow(menuId,rowID,evt)
{
evt=(evt)?evt:((window.event)?window.event:null);


   var menuOffset=2

var menu=document.getElementById(menuId);
if(menu==null)return;
if(document.all)
{
   
       menu.style.left=evt.clientX-menuOffset;
       menu.style.top=evt.clientY-menuOffset;
  }
   else

  {
      
       menu.style.left=evt.clientX-menuOffset;
       menu.style.top=evt.clientY-menuOffset;
  }
  

   menu.style.display='block';
   menu.style.visibility='visible';


   var _rowID=document.getElementById('__ROWID');
   if(_rowID!=null)
      _rowID.value=rowID;


   evt.cancelBubble=true;
  

   return false;}


function ctxMenuTrapESC(menuId,evt)
{
   evt=(evt)?evt:((window.event)?window.event:null);
   var target=(evt.target)?evt.target:evt.srcElement;
var charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);



if(charCode==27)
{
    var obj=document.getElementById(menuId);
	obj.style.display='none';
	obj.style.visibility='hidden';
}}


function ctxMenuHide(menuId,evt)
{
   evt=(evt)?evt:((window.event)?window.event:null);
   var obj=document.getElementById(menuId);
   if(obj!=null)
  {
       obj.style.display='none';
       obj.style.visibility='hidden';
  }}




function gridApplyStyle(me,selectedForeColor,selectedBackColor,foreColor,backColor,bold,checkBoxHeaderId)
{

   var td=me.parentNode;

   if(td==null)
       return;

      

   var tr=td.parentNode;
   if(me.checked)
  {

      tr.style.fontWeight=700;
      tr.style.color=selectedForeColor;

      tr.style.backgroundColor=selectedBackColor;

  }

   else

  {

       var elem=document.getElementById(checkBoxHeaderId);
       if(elem!=null)
      {
           elem.checked=false;
      }
       tr.style.fontWeight=bold;

       tr.style.color=foreColor;

       tr.style.backgroundColor=backColor;

  }
}


var mouseOutColor;
function gridMouseOverRow(source,mouseOverColor)
{
mouseOutColor=source.style.backgroundColor;
source.style.backgroundColor=mouseOverColor;}


function gridMouseOutRow(source)
{
source.style.backgroundColor=mouseOutColor;}











YAHOO.util.Connect={};


YAHOO.util.Connect={


_msxml_progid:[
'MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP'

],




_http_header:[],




_isFormPost:false,




_sFormData:null,




_polling_interval:300,




_transaction_id:0,




setProgId:function(id)

{
	this.msxml_progid.unshift(id);
},




createXhrObject:function(transactionId)

{
	var obj,http;
	try

{
	
		http=new XMLHttpRequest();
	
		obj={conn:http,tId:transactionId};
}
	catch(e)

{
		for(var i=0;i<this._msxml_progid.length;++i){
			try

		{
			
				http=new ActiveXObject(this._msxml_progid[i]);
			
				obj={conn:http,tId:transactionId};
		}
			catch(e){}
	}
}
	finally

{
		return obj;
}
},




getConnectionObject:function()

{
	var o;
	var tId=this._transaction_id;


	try

{
		o=this.createXhrObject(tId);
		if(o){
			this._transaction_id++;
	}
}
	catch(e){}
	finally

{
		return o;
}
},




asyncRequest:function(method,uri,callback,postData)

{
	var errorObj;
	var o=this.getConnectionObject();


	if(!o){
		return null;
}
	else{
		var oConn=this;


		o.conn.open(method,uri,true);
	    this.handleReadyState(o,callback);


		if(this._isFormPost){
			postData=this._sFormData;
			this._isFormPost=false;
	}
		else if(postData){
			this.initHeader('Content-Type','application/x-www-form-urlencoded');
	}


	
	
		if(this._http_header.length>0){
			this.setHeader(o);
	}
		postData?o.conn.send(postData):o.conn.send(null);


		return o;
}
},




handleReadyState:function(o,callback)

{
	var oConn=this;
	var poll=window.setInterval(
		function(){
			if(o.conn.readyState==4){
				oConn.handleTransactionResponse(o,callback);
				window.clearInterval(poll);
		}
	}
,this._polling_interval);
},




handleTransactionResponse:function(o,callback)

{
	var httpStatus;
	var responseObject;


	try{
		httpStatus=o.conn.status;
}
	catch(e){
	
	
	
		httpStatus=13030;
}


	if(httpStatus==200){
		responseObject=this.createResponseObject(o,callback.argument);
		if(callback.success){
			if(!callback.scope){
				callback.success(responseObject);
		}
			else{
				callback.success.apply(callback.scope,[responseObject]);
		}
	}
}
	else{
		switch(httpStatus){
		
		
			case 12002:
		
			case 12029:
			case 12030:
			case 12031:
		
			case 12152:
		
			case 13030:
				responseObject=this.createExceptionObject(o,callback.argument);
				if(callback.failure){
					if(!callback.scope){
						callback.failure(responseObject);
				}
					else{
						callback.failure.apply(callback.scope,[responseObject]);
				}
			}
				break;
			default:
				responseObject=this.createResponseObject(o,callback.argument);
				if(callback.failure){
					if(!callback.scope){
						callback.failure(responseObject);
				}
					else{
						callback.failure.apply(callback.scope,[responseObject]);
				}
			}
	}
}


	this.releaseObject(o);
},




createResponseObject:function(o,callbackArg)

{
	var obj={};


	obj.tId=o.tId;
	obj.status=o.conn.status;
	obj.statusText=o.conn.statusText;
	obj.allResponseHeaders=o.conn.getAllResponseHeaders();
	obj.responseText=o.conn.responseText;
	obj.responseXML=o.conn.responseXML;
	if(callbackArg){
		obj.argument=callbackArg;
}


	return obj;
},




createExceptionObject:function(tId,callbackArg)

{
	var COMM_CODE=0;
	var COMM_ERROR='communication failure';


	var obj={};


	obj.tId=tId;
	obj.status=COMM_CODE;
	obj.statusText=COMM_ERROR;
	if(callbackArg){
		obj.argument=callbackArg;
}


	return obj;
},




initHeader:function(label,value)

{
	var oHeader=[label,value];
	this._http_header.push(oHeader);
},




setHeader:function(o)

{
	var oHeader=this._http_header;
	for(var i=0;i<oHeader.length;i++){
		o.conn.setRequestHeader(oHeader[i][0],oHeader[i][1]);
}
	oHeader.splice(0,oHeader.length);
},




setForm:function(formName,sendViewState)

{
	var includeElement=true;


	this._sFormData='';
	var oForm=document.forms[formName];
	var oElement,elName,elValue;


	for(var i=0;i<oForm.elements.length;i++){
		oElement=oForm.elements[i];
		elName=oForm.elements[i].name;
		elValue=oForm.elements[i].value;
	

		if((!sendViewState)&&(elName=="__VIEWSTATE"))
	{
			includeElement=false;
	}
		else

	{
			includeElement=true;
	}
	

		if(includeElement)
	{
			switch(oElement.type)

		{
				case'select-multiple':
					for(var j=0;j<oElement.options.length;j++){
						if(oElement.options[j].selected){
							this._sFormData+=encodeURIComponent(elName)+'='+encodeURIComponent(oElement.options[j].value)+'&';
					}
				}
					break;
				case'radio':
				case'checkbox':
					if(oElement.checked){
						this._sFormData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
				}
					break;
				case'file':
			
					break;
				case undefined:
			
					break;
				default:
					this._sFormData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
					break;
		}
	}
}
	this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);
	this._isFormPost=true;
	this.initHeader('Content-Type','application/x-www-form-urlencoded');
},




abort:function(o)

{
	if(this.isCallInProgress(o)){
		o.conn.abort();
		this.releaseObject(o);
}
},




isCallInProgress:function(o)

{
	if(o){
		return o.conn.readyState!=4&&o.conn.readyState!=0;
}
},




releaseObject:function(o)

{
	
		o.conn=null;
	
		o=null;
}}

function XView(selfID,id,controlID,operationPostData,messageID,sysPath,activePath,basePath)
{
   this.selfID=selfID;

   this.id=id;

  

   this.controlID=controlID;

   this.controlUniqueID=controlID.replace(/\_/gi,'$');

  

   this.messageID=messageID;
   this.waitMessage=null;
   this.waitMessageRefresh=null;
   this.startTime=null;  

  

   if(document.forms["aspnetForm"])
  {
       this.defaultFormID="aspnetForm";
  }
   else

  {
       this.defaultFormID=document.forms[0].id;
  }


   this.viewControlPrefix=this.controlID+"__"+this.id.toUpperCase()+"_";  

   this.viewControlUniquePrefix=this.controlUniqueID+"$_"+this.id.toUpperCase()+"_";
  

   this.gridManager=new GridManager(this);
   this.operationManager=new OperationManager(this,operationPostData);
   this.lookupManager=new LookupManager(this,operationPostData);
   this.validatorManager=new ValidatorManager(this);  

   this.regions=new Array();
   this.rawRegions=null;  

   this.windows=new Array();
  

   this.sysPath=sysPath;
   this.activePath=activePath;
   this.basePath=basePath;
     
}



XView.prototype.OpenWindow=function(applicationID,moduleName,workAreaName,viewName,regionID,serviceID,linkType,extendedQueryString,windowFeatures)
{
   var url;
   if(windowFeatures=="")
  {
       windowFeatures="dialogHeight: 500; dialogWidth: 720; center: Yes; help: No; resizable: Yes; status: No; scrollbars: Yes;";
  }
  

   if(linkType=="popup")
  {
       url=this.sysPath+"/UI/Web/WorkAreas/View.aspx";      

       url+="?aid="+applicationID;
       url+="&ModuleName="+moduleName;
    url+="&WorkAreaName="+workAreaName;
    url+="&ViewName="+encodeURI(viewName);
    url+="&RegionID="+encodeURI(regionID);
    url+="&SvcID="+encodeURI(serviceID);
    url+="&_EnableAutomaticDefaults=false";


    if(extendedQueryString!="")
   {
	    url+=extendedQueryString;
   }


    var popUp=OpenWindow(url,this,windowFeatures);
    popUp.focus();

  }


   if(linkType=="self")
  {
    url=this.basePath+"/Default.aspx";
    url+="?aid="+applicationID;
    url+="&ModuleName="+moduleName;
    url+="&WorkAreaName="+workAreaName;
    url+="&ViewName="+encodeURI(viewName);
    url+="&RegionID="+encodeURI(regionID);
    url+="&SvcID="+encodeURI(serviceID);
    url+="&_EnableAutomaticDefaults=false";


    if(extendedQueryString!="")
   {
	    url+=extendedQueryString;
   }


    location.href=url;
}}


XView.prototype.Initialize=function()
{
   this.LoadRegions();}


XView.prototype.LoadRegions=function()
{          

var rawArray=this.rawRegions.split(';');
for(var i=0;i<rawArray.length;i++)
{
    var data=rawArray[i].split('#');
       if(data.length==2)
   {

        var d0=data[0];
        var d1=data[1];
        	            	    	

        this.regions[this.regions.length]=new Region(d0,d1,this);
   }
}}


XView.prototype.GetRegion=function(regionID)
{

   for(var i=0;i<this.regions.length;i++)
{
    var region=this.regions[i];
    if(region.id==regionID)
   {
        return region

   }
  }  

   return null;}


XView.prototype.GetWindow=function(windowID)
{

   for(var i=0;i<this.windows.length;i++)
  {
       var window=this.windows[i];
       if(window.id==windowID)
      {
           return window

      }
  }
   return null;}


XView.prototype.GetWindowIndex=function(windowID)
{

   for(var i=0;i<this.windows.length;i++)
{
    var window=this.windows[i];
    if(window.id==windowID)
   {
        return i

   }
  }  

   return-1;}


XView.prototype.DeleteWindow=function(windowID)
{

   var index=this.GetWindowIndex(windowID);
   if(index==-1)return;
  

   if(this.windows.length==1)
  {
       delete this.windows[index];
       this.windows=new Array();
  }
   else

  {
       delete this.windows[index];
       this.windows.length-=1;
  } 
}


XView.prototype.GetFields=function()
{
   var result=new Array();
   for(var i=0;i<this.regions.length;i++)
{
    var aux=this.regions[i].fields;
       for(var z=0;z<aux.length;z++)
   {
        result[result.length]=aux[z];
   }   

}
return result;}


XView.prototype.GetField=function(controlID)
{
   var fields=this.GetFields();
   for(var i=0;i<fields.length;i++)
{
    var field=fields[i];
    if(field.controlID==controlID)
   {
        return field

   }
  }  

   return null;}


XView.prototype.ServerResponseException=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;


if(response.argument==null)
{
	alert("XViewHttpResponseException Argument is Null");
	return;
}


try

{
	var callBackData=response.argument.split(";");
	var viewID=callBackData[0];
	var typeID=callBackData[1];
	var targetObjectID=callBackData[2];


	var targetObject=document.getElementById(viewID);
	if(targetObject!=null)
{
		targetObject.innerHTML=responseText;
}
	else

{
	    alert(responseText);
}
}
catch(e)

{
	alert("XViewHttpResponseException: "+e.message+" - "+responseText);
}


if(this.waitMessageRefresh)window.clearInterval(this.waitMessageRefresh);


if(this.waitMessage!=null)
{
	this.waitMessage.style.visibility='hidden';
}


CloseBatchWaitMessage();}


XView.prototype.CreateWaitMessage=function(typeID,sourceControlID,targetControlID)
{
   var referenceObject;
   var offsetWidth;
   var offsetHeight;
   if(typeID==2)
  {
       referenceObject=document.getElementById(targetControlID);
       referenceObject.innerHTML="<div style='HEIGHT:24px;'></div>";
       offsetWidth=5;
       offsetHeight=2;
  }
   else

  {
       referenceObject=document.getElementById(sourceControlID);
       offsetWidth=referenceObject.offsetWidth/2-50;
       offsetHeight=referenceObject.offsetHeight/2-50;
  }
  

   var elem=document.getElementById("XViewHttpRequestWaitMessage");
   if(!elem)
  {
       elem=document.createElement("div");
       elem.id="XViewHttpRequestWaitMessage";
       elem.style.position="absolute";
       elem.style.zIndex=100;    

       document.body.insertBefore(elem,document.body.firstChild);
  }
   else

  {
	elem.style.visibility="visible";
  }
  

   YAHOO.util.Dom.setStyle(elem.id,"opacity",1);
   var html="<table cellspacing=0 cellpadding=0 >"

   html+="<tr><td colspan=2 class='CSS_WC' nowrap align=center><B>"+_$WaitMessage+"</B></td></tr>";
   html+="<tr><td valign=top align=left><img src=\""+this.basePath+"/Shared/Images/wait.gif\" /></td>";
   html+="<td><SPAN id='XViewHttpRequestWaitMessageSeconds' class='CSS_WC_SMALL'></SPAN></td></tr>";  

   elem.innerHTML=html+"</table>";
   var obj=document.getElementById(referenceObject.id);
   if(obj!=null)
  {
	var xy=YAHOO.util.Dom.getXY(obj);
	xy[0]+=offsetWidth;
	xy[1]+=offsetHeight;
	YAHOO.util.Dom.setXY(elem,xy);

}


   this.waitMessage=elem;}


XView.prototype.RefreshWaitMessage=function()
{
var elem=document.getElementById("XViewHttpRequestWaitMessageSeconds");



var actualDate=new Date();
var endTime=actualDate.getTime();
var dif=(endTime-this.startTime)/1000;
var html="<B>"+dif.toString()+"s&nbsp;</B>";
elem.innerHTML=html;}


XView.prototype.ClearWaitMessage=function()
{
if(this.waitMessageRefresh)window.clearInterval(this.waitMessageRefresh);
if(this.waitMessage!=null)
{
	this.waitMessage.style.visibility='hidden';
}}


XView.prototype.CleanFields=function(ctrlPrefixID)
{
   this.CleanFieldsHelper(document.getElementsByTagName("input"),ctrlPrefixID);
   this.CleanFieldsHelper(document.getElementsByTagName("select"),ctrlPrefixID);}


XView.prototype.CleanFieldsHelper=function(ctrls,ctrlPrefixID)
{
   for(var i=0;i<ctrls.length;i++)
  {
       var ctrl=ctrls[i];
       if(ctrl.name.indexOf(ctrlPrefixID)>-1)
      {
           switch(ctrl.type)

          {
               case"checkbox":
                   ctrl.checked=false;
                   break;
               case"select-one":
                   for(var i2=0;i2<ctrl.options.length;i2++)
                  {
                       var option=ctrl.options[i2];
                       if(option.value=='')
                      {
                           option.selected=true;
                      }
                       else

                      {
                           option.selected=false;
                      }
                  }
                   break;
               default:
                   ctrl.value='';
               break;
          }
      }
  }}


XView.prototype.CloseCalendar1=function(data)
{
   var dataArray=data.split("#");
   var windowID=dataArray[0];
   var sourceObjectID=dataArray[1];
   var value=dataArray[2];
  

   var elem=document.getElementById(sourceObjectID);
   if(elem!=null)
  {
       elem.value=value;
      

       if(isMoz)
      {
           var evt=document.createEvent('HTMLEvents');
           evt.initEvent('change',true,false);
           elem.dispatchEvent(evt);
      }
       else

      {          

           elem.fireEvent('onchange')

      }
  }
          

   this.GetWindow(windowID).CloseWindow();      
}


XView.prototype.CloseWindow=function(windowID)
{  

   this.GetWindow(windowID).CloseWindow();}


XView.prototype.CloseWindowAndRedirect=function(windowID,url)
{  

   this.GetWindow(windowID).CloseWindow();
  
  

   location.pathname=decodeURIComponent(url);}
          

XView.prototype.OpenCalendar=function(path,fieldID)
{
   var xwindow=new XWindow(fieldID+"_wnd",this,false,2,15);  



   var callBackFunction1=this.selfID+".CloseCalendar1";
   var callBackFunction2=this.selfID+".CloseWindow";
  

   var field=document.getElementById(fieldID);
   path=path+"&windowID="+xwindow.id;
   path=path+"&sourceObjectID="+fieldID;
   path=path+"&sourceObjectValue="+field.value;
   path=path+"&callBackFunction1="+callBackFunction1;
   path=path+"&callBackFunction2="+callBackFunction2;
  

   xwindow.sourceObjectID=fieldID;
   xwindow.targetObjectID=fieldID;
   xwindow.targetServerURL=path;
   xwindow.formData=""; 

   xwindow.Open("");}


XView.prototype.OpenDoc=function(path,docID,fieldID){
   this.OpenDoc2(path,docID,fieldID,2,15);}


XView.prototype.OpenDoc2=function(path,docID,fieldID,posX,posY)
{
   var xwindow=new XWindow(fieldID+"_dwnd",this,false,posX,posY);  



   path=path+"&windowID="+xwindow.id;
   path=path+"&sourceObjectID="+fieldID;
   path=path+"&sourceObjectValue=";
   path=path+"&callBackFunction1=";
   path=path+"&callBackFunction2=";
  

   xwindow.sourceObjectID=fieldID;
   xwindow.targetObjectID=fieldID;
   xwindow.targetServerURL=path;
   xwindow.formData=""; 

   xwindow.Open("");}


XView.prototype.OpenSideBar=function(path,sourceObjectID)
{
   var xwindow=new XWindow(sourceObjectID+"_sbwnd",this,true,2,24);  



   path=path+"&windowID="+xwindow.id;
   path=path+"&sourceObjectID="+sourceObjectID;
   path=path+"&sourceObjectValue=";
   path=path+"&callBackFunction1=";
   path=path+"&callBackFunction2=";
  

   xwindow.sourceObjectID=sourceObjectID;
   xwindow.targetObjectID=sourceObjectID;
   xwindow.targetServerURL=path;
   xwindow.formData=""; 

   xwindow.Open("");}


XView.prototype.OpenConfigFields=function(path,sourceObjectID)
{
   var xwindow=new XWindow(sourceObjectID+"_cfwnd",this,false,2,15);  

   var callBackFunction1=this.selfID+".CloseWindowAndRedirect";
  

   path=path+"&windowID="+xwindow.id;
   path=path+"&sourceObjectID="+sourceObjectID;
   path=path+"&sourceObjectValue=";
   path=path+"&callBackFunction1="+callBackFunction1;
   path=path+"&callBackFunction2=";
  

   xwindow.sourceObjectID=sourceObjectID;
   xwindow.targetObjectID=sourceObjectID;
   xwindow.targetServerURL=path;
   xwindow.formData=""; 

   xwindow.Open("");}


XView.prototype.OpenFeedback=function(path,sourceObjectID)
{
   var xwindow=new XWindow(sourceObjectID+"_fbwnd",this,false,-240,15);  

   var callBackFunction1=this.selfID+".CloseWindowAndRedirect";
  

   path=path+"&windowID="+xwindow.id;
   path=path+"&sourceObjectID="+sourceObjectID;
   path=path+"&sourceObjectValue=";
   path=path+"&callBackFunction1="+callBackFunction1;
   path=path+"&callBackFunction2=";
  

   xwindow.sourceObjectID=sourceObjectID;
   xwindow.targetObjectID=sourceObjectID;
   xwindow.targetServerURL=path;
   xwindow.formData=""; 

   xwindow.Open("");}


XView.prototype.GetFormData=function(formID,sendViewState,sendEventState,convertChecks){
   if(formID==""){
       formID=this.defaultFormID;
  }


   var includeElement=true;
   var formData='';
   var oForm=document.forms[formID];
   if(oForm==null)return;


   var oElement,elName,elValue;
   for(var i=0;i<oForm.elements.length;i++){
       oElement=oForm.elements[i];
       elName=oForm.elements[i].name;
       elValue=oForm.elements[i].value;


       if((!sendViewState)&&(elName=="__VIEWSTATE")){
           includeElement=false;
      }
       else{
           includeElement=true;
      }


       if(((!sendEventState)&&(elName=="__EVENTTARGET"))||((!sendEventState)&&(elName=="__EVENTARGUMENT"))){
           includeElement=false;
      }
       else{
           includeElement=true;
      }


       if(includeElement){
           switch(oElement.type){
               case'select-multiple':
                   for(var j=0;j<oElement.options.length;j++){
                       if(oElement.options[j].selected){
                           formData+=encodeURIComponent(elName)+'='+encodeURIComponent(oElement.options[j].value)+'&';
                      }
                  }
                   break;
               case'radio':
                   if(oElement.checked){
                       formData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
                  }
                   break;
               case'checkbox':
                   if(convertChecks){
                       var val=0;
                       if(oElement.checked){
                           val=1;
                      }
                       formData+=encodeURIComponent(elName)+'='+encodeURIComponent(val)+'&';
                       var pNode=oElement.parentNode;
                       if((pNode!=null)&&(pNode.getAttribute("data")!=null)){
                           var cbNodeData=pNode.getAttribute("data");
                           formData+=encodeURIComponent(elName)+'='+cbNodeData+'&';
                      }
                  }
                   else{
                       if(oElement.checked){
                           formData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
                      }
                  }
                   break;
               case'file':
                  
                   break;
               case'textarea':
                   if(FTB_API){
                       if(FTB_API[elName]){
                           formData+=encodeURIComponent(elName)+'='+encodeURIComponent(HtmlEncode(elValue))+'&';
                      }
                       else{
                           formData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
                      }
                  }
                   else{
                       formData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
                  }
                   break;
               case undefined:
                  
                   break;
               default:
                   formData+=encodeURIComponent(elName)+'='+encodeURIComponent(elValue)+'&';
                   break;
          }
      }
  }
   return formData.substr(0,formData.length-1);}




XView.prototype.FillCopyDataWithValues=function(copyData,defaultValue)
{
var queryString="";
if(copyData!="")
{
	copyData=decodeURIComponent(copyData);
	var copyDataArray=copyData.split(";");
	for(var i=0;i<copyDataArray.length;i++)
{
		var dataArray=copyDataArray[i].split("#");
	

		var from=dataArray[0];
		var to=dataArray[1];
	

		var data="";
	

		var fromFieldID=this.controlID+"_"+from.toUpperCase();		   

	    if(document.getElementById(fromFieldID)!=null)
	   {		   

	        data=encodeURIComponent(GetFieldData(fromFieldID,from));
	   }
	    else

	   {
	        data=defaultValue;
	   }
	

		if(to.indexOf("-")==0)
	{
			to=to.substring(1,to.length);
			data="-"+data;
	}
	

		queryString+="&_"+to+"="+data;
}
}


return queryString;}







function XWindow(id,view,isSideBar,posX,posY)
{
   this.id=id;
   this.isSideBar=isSideBar;
   this.view=view;
   this.sourceObjectID="";
   this.targetObjectID="";
   this.targetServerURL="";
   this.formData="";
   this.posX=posX;
   this.posY=posY;     

   this.viewState=null;
   this.data=null;
   this.closeWindow=false;
  

 	if(this.view.GetWindow(this.id)==null)
  {
       this.view.windows[this.view.windows.length]=this;
  }
   else

  {
       this.closeWindow=true;
  }}


XWindow.prototype.Open=function(formData)
{
   if(this.closeWindow)
  {
       this.CloseWindow();
  }
   else

  {
       this.OpenHelper(formData);
  }}


XWindow.prototype.OpenHelper=function(formData)
{

var callBackData=this.targetObjectID+";"+this.targetServerURL+";"+formData;
var callBack=
{
	success:this.ServerResponse,
	failure:this.view.ServerResponseException,
	argument:callBackData,
	scope:this

}
          

   var formID=document.forms[0].id;
   var data=this.view.GetFormData(formID,false,false,false);

   if(formData!="")
  {
    data=decodeURIComponent(formData)+"&"+data;
  }
  

var image=document.getElementById(this.sourceObjectID+"_");
if(image!=null)
{
    image.src=image.src.replace("calendar.gif","wait.gif");
}


   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',this.targetServerURL,callBack,data);
}


XWindow.prototype.ServerResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];
	var targetServerURL=callBackData[1];
	var specificRequestFormData=callBackData[2];


	this.CreateWindow(targetObjectID,responseText);

}
catch(e)

{
	alert("Error '"+e.message+"' in XView Server Response");
}


var image=document.getElementById(this.sourceObjectID+"_");
   if(image!=null)
  {
       image.src=image.src.replace("wait.gif","calendar.gif");
  }}


XWindow.prototype.CloseWindow=function()
{
   RemoveElement(this.id);
   RemoveElement(this.id+"_iframe");
  

   this.view.DeleteWindow(this.id);  
}


XWindow.prototype.PostBack=function(eventTarget,eventArgument)
{  

   var formData="__EVENTTARGET="+eventTarget;
   formData+="&__EVENTARGUMENT="+eventArgument;  

   this.Open(formData);
}


XWindow.prototype.CreateWindow=function(sourceObjectID,data)
{


  
  
  
  
  
  
  

   var posStart=data.indexOf("<!--XWINDOW.START-->")+21;
   var posEnd=data.indexOf("<!--XWINDOW.END-->");  

   var section=data.substring(posStart,posEnd);
              

   var postback1=this.view.selfID+".GetWindow('"+this.id+"').PostBack";  

   section=section.replace(/javascript:__doPostBack/g,"javascript:"+postback1);
  

   var postback2=this.view.selfID+".GetWindow(\\'"+this.id+"\\').PostBack";
   section=section.replace(/'__doPostBack/g,"'"+postback2);
   

   section=section.replace(/theForm/g,"theForm_"+sourceObjectID);
   

if(this.isSideBar)
{
    this.LoadSideBarHtml(sourceObjectID,section)

}
else

{
    this.LoadHtml(sourceObjectID,section)

}}


XWindow.prototype.LoadSideBarHtml=function(sourceObjectID,html){
   var xwindowHtml="<DIV>"+html+"</DIV>";


   var elem=document.getElementById(this.id);
   if(!elem){
       elem=document.createElement("div");
       elem.id=this.id;
       elem.style.position="absolute";
       elem.style.visibility="visible";
       elem.style.zIndex=200;


       document.body.insertBefore(elem,document.body.firstChild);


       var frame=document.createElement("iframe");
       frame.id=this.id+"_iframe";
       frame.style.position="absolute";
       frame.style.visibility="visible";
       frame.style.zIndex=200;
       frame.style.backgroundColor="white";
       frame.src="about:blank";
       frame.frameBorder="0";
       frame.scrolling="no";
       document.body.insertBefore(frame,document.body.firstChild);
  }
   else{
       elem.style.visibility="visible";
       elem.style.display="block";


       var frame=document.getElementById(this.id+"_iframe");
       frame.style.visibility="visible";
       frame.style.display="block";
  }


   elem.innerHTML=xwindowHtml;


  


   var masterContainer=document.getElementById("ctl00_mt");
   if(masterContainer!=null){
       elem.style.height=(masterContainer.offsetHeight-60)+"px";
  }


   frame.style.width=elem.offsetWidth+"px";
   frame.style.height=elem.offsetHeight+"px";


   var sourceObject=document.getElementById(sourceObjectID);
   var xy=YAHOO.util.Dom.getXY(sourceObject);
   xy[0]+=this.posX;
   xy[1]+=this.posY;
   YAHOO.util.Dom.setXY(elem,xy);
   YAHOO.util.Dom.setXY(frame,xy);
   YAHOO.util.Dom.setStyle(elem.id,"opacity",1);
   YAHOO.util.Dom.setStyle(frame.id,"opacity",1);

}


XWindow.prototype.LoadHtml=function(sourceObjectID,html)
{
var xwindowHtml="<TABLE class='XW_TABLE' cellspacing=1 cellpadding=2><TR><TD align=right><img src='"+this.view.basePath+"/Shared/Images/close.gif"+"' onclick=\""+this.view.selfID+".GetWindow('"+this.id+"').CloseWindow();\"></TD></TR>";
xwindowHtml+="<TR><TD><DIV>"+html+"</DIV></TD></TR></TABLE>";


   var elem=document.getElementById(this.id);
   if(!elem)
  {  

       elem=document.createElement("div");
       elem.id=this.id;
       elem.className="XW_DIV";
       elem.style.position="absolute";
       elem.style.visibility="visible";
       elem.style.zIndex=100;
     

       document.body.insertBefore(elem,document.body.firstChild);
      

	var frame=document.createElement("iframe");
	frame.id=this.id+"_iframe";
	frame.style.position="absolute";
	frame.style.visibility="visible";
	frame.src="about:blank";
	frame.frameBorder="0";
	frame.scrolling="no";
	document.body.insertBefore(frame,document.body.firstChild);	

  }
   else

  {
       elem.style.visibility="visible";      

	elem.style.display="block";

	var frame=document.getElementById(this.id+"_iframe");
       frame.style.visibility="visible";      

	frame.style.display="block";
  }
  

   elem.innerHTML=xwindowHtml;
  

   frame.style.width=elem.offsetWidth;
frame.style.height=elem.offsetHeight;


   var sourceObject=document.getElementById(sourceObjectID);
   if(sourceObject!=null)
  {
    var xy=YAHOO.util.Dom.getXY(sourceObject);
    xy[0]+=this.posX;
    xy[1]+=this.posY;
    YAHOO.util.Dom.setXY(elem,xy);

    YAHOO.util.Dom.setXY(frame,xy);

       YAHOO.util.Dom.setStyle(elem.id,"opacity",1);
    YAHOO.util.Dom.setStyle(frame.id,"opacity",1);

}}







var sUserAgent=navigator.userAgent;


var isKHTML=sUserAgent.indexOf("KHTML")>-1

            ||sUserAgent.indexOf("Konqueror")>-1

            ||sUserAgent.indexOf("AppleWebKit")>-1;

            

var isIE=sUserAgent.indexOf("compatible")>-1

         &&sUserAgent.indexOf("MSIE")>-1;
         

var isMoz=sUserAgent.indexOf("Gecko")>-1

          &&!isKHTML;
          

          

Function.prototype.bind=function()
{

  var __method=this,args=$A(arguments),object=args.shift();

  return function()

 {

    return __method.apply(object,args.concat($A(arguments)));

 }
}



Function.prototype.bindAsEventListener=function()
{

  var __method=this,args=$A(arguments),object=args.shift();

  return function(event)

 {

    return __method.apply(object,[event||window.event].concat(args));

 }
}



var $A=Array.from=function(iterable){
 if(!iterable)return[];
 if(iterable.toArray){
   return iterable.toArray();
}else{
   var results=[];
   for(var i=0;i<iterable.length;i++)
     results.push(iterable[i]);
   return results;
}}




function XmlDom()
{
   if(window.ActiveXObject)
  {
       var arrSignatures=["MSXML2.DOMDocument.5.0","MSXML2.DOMDocument.4.0",
                           "MSXML2.DOMDocument.3.0","MSXML2.DOMDocument",
                           "Microsoft.XmlDom"];
                       

       for(var i=0;i<arrSignatures.length;i++){
           try{
      

               var oXmlDom=new ActiveXObject(arrSignatures[i]);
          

               return oXmlDom;
      

          }catch(oError){
              
          }
      }        



       throw new Error("MSXML is not installed on your system.");

            

  }

   else if(document.implementation&&document.implementation.createDocument)
  {
      

       var oXmlDom=document.implementation.createDocument("","",null);


       oXmlDom.parseError={
           valueOf:function(){return this.errorCode;},
           toString:function(){return this.errorCode.toString()}
      };
      

       oXmlDom.__initError__();
              

       oXmlDom.addEventListener("load",function(){
           this.__checkForErrors__();
           this.__changeReadyState__(4);
      },false);


       return oXmlDom;      

      

  }

   else

  {
       throw new Error("Your browser doesn't support an XML DOM object.");
  }}


if(isMoz){
   Document.prototype.readyState=0;
   Document.prototype.onreadystatechange=null;


   Document.prototype.__changeReadyState__=function(iReadyState){
       this.readyState=iReadyState;


       if(typeof this.onreadystatechange=="function"){
           this.onreadystatechange();
      }
  };


   Document.prototype.__initError__=function(){
       this.parseError.errorCode=0;
       this.parseError.filepos=-1;
       this.parseError.line=-1;
       this.parseError.linepos=-1;
       this.parseError.reason=null;
       this.parseError.srcText=null;
       this.parseError.url=null;
  };
  

   Document.prototype.__checkForErrors__=function(){


       if(this.documentElement.tagName=="parsererror"){


           var reError=/>([\s\S]*?)Location:([\s\S]*?)Line Number (\d+), Column (\d+):<sourcetext>([\s\S]*?)(?:\-*\^)/;


           reError.test(this.xml);
          

           this.parseError.errorCode=-999999;
           this.parseError.reason=RegExp.$1;
           this.parseError.url=RegExp.$2;
           this.parseError.line=parseInt(RegExp.$3);
           this.parseError.linepos=parseInt(RegExp.$4);
           this.parseError.srcText=RegExp.$5;
      }
  };
  

      

   Document.prototype.loadXML=function(sXml){
  

       this.__initError__();
  

       this.__changeReadyState__(1);
  

       var oParser=new DOMParser();
       var oXmlDom=oParser.parseFromString(sXml,"text/xml");
       oXmlDom.normalize();


       while(this.firstChild){
           this.removeChild(this.firstChild);
      }


       for(var i=0;i<oXmlDom.childNodes.length;i++){
           var oNewNode=this.importNode(oXmlDom.childNodes[i],true);
           this.appendChild(oNewNode);
      }
      

       this.__checkForErrors__();
      

       this.__changeReadyState__(4);


  };
  

   Document.prototype.__load__=Document.prototype.load;


   Document.prototype.load=function(sURL){
       this.__initError__();
       this.__changeReadyState__(1);
       this.__load__(sURL);
  };
  

   Node.prototype.__defineGetter__("xml",function(){
       var oSerializer=new XMLSerializer();
       return oSerializer.serializeToString(this,"text/xml");
  });
      

   Element.prototype.selectNodes=function(sXPath)

  {
       var oEvaluator=new XPathEvaluator();
       var oResult=oEvaluator.evaluate(sXPath,this,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
       var aNodes=new Array;
       if(oResult!=null)
      {
           var oElement=oResult.iterateNext();
           while(oElement)
          {
               aNodes.push(oElement);
               oElement=oResult.iterateNext();
          }
      }
       return aNodes;
  };

}


function GetXmlDom(xml)
{
   var oXmlDom=new XmlDom();      

   oXmlDom.onreadystatechange=function()

  {
       if(oXmlDom.readyState==4)
      {
           if(oXmlDom.parseError!=0)
          {
               var oError=oXmlDom.parseError;
               alert("An error occurred:\nError Code: "

                    +oError.errorCode+"\n"

                    +"Line: "+oError.line+"\n"

                    +"Line Pos: "+oError.linepos+"\n"

                    +"Reason: "+oError.reason);


          }
      }
  }      

   oXmlDom.loadXML(xml);
   return oXmlDom;}


function GetNodeValue(node)
{
   var result;
   if(isMoz)
  {
       result=node.textContent;
  }
   else

  {
       result=node.firstChild.nodeValue;
  }
   return result;}


var whitespace="\n\r\t ";var quotes="\"'";



function convertEscapes(str){var gt;gt=-1;while(str.indexOf("&lt;",gt+1)>-1){var gt=str.indexOf("&lt;",gt+1);var newStr=str.substr(0,gt);newStr+="<";newStr=newStr+str.substr(gt+4,str.length);str=newStr;}
gt=-1;while(str.indexOf("&gt;",gt+1)>-1){var gt=str.indexOf("&gt;",gt+1);var newStr=str.substr(0,gt);newStr+=">";newStr=newStr+str.substr(gt+4,str.length);str=newStr;}
gt=-1;while(str.indexOf("&amp;",gt+1)>-1){var gt=str.indexOf("&amp;",gt+1);var newStr=str.substr(0,gt);newStr+="&";newStr=newStr+str.substr(gt+5,str.length);str=newStr;}
return str;}


function convertToEscapes(str){var gt=-1;while(str.indexOf("&",gt+1)>-1){gt=str.indexOf("&",gt+1);var newStr=str.substr(0,gt);newStr+="&amp;";newStr=newStr+str.substr(gt+1,str.length);str=newStr;}
gt=-1;while(str.indexOf("<",gt+1)>-1){var gt=str.indexOf("<",gt+1);var newStr=str.substr(0,gt);newStr+="&lt;";newStr=newStr+str.substr(gt+1,str.length);str=newStr;}
gt=-1;while(str.indexOf(">",gt+1)>-1){var gt=str.indexOf(">",gt+1);var newStr=str.substr(0,gt);newStr+="&gt;";newStr=newStr+str.substr(gt+1,str.length);str=newStr;}
return str;}
                              

function ConvertToBoolean(b)
{
if(b.toLowerCase()=="true")
{
	return true;
}
else

{
	return false;
}}


function RemoveElement(elemID)
{
var elem=document.getElementById(elemID);
if(elem!=null)
{
	elem.parentNode.removeChild(elem);
}}


function GetFieldData(fieldID,fieldName)
{
var result="";
var oElement=document.getElementById(fieldID);
if(oElement!=null)
{
	switch(oElement.type)

{
		case'select-multiple':
			for(var j=0;j<oElement.options.length;j++)
		{
				if(oElement.options[j].selected)
			{
					result=oElement.options[j].value;
			}
		}
			break;
		case'radio':
			result=oElement.value;
			break;
		case'checkbox':
			var val=0;
			if(oElement.checked)
		{
				val=1;
		}
			result=val;
			break;
		default:
			result=oElement.value;
			if(result==null)
		{
			    result=GetFieldRadioButtonListData(oElement,fieldID);
		}
			break;
}
}
return result;}


function GetFieldRadioButtonListData(container,fieldID)
{      

   var controls=container.getElementsByTagName("input");      

   for(var i=0;i<controls.length;i++)
  {
       var control=controls[i];
       if((control.type=="radio")&&(control.checked))
      {
           return control.value;
      }
  }
   return"";}


function SetFocus(name)
{

var field=document.getElementById(name);
if(field!=null)
{
	try

{
		field.focus();
}
	catch(e)

{
}
}
return false;}


function HtmlDecode(text)
{
if(typeof(text)!="string")
	text=text.toString();


text=text.replace(/&amp;/g,"&");
text=text.replace(/&quot;/g,"\"");
text=text.replace(/&lt;/g,"<");
text=text.replace(/&gt;/g,">");
text=text.replace(/&#146;/g,"'");


return text;}


function HtmlEncode(text)
{
if(typeof(text)!="string")
	text=text.toString();


text=text.replace(/&/g,"&amp;");
text=text.replace(/"/g,"&quot;");
text=text.replace(/</g,"&lt;");
text=text.replace(/>/g,"&gt;");
text=text.replace(/'/g,"&#146;");


return text;}


function ShowHTML(title,html)
{
var wind=window.open('',title,'');

wind.document.open();
wind.document.write('<B>'+title+'</B>');
wind.document.write('<BR><BR>');
wind.document.write(convertToEscapes(html));

wind.document.close();}







function CreateWebBox(fieldId,fieldValue,webTaskType)
{

   var container=document.getElementById(_$XViewClientID);


var id=fieldId+"_WebBox";
   var elem=document.getElementById(id);
   if(!elem)
  {
       elem=document.createElement("div");
       elem.id=id;
       elem.style.position="absolute";
       elem.style.visibility="visible";
       elem.style.display="block";
       document.body.insertBefore(elem,document.body.firstChild);
  }
  

   if(elem.style.visibility!="visible")
  {
       elem.style.visibility="visible";
       elem.style.display="block";
  }
  

  
   var tableConfig="";
if(isIE)
  {
	tableConfig="border=0 cellspacing=3 cellpadding=1";
  }
  

var html="<TABLE "+tableConfig+" ><TR><TD align=right><img src='"+_$WebPath+"/Shared/Images/close.gif"+"' onclick=\"CloseWebBox('"+elem.id+"');\"></TD></TR>";
if(GetWebTaskTypeName(webTaskType,fieldId)=="map"){
	try

{
		var mapContainerID=elem.id+"_map";
		html+="<TR><TD class=\"XDV_WEBBOX_MAP\"><DIV id="+mapContainerID+"></DIV></TD></TR></TABLE>";
		elem.innerHTML=html;
		fieldValue=fieldValue.replace("MAPCONTAINERCLIENTID",mapContainerID);
		eval(fieldValue);
}
	catch(e)

{
		var message="Error '"+e.message+"' in processing map web rule "+fieldValue;
		CloseBatchWaitMessage();
		CloseWebBox(elem.id);
}
}
else

{
	var style="";
    if(isIE)
      {
		style="Style='HEIGHT:198px;overflow: auto;'";
      }
	html+="<TR><TD class=\"XDV_WEBBOX\"><DIV "+style+">"+fieldValue+"</DIV></TD></TR></TABLE>"

	elem.innerHTML=html;
}


   

   if(container!=null)
  {
	var xy=YAHOO.util.Dom.getXY(container);
	xy[0]+=container.offsetWidth+2;
	xy[1]+=5;
	YAHOO.util.Dom.setXY(elem,xy);

}}


function CloseWebBox(id)
{
   var elem=document.getElementById(id);
   if(elem!=null)
  {
	elem.style.visibility="hidden";
	elem.style.display="none";
  }}


function GetWebTaskTypeName(webTaskType,fieldId)
{
var result="";
if(webTaskType!="")
{
	var webTaskTypeArray=webTaskType.split(";");
	for(var i=0;i<webTaskTypeArray.length;i++)
{
		var type=webTaskTypeArray[i].split("=");
		if((type!="")&&(type.length==2))
	{
			if(type[0].toLowerCase()==fieldId.toLowerCase())
		{
				result=type[1];
				break;
		}
	}
}
}
return result;}


function ProcessBatch(targetServerURL,targetObject,specificRequestFormData,batchData)
{


CreateBatchWaitMessage();


var callBackData=targetObject.id;
var callBack=
{
	success:XViewHttpBatchResponse,
	failure:XViewHttpResponseException,
	argument:callBackData,
	scope:this

}


var data=this.GetFormData("",false,true,true);	

if(specificRequestFormData!="")
{
	data=decodeURIComponent(_$OperationPostData)+"&"+decodeURIComponent(specificRequestFormData)+"&"+data;
}
else

{
	data=decodeURIComponent(_$OperationPostData)+"&"+data;
}
var primaryKeyValue="";
var aux=eval("document.forms[0]."+GetXData("defaultTablePrimaryKey",_$OperationPostData));
if(aux!=null)
{
	primaryKeyValue=aux.value;
}
data+="&defaultTablePrimaryValue="+primaryKeyValue;


data=SetXData("xmlRequestData",batchData,data);


var callBackObjectWebRules=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,data);}


XView.prototype.CreateBatchWaitMessage=function()
{
   var elem=document.getElementById("XViewHttpRequestBatchWaitMessage");
   if(!elem)
  {
       elem=document.createElement("div");
       elem.id="XViewHttpRequestBatchWaitMessage";
       elem.style.position="absolute";
       elem.style.visibility="visible";
       document.body.insertBefore(elem,document.body.firstChild);
  }
   else

  {
	elem.style.visibility="visible";
  }
  

   elem.innerHTML="<img src=\""+this.basePath+"/Shared/Images/wait2.gif\" />";
  

   var obj=document.getElementById(this.controlID);
   if(obj!=null)
  {
	var xy=YAHOO.util.Dom.getXY(obj);
	xy[0]+=-2;
	xy[1]+=-9;
	YAHOO.util.Dom.setXY(elem,xy);

}}


function CloseBatchWaitMessage()
{
   var elem=document.getElementById("XViewHttpRequestBatchWaitMessage");
   if(elem)
  {
	elem.style.visibility='hidden';
}}


function XViewHttpBatchResponse(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];
	var targetObject=document.getElementById(targetObjectID);
	ProcessOperation(responseText,targetObject,"","",true);
}
catch(e)

{
	alert("Error in executing web rules. "+e.message);
}


CloseBatchWaitMessage();}



//************************************************************************************************************

function Region(id,controlID,view)
{
   this.id=id;
   this.controlID=controlID;              

   this.view=view;
   this.rawFields=null;
   this.fields=new Array();  

   this.rawLinks=null;
   this.links=new Array();
   this.viewFields=new Array();
  

   this.webPath=null;  

   this.imagePath=null;  

  

   this.imageLeft=null;
   this.imageMiddle=null;
   this.imageRight=null;
  

   this.activeImageLeft=null;
   this.activeImageMiddle=null;
   this.activeImageRight=null;
 

   this.imageActions=null;
   this.activeImageActions=null;}


function Field(id,type,metaData,region)
{     

   this.id=id;
   this.type=type;             

   this.region=region;
   this.metaData=metaData;
   this.controlID=this.region.view.viewControlPrefix+region.id.toUpperCase()+"_"+id.toUpperCase();          	    	
}


function Link(key,applicationID,moduleName,workAreaName,viewName,targetRegionID,serviceID,width,height,linkType,copyData,targetRegionID,fieldPrefix,windowFeatures,region)
{
   this.key=key;

   this.applicationID=applicationID;
   this.moduleName=moduleName;

   this.workAreaName=workAreaName;

   this.viewName=viewName;

   this.serviceID=serviceID;

   this.width=width;
   this.height=height;

   this.linkType=linkType;

   this.copyData=copyData;

   this.targetRegionID=targetRegionID;
   this.fieldPrefix=fieldPrefix;
   this.windowFeatures=windowFeatures;
   this.region=region;}


function ViewField(id,targetViewName,targetRegionID,configPath,serviceID,copyData,targetURL,region)
{     

   this.id=id;
   this.targetViewName=targetViewName;
   this.targetRegionID=targetRegionID;
   this.configPath=configPath;
   this.serviceID=serviceID;
   this.copyData=copyData;
   this.targetURL=targetURL;
   this.region=region;
   this.fieldPrefix=this.region.view.viewControlPrefix+region.id.toUpperCase()+"_";        	    	

   this.controlID=this.fieldPrefix+id.toUpperCase();
}


Region.prototype.Initialize=function(imagePath,webPath)
{
   this.imagePath=imagePath;
   this.webPath=webPath;
   this.LoadFields();
   this.LoadLinks();
  

   if(this.viewFields.length>0)
  {
       this.FillViewFields();
  }}
 

Region.prototype.AddViewField=function(id,targetViewName,targetRegionID,configPath,serviceID,copyData,targetURL)
{
   this.viewFields[this.viewFields.length]=new ViewField(id,targetViewName,targetRegionID,configPath,serviceID,copyData,targetURL,this);}


Region.prototype.FillViewFields=function()
{
  	for(var i=0;i<this.viewFields.length;i++)
{
    var viewField=this.viewFields[i];
       viewField.Open();
}}


ViewField.prototype.Open=function()
{   

   var targetServerURL=this.targetURL+"&ConfigPath="+this.configPath+"&ViewName="+this.targetViewName;  

   targetServerURL=targetServerURL+"&SvcID="+this.serviceID;
   targetServerURL=targetServerURL+"&RegionID="+this.targetRegionID;


var data=this.region.view.FillCopyDataWithValues(this.copyData,"");


   targetServerURL=targetServerURL+data;


   var formData="";
  

var callBackData=this.controlID+";";
var callBack=
{
	success:this.ServerResponse,
	failure:this.region.view.ServerResponseException,
	argument:callBackData,
	scope:this

}
          

   var data=this.region.view.GetFormData("",false,true,true);

   if(formData!="")
  {
    data=decodeURIComponent(formData)+"&"+data;
  }
  

   var sourceObject=document.getElementById(this.controlID);
   if(sourceObject!=null)
  {
       var elem=document.createElement("img");
       elem.id=this.controlID+"_";
       elem.style.position="absolute";
       elem.style.zIndex=100;
       elem.src=this.region.view.basePath+"/Shared/Images/wait.gif";    

       sourceObject.insertBefore(elem,sourceObject.firstChild);
  }
  

   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,data);
}


ViewField.prototype.ServerResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];


	this.Load(targetObjectID,responseText);

}
catch(e)

{
	alert("Error '"+e.message+"' in ViewField Server Response");
}}


ViewField.prototype.Load=function(targetObjectID,data)
{
   var targetObject=document.getElementById(targetObjectID);
  

  
  

   var posStart=data.indexOf("<script type=\"text/javascript\">var caseF");
  

   var posEnd=data.indexOf("<!--XVIEW.END-->");
  

   var html=data.substring(posStart,posEnd);
  

  


try

{
    html="<table cellspacing=0 cellpadding=0><tr><td>"+html+"</td></tr></table>";
       targetObject.innerHTML=html;
      
       execJS(targetObject);
}
catch(e)

{
	alert("Error '"+e.message+"'. Cannot load viewfield "+targetObjectID);
	ShowHTML('RAW',data);
	ShowHTML('FILTERED',html);
}}


function execJS(node)
{
 var bSaf=(navigator.userAgent.indexOf('Safari')!=-1);
 var bOpera=(navigator.userAgent.indexOf('Opera')!=-1);
 var bMoz=(navigator.appName=='Netscape');


 if(!node)return;




 var st=node.getElementsByTagName('SCRIPT');
 var strExec;


 for(var i=0;i<st.length;i++)
{
   if(bSaf){
     strExec=st[i].innerHTML;
     st[i].innerHTML="";
  }else if(bOpera){
     strExec=st[i].text;
     st[i].text="";
  }else if(bMoz){
     strExec=st[i].textContent;
     st[i].textContent="";
  }else{
     strExec=st[i].text;
     st[i].text="";
  }


   try{
     var x=document.createElement("script");
     x.type="text/javascript";


    

     if((bSaf)||(bOpera)||(bMoz))
       x.innerHTML=strExec;
     else x.text=strExec;


     document.getElementsByTagName("head")[0].appendChild(x);
  }catch(e){
     alert(e);
  }
}}


Region.prototype.LoadFields=function()
{          

   if(this.rawFields=="")return;
  

var rawArray=this.rawFields.split(';');
for(var i=0;i<rawArray.length;i++)
{
    var data=rawArray[i].split('#');
       if(data.length==3)
   {

        var d0=data[0];
        var d1=data[1];
        var d2=data[2];


        this.fields[this.fields.length]=new Field(d0,d1,d2,this);
   }
}}


Region.prototype.LoadLinks=function()
{          

   if(this.rawLinks=="")return;
  

var dataArray=this.rawLinks.split('#$#');
for(var i=0;i<dataArray.length;i++)
{
	var data=dataArray[i];

	if(data!="")
{
        var linkData=data.split('|');

          	   

        var key=linkData[0];       

        var applicationID=linkData[1];
        var moduleName=linkData[2];
        var workAreaName=linkData[3];
        var viewName=linkData[4];
        var serviceID=linkData[5];
        var width=linkData[6];
        var height=linkData[7];
        var type=linkData[8];
        var copyData=linkData[9];
        var windowFeatures=linkData[10];
        var targetRegionID=linkData[11];       

   	                   

        var fieldPrefix=this.view.viewControlPrefix+this.id.toUpperCase()+"_";
   	    	

        this.links[this.links.length]=new Link(key,applicationID,moduleName,workAreaName,viewName,targetRegionID,serviceID,width,height,type,copyData,targetRegionID,fieldPrefix,windowFeatures,this); 

   }
}}


Region.prototype.GetLink=function(key)
{
   for(var i=0;i<this.links.length;i++)
{
    var link=this.links[i];
    if(link.key==key)
   {
        return link

   }
  }  

   return null;}


Region.prototype.ShowXTab=function(selectedID,contentPrefix,buttonPrefix,parentFieldSetID,imageCode,activeImageCode)

{
   this.InitializeImagePaths(imageCode,activeImageCode);
 for(var i=1;i<=9;i++)
{
	 var tabContentID=this.view.controlID+"_"+contentPrefix+parentFieldSetID+i;
	 var tabContent=document.getElementById(tabContentID);
	

	 var tabButtonID=this.view.controlID+"_"+buttonPrefix+parentFieldSetID+i;
	 var tabButton=document.getElementById(tabButtonID);
	

	 var tabButtonL=document.getElementById(tabButtonID+'_CL');
	 var tabButtonM=document.getElementById(tabButtonID+'_CM');
	 var tabButtonMI=document.getElementById(tabButtonID+'_CMI');
	 var tabButtonR=document.getElementById(tabButtonID+'_CR');
	

	 if((tabContent!=null)&&(tabButton!=null))
	{
	     if(i==selectedID)
	    {
		     tabContent.style.display='block';
		     tabContent.style.visibility='visible';
		     tabButtonL.src=this.activeImageLeft;
		     tabButtonM.style.backgroundImage='url('+this.activeImageMiddle+')';		    

		     if(tabButtonMI!=null)
		    {
		        tabButtonMI.style.backgroundImage='url('+this.activeImageMiddle+')';
		    }
		     tabButtonR.src=this.activeImageRight;
		}
	     else

	    {
		     tabContent.style.display='none';
		     tabContent.style.visibility='hidden';
		     tabButtonL.src=this.imageLeft;
		     tabButtonM.style.backgroundImage='url('+this.imageMiddle+')';
		     if(tabButtonMI!=null)
		    {
		        tabButtonMI.style.backgroundImage='url('+this.imageMiddle+')';
		    }
		     tabButtonR.src=this.imageRight;
	    }
	}
}
}
  

Region.prototype.ShowXBox=function(selectedID,contentPrefix,buttonPrefix,parentFieldSetID,imageCode,activeImageCode)

{
    this.InitializeImagePaths(imageCode,activeImageCode);
 for(var i=1;i<=9;i++)
{
	 var boxContentID=this.view.controlID+"_"+contentPrefix+parentFieldSetID+i;
	 var boxContent=document.getElementById(boxContentID);
	

	 var boxButtonID=this.view.controlID+"_"+buttonPrefix+parentFieldSetID+i;
	 var boxButton=document.getElementById(boxButtonID);
	

	 var boxButtonL=document.getElementById(boxButtonID+'_CL');
	 var boxButtonM=document.getElementById(boxButtonID+'_CM');
	 var boxButtonR=document.getElementById(boxButtonID+'_CR');
	

		 var expandButton=document.getElementById(boxButtonID+'_CEXP');


	 if((boxContent!=null)&&(boxButton!=null))
	{
	     if(i==selectedID)
	    {
		     if(boxContent.style.visibility=='hidden')
		    {
		         boxContent.style.display='block';
		         boxContent.style.visibility='visible';
		         if(boxButtonL!=null)boxButtonL.src=this.activeImageLeft;
		         if(boxButtonL!=null)boxButtonM.style.backgroundImage='url('+this.activeImageMiddle+')';
		         if(boxButtonR!=null)boxButtonR.src=this.activeImageRight;
		         if(expandButton!=null)expandButton.src=this.activeImageActions;
		    }
		     else

		    {
		         boxContent.style.display='none';
		         boxContent.style.visibility='hidden';
		         if(boxButtonL!=null)boxButtonL.src=this.imageLeft;
		         if(boxButtonL!=null)boxButtonM.style.backgroundImage='url('+this.imageMiddle+')';
		         if(boxButtonR!=null)boxButtonR.src=this.imageRight;
		         if(expandButton!=null)expandButton.src=this.imageActions;
		    }
	    }
	}
}
}


Region.prototype.InitializeImagePaths=function(imageCode,activeImageCode){
   this.imageLeft=this.imagePath+"/"+imageCode+"-left.gif";
   this.imageMiddle=this.imagePath+"/"+imageCode+".gif";
   this.imageRight=this.imagePath+"/"+imageCode+"-right.gif";
  

   this.activeImageLeft=this.imagePath+"/"+activeImageCode+"-left.gif";
   this.activeImageMiddle=this.imagePath+"/"+activeImageCode+".gif";
   this.activeImageRight=this.imagePath+"/"+activeImageCode+"-right.gif";
      

   this.imageActions=this.imagePath+"/"+imageCode+"-actions.gif";
   this.activeImageActions=this.imagePath+"/"+activeImageCode+"-actions.gif";}

var notifyAllExistsValidatorMessages=false;
function ValidatorManager(view)
{
   this.view=view;
   this.validatorCleanMessage=null;
   this.validatorCleanImagePath=null;
   this.rawOperationValidators=null;
   this.rawValidatorMessages=null;

  

   this.operationValidators=new Array();
   this.validatorMessages=new Array();      
}


function OperationValidator(docID,regionID,fieldID,controlID,isRequired,validateType)
{
   this.docID=docID;
   this.regionID=regionID;
   this.fieldID=fieldID;
   this.isRequired=isRequired;
   this.validateType=validateType;                     

   this.controlID=controlID;}


function ValidatorMessage(type,message)
{
   this.type=type;
   this.message=message;             
}


ValidatorManager.prototype.Initialize=function(validatorCleanMessage,validatorCleanImagePath)
{
   this.validatorCleanMessage=decodeURIComponent(validatorCleanMessage);
   this.validatorCleanImagePath=decodeURIComponent(validatorCleanImagePath);
  

   this.LoadOperationValidators();
   this.LoadValidatorMessages();}


ValidatorManager.prototype.LoadOperationValidators=function()
{          

var rawArray=this.rawOperationValidators.split(';');
for(var i=0;i<rawArray.length;i++)
{
    var data=rawArray[i].split('#');
    if(data.length==5)
   {   

        var d0=data[0];
        var d1=data[1];
        var d2=data[2];
        var d3=data[3];
        var d4=data[4];


        var controlID=this.view.viewControlPrefix+d1.toUpperCase()+"_"+d2.toUpperCase();
   	    	    	

        this.operationValidators[this.operationValidators.length]=new OperationValidator(d0,d1,d2,controlID,d3,d4);
   }
}}


ValidatorManager.prototype.LoadValidatorMessages=function()
{          

var rawArray=this.rawValidatorMessages.split(';');
for(var i=0;i<rawArray.length;i++)
{
    var data=rawArray[i].split('#');
       if(data.length==2)
   {

        var d0=data[0];
        var d1=data[1];    	    	

        this.validatorMessages[d0]=new ValidatorMessage(d0,d1);
   }
}}


ValidatorManager.prototype.ValidateFields=function(sourceObjectID,operationId)
{

this.CleanValidatorMessages(sourceObjectID);

var allElementsValid=true;
for(var i=0;i<this.operationValidators.length;i++)
{
	var validator=this.operationValidators[i];
	if(validator.docID==operationId)
{
        var elementIsValid=this.ValidateField(validator);
        if((!elementIsValid)&&(allElementsValid))
       {
            allElementsValid=false;
       }
   }
}


var cleanerId=sourceObjectID+"_ValidatorButtonCleaner";

var cleaner=document.getElementById(cleanerId);
if(!allElementsValid)
{
	if(cleaner==null)
{
		cleaner=document.createElement("div");
		cleaner.id=cleanerId;
		cleaner.className="XDV_V";
		cleaner.style.position="absolute";
		cleaner.style.visibility="visible";
		document.body.insertBefore(cleaner,document.body.firstChild);
		var html="<A href='javascript:void(null)' onclick='"+this.view.selfID+".validatorManager.CleanValidatorMessages(\""+sourceObjectID+"\"); return false;'><img id='imgCleanValidatorMessages' src='"+decodeURIComponent(this.validatorCleanImagePath)+"' alt='"+decodeURIComponent(this.validatorCleanMessage)+"' border='0' style='vertical-align:middle;margin:5px'/></A>";
		html+=this.validatorCleanMessage;
		cleaner.innerHTML=html;
}


	var region=document.getElementById(sourceObjectID);
	if(region!=null)
{
		var xy=YAHOO.util.Dom.getXY(region);
		xy[0]+=-10;
		xy[1]+=-21;
		YAHOO.util.Dom.setXY(cleaner,xy);
}

}
else

{
	if(cleaner!=null)
{
		RemoveElement(cleanerId);
}
}


   notifyAllExistsValidatorMessages=!allElementsValid;


return allElementsValid;}


ValidatorManager.prototype.ValidateRadioButtonList=function(validator,element)
{      

   var controls=element.getElementsByTagName("input");      

   for(var i=0;i<controls.length;i++)
  {
       var control=controls[i];
       if((control.type=="radio")&&(control.checked))      {
           control.checked=true;

           return true;
      }
  }
   return false;}


ValidatorManager.prototype.ValidateField=function(validator)
{

var elementIsValid=true;
var value="";
var messageType="isrequired";


var element=document.getElementById(validator.controlID);
if(element==null)return;


var notEmpty=true;


value=element.value;
if(value==null)
{

    if(validator.isRequired==1)
   {
        notEmpty=this.ValidateRadioButtonList(validator,element);
        validator.validateType=0;
   }
    else

   {
        return;
   }
}
else

{
    notEmpty=ValidateNotEmpty(value);
}


if((validator.isRequired==1)&&(!notEmpty))
{
	elementIsValid=false;
	messageType="isrequired";
}


if(validator.validateType==1)
{
	var type=this.view.GetField(validator.controlID).type;
	messageType=type;
	switch(type)

{
		case'int':
			elementIsValid=ValidateInteger(value);
			break;
		case'decimal':
			elementIsValid=ValidateNumeric(value);
			break;
		case'currency':
			elementIsValid=ValidateNumeric(value);
			break;
		case'email':
			elementIsValid=ValidateEmail(value);
			break;
		case'shortdate':
		case'longdate':
		
		
		

			elementIsValid=ValidateDate(value,"W","A");
		

			if(!elementIsValid)
		{
				elementIsValid=ValidateDate(value,"U","A");
		}
		

			if(!elementIsValid)
		{
				elementIsValid=ValidateDate(value,"J","A");
		}
		default:
			break;
}
}


if((validator.isRequired==0)&&(value==""))
{
    elementIsValid=true;
}


var validatorId=element.id+"_validator";
   var validator=document.getElementById(validatorId);
   if(!elementIsValid)
  {
    if(!validator)
   {  

	    validator=document.createElement("div");
	    validator.id=validatorId;
	    validator.className="XDV_V";
	    validator.style.visibility="visible";
	    element.parentNode.appendChild(validator);
   }
    var html="*";
    var errorMessage=this.validatorMessages[messageType];
    if(errorMessage!=null)
   {
        html=decodeURI(errorMessage.message).replace(/\+/gi," ");
   }
   

    validator.innerHTML=html;
  }
   else

  {

    if(validator!=null)
   {
	    RemoveElement(validatorId);
   }
  }
  

   return elementIsValid;   
}


ValidatorManager.prototype.CleanValidatorMessages=function(sourceObjectID)
{  

   var fields=this.view.GetFields();
for(var i=0;i<fields.length;i++)
{
	var validatorId=fields[i].controlID+"_validator";
	var validator=document.getElementById(validatorId);
	if(validator!=null)
{
		RemoveElement(validatorId);
}
}
var cleanerId=sourceObjectID+"_ValidatorButtonCleaner";
var cleaner=document.getElementById(cleanerId);
if(cleaner!=null)
{
	RemoveElement(cleanerId);
}


   notifyAllExistsValidatorMessages=false;}






var numb='0123456789';
var mth=new Array('','january','february','march','april','may','june','july','august','september','october','november','december');
var day=new Array(31,28,31,30,31,30,31,31,30,31,30,31);


function ValidateDate(fld,fmt,rng)
{
var dd,mm,yy;
var today=new Date;
var t=new Date;
if(fld=='')return false;
var d1=fld.split('\/');
if(d1.length!=3)d1=fld.split(' ');
if(d1.length!=3)d1=fld.split('-');
if(d1.length!=3)return false;


if(fmt=='u'||fmt=='U'){
dd=d1[1];mm=d1[0];yy=d1[2];}
else if(fmt=='j'||fmt=='J'){
dd=d1[2];mm=d1[1];yy=d1[0];}
else if(fmt=='w'||fmt=='W'){
dd=d1[0];mm=d1[1];yy=d1[2];}
else return false;


var n=dd.lastIndexOf('st');


if(n>-1)dd=dd.substr(0,n);
n=dd.lastIndexOf('nd');
if(n>-1)dd=dd.substr(0,n);
n=dd.lastIndexOf('rd');
if(n>-1)dd=dd.substr(0,n);
n=dd.lastIndexOf('th');
if(n>-1)dd=dd.substr(0,n);
n=dd.lastIndexOf(',');
if(n>-1)dd=dd.substr(0,n);
n=mm.lastIndexOf(',');
if(n>-1)mm=mm.substr(0,n);
if(!isNum(dd))return false;
if(!isNum(yy))return false;
if(!isNum(mm)){
var nn=mm.toLowerCase();
for(var i=1;i<13;i++){
	if(nn==mth[i]||
		nn==mth[i].substr(0,3)){mm=i;i=13;}
}
}
if(!isNum(mm))return false;
dd=parseFloat(dd);mm=parseFloat(mm);yy=parseFloat(yy);
if(yy<100)yy+=2000;
if(yy<1582||yy>4881)return false;
if(mm==2&&(yy%400==0||(yy%4==0&&yy%100!=0)))day[mm-1]++;
if(mm<1||mm>12)return false;
if(dd<1||dd>day[mm-1])return false;
t.setDate(dd);t.setMonth(mm-1);t.setFullYear(yy);
if(rng=='p'||rng=='P'){
if(t>today)return false;
}
else if(rng=='f'||rng=='F'){
if(t<today)return false;
}
else if(rng!='a'&&rng!='A')return false;
return true;}


function isValid(parm,val){
if(parm=="")return true;
for(i=0;i<parm.length;i++){if(val.indexOf(parm.charAt(i),0)==-1)
return false;}return true;}


function isNum(parm)
{
return isValid(parm,numb);}


function ValidateEmail(strValue)
{
   var objRegExp =/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;
    return objRegExp.test(strValue);
}

function ValidateNumeric( strValue ) 
{
	var objRegExp;
	switch (_$CurrentCultureDecimalSeparator)
	{
		case ",":
			objRegExp  =  /(^-?\d\d*\,\d*$)|(^-?\d\d*$)|(^-?\,\d\d*$)/;
			break;
		default:
			objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
			break;
	}
	return objRegExp.test(strValue);
}

function ValidateInteger( strValue ) {
  var objRegExp  = /(^-?\d\d*$)/;

  return objRegExp.test(strValue);
}

function ValidateNotEmpty( strValue ) {
   var strTemp = strValue;
   strTemp = TrimAll(strTemp);
   if(strTemp.length > 0){
     return true;
   }
   return false;
}

function TrimAll( strValue ) {
 var objRegExp = /^(\s*)$/;

    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }

   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$2');
  }
 return strValue;}


var notifyAllExecutingOperation=false;
var notifyAllOfOperationExceptions=false;
var lastOperationExceptionMessage="";
function OperationManager(view,operationPostData)
{
   this.view=view;
   this.operationPostData=operationPostData;
   this.lists=null;
   this.hasSysMessages=false;}


function List(id,control,controlID,controlName,type,value)
{
   this.id=id;
   this.control=control;
   this.controlID=controlID;
   this.controlName=controlName;
   this.type=type;
   this.value=value;}


OperationManager.prototype.Execute=function(operationID,sourceObjectID,targetObjectID,targetServer,formData)
{
   if(targetServer=="")targetServer=_$ServiceServerURL

   if(targetObjectID=="")targetObjectID=this.view.messageID;
if(this.view.validatorManager.ValidateFields(sourceObjectID,operationID))
{
 	this.ServerRequest(sourceObjectID,targetObjectID,targetServer,formData,true,false);
}}


OperationManager.prototype.Event=function(operationId,sourceObjectID,targetObjectID,targetServer,formData)
{
   if(targetServer=="")targetServer=_$ServiceServerURL

   if(targetObjectID=="")targetObjectID=this.view.messageID;
if(this.view.validatorManager.ValidateFields(sourceObjectID,operationId))
{
	this.ServerRequest(sourceObjectID,targetObjectID,targetServer,formData,false,true);
}}




OperationManager.prototype.ServerRequest=function(sourceObjectID,targetObjectID,targetServerURL,formData,showWaitMessage,showWaitBatchMessage)
{
   notifyAllExecutingOperation=true;
  

if(showWaitMessage)
{
	this.view.CreateWaitMessage(2,sourceObjectID,targetObjectID);
	if(this.view.waitMessage!=null)
{
		this.view.waitMessage.style.visibility='visible';
}
}


if(showWaitBatchMessage)
{
	this.view.CreateBatchWaitMessage();
}


var callBackData=targetObjectID+";"+targetServerURL+";"+formData;
var callBack=
{
	success:this.ServerResponse,
	failure:this.ServerResponseException,
	argument:callBackData,
	scope:this

}
	

var data=this.view.GetFormData("",false,true,true);	

   if(formData!="")
  {
    data=decodeURIComponent(this.operationPostData)+"&"+decodeURIComponent(formData)+"&"+data;
  }
   else

  {
    data=decodeURIComponent(this.operationPostData)+"&"+data;
  }   		

  

   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,data);


if(showWaitMessage)
{
	var actualDate=new Date();
	this.view.startTime=actualDate.getTime();
	this.view.waitMessageRefresh=window.setInterval(this.view.RefreshWaitMessage.bind(this.view),100);
}

}


OperationManager.prototype.ServerResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];
	var targetServerURL=callBackData[1];
	var specificRequestFormData=callBackData[2];

	var targetObject=document.getElementById(targetObjectID);


	this.ExecuteOperation(responseText,targetObject,targetServerURL,specificRequestFormData,false);            

}
catch(e)

{
	alert("Error '"+e.message+"' in OperationManager.ServerResponse");
	CloseBatchWaitMessage()

}

this.view.ClearWaitMessage();
notifyAllExecutingOperation=false;}


OperationManager.prototype.ServerResponseException=function(response)
{
   notifyAllExecutingOperation=false;
   this.view.ServerResponseException(response);}


OperationManager.prototype.OpenLink=function(applicationID,moduleName,workAreaName,viewName,regionID,serviceID,linkType,copyData,windowFeatures)
{
   var data=this.view.FillCopyDataWithValues(copyData,"");	

   this.view.OpenWindow(applicationID,moduleName,workAreaName,viewName,regionID,serviceID,linkType,data,windowFeatures);}


OperationManager.prototype.ExecuteOperation=function(responseText,targetObject,targetServerURL,specificRequestFormData,isProcessingBatch)
{
   notifyAllOfOperationExceptions=false;
   lastOperationExceptionMessage="";
  

   var docRoot=GetXmlDom(responseText);   	   

var docData=null;
var tag=docRoot.documentElement.selectNodes("LogDetail")[0];

var logDetail=tag.firstChild.nodeValue.toLowerCase();


tag=docRoot.documentElement.selectNodes("HasExceptions")[0];

var hasExceptions=tag.firstChild.nodeValue.toLowerCase();


targetObject.innerHTML="";


if(hasExceptions=="false")
{
	tag=docRoot.documentElement.selectNodes("HasBatch")[0];

    var hasBatch=tag.firstChild.nodeValue.toLowerCase();


	tag=docRoot.documentElement.selectNodes("IsGeneric")[0];

    var isGeneric=tag.firstChild.nodeValue.toLowerCase();


	tag=docRoot.documentElement.selectNodes("WebTaskType")[0];

    var webTaskType=tag.firstChild.nodeValue;
   	

	tag=docRoot.documentElement.selectNodes("HasOutputValues")[0];

    var hasOutputValues=tag.firstChild.nodeValue.toLowerCase();


	tag=docRoot.documentElement.selectNodes("HasOutputTables")[0];

    var hasOutputTables=tag.firstChild.nodeValue.toLowerCase();
   				

	tag=docRoot.documentElement.selectNodes("XmlDataRowsCount")[0];

    var xmlDataRowsCount=parseInt(tag.firstChild.nodeValue);
   				

   	if(xmlDataRowsCount>0)
   {
	    var data=docRoot.documentElement.selectNodes("XmlData")[0];

        docData=GetXmlDom(data.firstChild.nodeValue);



        if(hasOutputValues=="true")
       {
               this.UpdateFieldsFromValues(docRoot,docData,isGeneric,targetObject,isProcessingBatch,webTaskType);
       }
   	   

        if(hasOutputTables=="true")
       {
               this.UpdateFieldsFromTable(docRoot,docData,isGeneric,isProcessingBatch,webTaskType);
       }   

   }
   

    if(hasBatch=="true")
   {
	    tag=docRoot.documentElement.selectNodes("BatchData")[0];

        var batchData=tag.firstChild.nodeValue;   

	    ProcessBatch(targetServerURL,targetObject,specificRequestFormData,batchData)

   }
    else

   {
	    CloseBatchWaitMessage();
   }
  }
   else

  {
       CloseBatchWaitMessage();
       notifyAllOfOperationExceptions=true;
  }
  

   tag=docRoot.documentElement.selectNodes("Message")[0];   

   if(tag.firstChild!=null)
  {
    var message=tag.firstChild.nodeValue;

   

    if((!this.hasSysMessages)||(targetObject.innerHTML==""&&message!=""))
   {
        targetObject.innerHTML+= message;
   }
   

   	if(notifyAllOfOperationExceptions)
   {
   	    lastOperationExceptionMessage=message;
   }
   

       if(logDetail=="true")
      {

           var detail="";
           if(docRoot!=null)
          {
               detail+="<BR><BR>"+convertToEscapes(docRoot.xml);
          }
          

           if(docData!=null)
          {
               detail+="<BR><BR>"+convertToEscapes(docData.xml);
          }
        targetObject.innerHTML+=detail;
   }
}

}


OperationManager.prototype.UpdateFieldsFromValues=function(docRoot,docData,isGeneric,targetObject,isProcessingBatch,webTaskType)
{

   this.hasSysMessages=false;
   this.lists=new Array();
  

   var values=docData.documentElement.selectNodes("/ServiceData/RowData/ServiceValues");

for(var i=0;i<values.length;i++)
{
    this.UpdateFieldFromValues(values[i],targetObject,isProcessingBatch,webTaskType)

}


this.UpdateLists();	
}


OperationManager.prototype.UpdateFieldFromValues=function(node,targetObject,isProcessingBatch,webTaskType)
{
var tag=node.selectNodes("ParameterName")[0];

   var parameterName=tag.firstChild.nodeValue;


tag=node.selectNodes("DbType")[0];

   var dbType=tag.firstChild.nodeValue;


   var value="";
tag=node.selectNodes("Value")[0];

if(tag.firstChild!=null)
{
       value=tag.firstChild.nodeValue;
  }


var outputFieldID="";
tag=node.selectNodes("OutputFieldID")[0];

if(tag.firstChild!=null)
{
       outputFieldID=tag.firstChild.nodeValue;
  }


var regionID="";
tag=node.selectNodes("RegionID")[0];

if(tag.firstChild!=null)
{
       regionID=tag.firstChild.nodeValue;
  }
  

   var foundField=false;
   if(outputFieldID!="")
  {
       foundField=this.UpdateField(true,regionID,outputFieldID,dbType,value,isProcessingBatch,webTaskType)

  }
  

   if(outputFieldID=="SYSMESSAGE")
  {
       this.hasSysMessages=true;
       if(!foundField)
   {
           targetObject.innerHTML=value;
   }
}}


OperationManager.prototype.UpdateFieldsFromTable=function(docRoot,docData,isGeneric,isProcessingBatch,webTaskType)
{
   this.lists=new Array();
  

var defaultTable="GenericServiceData";
if(isGeneric!="true")
{   

	var serviceData=docData.documentElement.selectNodes("/ServiceData")[0];
       defaultTable=serviceData.getAttribute("DefaultTable");
}


   var row=docData.documentElement.selectNodes("/ServiceData/RowData/"+defaultTable+"/*");   

if(row!=null)
{
	for(var i=0;i<row.length;i++)
{
		var id=row[i].nodeName;
		var col=docData.documentElement.selectNodes("/ServiceData/ColsData/"+defaultTable+"/Col[@ID='"+id+"']")[0];
	    var type=col.getAttribute("Type");
	   

	    var regionID=col.getAttribute("RegionID");	   

	   

	    if(row[i].firstChild!=null)
	   {
	        var value=row[i].firstChild.nodeValue;
            if((value!=null)&&(id!=""))
           {
	            this.UpdateField(false,regionID,id,type,value,isProcessingBatch,webTaskType);
           }
       }
}
}


this.UpdateLists();
}


OperationManager.prototype.GetMultipleSelectionElement=function(fieldId,fieldValue){
   var result=null;
   var controls=document.getElementsByTagName("input");
   if(controls!=null){
       for(var i=0;i<controls.length;i++){
           var control=controls[i];
           if((control.type=="checkbox")&&(control.name.indexOf(fieldId)>-1)&&(control.value==fieldValue)){
               result=control;
          }          

      }
  }
   return result;}


OperationManager.prototype.SetCheckBoxList=function(fieldId,fieldValue){
   var isCheckBoxList=false;
   if((fieldValue!=null)&&(fieldValue!="")&&(fieldValue.indexOf(";")>-1)){
       var listData=fieldValue.split(";");
       var index=0;
       isCheckBoxList=true;
       var controls=document.getElementsByTagName("input");
       if(controls!=null){
           for(var i=0;i<controls.length;i++){
               var control=controls[i];
               if((control.type=="checkbox")&&(control.name.indexOf(fieldId)>-1)){


                   var itemData=listData[index];
                   index++;
                   if(itemData!=""){
                       var itemDataArray=itemData.split(",");
                       var selected=itemDataArray[0];
                       var value=itemDataArray[1];


                       if(selected==1){
                           control.checked=true;
                      }
                       else{
                           control.checked=false;
                      }
                  }
              }
          }
      }
  }
   return isCheckBoxList;}


OperationManager.prototype.UpdateField=function(resultFromValues,regionID,fieldId,type,fieldValue,isProcessingBatch,webTaskType){
   var isFieldDiv=false;
   var isCheckBoxList=false;
   fieldId=this.view.viewControlUniquePrefix+regionID.toUpperCase()+"_"+fieldId.toUpperCase();
   type=type.toLowerCase();
   var formField=document.getElementsByName(fieldId)[0];
   if(formField==null){
  

       isCheckBoxList=this.SetCheckBoxList(fieldId,fieldValue);
       if(isCheckBoxList)return;


       formField=this.GetMultipleSelectionElement(fieldId,fieldValue);
       if(formField==null){
           if((isProcessingBatch)&&(fieldId!="")&&(fieldValue!="")){
               CreateWebBox(fieldId,fieldValue,webTaskType);
               return true;
          }
           else{
               fieldId=fieldId.replace(/\$/gi,'_');
               var formField=document.getElementById(fieldId);
               if(formField==null){
                   return false;
              }
               else{
                   isFieldDiv=true;
              }
          }
      }
  }


   switch(type){
       case"int32":
           type="int";
           break;
       case"numeric":
           type="decimal";
           break;
       default:
           break;
  }


   this.UpdateFormField(formField,type,fieldId,fieldValue,isFieldDiv,webTaskType);


   return true;}


OperationManager.prototype.UpdateFormField=function(formField,type,fieldId,fieldValue,isFieldDiv,webTaskType)
{     

switch(type)

{
	case"datetime":
	    if(fieldValue.indexOf("T")>-1)	   {
		    var dateString=fieldValue.substring(0,10);

   		

		    var yearString=dateString.substring(0,4);
		    var monthString=dateString.substring(5,7);
		    var dayString=dateString.substring(8,10);
   		

		    var dateFormat=_$CurrentCultureDatePattern.split(_$CurrentCultureDateSeparator);
		    var pattern=dateFormat[0].substring(0,1)+dateFormat[1].substring(0,1)+dateFormat[2].substring(0,1);
		    switch(pattern)

		   {
			    case"ymd":
				    dateString=yearString+_$CurrentCultureDateSeparator+monthString+_$CurrentCultureDateSeparator+dayString;
				    break;
			    case"mdy":
				    dateString=monthString+_$CurrentCultureDateSeparator+dayString+_$CurrentCultureDateSeparator+yearString;
				    break;
			    default:
				    dateString=dayString+_$CurrentCultureDateSeparator+monthString+_$CurrentCultureDateSeparator+yearString;
				    break;
		   }
		    formField.value=dateString;
	}
		else

	{
		    if(fieldValue.indexOf(" ")>-1)		   {
		         formField.value=fieldValue.substring(0,fieldValue.indexOf(" "));
		   }
		    else

		   {
		        formField.value=fieldValue;
		   }
	}
		break;
	case"decimal":
		if(_$CurrentCultureDecimalSeparator==",")
	{
			formField.value=fieldValue.replace(".",_$CurrentCultureDecimalSeparator);
	}
		else

	{
			formField.value=fieldValue.replace(",",_$CurrentCultureDecimalSeparator);
	}
		break;
	case"boolean":
		if((fieldValue.toLowerCase()=="true")||(fieldValue=="1"))
	{
			formField.checked=true;
	}
		else

	{
			formField.checked=false;
	}
		break;
	case"int":
	case"short":
	case"string":
	default:
		if(isFieldDiv)
	{
			if(GetWebTaskTypeName(webTaskType,fieldId)=="map")
		{
				fieldValue=fieldValue.replace("MAPCONTAINERCLIENTID",formField.id);
				eval(fieldValue);
		}
			else

		{
				if(formField.type=="textarea")			   {
				    try

				   {
					    if(FTB_API)
					   {
						    if(FTB_API[formField.id])
						   {
							    FTB_API[formField.id].SetHtml(HtmlDecode(fieldValue));
						   }
						    else

						   {
				                formField.innerHTML=fieldValue.replace(/\[%/gi,"<").replace(/%\]/gi,">");
						   }
					   }
					    else

					   {
				            formField.innerHTML=fieldValue.replace(/\[%/gi,"<").replace(/%\]/gi,">");
					   }
				   }
				    catch(e)

				   {
					    alert(e);
				   }
			   }
			    else

			   {
                       if(fieldValue.indexOf('$ENCODED$')!=-1)
			       {
			            fieldValue=fieldValue.replace("$ENCODED$","");			           

			            var fv=HtmlDecode(fieldValue);
			            formField.innerHTML=fv;
			       }
			        else

			       {
                           formField.innerHTML=fieldValue.replace(/\[%/gi,"<").replace(/%\]/gi,">");
				   }
			}
		}
	}
		else

	{
		    formField.value=fieldValue;
	}
		break;
}


if((formField.type=="select-one")||(formField.type=="select-multiple")||(formField.type=="radio"))
  {
       this.lists[this.lists.length]=new List(fieldId,formField,formField.id,formField.name,formField.type,fieldValue);
  }   
}


OperationManager.prototype.UpdateLists=function()
{
   for(var listIndex=0;listIndex<this.lists.length;listIndex++)
  {
       var list=this.lists[listIndex];
     	switch(list.type)

     {
     	    case"select-one":
     	    case"select-multiple":
     	        this.UpdateDropDownList(list);
     	        break;
     	    case"radio":
     	        this.UpdateRadioButtonList(list);
     	        break;
     	    default:
     	        break;     

      }
  }}


OperationManager.prototype.UpdateRadioButtonList=function(list)
{
   var fieldID=list.id;
   var control=list.control;
   var controlName=list.controlName;
   var value=list.value;  

      

   var controls=document.getElementsByName(controlName);      

   for(var i=0;i<controls.length;i++)
  {
       var control=controls[i];
       if(control.value==value)
      {
           control.checked=true;

      }
       else

      {
           control.checked=false;
      }
  }        
}


OperationManager.prototype.UpdateDropDownList=function(list)
{
   var fieldID=list.id;
   var control=list.control;
   var controlID=list.controlID;
   var controlName=list.controlName;
   var value=list.value;  

      

   var control=document.getElementById(controlID);      

   for(var i=0;i<control.options.length;i++)
  {
       var option=control.options[i];
       if(value==option.value)
      {
           return

      }
  }
      

   var field=this.view.GetField(controlID);
   if(field!=null)
  {
       var text="Desc not found...";
       var defaultField=this.view.GetField(this.view.controlID+"_"+field.metaData);
       if(defaultField!=null)
      {
           var elem=document.getElementById(defaultField.controlID);
           if(elem!=null)
          {
               text=elem.value;
          }
      }
      

       var newOption=new Option(text,value);
       newOption.selected=true;
       control.options.add(newOption);
  }  
}


var FTB_API;
function LookupManager(view,operationPostData)
{
   this.view=view;   

   this.tables=new Array();

      

   this.lookupInProgress=false;
   this.operationPostData=operationPostData;
   this.closeLookupControlArray=new Array();
   this.cleanLookupControlArray=new Array();
   this.isLookupTableActive=new Array();  
}


function LookupTable(id,sourceId,regionID,copyData,lookupManager)
{
this.id=id;
this.sourceId=sourceId;
this.regionID=regionID;
this.copyData=copyData;

this.columns=null;
this.rows=null;

this.html=null;

this.lookupManager=lookupManager;}


function LookupTableRow(id,index,childNodes,table)
{
   this.id=id;
   this.index=index;
   this.childNodes=childNodes;        		

this.cells=new Array();

this.table=table;
}


function LookupTableCell(id,value,text,row)
{
this.id=id;
this.value=value;
this.text=text;
   this.row=row;

   this.controlID=this.row.table.lookupManager.view.viewControlPrefix+this.row.table.regionID.toUpperCase()+"_"+id.toUpperCase();   
}


function LookupTableColumn(id,index,type,style,css,align,text,table)
{
this.id=id;
this.index=index;
this.type=type;
this.style=style;
this.css=css;
this.align=align;
this.text=text;

this.table=table;}


LookupManager.prototype.Lookup2=function(sourceObjectID)
{
   var ctrID=sourceObjectID.substring(0,sourceObjectID.length-1);
   var ctrl=document.getElementById(ctrID);
   if(ctrl!=null)
  {
    if(this.isLookupTableActive[ctrID]==null)
   {
        this.isLookupTableActive[ctrID]=ctrID;
           var call=ctrl.attributes["onkeyup"].value;
           call=call.replace("this.id,true","'"+ctrl.id+"',false");
           call=call.replace(",event)",",null)");
           eval(call);
      }
       else

      {
	    delete this.isLookupTableActive[ctrID];

           this.CloseLookupControl(ctrID);
      }
  }}


LookupManager.prototype.Lookup=function(sourceObjectID,filter,threshold,formData,copyData,imageUpUrl,imageDownUrl,regionID,evt)
{
evt=(evt)?evt:((window.event)?window.event:null);
var charCode=0;
if(evt!=null)
{
    charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);
}


var sourceObject=document.getElementById(sourceObjectID);
	if(((sourceObject.value.length>=threshold)&&(!this.lookupInProgress)&&((charCode>=48)||(charCode==8)))||!filter)
{
	var callBackData=sourceObject.id+";"+encodeURIComponent(copyData)+";"+regionID+";"+imageUpUrl+";"+imageDownUrl;
	var callBack=
{
		success:this.LookupResponse,
		failure:this.LookupResponseException,
		argument:callBackData,
		scope:this

}
		

	var data=this.view.GetFormData("",false,true,true);	

	data=decodeURIComponent(this.operationPostData)+"&"+decodeURIComponent(formData)+"&"+data;


	var image=document.getElementById(sourceObjectID+"_");
	if(image!=null)
{
	    image.src=imageDownUrl;
}
	var callBackObject=YAHOO.util.Connect.asyncRequest('POST',_$ServiceServerURL,callBack,data);


	this.lookupInProgress=true;
	sourceObject.onblur=this.CloseLookupControlEvent.bind(this);
}}


LookupManager.prototype.LookupResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var sourceObjectID=callBackData[0];
	var copyData=decodeURIComponent(callBackData[1]);
    var regionID=callBackData[2];
    var imageUpUrl=callBackData[3];
    var imageDownUrl=callBackData[4];
   

	this.CreateLookup(sourceObjectID,regionID,copyData,responseText);


}
catch(e)

{
	alert("Error in Processing Lookup. "+e.message);
}


var image=document.getElementById(sourceObjectID+"_");
   if(image!=null)
  {
       image.src=imageUpUrl;
  }
      

this.lookupInProgress=false;
}


LookupManager.prototype.CreateLookup=function(sourceObjectID,regionID,copyData,xmlData)
{
var tableID=sourceObjectID+"_lkp";
   var elem=document.getElementById(tableID);
   if(!elem)
  {  

       elem=document.createElement("div");
       elem.id=tableID;
       elem.className="XW_DIV";
       elem.style.position="absolute";
       elem.style.visibility="visible";
       elem.style.zIndex=100;
       document.body.insertBefore(elem,document.body.firstChild);
  }
   YAHOO.util.Dom.setStyle(elem.id,"opacity",1);
  

   var table=this.CreateTable(tableID,sourceObjectID,regionID,copyData,xmlData);  

   elem.innerHTML=table.html;
     

   var obj=document.getElementById(sourceObjectID);
   if(obj!=null)
  {
	var xy=YAHOO.util.Dom.getXY(obj);
	xy[0]+=2;
	xy[1]+=15;
	YAHOO.util.Dom.setXY(elem,xy);
	if(isIE){
		var elem2=document.getElementById(tableID+"_iframe");
		if(!elem2)
	{          

			elem2=document.createElement("iframe");
			elem2.id=tableID+"_iframe";
			elem2.style.position="absolute";
			elem2.style.visibility="visible";
			elem2.src="about:blank";
			elem2.frameBorder="0";
			elem2.scrolling="no";
			document.body.insertBefore(elem2,document.body.firstChild);
	}
		elem2.style.width=elem.offsetWidth;
		elem2.style.height=elem.offsetHeight;
		YAHOO.util.Dom.setStyle(elem2.id,"opacity",1);
		YAHOO.util.Dom.setXY(elem2,xy);

}
}}


LookupManager.prototype.CreateTable=function(tableID,sourceObjectID,regionID,copyData,xmlData)
{   	   

   var docRoot=GetXmlDom(xmlData);   

var tag=docRoot.documentElement.selectNodes("HasExceptions")[0];

var hasExceptions=tag.firstChild.nodeValue.toLowerCase();


tag=docRoot.documentElement.selectNodes("XmlDataRowsCount")[0];

var rowsCount=parseInt(tag.firstChild.nodeValue);


var html="";


if(this.tables[tableID]!=null)
{
	delete this.tables[tableID];

}
		

this.tables[tableID]=new LookupTable(tableID,sourceObjectID,regionID,copyData,this);


if((hasExceptions=="true")||(rowsCount==0))
{

    var message=docRoot.documentElement.selectNodes("Message")[0];
	html="<TABLE class='XW_TABLE'><TR class='XDV_GR'><TD align=left>"+message.firstChild.nodeValue+"</TD></TR></TABLE>";
    this.tables[tableID].html=html;

    return this.tables[tableID];
}


var tableColumns= new Array();

var tableRows=new Array();


html="<TABLE id="+tableID+" class='XW_TABLE' cellspacing=1 cellpadding=2 >";

html+="<TR onclick='"+this.view.selfID+".lookupManager.CloseLookupControl(\""+sourceObjectID+"\")'>";
var data=docRoot.documentElement.selectNodes("XmlData")[0];

var docData=GetXmlDom(data.firstChild.nodeValue);
var lookupData=docData.documentElement.selectNodes("Lookup/Column");

for(var i=0;i<lookupData.length;i++)
{
	var headerColumn=lookupData[i];
	var id=headerColumn.getAttribute("ID");
	var type=headerColumn.getAttribute("Type");

	var style=headerColumn.getAttribute("Style");
	var css=headerColumn.getAttribute("Css");
	var align=headerColumn.getAttribute("Align");
	var text=headerColumn.getAttribute("Text");

	if(text!="")
{
		html+="<TD class='XDV_LKH' nowrap>"+text+"</TD>";
}
	else

{
		html+="<TD class='XDV_LKH' nowrap>"+id+"</TD>";
}


	tableColumns[tableColumns.length]=new LookupTableColumn(id,i,type,style,css,align,text,this.tables[tableID]);
}
html+="</TR>";


   this.tables[tableID].columns=tableColumns;


   var list=docData.documentElement.selectNodes("/ServiceData/RowData/*");  

if(list==null)return"no data";

for(var i=0;i<list.length;i++)
{
	var row=list[i];
	if(row!=null)
{
		var rowId=tableID+"_r_"+(i+1);	

		var tableRow=new LookupTableRow(rowId,i,row.childNodes,this.tables[tableID]);	

		html+=tableRow.GetHtml(sourceObjectID);	

		tableRows[tableRows.length]=tableRow;
}
}
html+="</TABLE>";


this.tables[tableID].rows=tableRows;	

this.tables[tableID].html=html;
return this.tables[tableID];
}


LookupTableRow.prototype.GetHtml=function(sourceObjectID)
{
var cellsScript="";
for(var i=0;i<this.table.columns.length;i++)
{
	var cellId=this.table.columns[i].id;
	var cellType=this.table.columns[i].type;
	var cellStyle=this.table.columns[i].style;
	var cellCss=this.table.columns[i].css;
	var cellAlign=this.table.columns[i].align;


	var cellValue=this.GetCellValueById(this.childNodes,cellId,cellType);
	if(cellValue!="")
{
		cellText=cellValue;
}
	else

{
		cellText="&nbsp;";
}


	this.cells[this.cells.length]=new LookupTableCell(cellId,cellValue,cellText,this);
	   

	cellsScript+="<TD nowrap";
	if((cellCss!="")&&(cellCss!=null))
{
	    cellsScript+=" class='"+cellCss+"'";
}


	if((cellStyle!="")&&(cellStyle!=null))
{
	    cellsScript+=" style='"+cellStyle+"'";
}
	else

{
	    cellsScript+=" style='WIDTH:60px'";
}


	if((cellAlign!="")&&(cellAlign!=null))
{
	    cellsScript+=" align='"+cellAlign+"'";
}
	else

{
	    cellsScript+=" align=right";
}
		

	cellsScript+=" >";
	cellsScript+=cellText;
	cellsScript+="</TD>";
}


var html="<TR id="+this.id+" class=\"XDV_LKR\" style=\"HEIGHT: 20px\" onmouseover=\"this.className='XDV_LKRS'\"";
html=html+" onmouseout=\"this.className='XDV_LKR'\" onclick=\"";
html=html+this.table.lookupManager.view.selfID+".lookupManager.LookupTableClick(this,'";
html=html+this.table.id+"','"+this.index+"', event)\"";


html=html+" onDblClick=\"";
html=html+this.table.lookupManager.view.selfID+".lookupManager.LookupTableDblClick('";
html=html+sourceObjectID+"')\">";


html=html+cellsScript+"</TR>";


return html;}


LookupTableRow.prototype.GetCellValueById=function(cells,id,cellType)
{
var result="";
for(var i=0;i<cells.length;i++)
{
	var cell=cells.item(i);
	var cellId=cell.nodeName;
	if(cellId==id)
{
		var aux=cell.firstChild;
		if(aux!=null)
	{
			result=aux.nodeValue;
			switch(cellType)

		{
				case"shortdate":
				case"longdate":
					result=result.substring(0,10);
					break;
				default:
					break;
		}
	}
		break;
}
}
return result;}


LookupTableRow.prototype.GetCellByControlID=function(controlID)
{
var result=null;
for(var i=0;i<this.cells.length;i++)
{
	var cell=this.cells[i];
	if(cell.controlID==controlID)
{
		result=cell;
		break;
}
}
return result;}


LookupManager.prototype.LookupTableClick=function(source,tableID,rowIndex,evt)
{
var table=this.tables[tableID];
if(table!=null)
{
	var copyDataArray=decodeURIComponent(table.copyData).split(";");
	var row=table.rows[rowIndex];
	for(var i=0;i<copyDataArray.length;i++)
{
		var aux=copyDataArray[i].split("#");
	

		var from=this.view.controlID+"_"+aux[0].toUpperCase();
		var to=this.view.controlID+"_"+aux[1].toUpperCase();
	

		var cell=row.GetCellByControlID(from);
		if(cell!=null)
	{
            var target=document.getElementById(to);
            if(target!=null)
           {
	            target.value=cell.value;
           }
	}
}
}}


LookupManager.prototype.LookupTableDblClick=function(sourceObjectID)
{
   this.CloseLookupControl(sourceObjectID);}


LookupManager.prototype.LookupResponseException=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;


var callBackData=response.argument.split(";");
var sourceObjectID=callBackData[0];
var copyData=decodeURIComponent(callBackData[1]);
   var regionID=callBackData[2];
   var imageUpUrl=callBackData[3];
   var imageDownUrl=callBackData[4];
   

   var image=document.getElementById(sourceObjectID+"_");
   if(image!=null)
  {
       image.src=imageUpUrl;
  }
      

this.lookupInProgress=false;


ShowHTML("LookupResponseException",responseText);}




LookupManager.prototype.CloseLookupControlEvent=function(evt)
{
evt=(evt)?evt:((window.event)?window.event:null);
var target=(evt.target)?evt.target:evt.srcElement;
var charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);
this.CloseLookupControl(target.id);}


LookupManager.prototype.CloseLookupControl=function(targetId)
{
try

{
	if(this.lookupInProgress)
{
		if(this.closeLookupControlArray[targetId]==null)
	{
			this.closeLookupControlArray[targetId]=window.setInterval((this.view.selfID+".lookupManager.CloseLookupControl('"+targetId+"')"),250);
	}
}
	else

{
		if(this.closeLookupControlArray[targetId]!=null)
	{
			window.clearInterval(this.closeLookupControlArray[targetId]);
			delete this.closeLookupControlArray[targetId];
	}
		var tableID=targetId+"_lkp";
		var div=document.getElementById(tableID);
		if(div!=null)
	{
			if(this.cleanLookupControlArray[targetId]==null)
		{
				this.cleanLookupControlArray[targetId]=window.setInterval((this.view.selfID+".lookupManager.CleanLookupControl('"+targetId+"')"),500);
				YAHOO.util.Dom.setStyle(div.id,"opacity",.5);
				if(isIE)			{
					var iframe=document.getElementById(tableID+"_iframe");
					if(iframe!=null)
				{
						YAHOO.util.Dom.setStyle(iframe.id,"opacity",.5);
				}
			}
		}
	}
}
  }
   catch(e)

  {
	alert("CloseLookupControl:"+e.message);
  }}


LookupManager.prototype.CleanLookupControl=function(targetId)
{
if(this.cleanLookupControlArray[targetId]!=null)
{
	window.clearInterval(this.cleanLookupControlArray[targetId]);
	delete this.cleanLookupControlArray[targetId];
}
var tableID=targetId+"_lkp";
var div=document.getElementById(tableID);
if(div!=null)
{
	div.innerHTML="";
}


if(isIE)
{
	RemoveElement(tableID+"_iframe");
}}

function GridManager(view)
{
   this.view=view;
   this.grids=new Array();    
}


GridManager.prototype.AddGrid=function(id,controlID,keyID,

       rowCss,rowAltCss,selectedRowCss,cellCss,rowStyleText,rowAltStyleText,selectedRowStyleText,cellStyleText,

       serverGridUrl,controlViewID,controlViewUniqueID,regionID,configPath)
{
   this.grids[this.grids.length]=new Grid(id,controlID,keyID,

   rowCss,rowAltCss,selectedRowCss,cellCss,rowStyleText,rowAltStyleText,selectedRowStyleText,cellStyleText,
   serverGridUrl,controlViewID,controlViewUniqueID,regionID,configPath,this);}


GridManager.prototype.GetGrid=function(gridID)
{

   for(var i=0;i<this.grids.length;i++)
{
    var grid=this.grids[i];
    if(grid.id==gridID)
   {
        return grid

   }
  }  

   return null;}


function Grid(id,controlID,keyID,

       rowCss,rowAltCss,selectedRowCss,cellCss,rowStyleText,rowAltStyleText,selectedRowStyleText,cellStyleText,
       serverGridUrl,controlViewID,controlViewUniqueID,regionID,configPath,gridManager)
{
   this.id=id;
   this.controlID=controlID;
   this.gridManager=gridManager;
   this.regionID=regionID;
   this.configPath=decodeURIComponent(configPath);
  

   this.rawRows=null;
   this.rows=new Array();
   this.keyID=keyID;
   this.selectedRowKeyValue=null;
   this.selectedRowIndex=-1;
   this.selectedRowElement=null;
      

   this.oldSelectedRowStyleText=null;
   this.oldSelectedRowCss=null;


   this.rowCss=rowCss;
   this.rowAltCss=rowAltCss;
   this.selectedRowCss=selectedRowCss;
   this.cellCss=cellCss;


   this.cellStyleBase="white-space: nowrap;overflow:hidden;";
   this.cellStyleText=decodeURIComponent(cellStyleText);
   this.cellStyleText=this.cellStyleText.replace(/\*/gi,'\'');


   this.rowStyleText=decodeURIComponent(rowStyleText);
   this.rowStyleText=this.rowStyleText.replace(/\*/gi,'\'');
  

   this.rowAltStyleText=decodeURIComponent(rowAltStyleText);
   this.rowAltStyleText=this.rowAltStyleText.replace(/\*/gi,'\'');
  

   this.selectedRowStyleText=decodeURIComponent(selectedRowStyleText);
   this.selectedRowStyleText=this.selectedRowStyleText.replace(/\*/gi,'\'');
      

   this.moveGridColsCellName=null;
   this.moveGridColsPlaceHolderId=null;  

  

   this.pagerOldID=null;
   this.pagerNewID=null;
  

   this.serverGridUrl=serverGridUrl;
   this.controlViewID=controlViewID;
   this.controlViewUniqueID=controlViewUniqueID;
  

   this.serverPath=this.serverGridUrl+"&WorkAreaViewID="+this.controlViewID+"&_TGC="+this.controlID+"&_TGV="+this.controlViewUniqueID+"&_TGR="+this.regionID; 

  

   this.pagerIndex=0;
   this.sortExpression=null;
   this.sortDirection=null;  
}


function GRow(rowIndex,grid)
{
   this.rowIndex=rowIndex;

   this.cells=null;

   this.grid=grid;}


GRow.prototype.GetCell=function(id)
{
for(var i=0;i<this.cells.length;i++)
{
	if(this.cells[i].id==id)
{
	    return this.cells[i];
}
}
return null;}


function GCell(columnID,value,row)
{
   this.columnID=columnID;

   this.value=value;
   this.row=row;
  

   this.id="_"+this.row.grid.gridManager.view.id.toUpperCase()+"_"+this.row.grid.regionID.toUpperCase()+"_"+this.columnID.toUpperCase();
}


Grid.prototype.Pager=function(index)
{
   this.pagerIndex=index;


   var url=this.serverPath;  

   url=url+"&_GP="+index;
     

   if(this.sortExpression!=null)
  {
       url=url+"&_GSE="+this.sortExpression;
  }


   if(this.sortDirection!=null)
  {
       url=url+"&_GSD="+this.sortDirection;
  }


   if(this.configPath!="")
  {
       url=url+"&ConfigPath="+this.configPath;
  }
              

   this.Execute(this.controlID,this.controlID,url,"");}


Grid.prototype.Sort=function(sortExpr,sortDir)
{
   this.sortExpression=sortExpr;
   this.sortDirection=sortDir;
  

   var url=this.serverPath;
   url=url+"&_GSE="+sortExpr+"&_GSD="+sortDir;  

   url=url+"&_GP="+this.pagerIndex;
  

   if(this.configPath!="")
  {
       url=url+"&ConfigPath="+this.configPath;
  }
  

   this.Execute(this.controlID,this.controlID,url,"");}


Grid.prototype.Execute=function(sourceObjectID,targetObjectID,targetServer,formData)
{
   if(targetServer=="")targetServer=_$ServiceServerURL

   if(targetObjectID=="")targetObjectID=this.gridManager.view.messageID;
this.ServerRequest(sourceObjectID,targetObjectID,targetServer,formData);}


Grid.prototype.ServerRequest=function(sourceObjectID,targetObjectID,targetServerURL,formData){
this.gridManager.view.CreateWaitMessage(1,sourceObjectID,targetObjectID);
if(this.waitMessage!=null)
{
	this.gridManager.view.waitMessage.style.visibility='visible';
}


var callBackData=targetObjectID+";"+targetServerURL+";"+formData;
var callBack=
{
	success:this.ServerResponse,
	failure:this.gridManager.view.ServerResponseException,
	argument:callBackData,
	scope:this

}
  

  

   YAHOO.util.Connect.setForm(this.gridManager.view.defaultFormID,false);

   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,null);


var actualDate=new Date();
this.gridManager.view.startTime=actualDate.getTime();
this.gridManager.view.waitMessageRefresh=window.setInterval(this.gridManager.view.RefreshWaitMessage.bind(this.gridManager.view),100);

}


Grid.prototype.ServerResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];
	var targetServerURL=callBackData[1];
	var specificRequestFormData=callBackData[2];

	var targetObject=document.getElementById(targetObjectID);
       this.Render(targetObject,responseText);          

}
catch(e)

{
	alert("Error '"+e.message+"' in Grid ServerResponse");
	CloseBatchWaitMessage()

}

this.gridManager.view.ClearWaitMessage();}


Grid.prototype.Render=function(targetObject,responseText)
{
   var gridResponse=responseText.split("$#-#$");   

   var freezePager=gridResponse[0];
   var freezeColumns=gridResponse[1];   

var gridID=targetObject.id;  

   this.rawRows=gridResponse[2];   

  

targetObject.innerHTML=gridResponse[3];


if(freezePager=="true")
{
    this.InitPager();
  }   

   if(freezeColumns=="true")
{
       this.InitMoveGridCols();   

  }   

  

   this.InitializeLayout();}


Grid.prototype.InitializeLayout=function()
{
try

{
	this.InitializeRowLayout("tbody");
       this.LoadRows();


       if(this.selectedRowKeyValue!=null)
      { 

           var rowElem=this.GetRowElementByID("r"+this.selectedRowKeyValue);
           if(rowElem!=null)
          {
               this.SelectRow(-1,rowElem);
          }
      }
}
catch(e)

{
	alert("Error in Initialize Layout. "+e.message);
}}


Grid.prototype.InitializeRowLayout=function(tableSection)
{   

   var gridTable=document.getElementById(tableSection+"_"+this.controlID);
   if(gridTable==null)return;
  

   var cellToken;
   if(tableSection=="thead")
  {
       cellToken="TH";
  }
   else

  {
       cellToken="TD";
  }
  

   var rows=gridTable.childNodes;
   for(var r=0;r<rows.length;r++)
  {
       if(rows[r].nodeName=="TR")
      {
           var cells=rows[r].childNodes;
           for(var c=0;c<cells.length;c++)
          {
               if(cells[c].nodeName==cellToken)
              {
                   cells[c].noWrap=true;
                  

                   if((cells[c].className=="")&&(this.cellCss!=""))
                  {
                       cells[c].className=this.cellCss;
                  }
                  

                   var style=this.cellStyleBase;                  

                   if(this.cellStyleText!="")
                  {
                       style=style+this.cellStyleText;
                  }


                   cells[c].style.cssText=style+cells[c].style.cssText;
                  

                   if(cells[c].childNodes.length>0)
                  {
                       var node=cells[c].childNodes[0];
                       if(node.nodeName=="A")
                      {
                           node.style.cssText=this.cellStyleBase+node.style.cssText;
                      }
                  }
              }
          }
      }
  }}


Grid.prototype.GetRowElementByID=function(id)
{   

   var gridTable=document.getElementById("tbody_"+this.controlID);
   var rows=gridTable.childNodes;
   for(var r=0;r<rows.length;r++)
  {
       if(rows[r].nodeName=="TR")
      {
           if(rows[r].id==id)
          {
               return rows[r];                              

          }

      }
  }
   return null;}


Grid.prototype.SelectRow=function(rowIndex,tableRow)
{      

   var rows=tableRow.parentNode.childNodes;
   var alternate=false;      

   if(rowIndex!=-1)
  {
       if(rowIndex!=this.selectedRowIndex)
      { 

          

           if(this.selectedRowElement!=null)
          {
               this.selectedRowElement.style.cssText=this.oldSelectedRowStyleText;
               this.selectedRowElement.className=this.oldSelectedRowCss;
          }
          

           if(this.selectedRowStyleText!="")
          {
               this.oldSelectedRowStyleText=tableRow.style.cssText;
               tableRow.style.cssText=this.selectedRowStyleText;                  

          }
              

           if(this.selectedRowCss!="")
          {
               this.oldSelectedRowCss=tableRow.className;
               tableRow.className=this.selectedRowCss;
          }
          

           var selectedRow=this.GetRow(rowIndex);
        if(selectedRow!=null)
       {
            var cell=selectedRow.GetCell(this.keyID);
            if(cell!=null)
           {
                this.selectedRowKeyValue=cell.value;
           }
       }  

       		

           this.selectedRowIndex=rowIndex;
           this.selectedRowElement=tableRow;
      }
       else

      {
           if(this.selectedRowElement!=null)
          {
               this.selectedRowElement.style.cssText=this.oldSelectedRowStyleText;
               this.selectedRowElement.className=this.oldSelectedRowCss;
          }
          

           this.selectedRowKeyValue=null;
           this.selectedRowIndex=-1;
           this.selectedRowElement=null;
      }   

  }
   else

  {
       if(this.selectedRowStyleText!="")
      {
           tableRow.style.cssText=this.selectedRowStyleText;                  

      }
          

       if(this.selectedRowCss!="")
      {
           tableRow.className=this.selectedRowCss;
      }
  }}


Grid.prototype.LoadRows=function()
{          

   if(this.rawRows=="")return;
  

   this.rows=new Array();
  

var rowsDataArray=this.rawRows.split('%');
for(var i=0;i<rowsDataArray.length;i++)
{
	var rowData=rowsDataArray[i];
    var rowDataArray=rowData.split(';');
   

    var rowIndex=rowDataArray[0];
   

    var colsData=rowDataArray[1];
       var colsDataArray=colsData.split('$');


    var row=new GRow(rowIndex,this); 



       var cells=new Array();    	   

     	for(z=0;z<colsDataArray.length;z++)
   {
        var colData=colsDataArray[z];
        var colDataArray=colData.split('#');
        var colID=colDataArray[0];
        var cellData=colDataArray[1];
       

           cells[cells.length]=new GCell(colID,cellData,row);
   }
   

       row.cells=cells;
      

    this.rows[this.rows.length]=row;
}}


Grid.prototype.InitPager=function()
{
   this.InitializePager(this.pagerOldID,this.pagerNewID);}


Grid.prototype.InitializePager=function(oldPagerID,newPagerID)
{
   this.pagerOldID=oldPagerID;
   this.pagerNewID=newPagerID;
  

   var pagerOld=document.getElementById(oldPagerID);
   var pagerNew=document.getElementById(newPagerID);
  

   if((pagerNew!=null)&&(pagerOld!=null))
  {
       pagerNew.innerHTML='<table><tr>'+pagerOld.innerHTML+'</tr></table>';
  }
  

   if(pagerOld!=null)
  {
       pagerOld.style.display='none';
  }}


Grid.prototype.GRowClick=function(rowIndex,tableRow)
{  

   this.SelectRow(rowIndex,tableRow);  
}


Grid.prototype.GRowDblClick=function(rowIndex,tableRow)
{
   this.SelectRow(rowIndex,tableRow);
  

   var region=this.gridManager.view.GetRegion(this.regionID);
var link=region.GetLink("GridRowDoubleClick");
var cellValue="";


if(link==null)return;


var copyData=link.copyData;

if(copyData!="")
{
	copyData=decodeURIComponent(copyData);
	var copyDataArray=copyData.split(";");
	for(var i=0;i<copyDataArray.length;i++)
{
		var dataArray=copyDataArray[i].split("#");


		var from=dataArray[0];	

		var to=dataArray[1];
	

		var selectedRow=this.GetRow(rowIndex);
		if(selectedRow!=null)
	{
		    var cell=selectedRow.GetCell(from);
		    if(cell!=null)
		   {
		        cellValue=cell.value;
		        break;
		   }
	}           		

}
}


this.OpenLink(link,cellValue);  
}


Grid.prototype.GCellClick=function(columnId,cellValue)
{
var region=this.gridManager.view.GetRegion(this.regionID);
var link=region.GetLink(columnId);
this.OpenLink(link,cellValue);}


Grid.prototype.OpenLink=function(link,value)
{
if(link!=null)
{
    var applicationID=link.applicationID;
    var moduleName=link.moduleName;
	var workAreaName=link.workAreaName;
	var viewName=link.viewName;
    var regionID=link.targetRegionID;
	var serviceID=link.serviceID;
	var linkType=link.linkType;
	var fieldPrefix=link.fieldPrefix;
	var copyData=link.copyData;
	var windowFeatures=link.windowFeatures;


	var data=this.gridManager.view.FillCopyDataWithValues(copyData,value);
	

	this.gridManager.view.OpenWindow(applicationID,moduleName,workAreaName,viewName,regionID,serviceID,linkType,data,windowFeatures);
}}


Grid.prototype.GetRow=function(rowIndex)
{
for(var index=0;index<this.rows.length;index++)
{
	if(this.rows[index].rowIndex==rowIndex)
{
	    return this.rows[index];
}
}
return null;}


Grid.prototype.XViewFireOnChangeEvent=function(control)
{
if(control!=null)
{
	if(isIE)
{
	
	
		control.fireEvent("onchange");
}
	else

{
		var evt=document.createEvent("HTMLEvents");
		evt.initEvent("change",true,false);
		control.dispatchEvent(evt);
}
}}


Grid.prototype.InitMoveGridCols=function()
{
   this.MoveGridCols(this.moveGridColsCellName,this.moveGridColsPlaceHolderId);}


Grid.prototype.MoveGridCols=function(cellName,placeHolderId)
{
   this.moveGridColsCellName=cellName;
   this.moveGridColsPlaceHolderId=placeHolderId;      



   var placeHolder=document.getElementById(placeHolderId);
   var html="<table cellpadding=0 cellspacing=0>";
  

   if(document.all)  {      

       var grid=document.getElementById(this.controlID);
       if(grid==null)return;
      

       var elements=grid.getElementsByTagName("th");              

       html+=this.MoveGridColsHelper(elements,cellName,true);
      

       elements=grid.getElementsByTagName("td");
       html+=this.MoveGridColsHelper(elements,cellName,true);
  }
   else

  {              

       var elements=document.getElementsByName(cellName);
       if(elements==null)return;


       html+=this.MoveGridColsHelper(elements,cellName,false);  

}


   html+="</table>";
   placeHolder.innerHTML=html;}


Grid.prototype.MoveGridColsHelper=function(elements,cellName,isIE){
   var html="";
   for(var i=0;i<elements.length;i++)
  {
       var cell=elements[i];    

       if((cell.name==cellName)||(!isIE))
      {
           var att1=cell.parentNode.attributes["class"];
           var att2=cell.parentNode.attributes["oncontextmenu"];
          

           var att1value="";
           var att2value="";
           if(att1!=null)
          {
               att1value=att1.value;
          }


           if(att2!=null)
          {
               att2value=att2.value;
          }
                      

           html+="<tr class=\""+att1value+"\" oncontextmenu=\""+att2value+"\">";
          

           if(isIE)
          {
               html+=cell.outerHTML;
          }
           else

          {
               var row=document.createElement("tr");
               row.appendChild(cell.cloneNode(true));
               html+=row.innerHTML;
          }
          

           html+="</tr>";
          

           cell.style.display='none';
        cell.style.visibility='hidden';
      }
  }
  

   return html;}




function WorkFlow(selfID,id,viewName,workflowControlID,activityControlID,statusControlID,messageID,startActivityID,activitiesRawData,targetURL,workflowPath,workflowConfigPath)
{
   this.selfID=selfID;

   this.id=id;

   this.workflowControlID=workflowControlID;   

   this.activityControlID=activityControlID;
   this.statusControlID=statusControlID;
   this.startActivityID=startActivityID;      

   this.viewName=viewName;
   this.activitiesRawData=decodeURIComponent(activitiesRawData);
   this.targetURL=decodeURIComponent(targetURL);
   this.activities=new Array();
   this.workflowPath=workflowPath;
   this.workflowConfigPath=workflowConfigPath;
  

   this.openActivityTask=null;
  

   this.LoadActivities();
  

   this.currentActivity=null;
      

   this.SetCurrentActivity(this.GetActivity(this.startActivityID));}


function Activity(workflow,activityID,viewID,viewPath,viewConfigPath,stepsRawData,enable)
{
   this.workflow=workflow;
   this.activityID=activityID;
  

   this.viewID=viewID;
   this.viewPath=viewPath;
   this.viewConfigPath=viewConfigPath;
  

   this.viewControlID=this.workflow.activityControlID;
   this.viewControlUniqueID=this.viewControlID.replace(/\_/gi,'$');


   this.view=new XView("",this.viewID,this.viewControlID,"","","","","");

  

   this.stepsRawData=stepsRawData;
   this.enable=enable;
  

   this.steps=new Array();
         

   if(this.stepsRawData!="")
  {
       this.LoadSteps();
  }
  
}


function Step(activity,id,evaluate,type,operationFunctionID,copyData)
{
   this.activity=activity;
   this.id=id;
   this.evaluate=evaluate;
   this.type=type;
   this.operationFunctionID=operationFunctionID;
   this.copyData=copyData;}






























WorkFlow.prototype.SetCurrentActivity=function(activity)
{
   this.currentActivity=activity;}


WorkFlow.prototype.ExecuteStep=function(buttonControl,stepID)
{
   var step=this.currentActivity.GetStep(stepID);
   if(step!=null)
  {
       var result=true;
       if(step.operationFunctionID!="")
      {
           result=eval("Oper_"+step.operationFunctionID+"()");
      }
              

       if((result)&&(!notifyAllExistsValidatorMessages))
      {        

           buttonControl.disabled=true;
           this.BlockControls("input");
           this.BlockControls("select");
           this.openActivityTask=window.setInterval(this.OpenActivity.bind(this,buttonControl,stepID),50);
      }
  }       
}


WorkFlow.prototype.BlockControls=function(controlType)
{
   var controls=document.getElementsByTagName(controlType);          

   if(controls!=null)
  {
       for(var i=0;i<controls.length;i++)
      {
           var control=controls[i];
           if(control.id.indexOf(this.activityControlID)>-1)
          {
               control.style.backgroundColor="gainsboro";
               control.style.color="gainsboro";
          }
      }
  }}


WorkFlow.prototype.UnBlockControls=function(controlType)
{
   var controls=document.getElementsByTagName(controlType);          

   if(controls!=null)
  {
       for(var i=0;i<controls.length;i++)
      {
           var control=controls[i];
           if(control.id.indexOf(this.activityControlID)>-1)
          {
               control.style.backgroundColor="white";
               control.style.color="black";
          }
      }
  }}


WorkFlow.prototype.OpenActivity=function(buttonControl,stepID)
{
   if(!notifyAllExecutingOperation)
  {
       if(this.openActivityTask)window.clearInterval(this.openActivityTask); 

              

       if(notifyAllOfOperationExceptions)
      {
           alert(lastOperationExceptionMessage);
           result=false;
           notifyAllOfOperationExceptions=false;
           lastOperationExceptionMessage="";
           buttonControl.disabled=false;
           this.UnBlockControls("input");
           this.UnBlockControls("select");
           return;
      }
               

       var step=this.currentActivity.GetStep(stepID);
       if(step!=null)
      {
           var script=step.evaluate+"()";
           var activityID=eval(script);              

           var activity=this.GetActivity(activityID);
           if(activity!=null)
          {
               var data=this.currentActivity.view.FillCopyDataWithValues(step.copyData,"");

               this.SetCurrentActivity(activity);
               this.currentActivity.Open(step,data);
          }
           else

          {
               buttonControl.disabled=false;
               this.UnBlockControls("input");
               this.UnBlockControls("select");
          }
      }       

  }  
}


Activity.prototype.Open=function(step,data)
{   

   var targetServerURL=this.workflow.targetURL+"&ConfigPath="+this.workflow.workflowConfigPath+"&ViewName="+this.workflow.viewName;  

   targetServerURL=targetServerURL+"&ViewPath="+encodeURIComponent(this.workflow.workflowPath);
   targetServerURL=targetServerURL+"&ActivityID="+encodeURIComponent(this.activityID);


   targetServerURL=targetServerURL+data;
  

var callBackData=this.workflow.workflowControlID+";";
var callBack=
{
	success:this.ServerResponse,
	failure:this.ServerResponseException,
	argument:callBackData,
	scope:this

}


   var data="StepID=";         

   if(step!=null)
  {
       data=data+step.id;
  }   

    

   var callBackObject=YAHOO.util.Connect.asyncRequest('POST',targetServerURL,callBack,data);
}


Activity.prototype.ServerResponse=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;
if(responseText!=null)
{
	window.status="Transferred "+responseText.length+" Bytes";
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];


	this.Render(responseText);

}
catch(e)

{
	alert("Error '"+e.message+"' in activity server response");
}}


Activity.prototype.ServerResponseException=function(response)
{
var tld=response.tld;
var status=response.status;
var statusText=response.statusText;
var allResponseHeaders=response.allResponseHeaders;
var responseText=response.responseText;
var responseXML=response.responseXML;


if(response.argument==null)
{
	alert("XViewHttpResponseException Argument is Null");
	return;
}


try

{
	var callBackData=response.argument.split(";");
	var targetObjectID=callBackData[0];


	var targetObject=document.getElementById(targetObjectID);
	if(targetObject!=null)
{
		targetObject.innerHTML=responseText;
}
}
catch(e)

{
	alert("HttpResponseException: "+e.message);
}

}




Activity.prototype.Render=function(data)
{
   var targetObject=document.getElementById(this.workflow.workflowControlID);
   if(targetObject==null)return;


   var posStart=data.indexOf("<!--WORKFLOW[");     

   var posEnd=data.indexOf("]WORKFLOW-->");
   var workFlowData=data.substring(posStart+13,posEnd);
   var workFlowDataArray=workFlowData.split("#");
  

   var workFlowControlID=workFlowDataArray[0];
  

   var controlID=workFlowDataArray[1];
   var controlUniqueID=controlID.replace(/\_/gi,'$');
  

   if(controlID!=this.viewControlID)
  {
      
      
      
      

       this.viewControlID=controlID;
       this.viewControlUniqueID=controlUniqueID;
      

       this.view.controlID=controlID;
       this.view.controlUniqueID=controlUniqueID;
      

       this.view.viewControlPrefix=this.view.controlID+"__"+this.view.id.toUpperCase()+"_";  

       this.view.viewControlUniquePrefix=this.view.controlUniqueID+"$_"+this.view.id.toUpperCase()+"_";
  }
  

   posStart=data.indexOf("<script type=\"text/javascript\">var caseF");     

   posEnd=data.indexOf("<!--XVIEW.END-->");  

   var html=data.substring(posStart,posEnd);  

try

{
    html="<table style='width:100%;' cellspacing=0 cellpadding=0><tr><td>"+html+"</td></tr></table>";
       targetObject.innerHTML=html;
      

      
      

       execJS(targetObject);
}
catch(e)

{
	alert("Error '"+e.message+"'. Cannot load activity.");
	ShowHTML('RAW',data);
	ShowHTML('FILTERED',html);
}


}


WorkFlow.prototype.GetActivity=function(activityID)
{
for(var index=0;index<this.activities.length;index++)
{
	if(this.activities[index].activityID==activityID)
{
	    return this.activities[index];
}
}
return null;}


WorkFlow.prototype.LoadActivities=function()
{
   var activitiesRawArray=this.activitiesRawData.split(';');
for(var i=0;i<activitiesRawArray.length;i++)
{
    var activityRawData=activitiesRawArray[i].split('#');   	   

    if(activityRawData.length==6)
   {
        var activityID=activityRawData[0];
        var viewID=activityRawData[1];
        var viewPath=activityRawData[2];
        var viewConfigPath=activityRawData[3];
        var stepsRawData=activityRawData[4];
        var enable=activityRawData[5];
   	   

        this.activities[this.activities.length]=new Activity(this,activityID,viewID,viewPath,viewConfigPath,stepsRawData,enable);
   }
}}


Activity.prototype.LoadSteps=function()
{
   var stepsRawArray=this.stepsRawData.split('|');
for(var i=0;i<stepsRawArray.length;i++)
{
    var stepRawData=stepsRawArray[i].split('@');
 	    if(stepRawData.length==5)
   {
        var id=stepRawData[0];
        var activityID=stepRawData[1];
        var type=stepRawData[2];
        var operationFunctionID=stepRawData[3];
        var copyData=stepRawData[4];
       

        operationFunctionID=operationFunctionID.replace(/\*\.\*/gi,";");
        operationFunctionID=operationFunctionID.replace(/\*\*/gi,"'");
        operationFunctionID=operationFunctionID.replace(/\+/gi," ");
       

        copyData=copyData.replace(/\./gi,";");
        copyData=copyData.replace(/\*/gi,"#");
   }
   

    this.steps[this.steps.length]=new Step(this,id,activityID,type,operationFunctionID,copyData);
}}


Activity.prototype.GetStep=function(id)
{
for(var index=0;index<this.steps.length;index++)
{
	if(this.steps[index].id==id)
{
	    return this.steps[index];
}
}
return null;}

YAHOO.util.CustomEvent=function(type,oScope){this.type=type;this.scope=oScope||window;this.subscribers=[];if(YAHOO.util["Event"]){YAHOO.util.Event.regCE(this);}};YAHOO.util.CustomEvent.prototype={subscribe:function(fn,obj,bOverride){this.subscribers.push(new YAHOO.util.Subscriber(fn,obj,bOverride));},unsubscribe:function(fn,obj){var found=false;for(var i=0;i<this.subscribers.length;++i){var s=this.subscribers[i];if(s&&s.contains(fn,obj)){this._delete(i);found=true;}}
return found;},fire:function(){for(var i=0;i<this.subscribers.length;++i){var s=this.subscribers[i];if(s){var scope=(s.override)?s.obj:this.scope;s.fn.call(scope,this.type,arguments,s.obj);}}},unsubscribeAll:function(){for(var i=0;i<this.subscribers.length;++i){this._delete(i);}},_delete:function(index){var s=this.subscribers[index];if(s){delete s.fn;delete s.obj;}
delete this.subscribers[index];}};YAHOO.util.Subscriber=function(fn,obj,bOverride){this.fn=fn;this.obj=obj||null;this.override=(bOverride);};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){return(this.fn==fn&&this.obj==obj);};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var loadComplete=false;var listeners=[];var delayedListeners=[];var unloadListeners=[];var customEvents=[];var legacyEvents=[];var legacyHandlers=[];return{EL:0,TYPE:1,FN:2,WFN:3,SCOPE:3,ADJ_SCOPE:4,isSafari:(navigator.userAgent.match(/safari/gi)),isIE:(!this.isSafari&&navigator.userAgent.match(/msie/gi)),addListener:function(el,sType,fn,oScope,bOverride){if(this._isValidCollection(el)){var ok=true;for(var i=0;i<el.length;++i){ok=(this.on(el[i],sType,fn,oScope,bOverride)&&ok);}
return ok;}else if(typeof el=="string"){if(loadComplete){el=this.getEl(el);}else{delayedListeners[delayedListeners.length]=[el,sType,fn,oScope,bOverride];return true;}}
if(!el){return false;}
if("unload"==sType&&oScope!==this){unloadListeners[unloadListeners.length]=[el,sType,fn,oScope,bOverride];return true;}
var scope=(bOverride)?oScope:el;var wrappedFn=function(e){return fn.call(scope,YAHOO.util.Event.getEvent(e),oScope);};var li=[el,sType,fn,wrappedFn,scope];var index=listeners.length;listeners[index]=li;if(this.useLegacyEvent(el,sType)){var legacyIndex=this.getLegacyIndex(el,sType);if(legacyIndex==-1){legacyIndex=legacyEvents.length;legacyEvents[legacyIndex]=[el,sType,el["on"+sType]];legacyHandlers[legacyIndex]=[];el["on"+sType]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),legacyIndex);};}
legacyHandlers[legacyIndex].push(index);}else if(el.addEventListener){el.addEventListener(sType,wrappedFn,false);}else if(el.attachEvent){el.attachEvent("on"+sType,wrappedFn);}
return true;},fireLegacyEvent:function(e,legacyIndex){var ok=true;var le=legacyHandlers[legacyIndex];for(i=0;i<le.length;++i){var index=le[i];if(index){var li=listeners[index];var scope=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(scope,e);ok=(ok&&ret);}}
return ok;},getLegacyIndex:function(el,sType){for(var i=0;i<legacyEvents.length;++i){var le=legacyEvents[i];if(le&&le[0]==el&&le[1]==sType){return i;}}
return-1;},useLegacyEvent:function(el,sType){return((!el.addEventListener&&!el.attachEvent)||(sType=="click"&&this.isSafari));},removeListener:function(el,sType,fn){if(typeof el=="string"){el=this.getEl(el);}else if(this._isValidCollection(el)){var ok=true;for(var i=0;i<el.length;++i){ok=(this.removeListener(el[i],sType,fn)&&ok);}
return ok;}
var cacheItem=null;var index=this._getCacheIndex(el,sType,fn);if(index>=0){cacheItem=listeners[index];}
if(!el||!cacheItem){return false;}
if(el.removeEventListener){el.removeEventListener(sType,cacheItem[this.WFN],false);}else if(el.detachEvent){el.detachEvent("on"+sType,cacheItem[this.WFN]);}
delete listeners[index][this.WFN];delete listeners[index][this.FN];delete listeners[index];return true;},getTarget:function(ev,resolveTextNode){var t=ev.target||ev.srcElement;if(resolveTextNode&&t&&"#text"==t.nodeName){return t.parentNode;}else{return t;}},getPageX:function(ev){var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(this.isIE){x+=this._getScrollLeft();}}
return x;},getPageY:function(ev){var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(this.isIE){y+=this._getScrollTop();}}
return y;},getRelatedTarget:function(ev){var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else if(ev.type=="mouseover"){t=ev.fromElement;}}
return t;},getTime:function(ev){if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(e){return t;}}
return ev.time;},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev);},stopPropagation:function(ev){if(ev.stopPropagation){ev.stopPropagation();}else{ev.cancelBubble=true;}},preventDefault:function(ev){if(ev.preventDefault){ev.preventDefault();}else{ev.returnValue=false;}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break;}
c=c.caller;}}
return ev;},getCharCode:function(ev){return ev.charCode||(ev.type=="keypress")?ev.keyCode:0;},_getCacheIndex:function(el,sType,fn){for(var i=0;i<listeners.length;++i){var li=listeners[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==sType){return i;}}
return-1;},_isValidCollection:function(o){return(o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){for(i in this.elCache){delete this.elCache[i];}},regCE:function(ce){customEvents.push(ce);},_load:function(e){loadComplete=true;},_tryPreloadAttach:function(){var tryAgain=!loadComplete;for(var i=0;i<delayedListeners.length;++i){var d=delayedListeners[i];if(d){var el=this.getEl(d[this.EL]);if(el){this.on(el,d[this.TYPE],d[this.FN],d[this.SCOPE],d[this.ADJ_SCOPE]);delete delayedListeners[i];}}}
if(tryAgain){setTimeout("YAHOO.util.Event._tryPreloadAttach()",50);}},_unload:function(e,me){for(var i=0;i<unloadListeners.length;++i){var l=unloadListeners[i];if(l){var scope=(l[this.ADJ_SCOPE])?l[this.SCOPE]:window;l[this.FN].call(scope,this.getEvent(e),l[this.SCOPE]);}}
if(listeners&&listeners.length>0){for(i=0;i<listeners.length;++i){l=listeners[i];if(l){this.removeListener(l[this.EL],l[this.TYPE],l[this.FN]);}}
this.clearCache();}
for(i=0;i<customEvents.length;++i){customEvents[i].unsubscribeAll();delete customEvents[i];}
for(i=0;i<legacyEvents.length;++i){delete legacyEvents[i][0];delete legacyEvents[i];}},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var dd=document.documentElement;db=document.body;if(dd&&dd.scrollTop){return[dd.scrollTop,dd.scrollLeft];}else if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}}};}();YAHOO.util.Event.on=YAHOO.util.Event.addListener;if(document&&document.body){YAHOO.util.Event._load();}else{YAHOO.util.Event.on(window,"load",YAHOO.util.Event._load,YAHOO.util.Event,true);}
YAHOO.util.Event.on(window,"unload",YAHOO.util.Event._unload,YAHOO.util.Event,true);YAHOO.util.Event._tryPreloadAttach();}