
function KeywordText(dat)
{var data=dat;var eo=new EventObject();this.init=function()
{setFilter();evt_keyword_changed_update.subscribe(onKeywordChangedUpdate);evt_get_filters_request.subscribe(onGetFiltersRequest);YAHOO.util.Event.addListener(data.info.name,"keyup",onTyping,document);if(data.attrs.initial_focus)
document.getElementById(data.info.name).focus();}
function onTyping(evt)
{var elem=document.getElementById(data.info.name);var length=data.attrs.highlight_length;if(elem&&(length>0))
{eo.filters.data=elem.value;if(elem.value.length>=length)
{eo.data.length=data.attrs.highlight_length;evt_keyword_changed_request.fire(eo);}}}
function onGetFiltersRequest(type,args)
{if(args[0]&&args[0].filters&&args[0].filters.report_id==data.attrs.report_id)
{if(document.getElementById(data.info.name))
{eo.filters.data=YAHOO.lang.trim(document.getElementById(data.info.name).value);}
evt_search_filters_update.fire(eo);}
else
{evt_search_filters_update.fire(null);}}
function setFilter()
{eo.name=data.info.controller_name;eo.type=data.info.type;eo.w_id=data.info.w_id;eo.filters.data=data.attrs.initial_value;eo.filters.report_def=data.js.report_def;eo.filters.rnSearchType=data.js.rnSearchType;eo.filters.report_id=data.attrs.report_id;}
function onKeywordChangedUpdate(type,args)
{var obj=args[0];if(obj.filters.report_id==data.attrs.report_id)
{var text=obj.filters.data;if(text)
if(document.getElementById(data.info.name).value!=text)
{document.getElementById(data.info.name).value=text;}}}}

function SearchButton(dat)
{var data=dat;var eo=new EventObject();;this.init=function(){YAHOO.util.Event.addListener(data.info.name,"click",onClick,document);}
function onClick(evt)
{startSearch(data);}}

