var currentCategory="Videos";
var currentStashUid=0;
var currentStashId=0;
var currentMaxRows=0;

var targetStashViewDiv=0;

function showStash( cat, stashUid, maxRows ) {
  var ctsack = new sack();

  currentMaxRows = maxRows;
  currentCategory = cat;
  currentStashUid = stashUid;

  ctsack.setVar('stashuid', stashUid );
  ctsack.setVar('cat', cat );
  ctsack.setVar('boxonly', '1' );
  ctsack.setVar('maxRows', maxRows );
  ctsack.requestFile = '/showStashBox.php';
  ctsack.method = 'POST';
  ctsack.element = 'showstashbox';
  ctsack.runAJAX();
}

var showsack;
var showSackInterval = 0;

function showStashEntry( stashUid, stashEntryId, viewUid ) {

  currentStashUid = stashUid;
  currentStashId = stashEntryId;

  showsack = new sack();
  showsack.setVar('stashUid', stashUid );
  showsack.setVar('viewUid', viewUid );
  showsack.setVar('id', stashEntryId );
  showsack.setVar('action', 'get' );
  showsack.requestFile = '/modStashEntry.php';
  showsack.method = 'POST';
  showsack.runAJAX();
  showSackInterval = setInterval( testShowSackResponse, 150 );
}

function testShowSackResponse() {
  if ( showsack.response != undefined ) {

    var resp = showsack.response;
    var targetDiv = ( targetStashViewDiv > "" ) ? targetStashViewDiv : "showstashbox";

    if ( resp.length > 4 ) {
      /* response is 4 byte labellen, label, entry */
      var labellen = parseInt( resp.substring(0,4));
      entryName = resp.substring(4, labellen+4);
      entryBody = resp.substring( labellen+4 );

      /* add image tag if missing */
      if ( currentCategory == "Pics" ) {
	if ( entryBody.substring(0,1) != "<" ) {
          entryBody="<img src=\""+entryBody+"\">";
        }
      }

      if ( entryBody.substring(0,7) == "http://" ) {
	window.open( entryBody, "entryWindow" );
      } else{
        if ( currentCategory == "Jokes" || currentCategory == "News" )
	  stashstyle="stashentryleft";
 	else
	  stashstyle="stashentrymiddle";
  	  if ( Math.random() > 0.50 )
	    linkLabel = "Link to this!";
	  else 
	    linkLabel = "Mail to a friend!";

	document.getElementById(targetDiv).innerHTML="<table border='0' align='center' cellspacing='0' cellpadding='5' width='100%'><tr><td class='stashentrytop'>"+entryName+
	  "<br><br><span class='backtostash'>"+
	  "<table width='100%'><tr><td>"+
 	  "<a href='#beginprofile' onclick='javascript:showCurrentStash()'>Back to Stash</a>"+
	  "</td><td align='right'><a href='/stashEntry.php?stashId="+currentStashId+"'>"+linkLabel+"</a></span>"+
	  "</td></tr></table>"+
	  "</td></tr><tr><td class='"+stashstyle+"'>"+entryBody+"</td></tr>"+
	  "<tr><td class='stashentrybottom'><span class='backtostash'><a href='#beginprofile' onclick='javascript:showCurrentStash()'>Back to Stash</a></span></td></tr></table><br>";
	}
    }
    clearInterval( showSackInterval );
  }
}


var acctsack;
var acctSackInterval = 0;

function showStashAccountEntry( uid, stashEntryId ) {

  currentStashId = stashEntryId;

  acctsack = new sack();
  acctsack.setVar('stashUid', uid );
  acctsack.setVar('viewUid', uid );
  acctsack.setVar('id', stashEntryId );
  acctsack.setVar('action', 'get' );
  acctsack.requestFile = '/modStashEntry.php';
  acctsack.method = 'POST';
  acctsack.runAJAX();
  acctSackInterval = setInterval( testAcctSackResponse, 150 );
}

