// Retrieves cookie from browser.

function getCookie(c_name)
{
	if (document.cookie.length > 0)
	{
		c_start=document.cookie.indexOf(c_name + "=");

		if (c_start != -1)
		{ 
			c_start=c_start + c_name.length + 1; 
			c_end=document.cookie.indexOf(";",c_start);
			if (c_end == -1) c_end=document.cookie.length;
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

// Get current clicked msgs values from cookie.
var currentValues = getCookie("msg"+forumID).split(",");

// When document ready...

$(document).ready(function(){
	var clickedSubject = new Array();

	// On click, mark element as visited.

	$(".toggleForum").click(function(){
		$(this).css("color", visitedColor);

		var id;
		id = $(this).attr("rev");

		if (jQuery.inArray(id, clickedSubject) == -1 && jQuery.inArray(id, currentValues) == -1)
		{
			clickedSubject.push(id);
		}

		// Show attached image on toggle, and resize if too big:

		paddingWidth = $(this).attr("rel");		
		showAttachedImage($("#" + id + " .bbcodeImg img"), 550 - paddingWidth);

		var show = $(this).attr("rev");
		$("#"+show).toggle();
		return false;
	});

	// Save to cookie all clicked elements.

	function savePressedLinks()
	{
		if (clickedSubject.length > 0)
		{
			var exdate = new Date();

			exdate.setDate(exdate.getDate()+2);
			$.merge(clickedSubject, currentValues);
			document.cookie = "msg"+forumID+"=" + clickedSubject + ";expires="+exdate.toGMTString();
		}
	}

	// Perform savePressedLinks() on refresh, or exiting of page.
	$(document).unload(savePressedLinks);
	$(window).unload(savePressedLinks);
});

// Fix: Reverse array of message, so lastupdate is ASC, not DESC.
msg_array.reverse();

// Printing forum elements.

// Print links in msg if not empty.

function printLinks(linkArray)
{
	var linkArray;
	var makeLinks;
	var temp = new Array();
	var links = new Array();
	var part_num = 0;
	
	if (linkArray.length <= 0)
	{
		return "";
	}
	else
	{
		makeLinks = "<p><b>&raquo קישורים מצורפים:</b></p><ul>";
		
		getString = linkArray.split('|');
		
		while (part_num < getString.length)
		{
			temp[part_num] = getString[part_num].split('*');
			if (temp[part_num][0] != "")
			{
				makeLinks += "- <b><a href=\""+temp[part_num][1]+"\" target=\"_blank\">"+temp[part_num][0]+"</a></b><br/>";
			}
			
			part_num += 1;
		}

		makeLinks += "</ul>";
	}
	
	return makeLinks;
}

// Manage user/guest/admin colors.

function markName(uid, cid)
{
	var uid;
	var cid;
	var url = "";

	var wrap = new Array();

	if (cid != 0)
	{
		url = " href=\"card/"+cid+"\"";
		//class=\"n2\"
	}
	else
	{
		url = "";
		//class=\"n1\"
	}

	// Class Forum Admins:
	if (jQuery.inArray(""+uid+"", firstLevel) != -1)
	{
		wrap[0] = "<a "+url+" class=\"l1\">";
		wrap[1] = "</a>";
	}
	// Class forum Super-Admins:
	else if (jQuery.inArray(""+uid+"", secondLevel) != -1)
	{
		wrap[0] = "<a "+url+" class=\"l2\">";
		wrap[1] = "</a>";
	}
	// Registered user:
	else if (uid != 0)
	{
		wrap[0] = "<a "+url+">";
		wrap[1] = "</a>";
	}
	else
	{
		wrap[0] = "<span>";
		wrap[1] = "</span>";
	}

	return wrap;
}


// Function for printing msg.

function printMsg(msgDetails, deepness, mode)
{
	var msgDetails;
	var deepness;
	var mode;
	var noTochen = "";
	var tochen;
	var archiveText = "";
	var sticky;
	var name;
	var busCard = "";
	var css;
	var adActions = "";
	var indent = deepness * 20;
	var whatsIn = "";
	var youAreHere = "";

	// Fix indentation for long threads.

	if (indent > 150)
	{
		var indent = deepness * 18;
	}

	var contentIndent = indent + 25;

	// Change css between topic and msg.

	switch (mode)
	{
		case 0:
			css = " msgCSS";
		break;
		
		case 1:
			css = " topicCSS";
		break;
	}

	// No body for message.

	if (msgDetails[7].length == 0 && msgDetails[12].length == 0)
	{
		noTochen = "<div class=\"noTochen\"> [ל\"ת] </div>";
	}

	// Create body elements/text.

	msgDetails[7] = addemoticons(msgDetails[7]);
	msgDetails[7] = ngbbcode(msgDetails[7]);

	var msgLinks = printLinks(msgDetails[12]);
	var msgActions = "";

	// Show add message options only if not archive.
	if (archive != 1)
	{
		msgActions = "<a href=\"forums/reply/"+msgDetails[0]+"/"+msgDetails[1]+"/\"><img src=\"forums/img/addmsg.png\" alt=\"הוספת תגובה\" /></a>";
	}
	// Else - format archive QS.
	else
	{
		archiveText = "?archive=1";
	}

	// inMessage Links

	if (plusPriv == 1)
	{
		var adActions = "";

		// Only for topics
		if (msgDetails[5] == 1)
		{
			if (msgDetails[11] == 1)
			{
				adActions += "<a href=\""+adUrls[0][0]+"?msg="+msgDetails[0]+"&stick=0&archive="+archive+"\" class=\"popMeUp\" rel=\""+adUrls[0][1]+"\" rev=\"small\"><img src=\"forums/img/"+adUrls[0][2]+"\" alt=\""+adUrls[0][3]+"\" /></a>";
			}
			else
			{
				adActions += "<a href=\""+adUrls[1][0]+"?msg="+msgDetails[0]+"&stick=1&archive="+archive+"\" class=\"popMeUp\" rel=\""+adUrls[1][1]+"\" rev=\"small\"><img src=\"forums/img/"+adUrls[1][2]+"\" alt=\""+adUrls[1][3]+"\" /></a>";
			}

			adActions += "<a href=\""+adUrls[2][0]+"?msg="+msgDetails[0]+"&archive="+archive+"\" class=\"popMeUp\" rel=\""+adUrls[2][1]+"\" rev=\"small\"><img src=\"forums/img/"+adUrls[2][2]+"\" alt=\""+adUrls[2][3]+"\" /></a>";
		}

		adActions += "<a href=\""+adUrls[3][0]+"?msg="+msgDetails[0]+"&archive="+archive+"\" class=\"popMeUp\" rel=\""+adUrls[3][1]+"\" rev=\"small\"><img src=\"forums/img/"+adUrls[3][2]+"\" alt=\""+adUrls[3][3]+"\" /></a>";

		adActions += "<a href=\""+adUrls[4][0]+"/"+msgDetails[1]+"/"+msgDetails[0]+"/"+archive+"/\"><img src=\"forums/img/"+adUrls[4][1]+"\" alt=\""+adUrls[4][2]+"\" /></a>";

		adActions += "<a href=\""+adUrls[5][0]+"?msg="+msgDetails[0]+"&archive="+archive+"\" class=\"popMeUp\" rel=\""+adUrls[5][1]+"\" rev=\"small\"><img src=\"forums/img/"+adUrls[5][2]+"\" alt=\""+adUrls[5][3]+"\" /></a>";
	}

	// If "scrolling to message", make sure you display the message.
	var docLoca = ""+document.location+"";
	if (docLoca.indexOf("#a"+msgDetails[0]) != -1)
	{
		var thisOneScroll = " style=\"display: block;\"";
	}

	// Set content width.
	contentWidth = 550 - contentIndent;

	if (msgDetails[7].indexOf("bbcodeImg") != -1)
	{
		whatsIn = "<img src=\"forums/img/image.png\" alt=\"מצורפת תמונה\" />";
	}

	if (msgDetails[7].indexOf("youtubeCont") != -1)
	{
		whatsIn += " <img src=\"forums/img/youtube.png\" alt=\"מצורף וידאו מיוטיוב\" />";
	}

	if (msgId != 0 && msgDetails[0] == msgId)
	{
		youAreHere = "<b class=\"youAreHere\"> &laquo; ההודעה הנצפית</b>";
	}

	Tochen = "<div class=\"msgContent\" id=\"msg"+msgDetails[0]+"\""+thisOneScroll+">";
	Tochen += "<div style=\"padding-right: "+contentIndent+"px; width: "+contentWidth+"px;\">"+msgDetails[7]+msgLinks+"</div>";
	Tochen += "<div style=\"padding-right: "+contentIndent+"px;\">";
	Tochen += "<div class=\"msgActions\">"+msgActions+adActions+"</div>";
	Tochen += "<div class=\"bottomMsgInfo\"><pre>מספר הודעה: <b>"+msgDetails[0]+"</b>  |  <a href=\"forums/msg/"+msgDetails[0]+"/"+msgDetails[1]+"/"+archiveText+"\">תצוגת הודעה מלאה</a></pre></div>";
	Tochen += "</div>";
	Tochen += "</div>";
	
	// Sticky message?

	if (mode == 1 && msgDetails[11] == 1)
	{
		sticky = "<img src=\"forums/img/sticky.gif\" alt=\"נעוץ וחשוב!\" /> ";
	}
	else
	{
		sticky = "";
	}

	// Color name by status.
	nameWrap = markName(msgDetails[2], msgDetails[13]);

	// Add emoticons to subject.
	msgDetails[6] = addemoticons(msgDetails[6]);

	// Change color for each mached msg link.
	if (jQuery.inArray("msg"+msgDetails[0], currentValues) != -1)
	{
		var n = "a"+msgDetails[0];

		$(document).ready(function(){
			$("#"+n).css("color", visitedColor);
		});
	}

	document.write("<div class=\"msgCont"+css+"\">");
	document.write("<div class=\"bullet\" style=\"margin-right: "+indent+"px;\"><a href=\"forums/msg/"+msgDetails[0]+"/"+msgDetails[1]+"/"+archiveText+"\" title=\"תצוגת הודעה מלאה\">&nbsp;</a></div>");
	document.write("<div class=\"msgSubject\">"+sticky+" <a href=\"forums/msg/"+msgDetails[0]+"/"+msgDetails[1]+"/"+archiveText+"\" rev=\"msg"+msgDetails[0]+"\" class=\"toggleForum\" id=\"a"+msgDetails[0]+"\" rel=\""+contentIndent+"\"\">"+msgDetails[6]+noTochen+"</a> "+whatsIn+"</div>");
	document.write("<div class=\"msgName\">"+nameWrap[0]+msgDetails[3]+nameWrap[1]+youAreHere+"</div>");
	document.write("<div class=\"msgDate\">"+msgDetails[8]+"</div>");
	document.write("</div>");

	document.write(Tochen);
}

// Function for recursive printing of elements. Finds children of given Msg.

function findChildren(needle, array, deepness)
{
	var array;
	var needle;
	var deepness;
	
	sendDeepness = deepness;

	$.each(array, function(i){
		if (array[i][5] == needle)
		{
			var foundID = array[i][0];
			sendDeepness++;

			printMsg(array[i], sendDeepness, 0);

			findChildren(foundID, array, sendDeepness);
		}

		sendDeepness = deepness;
	});
	
	return false;
}