function Grid(dat)
{var data=dat;var eo=new EventObject();var sortEo=new EventObject();var grid,data_source,grid_columns;this.init=function()
{RNT.MessageBase.NO_RECORDS_LBL=data.js.NO_RECORDS_LBL;evt_report_update.subscribe(onReportChanged);evt_keyword_changed_update.subscribe(onHighlightChanged);evt_search_in_progress_update.subscribe(searchInProgress);evt_get_filters_request.subscribe(onGetFiltersRequest);evt_sort_type_update.subscribe(onSortTypeUpdate);setFilter();setInitalReportFilters(data.attrs.report_id,data.js.r_tok,data.js.filters,data.js.format);if(data.attrs.headers)
{YAHOO.widget.DataTable.MSG_EMPTY=RNT.MessageBase.NO_RECORDS_LBL;generateYUITable("grid_table_"+data.info.name,"grid_table_container_"+data.info.name,data.js.headers);}}
function setFilter()
{eo.name=sortEo.name=data.info.controller_name;eo.type=data.info.type;eo.w_id=sortEo.w_id=data.info.w_id;eo.filters.r_tok=data.js.r_tok;eo.filters.report_id=sortEo.filters.report_id=data.attrs.report_id;sortEo.type="sort_args";sortEo.filters.sort_order=1;sortEo.filters.sort_direction=data.js.sortDirection;sortEo.filters.col_id=data.js.colId;sortEo.data.report_page="";}
function searchInProgress(type,args)
{if(args[0].filters.report_id==data.attrs.report_id)
{document.getElementById('grid_table_container_'+data.info.name).innerHTML="";YAHOO.util.Dom.setStyle("container"+data.info.name,'opacity','0');YAHOO.util.Dom.addClass("content"+data.info.name,"loading");}}
function onHighlightChanged(type,args)
{var evtObj=args[0];if(data.attrs.highlight&&evtObj.filters.report_id==data.attrs.report_id)
{var searchTerm=evtObj.filters.data.toLowerCase();if(searchTerm.length)
{var content=document.getElementById("container"+data.info.name);content.innerHTML=clearHighlights(content.innerHTML);var searchTermArray=searchTerm.split(" ");var bodyText=document.getElementById("container"+data.info.name).innerHTML;for(var i=0;i<searchTermArray.length;i++)
{if(searchTermArray[i]!=""&&(searchTermArray[i].length>=evtObj.data.length))
bodyText=highlightElement(bodyText,searchTermArray[i]);}
document.getElementById("container"+data.info.name).innerHTML=bodyText;}}}
function onReportChanged(type,args)
{var newdata=args[0];newdata=newdata.data;if(newdata.report_id==data.attrs.report_id)
{YAHOO.util.Dom.removeClass("content"+data.info.name,"loading");var fadeIn=new YAHOO.util.Anim("container"+data.info.name,{opacity:{to:1}},0.4,YAHOO.util.Easing.easeIn);fadeIn.animate();var currentPageSize=newdata.per_page;var cols=newdata.headers.length;var space;var str="";var report=document.getElementById('grid_table_container_'+data.info.name);var str="<table id='grid_table_"+data.info.name+"' class='yui-dt-table'>";if(data.attrs.headers)
{str+="<thead class='GridHead'>";str+="<tr>";if(newdata.row_num)
str+="<th class='GridHeader'>"+data.attrs.label_row_number+"</th>";for(var i=0;i<cols;i++)
str+="<th class='GridHeader' width='"+newdata.headers[i].width+"%'>"+newdata.headers[i].heading+"</th>";str+="</tr></thead>";}
if(newdata.total_num>0)
{str+="<tbody class='yui-dt-body>'";for(var i=0;i<currentPageSize;i++)
{str+="<tr class='"+((i%2==0)?'yui-dt-even':'yui-dt-odd')+"'>";if(newdata.row_num)
str+="<td>"+(newdata.start_num+i)+"</td>";for(var j=0;j<cols;j++)
str+="<td>"+newdata.data[i][j]+"</td>";str+="</tr>";}
str+="</tbody>"}
str+="</table>";report.innerHTML=str;if(data.attrs.headers)
generateYUITable("grid_table_"+data.info.name,"grid_table_container_"+data.info.name,newdata.headers);}}
function generateYUITable(source,dest,headers)
{data_source=new YAHOO.util.DataSource(YAHOO.util.Dom.get(source));data_source.responseType=YAHOO.util.DataSource.TYPE_HTMLTABLE;if(data.js.row_num)
{var grid_columns='grid_columns = [{key:"'+data.attrs.label_row_number+'", sortable:false, formatter:"number"},';var field_info='field_info = [{key:"'+data.attrs.label_row_number+'", parser:YAHOO.util.DataSource.parseNumber},';}
else
{var grid_columns="grid_columns = [";var field_info="field_info = [";}
for(i=0;i<headers.length;i++)
{if(headers[i]['data_type']==3)
{field_info+='{key:"'+headers[i]['heading']+'", parser:YAHOO.util.DataSource.parseNumber}';grid_columns+='{key:"'+headers[i]['heading']+'",colId:"'+headers[i]['col_id']+'", sortable:true, formatter:"number"}';}
else if(headers[i]['data_type']==4||headers[i]['data_type']==7)
{field_info+='{key:"'+headers[i]['heading']+'"}';grid_columns+='{key:"'+headers[i]['heading']+'",colId:"'+headers[i]['col_id']+'", sortable:true, formatter:"date"}';}
else
{field_info+='{key:"'+headers[i]['heading']+'"}';grid_columns+='{key:"'+headers[i]['heading']+'",colId:"'+headers[i]['col_id']+'", sortable:true}';}
if((headers.length-1)>i)
{field_info+=",";grid_columns+=",";}}
grid_columns+="];";field_info+="];";eval(grid_columns);eval(field_info);data_source.responseSchema={fields:field_info};var configs={};if(sortEo.filters.sort_direction&&sortEo.filters.col_id)
{for(var i=0;i<grid_columns.length;i++)
{if(grid_columns[i].colId==sortEo.filters.col_id)
var sortKey=grid_columns[i].key;}
if(sortKey)
{var sortDirection=(sortEo.filters.sort_direction==1)?"asc":"desc";configs={sortedBy:{key:sortKey,dir:sortDirection}};}}
grid=new YAHOO.widget.DataTable(dest,grid_columns,data_source,configs);if(!data.attrs.headers)
YAHOO.util.Dom.addClass("grid_table_container_"+data.info.name,"NoHeader");grid.sortColumn=sortColumn;evt_grid_widget_update.fire();}
function sortColumn(column)
{var sortDir=1;if(grid.get("sortedBy")!=undefined)
{if(column.key===grid.get("sortedBy").key)
sortDir=(grid.get("sortedBy").dir==="asc")?2:1;}
sortEo.filters.sort_direction=sortDir;sortEo.filters.col_id=column.colId;evt_sort_type_request.fire(sortEo);evt_search_in_progress_request.fire(sortEo);evt_search_request.fire(sortEo);}
function onGetFiltersRequest(type,args)
{if(args[0].filters.report_id==data.attrs.report_id)
evt_search_filters_update.fire(sortEo);else
evt_search_filters_update.fire(null);}
function onSortTypeUpdate(type,args)
{var evt=args[0];if(evt.filters.report_id==sortEo.filters.report_id)
{sortEo.filters.col_id=parseInt(evt.filters.col_id);sortEo.filters.sort_direction=parseInt(evt.filters.sort_direction);}}}