function testAcctSackResponse() {

  if ( acctsack.response != undefined ) {
    var resp = acctsack.response;
    if ( resp.length > 4 ) {

      /* response is 4 byte labellen, label, entry */
      var labellen = parseInt( resp.substring(0,4));
      entryName = resp.substring(4, labellen+4);
      entryBody = resp.substring( labellen+4 );

      /* add image tag if missing */
      if ( currentCategory == "Pics" ) {
	if ( entryBody.substring(0,1) != "<" ) {
          entryBody="<img src=\""+entryBody+"\">";
        }
      }

      if ( entryBody.substring(0,7) == "http://" ) {
	window.open( entryBody, "entryWindow" );
      } else{
        if ( currentCategory == "Jokes" || currentCategory == "News" )
	  stashstyle="stashentryleft";
 	else
	  stashstyle="stashentrymiddle";

         if ( Math.random() > 0.50 )
            linkLabel = "Link to this!";
          else
            linkLabel = "Mail to a friend!";

	document.getElementById('showstashbox').innerHTML="<table border='0' align='center' cellspacing='0' cellpadding='5' width='100%'><tr><td class='stashentrytop'>Title:&nbsp;"+entryName+
	  "<br><br><span class='backtostash'>"+
	  "<table width='100%'><tr><td>"+
	  "<a href='#showstashbox' onclick='javascript:restoreAcctTextArea()'>Back to Stash</a>"+
	  "</td><td align='right'><a href='/stashEntry.php?stashId="+currentStashId+"'>"+linkLabel+"</a></span>"+
          "</td></tr></table>"+

	  "</span></td></tr><tr><td class='"+stashstyle+"'>"+entryBody+"</td></tr>"+
	  "<tr><td class='stashentrybottom'><span class='backtostash'><a href='#showstashbox' onclick='javascript:restoreAcctTextArea()'>Back to Stash</a></span></td></tr></table><br>";
        window.open( "stashAccount.php#contentpane", "_self" );
      }
    }
    clearInterval( acctSackInterval );
  }
}

function restoreAcctTextArea() {
  document.getElementById('showstashbox').innerHTML="<textarea wrap='virtual' id='newstashcontent' rows='10' cols='50'></textarea><br>";
  resetEntryForm();
}

function showCurrentStash() {
  showStash( currentCategory,currentStashUid, currentMaxRows );
}

function setCurrentMaxRows( maxRows ) {
  currentMaxRows = maxRows;
}

function setCurrentCategory( cat ) {
  currentCategory = cat;
}

function showCategoryTable( cat, idx ) {
  var ctsack = new sack();

  if ( arguments.length == 0 ) {
    cat = slcat;
    idx = 0;
  } else {
    if ( arguments.length == 1 ) {
        idx = 0;
    }
    slcat = cat;
  }
  currentCategory = cat;

  ctsack.setVar('cat', cat );
  ctsack.setVar('idx', idx );
  ctsack.setVar('show', 'showCategoryTable' );
  ctsack.requestFile = '/stashTable.php';
  ctsack.method = 'POST';
  ctsack.element = 'mystash';
  ctsack.runAJAX();
}

var slcat;
var onComplFunc = new Function( "showCategoryTable()" );
var saveMode = 'add';

