search_timers = new Array();
cur_search = "";

_p = 1;
_s = '';
_o = 'edited';
_od = 'desc';
_currows = 3;
_curcols = 3;
_user_nick = "";
_uid = "false";
_nf = "true";
_np = "true";

window.onload = function() {
  if((typeof document.getElementById('pagerstart1') != undefined) && (document.getElementById('pagerstart1')!= null))
    document.getElementById('pagerstart1').href = 'javascript:void(0);'; document.getElementById('pagerstart2').href = 'javascript:void(0);';

  if((typeof document.getElementById('pagerprev1') != undefined) && (document.getElementById('pagerprev1')!= null))
    document.getElementById('pagerprev1').href = 'javascript:void(0);'; document.getElementById('pagerprev2').href = 'javascript:void(0);';

  if((typeof document.getElementById('pagernext1') != undefined) && (document.getElementById('pagernext1')!= null))
    document.getElementById('pagernext1').href = 'javascript:void(0);'; document.getElementById('pagernext2').href = 'javascript:void(0);';

  if((typeof document.getElementById('pagerend1') != undefined) && (document.getElementById('pagerend1')!= null))
    document.getElementById('pagerend1').href = 'javascript:void(0);'; document.getElementById('pagerend2').href = 'javascript:void(0);';
};


function get_search_query(pagenumber) {
  if(issetElm('pagenumber1')) _p = parseInt(getElm('pagenumber1').value);
  if(!isset(_p) && issetElm('pagenumber2')) _p = parseInt(getElm('pagenumber2').value);
  if(isset(pagenumber)) _p = parseInt(pagenumber);

  if(issetElm('searchfilter')) _s = escape(getElm('searchfilter').value);
  if(issetElm('o')) _o = escape(getElm('o').value);
  if(issetElm('od')) _od = ( (getElm('od').src.indexOf('desc') == -1) ? "asc" : "desc" );
  
  if(issetElm('currows')) _currows = parseInt(getElm('currows').innerHTML);
  if(issetElm('curcols')) _curcols = parseInt(getElm('curcols').innerHTML);
  
  if(issetElm('uid')) _uid = escape(getElm('uid').value);
  if(issetElm('nf')) _nf = escape(getElm('nf').value);
  if(issetElm('np')) _np = escape(getElm('np').value);
  
  var search_query = 'uid='+_uid+'&p='+_p + '&s='+_s + '&nf='+_nf + '&np='+_np + '&o='+_o + '&od='+_od + '&cols='+_curcols + '&rows='+_currows;

  return search_query;
}


function start_search_timer(pagenumber) {
  if(typeof search_timers['search'] != 'undefined') { clearTimeout(search_timers['search']); };
  search_timers['search'] = setTimeout('execute_search('+pagenumber+');', 900);
  return false;
}


function enable_loader() {
  var loading_div=document.createElement('DIV');
  loading_div.id='slapnotesloading';
  loading_div.style.backgroundColor='#fff';
  loading_div.style.opacity = 0.7;
  loading_div.style.filter = 'alpha(opacity=70)';
  loading_div.style.width='100%';
  loading_div.style.height='100%';
  loading_div.style.textAlign='center';
  loading_div.style.zIndex=1000000;
  loading_div.style.position='absolute';
  loading_div.style.top='0px';
  loading_div.style.left='0px';

  var loading_img=document.createElement('IMG');
  loading_img.src="http://slapnotes.com/img/bigloader2.gif";
  loading_img.style.position='relative';
  loading_img.style.opacity = 1;
  loading_img.style.filter = 'alpha(opacity=100)';
  loading_img.style.top='200px';
  loading_img.style.width='54px';
  loading_img.style.height='55px';

  loading_div.appendChild(loading_img);
  document.body.appendChild(loading_div);
}

function execute_search(pagenumber) {
  var search_filter = document.getElementById('searchfilter').value;
  
  if((search_filter != cur_search) || (pagenumber != _p)) {
    cur_search = search_filter;
    _p = pagenumber;
    
    // the last false, is to make sure, this happens synchronous... If not... a couple of requests, could fuck up the update happening afterwards...
    if((typeof search_timers['search'] != 'undefined') && (search_timers['search'] != null)) { clearTimeout(search_timers['search']); };
    //search_timers['search'] = undefined;
    
    document.body.style.cursor = "wait";
    //Andri - Begin
    enable_loader();
    //document.getElementById('notescontainer').innerHTML = '<div>Searching...</div>';
    //Andri - End
    ajax_get('/ajax_search.php?'+get_search_query(pagenumber), 'search_done', '', false);
  }
  return false;
}


