// FORUM LISTING COLLAPSE
// This'll only apply to skins with the relevant elements. IOW Turtle. jQuery FTW
$(document).ready(
   function() {
      if ($("#forums-list").length)
         $("#forums-list>thead>tr>th>div>a+a").attr("data-collapse-save-state","true").addClass("jcollapse-do-not-change-text").append("<span>[collapse]</span>").each(
            function(i , e) {
               SEN.GUI.Collapse.registerNode(e, $(e).closest("thead").find("+tbody")[0]);
               if ($(e).hasClass("jcollapsed-target")) {
                  $(this).closest("thead") [( [ "remove" , "add" ][ !!$(this).hasClass("jcollapsed-target")+0 ] + "Class" )] ("section-is-collapsed");
                  $(this).find("span").html( [ "[collapse]" , "[expand]" ][ !!$(this).hasClass("jcollapsed-target")+0 ] );
               }
            }
         ).bind(
            "CollapseStateChanged",
            function() {
               $(this).closest("thead") [( [ "remove" , "add" ][ !!$(this).hasClass("jcollapsed-target")+0 ] + "Class" )] ("section-is-collapsed");
               $(this).find("span").html( [ "[collapse]" , "[expand]" ][ !!$(this).hasClass("jcollapsed-target")+0 ] );
            },
            false
         );
   }
);
// END FORUM LISTING COLLAPSE

// POST LINKS
$(document).ready(
   function() {
      $("a.forum-link-to-post").click(
         function(e) {
            var jThis = $(this);
            var tID = jThis.attr("data-topic-id");
            var pID = jThis.attr("data-post-id");
            $(
               SEN.GUI.Dialogs.spawn(
                  {
                     string_id: "ForumPostLink:" + pID,
                     draggable: true,
                     modeless: true,
                     left: jThis.offset().left + "px",
                     top: jThis.offset().top + jThis.outerHeight() - $(window).scrollTop() + "px",
                     innerHTML: "\
<label class='above' for='dialog-post-link'>Link to this post:</label>\n\
<input type='text' value='" + href_base + pID + "/'>"
                  }
               )
            ).bind(
               "ButtonClicked",
               function(e, d) {
                  d.modal.close();
                  if (d.modal.__opener)
                     $(d.modal.__opener).focus();
               },
               false
            )[0].__opener = this;
            e.preventDefault();
            return false;
         }
      );
   }
);

// END POST LINKS

var fast_open = -1;
var report_open = 0;
var review_calls = 0;

function fastreply(start)
{
	if(start && fast_open == -1) fast_open = 1;
	else if (fast_open == -1) fast_open = 0;
	//if(fast_open == 0) { fast_open = 1; show(get_by_id('xform')); }
	//else { fast_open = 0; hide(get_by_id('xform')); }
	if(fast_open == 0) { fast_open = 1; $('#xform').slideDown('slow'); }
	else { fast_open = 0; hide(get_by_id('xform')); }
}
function ajax_more_posts()
{
	this.params=params;this.parser=parser;this.status=status;this.url=url;this.limit=limit;this.cleared=cleared;
	function status(tmp) { }
	function limit() { }
	function cleared() { }
	function url() { return "/ajax/more_posts.php"; }
	function params(ze, amid, vars) { review_calls++; svars=vars.split("|"); return "ze="+ze+"&ajaxmid="+amid+"&tid="+svars[0]+"&first="+svars[1]+"&count="+review_calls;}
	function parser(html, vars) { posts = get_by_id("topic_rows"); posts.innerHTML = posts.innerHTML + html; }
}

function ajax_get_unparsed_post()
{
	this.params=params;this.parser=parser;this.status=status;this.url=url;this.limit=limit;this.cleared=cleared;
	function status(tmp) { }
	function limit() { }
	function cleared() { }
	function url() { return "/ajax/get_unparsed_post.php"; }
	function params(ze, amid, vars) { return "ze="+ze+"&ajaxmid="+amid+"&pid="+vars}
	function parser(html, vars) {
		post_unparsed = html;
		}
}

function ajax_karma()
{
	this.params=params;this.parser=parser;this.status=status;this.url=url;this.limit=limit;this.cleared=cleared;
	function status(tmp) { }
	function limit() { }
	function cleared() { }
	function url() { return "/ajax/karma.php"; }
	function params(ze, amid, vars) { return "ze="+ze+"&ajaxmid="+amid+"&karma="+vars; }
	function parser(html, vars) {
		pid = vars.substr(6);
		karma = parseInt(vars.substr(0,1));
		if (!karma)
			karma--;
		if (is_admin)
			karma = karma * 3;
		get_by_id('karma_'+pid).innerHTML = parseInt(get_by_id('karma_'+pid).innerHTML) + karma;
		get_by_id('karma_pos_'+pid).innerHTML = ' &nbsp; &nbsp; ';
		get_by_id('karma_neg_'+pid).innerHTML = '';
}
}