function saveEntry() {

  var entryname = document.getElementById( 'linkname' ).value;
  if ( entryname == "" ) {
    alert( "Your stash entry needs a name!" );
    return;
  }

  var stashcontent = document.getElementById( 'newstashcontent' ).value;
  if ( stashcontent == "" ) {
    alert( "Your stash entry is empty!" );
    return;
  }

  for (i=0; i<document.getElementById( 'linkcategory').options.length; i++ )
    if ( document.getElementById( 'linkcategory' ).options[i].selected == true )
      slcat = document.getElementById( 'linkcategory' ).options[i].text;

  var slsack = new sack();

  slsack.setVar('lu', stashcontent );
  slsack.setVar('lc', slcat );

  if ( saveMode == 'add' ) {
    slsack.setVar('ln', entryname );
    slsack.setVar('action', 'add' );
  } else if ( saveMode == 'update' ) {
    slsack.setVar('action', 'update' );
    slsack.setVar('id', document.getElementById( 'updateid' ).value );
  }

  slsack.requestFile = '/modStashEntry.php';
  slsack.method = 'POST';
  slsack.element = 'statusinfo';
  slsack.onCompletion=onComplFunc;
  slsack.runAJAX();

  /*  if ( saveMode == 'update' ) { */
    resetEntryForm();
    /* } */
}

function stashMassDelete() {
  document.getElementById( "statusinfo" ).innerHTML = "";
	
	var f = document.getElementById("_stash_form");
	if(! f) {
		alert('failed to find stash form.');
		return;
	}

	

}

function toggleCheckBoxes(form_name) {
	var f = document.getElementById(form_name);
	var checks = document.getElementsByName('del[]');	
	
	if(!checks) return;

	for(i=0;i<checks.length;i++) {
		checks[i].checked = !checks[i].checked;
	}

}

function deleteEntry( entryId, confdel ) {

  if ( entryId == "" ) {
    alert( "Stash entry to remove needs an id!" );
    return;
  }

  var delsack = new sack();

  delsack.reset();

  delsack.setVar('id', entryId );

  if ( confdel==1 )
    delsack.setVar('action', 'delconfirm' );
  else
    delsack.setVar('action', 'delete' );

  delsack.requestFile = '/modStashEntry.php';
  delsack.method = 'POST';
  delsack.element = 'statusinfo';
  delsack.onCompletion=onComplFunc;
  delsack.runAJAX();
}

function adminDeleteStashEntry( stashUid, entryId ) {

  var confdel=confirm( "Do you really want to delete this stash entry?" );
  if ( confdel == false )
    return;

  var delsack = new sack();
  delsack.reset();
  delsack.setVar('stashUid', stashUid );
  delsack.setVar('id', entryId );
  delsack.setVar('action', 'delete' );
  delsack.requestFile = '/adminDeleteStashEntry.php';
  delsack.method = 'POST';
  delsack.element = 'adminstatus';
  delsack.runAJAX();
  
}

function adminRecatStashEntry( stashUid, entryId ) {
  var newcat = document.getElementById( "linkcategory" ).value;

  var confdel=confirm( "Do you really want to recategorize this as "+newcat+"?" );
  if ( confdel == false )
    return;

  var delsack = new sack();
  delsack.reset();
  delsack.setVar('stashUid', stashUid );
  delsack.setVar('id', entryId );
  delsack.setVar('action', 'recat' );
  delsack.setVar('cat', newcat );
  delsack.requestFile = '/adminDeleteStashEntry.php';
  delsack.method = 'POST';
  delsack.element = 'adminstatus';
  delsack.runAJAX();
  
}

function cancelDeleteEntry() {
  resetEntryForm();
  document.getElementById( "statusinfo" ).innerHTML = "";
}


var modsack;
var modSackInterval = 0;

function modEntry( entryid, category ) {
  var dform = document.forms['slink'];
  dform['linkname'].disabled = true;
  document.getElementById( 'updateentrysubmitlabel' ).value = "Update this Item";
  document.getElementById( 'updateid' ).value=entryid;
  addCancelEditButton();

  for (i=0; i<document.getElementById( 'linkcategory').options.length; i++ )
    if ( document.getElementById( 'linkcategory' ).options[i].text == category )
      document.getElementById( 'linkcategory' ).options[i].selected = true;

  modsack = new sack();
  modsack.setVar('id', entryid );
  modsack.setVar('action', 'get' );
  modsack.setVar('stashUid', '-1' );
  modsack.requestFile = '/modStashEntry.php';
  modsack.method = 'POST';
  modsack.element = 'newstashcontent';
  modsack.runAJAX();
  saveMode = 'update';
  modSackInterval = setInterval( testModSackResponse, 150 );
}

