/**
 * --------------------------------------------------------
 */
/**
* Add a function to an object event handler
* @param {Object} oObj Reference to object
*/

function textExpandInit()
{	
	var UL_items = document.getElementsByTagName("ul");
	for(var i=0;i<UL_items.length;i++)
	{
		var thisULItem = UL_items[i];
		if (thisULItem.className == "overview") 
		{
			thisULItem.id = "ul" + i;
			//
			thisULItem.expandingAll = 0;
			//		
			var LI_items = thisULItem.getElementsByTagName("li");
			for (var j=0; j<LI_items.length; j++)
			{
				var LI_obj = LI_items[j];
				
				if (LI_obj.className == "expandText") 
				{
					var txt = breakAtWholeWord(LI_obj.innerHTML, 100);
					LI_obj.oldInnerHTML = LI_obj.innerHTML;
					
					if (txt)
					{
						thisULItem.expandingAll++;
						txt += "... ";
						txt += "<a href='javascript:void(0);' class='link-small-plus' onclick='textExpand(\""+LI_obj.id+"\", \"" + thisULItem.id + "\")'>Visa&nbsp;hela&nbsp;texten</a>";
						LI_obj.innerHTML = txt;
						
					} 					
					LI_obj.className += " collapsed";
					
					setListMouseActions(LI_obj);
				}	
				else if (LI_obj.className == "expand-complete")
				{

					if(thisULItem.expandingAll <= 1)
					{
						LI_obj.style.display="none";
					} else
					{
						LI_obj.id = thisULItem.id + "expand-complete";
						LI_obj.innerHTML = "<p><a href='javascript:void(0);' onclick='textExpandAll(\"" + thisULItem.id + "\");' class='link-small-plus'>Visa alla texter samtidigt</a></p>";
						
					}
						
				}
				//		
			}
			//
		}		
	}	
}
/**
 * --------------------------------------------------------
 */
function setListMouseActions (obj) {
	
	obj.onmouseover = function (){
		this.className = this.className.replace("collapsed", " ");
		this.className = compressWhiteSpace(this.className);
	} 
	obj.onmouseout = function (){
		this.className += " collapsed";
		
	}
}
function deleteListMouseActions (obj) {
	obj.onmouseover = null;
	obj.onmouseout = null;
}
/**
 * --------------------------------------------------------
 */
function deleteRegularTags(sTxt, tag){

	var tmpTxt = sTxt.toLowerCase();
	//if (tmpTxt.indexOf("<" + tag) >  0){
	if (tmpTxt.indexOf("<" + tag) >  sTxt.indexOf("<p>")){
		var start = tmpTxt.indexOf("<" + tag);
		var end = tmpTxt.indexOf("</" + tag + ">", start) + tag.length + 3;
		var takeAway = sTxt.substring(start, end);
		sTxt = sTxt.replace(takeAway, "");
		return deleteRegularTags(sTxt, tag);	
	} else {
		
		return sTxt;	
	}
}
function compressWhiteSpace(s) {
  s = s.replace(/\s+/g, " ");
  return s;
}

function findIndexOf (sTxt, tag) {
	var tmpTxt = sTxt.toLowerCase();
	return tmpTxt.indexOf(tag);
}
/**
 * --------------------------------------------------------
 */
function breakAtWholeWord(sTxt, iEnd)
{
	var origTxt = sTxt;
	origTxt = compressWhiteSpace(origTxt);
	//alert(origTxt);
	
	sTxt = deleteRegularTags(sTxt, "span");
	sTxt = deleteRegularTags(sTxt, "form");
	
	//sTxt = deleteRegularTags(sTxt, "div");
	//sTxt = deleteRegularTags(sTxt, "ul");
	//sTxt = deleteRegularTags(sTxt, "a");

	
	sTxt = compressWhiteSpace(sTxt);
	
	var start = findIndexOf(sTxt, "<p>");
	//alert(sTxt.length + " : " + sTxt);
	//alert(sTxt.length + "   |  " + (start+220) + "  || " + origTxt.length);
	//if( (sTxt.length > (start + 220)) || (sTxt.length > iEnd && origTxt.length > 300 ) ) {
	if ( sTxt.length > (start + 230) ) {
		for(var i=iEnd;i<iEnd+start+20;i++)
		{
			if(sTxt.charAt(i+start) == " ")
			{
				return sTxt.substr(0, i+start);
			}
		}
		return sTxt.substr(0, iEnd+start);
		
	} else {
		
		return false;
	}
}
/**
 * --------------------------------------------------------
 */
