/***********************************************************************
*              Author: Klaus Hentschel [ All rights reserved ].                        				   *
************************************************************************
* Copyright (C) by Klaus Hentschel, http//javarea.de
*
* www: http://javaera.de.de
*
* Dieses Script ist Bestandteil des JavBB 2.0.0
*
* - MarkAsRead.class.js
*
* - MarkAsRead() 					- Thema oder Forum als geesen markieren
***********************************************************************/

MarkAsReadList = function()
{
	/**
	* Description: Initialisierung
	*/
	this.init = function() 
	{	
		var docImg = document.getElementsByTagName("img"); 
		var s, topicID, topicIDName;
		
		for (var i=0; i<docImg.length; i++)
		{   
			if (docImg[i].id) 
			{ 
				// id holen
				docImg[i].topicID = docImg[i].id;				
				
				// text von Nummer trennen und als Bereich weitergeben
				topicID = docImg[i].id;								// thread_id
				s = topicID.search("_");    
				topicIDName = topicID.substr(0, s);		// thread 
				
				// ID extrahieren
				id = topicID.substr(s+1, topicID.length);
				
				if (topicIDName == "thread")
					docImg[i].topic = topic[id]; // Object 
				
				if (topicIDName == "board")
					docImg[i].board = board[id]; // Object 
				
				// event ausfuehren							
				docImg[i].ondblclick = function()	{
					if (topicIDName == "thread")
						if (this.topic != undefined && this.topic['isReading'] == 0)						
							MarkAsReadList.MarkAsRead(this.topicID, topicIDName);				
					if (topicIDName == "board")
						if (this.board != undefined && this.board['isReading'] == 0)						
							MarkAsReadList.MarkAsRead(this.topicID, topicIDName);								
				}   		
			}			
		}		// end for
	}
	
	/**
	* Description: Ersetzt das Themen oder Forumsymbol, "Icon" und markiert den topic als gelesen
	* Author: Klaus Hentschel <javaera.de>
	*
	* MarkAsRead()
	* @param: <int> id
	* @param: <string> divIDName
	**/
	this.MarkAsRead = function(ID, divIDName) 
	{ 		
		divIDName = (divIDName == "thread") ? "ThreadMarkAsRead" : "BoardMarkAsRead";
		
		if (divIDName == "ThreadMarkAsRead")
			ID = ID.replace("thread_", "");
		
		if (divIDName == "BoardMarkAsRead")
			ID = ID.replace("board_", "");
		//alert(ID);
		// -------------------------------------------------------------------- //
		// Thema als gelesen markieren
	  if (divIDName == "ThreadMarkAsRead")
	  {
		  // einzelnes Forum als gelesen markieren
		  if (!isNaN(ID) && topic[ID]['isReading'] == false)
	    {
				ajaxRequest.openGetRequest(BOARD_AJAXPATH + '?action='+ divIDName + '&threadid=' + ID);  
	      showTableStatus(ID, divIDName);			
	      topic[ID]['isReading'] = true;
	    }
			
			// alle Themen als gelesen markieren
	    if (isNaN(ID))
	    {     
	      var docSpans = document.getElementsByTagName("span");
	      var allFlag = false;
				for (var i=0; i<docSpans.length; i++)
	      {     
					var allID = ID.replace("_all", "");
					var topicID = docSpans[i].id;        	
					topicID = topicID.replace("newest_", "");							
					
					if (topic[topicID] != undefined && topic[topicID]['isReading'] == false)
					{                  
						showTableStatus(topicID, divIDName);			
						topic[topicID]['isReading'] = true;	
	          allFlag = true;
					}					
	      }
	      
				// alle Themen aus diesem als gelesen markieren
	      if (allFlag)
	        ajaxRequest.openGetRequest(BOARD_AJAXPATH + '?action='+ divIDName+'&forumid='+allID);
			}		
	  }
		
	  // -------------------------------------------------------------------- //
	  // Forum als gelesen markieren
	  if (divIDName == "BoardMarkAsRead")
	  {  
			// einzelnes Forum als gelesen markieren
	    if (!isNaN(ID) && board[ID] != undefined && board[ID]['isReading'] == false)
	    {
	      ajaxRequest.openGetRequest(BOARD_AJAXPATH + '?action=' + divIDName+'&forumid='+ID);  
	      showTopicPicture(ID, divIDName);  
	      board[ID]['isReading'] = true;
	    }
	    
	    // alle Foren als gelesen markieren
	    if (isNaN(ID))
	    {     
	      var docSpans = document.getElementsByTagName("span");   
				
				var allFlag = false;
				for (var i=0; i<docSpans.length; i++)
	      {      				
					var boardID = docSpans[i].id;        	
					boardID = boardID.replace("newB_","");
					
					if (board[boardID] != undefined && board[boardID]['isReading'] == false)
					{                   
						showTopicPicture(boardID, divIDName);
						board[boardID]['isReading'] = true;	
	          allFlag = true;
					}					
	      }
	      
	      if (allFlag)
	        ajaxRequest.openGetRequest(BOARD_AJAXPATH + '?action='+ divIDName+'&forumid='+ID);
			}
			
			// Neueste Themen in der Forenansicht auf gelesen markieren setzen, wenn einzelnes oder alle Foren als gelesen markiert wurde(n)
			var docSpans2 = document.getElementsByTagName("spanT"); 
			for (var i=0; i<docSpans2.length; i++)
	    {      
				var topicID = docSpans2[i].id; 
				topicID = topicID.replace("newT_","");
				
				// alle Foren wurden als gelesen makiert, Themen in Forenansicht anpassen
				if (isNaN(ID) && topic[topicID] != undefined && topic[topicID]['isReading'] == false)
				{      				        
					showTopicPicture(topicID, "ThreadMarkAsRead");
					topic[topicID]['isReading'] = true;					
				}	
				
				// einzelnes Forum wurde als gelesen markiert, alle Themen in Forenansicht aus Forum ebenfalls als gelesen markieren
				if (!isNaN(ID) && topic[topicID] != undefined && topic[topicID]['isForumID'] == ID && topic[topicID]['isReading'] == false)
				{        
					showTopicPicture(topicID, "ThreadMarkAsRead");
					topic[topicID]['isReading'] = true;					
				}				
	    }    
	  }
	}
}

var MarkAsReadList = new MarkAsReadList();
/*
window.onload = function () 
{
	MarkAsReadList.init();
}
*/
var isDOMContentLoaded = false;
function addContentLoadListener () {
	if (document.addEventListener) {
	var DOMContentLoadFunction = function () {
		isDOMContentLoaded = true;
		MarkAsReadList.init();
	};
	document.addEventListener("DOMContentLoaded", DOMContentLoadFunction, false);
}
var oldonload = (window.onload || new Function());
	window.onload = function () {
		if (!isDOMContentLoaded) {
			oldonload();
			MarkAsReadList.init();
		}
	};
}
addContentLoadListener();