function addCancelEditButton() {
  document.getElementById( "canceledit" ).innerHTML="<br/><input type='submit' value='Cancel Edit' onclick='javascript:resetEntryForm()' align='right'/>";
}

function removeCancelEditButton() {
  document.getElementById( "canceledit" ).innerHTML="";
}

function testModSackResponse() {
  if ( modsack.response != undefined ) {
    var resp = modsack.response;
    if ( resp.length > 4 ) {
      /* response is 4 byte labellen, label, entry */
      var labellen = parseInt( resp.substring(0,4));
      document.getElementById( 'linkname' ).value = resp.substring(4, labellen+4);
      document.getElementById( 'newstashcontent' ).value = resp.substring( labellen+4 );
    }
    clearInterval( modSackInterval );
  }
}

function resetEntryForm() {
  var dform = document.forms['slink'];
  dform['linkname'].disabled = false;
  document.getElementById( 'updateid' ).value='';
  document.getElementById( 'linkname' ).value = '';
  document.getElementById( 'linkcategory' ).value = '';
  document.getElementById( 'newstashcontent' ).value = '';
  document.getElementById( 'updateentrysubmitlabel' ).value = "Add to My Stash";
  removeCancelEditButton();	
  saveMode = 'add';
}


function copyMyStashLink() {
  document.copyslink.stashanchor.focus();
  document.copyslink.stashanchor.select();
  var CopiedTxt = document.selection.createRange();
  CopiedTxt.execCommand( 'copy' );
}

function showTotalViews( uid ) {

  var viewsack = new sack();
  viewsack.setVar('uid', uid );

  for (i=0; i<document.getElementById( 'stashViewTime').options.length; i++ )
    if ( document.getElementById( 'stashViewTime' ).options[i].selected == true ) {
      viewsack.setVar( 'timerange', document.getElementById( 'stashViewTime' ).options[i].value );
      break;
    }

  viewsack.requestFile = '/getTotalStashViews.php';
  viewsack.method = 'POST';
  viewsack.element = 'displaytotalviews';
  viewsack.runAJAX();
}

function rateStash( stashId, rating ) {

  var ratesack = new sack();
  ratesack.setVar( 'stashId', stashId );
  if ( rating == 1 ) {
    ratesack.setVar( 'p', 1 );
  } else if ( rating == -1 ) {
    ratesack.setVar( 'n', 1 );
  } else {
    alert( "invalid rating: "+rating );
    return;
  }
  ratesack.requestFile = '/a_rate_stash.php';
  ratesack.method = 'POST';
  ratesack.element = 'stashRatingResult';
  ratesack.runAJAX();
}

function swapImage( imageId, newImageFile ) {

  document.getElementById( imageId ).src = "/imgs/"+newImageFile;
}

function change(id, newClass) {

identity=document.getElementById(id);

identity.className=newClass;

}

function reportStashAdult( stashId, reportUserId ) {
  var rep = new sack();
  rep.setVar( "uid", reportUserId );
  rep.setVar( "stashId", stashId ); 
  rep.requestFile = "/stashReportAdult.php";
  rep.method = "POST";
  rep.element = "adultReportResult";
  rep.runAJAX();
}

function load_stash_comments(div_id,i,idx) {
    $(div_id).innerHTML = '<br><br><p align=center style="padding-left:3em;font-weight:bold;color:red;">... LOADING ...</p>';

    new Ajax.Request("/a_profile_comments.php", {
        method: 'get',
        parameters: { i: i, idx: idx, type: 'stash' },
        onSuccess: function(response) {
            handle_comment_reformt(div_id,response);
        }
    });

   return true;
}
