var shopts=[5,10,15,20,25,30,50,100];
var tableID=0;
// AR_DEV: refresh fix - add table ident
var tableIdent='';
function prevPg() {
 var pg=parseInt(d.ctr.page.value)-1;
 if(pg < 1) pg=1;
 go2Pg(pg);
}
function nextPg() {
 var ct=parseInt($('#pgct').html());
 var pg=parseInt(d.ctr.page.value)+1;
 if(pg > ct) pg=ct;
 if(pg < 1) pg=1;
 go2Pg(pg);
}
function lastPg() {
 var ct=parseInt($('#pgct').html());
 if(ct < 1) ct=1;
 go2Pg(ct);
}
function go2Pg(page) {
 d.ctr.page.value=page;
 d.ctr.act.value="now";
 ref();
}
// AR_DEV: refresh fix
function reSrt(sorter,sorder,iteration,ident) {
 // alert(ident);
 tableID = iteration;
 tableIdent = ident;

 if(sorder) sorder = ' '+sorder;

 d.ctr.page.value=1;
 d.ctr.sort.value=sorter+sorder;
 d.ctr.act.value="now";
 
 tid = '_'+ident+'_'+sorter;
 atid = 'a'+tid;
 thtid = 'th'+tid;

 // alert($('#'+atid).attr('onclick'));
 setTimeout("changeTID('"+sorter+"')", 200);
 // alert($('#'+atid).click());
 tid = null;

 // alert(d.ctr.sort.value);
 ref();
 // d.ctr.submit();
}
function changeShow(val) {
 d.ctr.showing.value = val;
 d.ctr.act.value="now";
 ref();
}
// AR_DEV: page refresh fix - change sort options on the page
function changeTID(tid)
{
 //alert(0);alert(tid);
 if(tid == current_tid[tableIdent])
 {
   //alert(10);alert(tid);alert(current_tid[tableIdent]);
   $('#a'+buildTID(tableIdent,tid)).attr('onclick','');
   if($('#th'+buildTID(tableIdent,tid)).hasClass('coldn'))
   {
     //alert(1);
     $('#th'+buildTID(tableIdent,tid)).removeClass('coldn');
     $('#th'+buildTID(tableIdent,tid)).addClass('colup');
     $('#a'+buildTID(tableIdent,tid)).unbind('click');
     $('#a'+buildTID(tableIdent,tid)).bind('click',
                                           {arg1:tid,
                                            arg2:'',
                                            arg3:tableID,
                                            arg4:tableIdent}, 
                                            function(event) { 
                                              reSrt(event.data.arg1, event.data.arg2, event.data.arg3, event.data.arg4); 
                                            });
   }
   else if($('#th'+buildTID(tableIdent,tid)).hasClass('colup'))
   {
     //alert(2);
     $('#th'+buildTID(tableIdent,tid)).removeClass('colup');
     $('#th'+buildTID(tableIdent,tid)).addClass('coldn');
     $('#a'+buildTID(tableIdent,tid)).unbind('click');
     $('#a'+buildTID(tableIdent,tid)).bind('click',
                                           {arg1:tid,
                                            arg2:'DESC',
                                            arg3:tableID,
                                            arg4:tableIdent}, 
                                            function(event) { 
                                              reSrt(event.data.arg1, event.data.arg2, event.data.arg3, event.data.arg4); 
                                            });
   }
 }
 else
 {
   // alert(11);alert(tid);alert(current_tid[tableIdent]);
   $('#th'+buildTID(tableIdent,current_tid[tableIdent])).removeClass('coldn');
   $('#th'+buildTID(tableIdent,current_tid[tableIdent])).removeClass('colup');
   sorder = $('#a'+buildTID(tableIdent,current_tid[tableIdent])).attr('rel');
   $('#a'+buildTID(tableIdent,current_tid[tableIdent])).attr('onclick','');
   $('#a'+buildTID(tableIdent,current_tid[tableIdent])).unbind('click');
   $('#a'+buildTID(tableIdent,current_tid[tableIdent])).bind('click',
                                                             {arg1: current_tid[tableIdent],
                                                              arg2: sorder,
                                                              arg3: tableID,
                                                              arg4: tableIdent}, 
                                                              function(event) { 
                                                                reSrt(event.data.arg1, event.data.arg2, event.data.arg3, event.data.arg4); 
                                                              });

   $('#a'+buildTID(tableIdent,tid)).attr('onclick','');
   if($('#a'+buildTID(tableIdent,tid)).attr('rel'))
   {
     //alert(3);
     $('#th'+buildTID(tableIdent,tid)).addClass('colup');
     $('#a'+buildTID(tableIdent,tid)).unbind('click');
     $('#a'+buildTID(tableIdent,tid)).bind('click',
                                           {arg1:tid,
                                            arg2:'',
                                            arg3:tableID,
                                            arg4:tableIdent}, 
                                            function(event) { 
                                              reSrt(event.data.arg1, event.data.arg2, event.data.arg3, event.data.arg4); 
                                            });
   }
   else
   {
     //alert(4);
     $('#th'+buildTID(tableIdent,tid)).addClass('coldn');
     $('#a'+buildTID(tableIdent,tid)).unbind('click');
     $('#a'+buildTID(tableIdent,tid)).bind('click',
                                           {arg1:tid,
                                            arg2:'DESC',
                                            arg3:tableID,
                                            arg4:tableIdent}, 
                                            function(event) { 
                                              reSrt(event.data.arg1, event.data.arg2, event.data.arg3, event.data.arg4); 
                                            });
   }
 }
 current_tid[tableIdent] = tid;
}
// AR_DEV: refresh fix - build tag id to change sort options
function buildTID(i,d)
{
 return '_'+i+'_'+d;
}
function ref() {
    
 // AR_DEV: refresh fix - use the current functionality also for homepage
 var $path=location.href.split('/');
 var mainPage = false;
 
 if(!$path[3] || $path[3] == 'index' || $path[3] == 'index.php')
 {
   $path[3] = 'home';
   mainPage = true;
 }
 
 if($('#shdiv').length > 0 || mainPage) {
  $('#shdiv').css('display', 'none');
  $('#pgdiv').css('display', 'none');
  var tab=$('.lt table')[tableID];
  for(i=tab.rows.length-1; i > 0; i--)
   for(j=0; j < tab.rows[i].cells.length; j++) $(tab.rows[i].cells[j]).css('visibility', 'hidden');
  if($('#lmsg').html() != '') $('#lmsg').html('');

  // AR_DEV: refresh fix - show particular table 
  $.ajax({ url:$path[0]+'//'+$path[2]+'/'+$path[3]+'/js/'+tableIdent, dataType:'json', type:'POST',
   data:$(d.ctr).serialize(), success:function(j){
if(j==null) {
 d.ctr.submit();
 return;
}

var msg=$('#lmsg');
if(j.error) {
 msg.removeClass();
 msg.addClass('el');
 msg.html(j.error);
}
else {
 msg.removeClass();
 msg.html('');
}
if($('#big').length > 0) $('#big').html(j.tc);
var i, x, y, tr, td, attribs, attrib;

var tab=$('.lt table tbody')[tableID];
for(i=tab.rows.length-1; i >= 0; i--) tab.deleteRow(i);
for(i=0; i < j.fields.length; i++) {
 tr=tab.insertRow(i);
 $(tr).hover(
// AR_DEV: change dashboard table backgrounds
function(){ $(this).css('background-color', '#D8E7E9'); },
function(){ $(this).css('background-color', ''); }
 );
 
 for(x=0; x < j.fields[i].length; x++) {
  td=tr.insertCell(x);
  td.innerHTML=j.fields[i][x];
  if(j.mods[i] && j.mods[i][x]) {
   attribs=j.mods[i][x].match(/\S+=\S+/);
   for(y=0; y < attribs.length; y++) {
    attrib=attribs[y].split(/=/);
    td.setAttribute(attrib[0], attrib[1].substr(1,attrib[1].length-2));
   }
  }
 }
 td=tr.insertCell(x);
 td.className='lbt';
 td.innerHTML='';
 for(y=0; y<j.buttons[i].length; y++) {
  if(y) td.innerHTML+=' ';
  td.innerHTML+=j.buttons[i][y];
 }
}

var pgct=Math.ceil(j.tc / j.showing);
$('#pgct').html(pgct);
if(j.page <= 1) {
 $('#lbs').removeClass();
 $('#lbs').addClass('hide');
 $('#lbp').removeClass();
 $('#lbp').addClass('hide');
}
else {
 $('#lbs').removeClass();
 $('#lbp').removeClass();
}
if(j.page >= pgct) {
 $('#lbn').removeClass();
 $('#lbn').addClass('hide');
 $('#lbe').removeClass();
 $('#lbe').addClass('hide');
}
else {
 $('#lbn').removeClass();
 $('#lbe').removeClass();
}
d.ctr.page.value=j.page;
// AR_DEV: fix cogwheel on homepage
if(typeof(d.ctr.showing) !== 'undefined')
{
    // alert(typeof(d.ctr.showing));
    d.ctr.showing.value=j.showing;
}

var epgct = $('#pgdiv .ldiv').length;

if(pgct > epgct) {
 for(var i=epgct; i <= pgct; i++) {
  var sDiv=$('<div class="ldiv">'+i+'</div>');
  sDiv.hover(
// AR_DEV: change dashboard table backgrounds
function(){ $(this).css('background-color', '#D8E7E9'); onPg=true; },
function(){ $(this).css('background-color', '#FFF'); onPg=false; }
  );
  sDiv.bind('click', function(){ go2Pg(parseInt($(this).html())) });
  $('#pgdiv').append(sDiv);
 }
}
// AR_DEV: refresh fix - page settings used only for search
else if(epgct > pgct && tableIdent == "search") {
 for(var i=pgct; i < epgct; i++) {
  $('#pgdiv .ldiv')[pgct].remove();
 }
}

var pos=$('#shi').offset();
// AR_DEV: fix cogwheel on homepage
if(pos) {
  $('#shdiv').css('left', (pos.left-1)+'px');
  $('#shdiv').css('top', (pos.top-shopts.length*27)+'px');
}

var pos=$('#pgi').offset();
// AR_DEV: fix cogwheel on homepage
if(pos) {
  $('#pgdiv').css('left', (pos.left-1)+'px');
  $('#pgdiv').css('top', (pos.top-Math.min(pgct*27, 150))+'px');
  $('#pgdiv').css('height', pos.top-parseInt($('#pgdiv').css('top')));
  $('#pgdiv').css('overflow-y', 'auto');
}

if(j.callback && j.callback != '') eval(j.callback);
  }});
 }
 else d.ctr.submit();
}

