
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 SearchIcon(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 MenuFilterDropdown(dat)
{var data=dat;var eo=new EventObject();var hier_menu_cache=new Array();var parent_form=null;this.init=function()
{evt_menu_filter_get_update.subscribe(onDropdownUpdate);evt_get_filters_request.subscribe(onGetFiltersRequest);evt_search_filters_unprocessed_update.subscribe(onViewListReady);YAHOO.util.Event.addListener("lvl1"+data.info.name,"change",onDropdownChange,1);YAHOO.util.Event.addListener("lvl2"+data.info.name,"change",onDropdownChange,2);YAHOO.util.Event.addListener("lvl3"+data.info.name,"change",onDropdownChange,3);YAHOO.util.Event.addListener("lvl4"+data.info.name,"change",onDropdownChange,4);YAHOO.util.Event.addListener("lvl5"+data.info.name,"change",onDropdownChange,5);YAHOO.util.Event.addListener("lvl6"+data.info.name,"change",onDropdownChange,6);YAHOO.util.Event.addListener("viewlist"+data.info.name,"click",viewListClick);setFilter();}
function setFilter()
{eo.name=data.info.controller_name;eo.type=data.info.type;eo.w_id=data.info.w_id;eo.data.filter_name=data.attrs.filter_name;eo.data.element_name=data.info.name;eo.data.linking_on=data.js.linking_on;eo.filters.rnSearchType=data.js.rnSearchType;eo.filters.report_id=data.attrs.report_id;eo.filters.report_def=data.js.report_def;eo.filters.name=data.js.name;eo.filters.fltr_id=data.js.fltr_id;eo.filters.oper_id=data.js.oper_id;eo.filters.data=new Array();eo.filters.data[0]=(data.js.initial!=null)?data.js.initial:new Array();if(eo.data.filter_name.indexOf("prod")>-1)
{RNT.Widgets.CurrentProduct=eo.filters.data[0][eo.filters.data[0].length-1];RNT.Widgets.LinkingOn=data.js.linking_on;RNT.Widgets.LinkingFilter=data.attrs.filter_name;}}
function onDropdownChange(type,arg)
{eo.data.level=arg;var elementChanged=document.getElementById("lvl"+arg+data.info.name);if(arg<6)
{elementChanged.disabled=true;eo.disabledElement=elementChanged.id;}
eo.data.value=elementChanged.options[elementChanged.selectedIndex].value;if(eo.data.filter_name.indexOf("prod")>-1)
{RNT.Widgets.CurrentProduct=eo.data.value;RNT.Widgets.LinkingOn=data.js.linking_on;RNT.Widgets.LinkingFilter=data.attrs.filter_name;}
if((eo.data.value<1)&&eo.data.linking_on)
{eo.data.reset=true;if(eo.data.value==0)
{previous_element=document.getElementById("lvl"+(arg-1)+data.info.name);eo.data.value=previous_element.options[previous_element.selectedIndex].value;}
else if(eo.data.value==-1&&eo.data.filter_name.indexOf("cat")==-1)
{eo.data.reset=false;}
else
{eo.data.value=0;}}
else
{eo.data.reset=false;}
eo.data.cache=hier_menu_cache;if(data.js.link_map)
{eo.data.link_map=data.js.link_map;data.js.link_map=null;}
evt_menu_filter_get_request.fire(eo);if(eo.data.value==-1)
{eo.filters.data[0]=new Array();}
else
{if(eo.data.value==0)
eo.filters.data[0]=eo.filters.data[0].slice(0,arg-1);else
eo.filters.data[0][arg-1]=eo.data.value;for(var i=arg;i<eo.filters.data[0].length;i++)
delete eo.filters.data[0][i];}
evt_menu_filter_select_request.fire(eo);}
function onDropdownUpdate(type,args)
{var evtObj=args[0];var hier_lvl=evtObj.data.level;var hier_data=evtObj.data.hier_data;var hier_name=data.info.name;if((evtObj.data.filter_name!=data.attrs.filter_name)||(evtObj.filters.report_id!=data.attrs.report_id))
return;var previous_level=document.getElementById(evtObj.disabledElement);if(previous_level)
{previous_level.disabled=false;previous_level.focus();for(var i=0;i<previous_level.options.length;i++)
{if(evtObj.data.value==previous_level.options[i].value)
previous_level.options[i].selected=true;}}
if(hier_lvl<7)
{var next_lvl=document.getElementById("lvl"+hier_lvl+hier_name);next_lvl.options.length=0;next_lvl.options[0]=new Option();next_lvl.options[0].text=(hier_lvl==1)?data.js.all_lbl:data.js.all_subs_lbl;next_lvl.options[0].value=(hier_lvl==1)?-1:0;for(var i=0;i<hier_data.length;i++)
{next_lvl.options[i+1]=new Option();next_lvl.options[i+1].text=hier_data[i][1];next_lvl.options[i+1].value=hier_data[i][0];}
if(hier_lvl>1)
document.getElementById("divlvl"+hier_lvl+hier_name).style.display="block";}
if(hier_data.length>0||hier_lvl<2)
{for(var i=hier_lvl+1;i<7;i++)
{if(document.getElementById("lvl"+i+hier_name)&&document.getElementById("lvl"+i+hier_name).options.length>0)
document.getElementById("lvl"+i+hier_name).options[0].selected=true;document.getElementById("divlvl"+i+hier_name).style.display="none";}}
else
{for(var i=hier_lvl;i<7;i++)
{if(document.getElementById("lvl"+i+hier_name)&&document.getElementById("lvl"+i+hier_name).options.length>0)
document.getElementById("lvl"+i+hier_name).options[0].selected=true;document.getElementById("divlvl"+i+hier_name).style.display="none";}}}
function viewListClick()
{eo.data.url=data.attrs.full_display_page;evt_search_filters_unprocessed_request.fire(eo);}
function onViewListReady(type,args)
{var evtObj=args[0];if(evtObj.data.filter_name==data.attrs.filter_name&&evtObj.data.report_id==data.attrs.report_id)
{var pageString=evtObj.data.url+data.js.session;pageString=urlParmAdd(pageString,"filter",data.attrs.filter_name);if((eo.data.filter_name.indexOf("cat")>-1)&&RNT.Widgets.CurrentProduct>0&&RNT.Widgets.LinkingOn)
pageString=urlParmAdd(pageString,"prod_link",(RNT.Widgets.LinkingFilter+":"+RNT.Widgets.CurrentProduct));window.open(pageString,'hier_popup','scrollbars,resizable,width=550,height=700');}}
function onGetFiltersRequest(type,args)
{if(args[0].filters.report_id==data.attrs.report_id)
evt_search_filters_update.fire(eo);else
evt_search_filters_update.fire(null);}}

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);}}}