
var list_filter=[];function dechex(d){var hD="0123456789ABCDEF";var h=hD.substr(d&15,1);while(d>15){d>>=4;h=hD.substr(d&15,1)+h;}
return h;}
function number_format(number){x=String(number).split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');}
return x1+x2;}
function Compare(val1,val2,desc){return(desc)?val1<val2:val1>val2;}
function GetValue(RowData,col,coltype,ignore_case){if(RowData&&RowData.childNodes[col]){switch(coltype){case ELEMENT_INTEGER:return parseInt(RowData.childNodes[col].innerHTML.replace(/[,\.]/img,""));break;case ELEMENT_HEX:return parseInt('0x'+RowData.childNodes[col].innerHTML.replace(/[,\.]/img,""),16);break;case ELEMENT_FLOAT:return parseFloat(RowData.childNodes[col].innerHTML.replace(/[,\.]/img,""));break;case ELEMENT_DATE:case ELEMENT_DATE_TZ:case ELEMENT_TIMESTAMP:return CheckDate(RowData.childNodes[col].innerHTML.replace(/[,\.]/img,""),false);break;case ELEMENT_ELAPSED_TIME:var elm=RowData.childNodes[col].innerHTML.split(/[ :]/);return parseInt(elm[0])*86400+parseInt(elm[1])*3600+parseInt(elm[2])*60+parseInt(elm[3]);break;default:var str=RowData.childNodes[col].innerHTML;if(ignore_case){str=str.toLowerCase();}
return str.replace(/<.*?>/g,"");break;}}
else{return null;}}
function qsort(a,desc){if(a.length==0)return new Array();var left=new Array();var right=new Array();var pivot=a[0];for(var i=1;i<a.length;i++){if(Compare(a[i]['value'],pivot['value'],desc))
left.push(a[i]);else
right.push(a[i]);}
return qsort(left,desc).concat(pivot,qsort(right,desc));}
function SortList(ListId,col,coltype,ignore_case){var ListData=document.getElementById(ListId+'_data');if(ListData){var last_sort=window[ListId+'_col'];var desc=window[ListId+'_desc'];if(last_sort==col){desc=1-desc;}
else{desc=0;}
window[ListId+'_col']=col;window[ListId+'_desc']=desc;var i,N=ListData.childNodes.length;if(N>50){var working=ShowWorking(ListData);}
window[ListId+'_select']={};var a=new Array();for(i=0;i<N;i++){var Row=ListData.childNodes[i];if(Row.style&&Row.style.display!='none'){a.push({"id":Row.id,"value":GetValue(Row,col,coltype,ignore_case),"row":Row.innerHTML,"class":Row.className});}}
a=qsort(a,desc);var j=0;for(i=0;i<N;i++){var Row=ListData.childNodes[i];if(Row.style&&Row.style.display!='none'){Row.innerHTML=a[j]['row'];if(j%2){Row.className=a[j]['class'].replace(/Row(Odd|Even)/gi,"RowOdd");}
else{Row.className=a[j]['class'].replace(/Row(Odd|Even)/gi,"RowEven");}
if(a[j]['class'].indexOf(' ')>=0){window[ListId+'_select'][Row.id]=Row.id;}
j++;}}
if(N>50&&working){HideWorking(working);}}}
function RecalcTotals(ListId){var ListData=document.getElementById(ListId+'_data');if(ListData){var TotalSum=window[ListId+'_sum'];if(TotalSum){var i,M=0,N=ListData.childNodes.length;for(var j in TotalSum){TotalSum[j][2]=0;}
for(i=0;i<N;i++){var Row=ListData.childNodes[i];if(Row.style&&Row.style.display=='block'){M++;for(var j in TotalSum){var val=GetValue(Row,j,TotalSum[j][0]);if(!isNaN(val)){TotalSum[j][2]+=val;}}}}
for(var j in TotalSum){var sumelement=document.getElementById(TotalSum[j][1]);if(sumelement){var sum=TotalSum[j][2];if(TotalSum[j][3]==FORMAT_TOTAL_AVG){if(M>0){sum=sum/M;}
else{sum=0;}}
switch(TotalSum[j][0]){case ELEMENT_INTEGER:sumelement.innerHTML=number_format(sum.toFixed(0));break;case ELEMENT_HEX:sumelement.innerHTML=dechex(sum);break;case ELEMENT_FLOAT:sum=sum/Math.pow(10,TotalSum[j][4]);sumelement.innerHTML=number_format(sum.toFixed(TotalSum[j][4]));break;case ELEMENT_ELAPSED_TIME:sum=Math.round(sum);var days=Math.floor(sum/86400);sum=sum%86400;var hours='0'+Math.floor(sum/3600);hours=hours.substr(hours.length-2)
sum=sum%3600;var minutes='0'+Math.floor(sum/60);minutes=minutes.substr(minutes.length-2)
seconds='0'+sum%60;seconds=seconds.substr(seconds.length-2)
sumelement.innerHTML=days+' '+hours+':'+minutes+':'+seconds;break;}}}}}}
function ExportFilter(ListId,ExportURL){var obj=document.getElementById(ListId+'_filter');if(obj){location.href=ExportURL+(ExportURL.indexOf('?')>=0?'&':'?')+"Filter="+encodeURIComponent(obj.value);}}
function CopyFilter(ListId,Id,CopyURL){var obj=document.getElementById(ListId+'_filter');if(obj&&obj.value){UpdateContent(Id,CopyURL+(CopyURL.indexOf('?')>=0?'&':'?')+"Filter="+encodeURIComponent(obj.value));}}
function ClearIncludes(ListId){if(typeof(ListId)=='string'){var arrLists=[ListId];}
else{var arrLists=ListId;}
for(var l=0;l<arrLists.length;l++){var CurrentListId=arrLists[l];list_filter[CurrentListId]='';var ListData=document.getElementById(CurrentListId+'_data');if(ListData){var i,N=ListData.childNodes.length;var line=0;for(i=0;i<N;i++){var Row=ListData.childNodes[i];if(Row.style){Row.style.display='block';if(line%2){Row.className=Row.className.replace(/Row(Odd|Even)/gi,"RowOdd");}
else{Row.className=Row.className.replace(/Row(Odd|Even)/gi,"RowEven");}
line++;}}
RecalcTotals(CurrentListId);}
var obj=document.getElementById(CurrentListId+'_filter');if(obj){obj.value='';obj.focus();}}}
function IncludeLines(ListId,val,compare,ignore_case){if(typeof(ListId)=='string'){var arrLists=[ListId];}
else{var arrLists=ListId;}
for(var l=0;l<arrLists.length;l++){var CurrentListId=arrLists[l];list_filter[CurrentListId]=val;var cols=window[CurrentListId+'_filter'];var ListData=document.getElementById(CurrentListId+'_data');if(ListData&&cols){var i,N=ListData.childNodes.length;var line=0;for(i=0;i<N;i++){var Row=ListData.childNodes[i];if(Row.style){if(!compare){compare='=';}
if(ignore_case){val=val.toLowerCase();}
var reg=new RegExp(val,"img");var include=false;for(var x=0;x<cols.length;x++){var NewVal=GetValue(Row,cols[x]['row'],cols[x]['coltype'],ignore_case);if(compare=='in'){if(NewVal){NewVal=NewVal.toString();}}
if(NewVal){if(val==null||val==''||(compare=='='&&NewVal==val)||(compare=='>'&&NewVal>val)||(compare=='>='&&NewVal>=val)||(compare=='<'&&NewVal<val)||(compare=='<='&&NewVal<=val)||(compare=='!='&&NewVal!=val)||(compare=='<>'&&NewVal!=val)||(compare=='in'&&NewVal.match(reg))){include=true;break;}}}
if(include){Row.style.display='block';if(line%2){Row.className=Row.className.replace(/Row(Odd|Even)/gi,"RowOdd");}
else{Row.className=Row.className.replace(/Row(Odd|Even)/gi,"RowEven");}
line++;}
else{Row.style.display='none';}}}
RecalcTotals(CurrentListId);}}}
function SelectLine(ListId,LineId,class_name,multi){try{if(typeof(LineId)=="object"){LineId=LineId.parentNode.parentNode.id;}
if(!multi){var arrSelect=window[ListId+'_select'];for(var i in arrSelect){var Row=document.getElementById(arrSelect[i]);if(Row){$('#'+arrSelect[i]).removeClass(class_name);}}
window[ListId+'_select']={};}
window[ListId+'_select'][LineId]=LineId;$('#'+LineId).addClass(class_name);}
catch(e){return;}}
function UnSelectLines(ListId,class_name){try{var arrSelect=window[ListId+'_select'];for(var i in arrSelect){var Row=document.getElementById(arrSelect[i]);if(Row){$('#'+arrSelect[i]).removeClass(class_name);}}
window[ListId+'_select']={};}
catch(e){return;}}
function RemoveSelectLines(ListId){try{var arrSelect=window[ListId+'_select'];for(var i in arrSelect){var Row=document.getElementById(arrSelect[i]);if(Row){RemoveContent(ListId+'_data',arrSelect[i])}}
window[ListId+'_select']={};}
catch(e){return;}}
function ListExpand(ListId){var max_height=window[ListId+'_max_height'];var show_all=window[ListId+'_show_all'];var obj=document.getElementById(ListId);if(obj&&max_height){if(show_all){obj.style.maxHeight=max_height+'px';window[ListId+'_show_all']=0;}
else{obj.style.maxHeight='none';window[ListId+'_show_all']=1;}}}
function SelectCheckbox(id,val){$('#'+id+'_form input:checkbox:visible').each(function(){if(typeof(val)=='undefined'){this.checked=!this.checked;}
else{this.checked=val;}});}
function UpdateSort(id,post_url){var data=new Array();$("#"+id+"_data div").each(function(i,elm){data[i]=$(elm).attr("id").replace(id+'_','');});if(data.length){$.post(post_url,{"ids[]":data});}}