$(document).ready(function() {
 $('.lt table tbody tr').map(function () {
  $(this).hover(
// AR_DEV: change dashboard table backgrounds
function(){ $(this).css('background-color', '#D8E7E9'); },
function(){ $(this).css('background-color', ''); }
  );
 });

 var onSh=false;
 var onPg=false;

 if($('#shi').length > 0) {
  $('#shi').attr('autocomplete', 'off');

  var shdiv=$('<div id="shdiv"></div>');
  shdiv.css({ 'position':'absolute', 'display':'none' });

  for(var i=0; i < shopts.length; i++) {
   var sDiv=$('<div class="ldiv">'+shopts[i]+'</div>');
   sDiv.hover(
// AR_DEV: change dashboard table backgrounds
function(){ $(this).css('background-color', '#D8E7E9'); onSh=true; },
function(){ $(this).css('background-color', '#FFF'); onSh=false; }
   );
   sDiv.click(function(){ changeShow(parseInt($(this).html())) });
   shdiv.append(sDiv);
  }

  var pos=$('#shi').offset();
  shdiv.css('left', (pos.left-1)+'px');
  shdiv.css('top', (pos.top-shopts.length*27)+'px');

  $(document.body).append(shdiv);
  $('#shi').click(function(){ shdiv.css('display','block') });
  $('#shi').blur(function(){ if(!onSh) shdiv.css('display','none') });
  $('#shi').change(function(){ d.ctr.act.value="now"; ref(); });
 }

 if($('#pgi').length > 0) {
  var pgdiv=$('<div id="pgdiv"></div>');
  pgdiv.css({ 'position':'absolute', 'display':'none' });

  var pgopts=[];
  for(var i=0; i < parseInt($('#pgct').html()); i++) {
   pgopts[i]=i+1;
   var sDiv=$('<div class="ldiv">'+pgopts[i]+'</div>');
   sDiv.hover(
// AR_DEV: change dashboard table backgrounds
function(){ $(this).css('background-color', '#D8E7E9'); onPg=true; },
function(){ $(this).css('background-color', '#FFF'); onPg=false; }
   );
   sDiv.click(function(){ go2Pg(parseInt($(this).html())) });
   pgdiv.append(sDiv);
  }

  var pos=$('#pgi').offset();
  pgdiv.css('left', (pos.left-1)+'px');
  pgdiv.css('top', (pos.top-Math.min(parseInt($('#pgct').html())*27, 150))+'px');
  pgdiv.css('height', pos.top-parseInt(pgdiv.css('top')));
  pgdiv.css('overflow-y', 'auto');

  $(document.body).append(pgdiv);
  $('#pgi').click(function(){ if(parseInt($('#pgct').html()) > 1) pgdiv.css('display','block'); });
  $('#pgi').blur(function(){ if(!onPg) pgdiv.css('display','none'); });
  $('#pgi').change(function(){ d.ctr.act.value="now"; ref(); });
  $('#pgi').hover(
function(){ onPg=true; },
function(){ onPg=false; }
  );
 }

});