function ajax_report()
{
	this.params=params;this.parser=parser;this.status=status;this.url=url;this.limit=limit;this.cleared=cleared;
	function status(tmp) { }
	function limit() { }
	function cleared() { }
	function url() { return "/ajax/report.php"; }
	function params(ze, amid, vars) { 
		if(vars == "topic")
		{
			text = escape(get_by_id("tr_reason").value);
			nudge = get_by_id("nudge").value;
			id = get_by_id("report_tid").value;
			return "ze="+ze+"&ajaxmid="+amid+"&topic=1&id="+id+"&nudge="+nudge+"&text="+text;
		}
		else
		{
			text = escape(get_by_id("report_text").value);
			id = get_by_id("report_id").value;
			return "ze="+ze+"&ajaxmid="+amid+"&id="+id+"&text="+text;
		}
		
		}
	function parser(html, vars) {
		if (vars == "topic")
		{
			get_by_id("report_topic_text").innerHTML = "Reported!!";
			setTimeout(hide(get_by_id("report_topic")), 2500);
		}
		else
			report_close(get_by_id("report_id"));
		}
}
function report(pid)
{
	if (report_open == 1)
		report_close(pid);
	report_open = 1;
	rinit = get_by_id("report_init");
	rid = get_by_id("report_id");
	rid.value = pid;
	pinit = get_by_id("report_"+pid);
	pinit.innerHTML = rinit.innerHTML;
	rinit.innerHTML = "";
}
function report_close()
{
	report_open = 0;
	rinit = get_by_id("report_init");
	rid = get_by_id("report_id");
	pinit = get_by_id("report_"+rid.value);
	rid.value = "";
	rinit.innerHTML = pinit.innerHTML;
	pinit.innerHTML = "";
}

function post_link(tid, pid) {
	var show;
	//show = prompt("Link to this post:", href_base+pid+"/");
	//return false;
	inline_popup_3('Link to Post', "Link to this Post: <input style='width:200px;' class='text' onfocus='this.select()' name='vars1' type='text' value='"+href_base+pid+"/'>", "void");
}

function review_quote(id)
{
	eval("post = get_by_id('post_unparse_"+id+"');");
	eval("postname = get_by_id('post_name_"+id+"');");
	xtext = get_by_id("xtext");
	if (xtext.value) xtext.value = xtext.value + "\n";
	xtext.value = xtext.value + "[quote=name:"+postname.innerHTML+"]"+post.innerHTML+"[/quote]\n";
}

function multiquote(tid, id)
{
	var quote_current = new Array();
	var quote_new = new Array();
	var topic = null;
	var add = 1;
	var temp2 = new Array();
	var reset = 0;
	// Get cookie
	if (topic = eat_cookie('quotes_tid'))
	{
		if (tid != topic)
			reset = 1;
	}
	else
		reset = 1;
		
	if (reset == 1)
	{
		give_cookie('quotes', '', 0);
		give_cookie('quotes_tid', tid, 0);
	}
	else
	{
		if (temp = eat_cookie('quotes'))
			quote_current = temp.split(",");
		// If it exists... delete it
		for(i = 0; i < quote_current.length; i++)
		{
			if (quote_current[i] == id)
				 add = 0;
			else
				quote_new[quote_new.length] = quote_current[i];
		}
	}
	if (add == 1)
	{
		quote_new[quote_new.length] = id;
		document.getElementById("mq_img_"+id).src = "/skins/"+skin_base+"/forums/r_quote_sel.gif";
		/*
				eval("post = get_by_id('post_unparse_"+id+"');");
		eval("postname = get_by_id('post_name_"+id+"');");
		xtext = get_by_id("xtext");
		if (xtext.value) xtext.value = xtext.value + "\n";
		
		xtext.value = xtext.value + "[quote=name:"+postname.innerHTML+"]"+post.innerHTML+"[/quote]\n";
		*/
		ajax('get_unparsed_post', id);
		multiquote_wait();
	}
	else
		document.getElementById("mq_img_"+id).src = "/skins/"+skin_base+"/forums/r_quote.gif";
	give_cookie('quotes', quote_new.join(','), 0);
}

function multiquote_wait()
{
	if (post_unparsed)
	{

		svars = post_unparsed.split('|');
		svars[1] = svars[1].replace(/LIMITERCHAR/gi, "|");
		post_unparsed = '';
		xtext = get_by_id('xtext');
		if (xtext.value) xtext.value = xtext.value + "\n";
		xtext.value = xtext.value + "[quote=name:"+svars[0]+"]"+svars[1]+"[/quote]\n";
	}
	else
		setTimeout("multiquote_wait()", 500);
}


function ajax_postdelete_minor()
{
	this.params=params;this.parser=parser;this.status=status;this.url=url;this.limit=limit;this.cleared=cleared;
	function status(tmp) { }
	function limit() { }
	function cleared() { }
	function url() { return "/ajax/postdelete.php"; }
	function params(ze, amid, vars) { 
		return "ze="+ze+"&ajaxmid="+amid+"&pid="+vars;
		}
	function parser(html, vars) {
		wrap = get_by_id("post_wrap_"+vars);
		hide(wrap);
		postdelete_close();
		}
}