/**
 * --------------------------------------------------------
*/
function textExpand(sId, ulID)
{	
	var obj = $(sId);

	var txt = obj.oldInnerHTML;

	txt += "<p style='margin-top:0px;'><a href='javascript:void(0);' class='link-small-minus' onclick='textCompress(\""+sId+"\", \"" + ulID + "\")'>D&ouml;lj&nbsp;texten</a></p>";
	obj.innerHTML = txt;

	var ulobj = $(ulID);
	ulobj.expandingAll--;
	//alert(ulobj.expandingAll);
	if(ulobj.expandingAll < 1) {	
		if( $(ulID + "expand-complete") ) 
		{
			var expObj = $(ulID + "expand-complete");
			expObj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-minus' onclick='textCloseAll(\"" + ulID + "\" )'>St&auml;ng&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>";
		}
	}
	
	
	deleteListMouseActions(obj);

}
function textCompress(sId, ulID)
{
	var obj = $(sId);	
	var txt = breakAtWholeWord(obj.innerHTML, 100);
	txt += "... ";
	txt += "<a href='javascript:void(0);' class='link-small-plus' onclick='textExpand(\""+sId+"\", \"" + ulID + "\")'>Visa&nbsp;hela&nbsp;texten</a>";
	obj.innerHTML = txt;
	obj.className += " collapsed";
	
	var ulobj = $(ulID);
	ulobj.expandingAll++;
	if(ulobj.expandingAll == 1) //timeToGoBAck
	{
		if( $(ulID + "expand-complete") ) 
		{
			var expObj = $(ulID + "expand-complete");
			expObj.innerHTML = "<p><a href='javascript:void(0);' onclick='textExpandAll(\"" + ulID + "\");' class='link-small-plus'>Visa alla texter samtidigt</a></p>";
		}
	}
	
	setListMouseActions (obj);

}
/**
 * --------------------------------------------------------
 */
/**
 * 
 */
function textExpandAll(ulID)
{	
	var ulObj = $(ulID);
	var items = ulObj.getElementsByTagName("li");
	for(var i=0;i<items.length;i++)
	{
		var obj = items[i];
		if (obj.className.indexOf("expandText") > -1)
		{
			obj.className = obj.className.replace("collapsed", " ");
			obj.className = compressWhiteSpace(obj.className);
			
			deleteListMouseActions(obj);
			
			obj.innerHTML = obj.oldInnerHTML;
		}
		else if (obj.className.indexOf("expand-complete") > -1)
		{
			
			//obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-minus' onclick='textCloseAll(\""+ ulID +"\")'>St&auml;ng&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
			obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-minus' onclick='textCloseAll(\"" + ulID + "\" )'>St&auml;ng&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
		}
	}
}
function textCloseAll(ulID)
{	
	
	var ulObj = $(ulID);
	ulObj.expandingAll = 0;
	var items = ulObj.getElementsByTagName("li");
	for(var i=0;i<items.length;i++)
	{
		var obj = items[i];
		if (obj.className.indexOf("expandText") > -1)
		{
			var txt = breakAtWholeWord(items[i].oldInnerHTML, 100);//Changes made here!!!
			obj.oldInnerHTML = obj.oldInnerHTML;//Changes made here!!!
			if (txt) {
				ulObj.expandingAll++;
				txt += "... ";
				txt += "<a href='javascript:void(0);' class='link-small-plus' onclick='textExpand(\""+obj.id+"\", \"" + ulID + "\")'>Visa&nbsp;hela&nbsp;texten</a>";
				obj.innerHTML = txt;
			} 	
			obj.className += " collapsed";
			setListMouseActions(obj);
	
		}
		else if (obj.className.indexOf("expand-complete") > -1)
		{
			obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-plus' onclick='textExpandAll(\""+ulID+"\")'>Visa&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
		}
	}
}
 /*
function textExpandAll()
{	
	
	var items = document.getElementsByTagName("li");
	for(var i=0;i<items.length;i++)
	{
		var obj = items[i];
		if (obj.className.indexOf("expandText") > -1)
		{
			obj.className = obj.className.replace("collapsed", " ");
			obj.className = compressWhiteSpace(obj.className);
			
			deleteListMouseActions(obj);
			
			obj.innerHTML = obj.oldInnerHTML;
		}
		else if (obj.className.indexOf("expand-complete") > -1)
		{
		
			//obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-minus' onclick='textCloseAll(\""+ ulID +"\")'>St&auml;ng&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
			obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-minus' onclick='textCloseAll()'>St&auml;ng&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
		}
	}
}


function textCloseAll(ulID)
{	
	//alert(ulID);
	//TODO: Handle opening of all tags
	var items = document.getElementsByTagName("li");
	for(var i=0;i<items.length;i++)
	{
		var obj = items[i];
		if (obj.className.indexOf("expandText") > -1)
		{
			var txt = breakAtWholeWord(items[i].innerHTML, 110);
			obj.oldInnerHTML = obj.innerHTML;
			if (txt) {
				txt += "... ";
				txt += "<a href='javascript:void(0);' class='link-small-plus' onclick='textExpand(\""+obj.id+"\")'>Visa&nbsp;hela&nbsp;texten</a>";
				obj.innerHTML = txt;
			} 	
			obj.className += " collapsed";
			setListMouseActions(obj);
	
		}
		else if (obj.className.indexOf("expand-complete") > -1)
		{
			obj.innerHTML = "<p><a href='javascript:void(0);' class='link-small-plus' onclick='textExpandAll(\""+ulID+"\")'>Visa&nbsp;alla&nbsp;texter&nbsp;samtidigt</a></p>"
		}
	}
}
*/
/**
 * 
 */

/**
 * --------------------------------------------------------
 */
addEvent(window, "load", textExpandInit);