function search_done(request) {
  var loading_div = document.getElementById('slapnotesloading');
  loading_div.parentNode.removeChild(loading_div);
  document.body.style.cursor = "default";

  eval('var response = ' + request.responseText);

  if(response.success) {

    document.getElementById('pagenumber1').value = document.getElementById('pagenumber2').value = ((response.page > response.total_pages)?response.total_pages:response.page);
    document.getElementById('totalpages1').innerHTML = document.getElementById('totalpages2').innerHTML = response.total_pages;

    document.getElementById('pagerstart1').className = document.getElementById('pagerstart2').className = ((response.page > 1)?'':'pagerinactive');
    document.getElementById('pagerprev1').className = document.getElementById('pagerprev2').className = ((response.page > 1)?'':'pagerinactive');
    document.getElementById('pagernext1').className = document.getElementById('pagernext2').className = ((response.total_pages > response.page)?'':'pagerinactive');
    document.getElementById('pagerend1').className = document.getElementById('pagerend2').className = ((response.total_pages > response.page)?'':'pagerinactive');

    var prev_page = ((response.page > 2)?(response.page-1):1);
    var next_page = ((response.page < response.total_pages)?(response.page+1):response.total_pages);
    var end_page = response.total_pages;

    document.getElementById('pagerstart1').onclick = function() { return goto_page(1); }; document.getElementById('pagerstart2').onclick = function() { goto_page(1); };
    document.getElementById('pagerprev1').onclick = function() { return goto_page(prev_page); }; document.getElementById('pagerprev2').onclick = function() { return goto_page(prev_page); };
    document.getElementById('pagernext1').onclick = function() { return goto_page(next_page); }; document.getElementById('pagernext2').onclick = function() { return goto_page(next_page); }; 
    document.getElementById('pagerend1').onclick = function() { return goto_page(end_page); }; document.getElementById('pagerend2').onclick = function() { return goto_page(end_page); }; 


    document.getElementById('notescontainer').innerHTML = '';
    if(response.notes.length) {
      for(var i=0 ; i < response.notes.length ; i++) {
	eval(response.notes[i]);
      	document.getElementById('notescontainer').appendChild(_returnElm);
      }

      tinyMCE.editors = [];
      tinyMCE.init({mode : "textareas",width : "194",height : "160",theme : "advanced",skin : "slapnotes",forced_root_block : false,force_br_newlines : true,force_p_newlines : false,content_css : "/js/tinymce/examples/css/content.css",theme_advanced_buttons1 : "bold,italic,underline,link,unlink,image,sub,sup,hr",theme_advanced_buttons2 : "",theme_advanced_buttons3 : "",theme_advanced_toolbar_location : "top",theme_advanced_toolbar_align : "left",setup : function(ed) {ed.onKeyUp.add(function(ed) { var note_id = ed.id.substr(8,ed.id.length-8); start_savetimer(note_id); });ed.onChange.add(function(ed) { var note_id = ed.id.substr(8,ed.id.length-8); start_savetimer(note_id); });ed.onPostRender.add(function(ed) {var theFrames = document.getElementsByTagName("iframe");for(var i = 0; i < theFrames.length; i++) {theFrames[i].setAttribute("allowTransparency","true");theFrames[i].style.backgroundColor = "transparent";};});}});

    } else document.getElementById('notescontainer').innerHTML = 'No results...';
    
  } else {
    alert('Sorry! A lookup error occured... Our search admin has been informed...');
  }
  var loading_div = document.getElementById('slapnotesloading');
  loading_div.parentNode.removeChild(loading_div);
  document.body.style.cursor = "default";
}


function filter_search() {
  start_search_timer(1);
  return false;
}


function goto_page(pagenumber) {
  execute_search(pagenumber);
  return false;
}


function change_sort_direction() {
  var sort_direction = "asc";
  if(document.getElementById('od').src.indexOf('desc') == -1) sort_direction = "desc";
  document.getElementById('od').src = '/img/arrow_'+sort_direction+'.gif';
  execute_search();
}


function set_rows(rows_count) {
  var set_count = rows_count;
  set_count = parseInt(set_count > 1 ? set_count : 2);
  set_count = parseInt(set_count > 9 ? 9 : set_count);

  var cur_count = parseInt(document.getElementById('currows').innerHTML);

  if(set_count != cur_count) {

    var notescontainer = document.getElementById('notescontainer');
    notescontainer.style.height = (set_count*228) + "px";

    var more_rows = (set_count + 1);
    var less_rows = (set_count - 1);
    document.getElementById('morerows').onclick = function() { set_rows(more_rows); }
    document.getElementById('lessrows').onclick = function() { set_rows(less_rows); }
    document.getElementById('currows').innerHTML = set_count;

    //start_search_timer();
    execute_search(0);
  }
}



function set_columns(cols_count) {
  var set_count = cols_count;
  set_count = parseInt(set_count > 1 ? set_count : 2);
  set_count = parseInt(set_count > 9 ? 9 : set_count);

  var cur_count = parseInt(document.getElementById('curcols').innerHTML);

  if(set_count != cur_count) {

    var notescontainer = document.getElementById('notescontainer');
    var notes_width = (set_count*236);

    if(notes_width > 900) container_width = notes_width;
    else container_width = 900;

    notescontainer.style.width = notes_width + "px";
    document.getElementById('contentcontainer').style.width = container_width+'px';

    var more_cols = (set_count + 1);
    var less_cols = (set_count - 1);
    document.getElementById('morecols').onclick = function() { set_columns(more_cols); }
    document.getElementById('lesscols').onclick = function() { set_columns(less_cols); }
    document.getElementById('curcols').innerHTML = set_count;

    //start_search_timer();
    execute_search(0);
  }
}

//--- gerson 
//--- adding some javascript to show help on notes pages.

var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function AssignPosition(d) {
if(self.pageYOffset) {
	rX = self.pageXOffset;
	rY = self.pageYOffset;
	}
else if(document.documentElement && document.documentElement.scrollTop) {
	rX = document.documentElement.scrollLeft;
	rY = document.documentElement.scrollTop;
	}
else if(document.body) {
	rX = document.body.scrollLeft;
	rY = document.body.scrollTop;
	}
if(document.all) {
	cX += rX; 
	cY += rY;
	}
d.style.left = (cX+10) + "px";
d.style.top = (cY+10) + "px";
}
function HideContent(d) {
if(d.length < 1) { return; }
document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
  if(d.length < 1) { return; }
  var dd = document.getElementById(d);
  AssignPosition(dd);
  dd.style.display = "block";
}
function ReverseContentDisplay(d) {
  if(d.length < 1) { return; }
  var dd = document.getElementById(d);
  AssignPosition(dd);
  if(dd.style.display == "none") { dd.style.display = "block"; }
  else { dd.style.display = "none"; }
}

