/// functions for making suitable size for an String.
var nav_img_sep_width=20;
var dot3="<font style='font-size:8px'> ...</font>";
var dot3_size=null;
function findSize(text,size)
{
	if(!text) return;
	var span=document.getElementById("FindStringLengthTool");
	if(!span) return;
	span.style.fontSize=size;
	span.innerHTML=text;
	var new_text=span.innerHTML;
	return span.offsetWidth;
}
function makeSize(text,size,limit)
{
	if(!text) return;
	if(!limit) return text;
	if(!size) size=11;
	if(!dot3_size) var dot3_size=findSize("...",8);
	limit=limit-11;
	var text_size=findSize(text,size);
	if(text_size>limit)
		return shortString(text,size,limit);
	else
		return text;
}
///
function shortString(text,size,limit,op)
{
	if(!text.length) return false;
	re=/([^\s\.,\(\)]+)/g;
	re2=/([\s\.,\(\)]+)/g;
	var words=text.match(re);
	var word_count=words.length;
	var seps=text.match(re2);
	var sep_count=seps.length;
	//
	if(word_count>=2)
	{
		for(m=0;m<word_count;m++)
		{
			var counter=word_count-1-m;
			if(counter==0)
				return words[0]+dot3;
			words[counter]="";
			new_text="";
			for(k=0;k<counter;k++)
				new_text+=words[k]+seps[k];
			var new_size=findSize(new_text,size)
			if(new_size<=limit)
				return new_text+dot3;
				
		}
	}
	else
		return text;
}
function convertHardCode(message) {
	if(!message.length) return message;
	var pat=/&#[0-9]{4};/g;
	var result = message.match(pat);
	if(!result) return message;
	if(result.length){
		new_message=message;
		for(pi=0;pi<result.length;pi++) {
			rchar=result[pi];
			code=rchar.replace("&#","");
			hex_code=parseInt(code).toString(16);
			if(hex_code.length<=3) hex_code="0"+hex_code;
			new_char="%u"+hex_code;
			new_message=new_message.replace(rchar,new_char);
		}
		return unescape(new_message);
	}
	return message;
}
function JStoHardCode(message) {
	if(!message.length) return "";
	var pat=/%u[0-9a-zA-Z]{4}/g;
	var result = message.match(pat);
	if(!result) return message;
	var new_message=message;
	for(ii=0;ii<result.length;ii++)
	{
		rchar=result[ii];
		code=rchar.replace("%u","");
		dec_char=parseInt(code,16);
		new_message=new_message.replace(rchar,"&#"+dec_char+";");
	}
	return unescape(new_message);
}
function setNavNodesSize()
{	
	if(!arrNav.length) return false;
	if(!arrNav["SizeLimit"])
		limit=730;
	else
		limit=arrNav["SizeLimit"];
	if(!arrNav["FontSize"])
		size=9;
	else
		size=arrNav["FontSize"];
	// making a copy of array ;)
	for(p=0;p<arrNav.length;p++)
		arrNewNav[p]=arrNav[p]["Title"];
	//
	var nav_size=findNavSize(size);
	if(nav_size>limit)
	{
		setNavShort(size,limit);
	}
	return true;
}
function findNavSize(size)
{
	var text_sum_size=0;
	for(i=0;i<arrNav.length;i++)
	{
		txt=unescape(arrNav[i]["Title"]);
		text_sum_size+=findSize(txt,size);
	}
	//
	var sep_sum_size=(nav_img_sep_width*(arrNav.length-1));
	return sep_sum_size+text_sum_size;
}
function setNavShort(size,limit)
{
	if(arrNav.length<=2) return;
	for(m=1;m<arrNav.length;m++) // [1] to [length-1]
	{
		arrNav[m]["Title"]=getOneWord(arrNav[m]["Title"]);
		new_size=findNavSize(size);
		//status+=new_size+" ";
		if(new_size<=limit)
			return;
	}
	//alert(limit);
	for(m=1;m<arrNav.length;m++) // [1] to [length-1]
	{
		arrNav[m]["Title"]=dot3;
		new_size=findNavSize(size);
		if(new_size<=limit)
			return;
	}
	//alert(unescape(arrNav[arrNav.length-1]["Title"]));
	//while(true)
	//{
		//arrNav[arrNav.length-1]["Title"]=shortString((arrNav[arrNav.length-1]["Title"]),size,limit);
		//new_size=findNavSize(size);
		//window.status+=new_size+"-";
		//if(new_size<=limit)
		//	return;
	//}
	
	/*
	arrNav[0]["Title"]=getOneWord(arrNav[0]["Title"]);
	new_size=findNavSize(size);
	if(new_size<=limit)
		return;
	arrNav[arrNav.length-1]["Title"]=getOneWord(arrNav[arrNav.length-1]["Title"]);
	new_size=findNavSize(size);
	if(new_size<=limit)
		return;
	*/
	
}
function getOneWord(text)
{
	var re=/([^\s\.,\(\)]+)/g;
	var words=text.match(re);
	if(words.length==1)
		return words[0];
	else
		return words[0]+dot3;
}
function stripTags(text)
{
	var re = new RegExp("<&#91;^>&#93;*>", "g");	
	//var re=/(<[^>]+?>)/g;
	return text.replace(re,"");
}
/////////////
function renderNavigation()
{	
	if(!arrNav.length) return;
	strTable="<TABLE BORDER='0' CELLPADDING='0' CELLSPACING='0'>\n";
	for(j=0;j<arrNav.length;j++)
	{
		if(j==0)
			strTable+="\t<TR height='25'><TD WIDTH='10' NOWRAP></TD>\n\t\t";
		if(brw_name=="ie")
			var nodeCompTitle=unescape(arrNewNav[j]);
		else
			var nodeCompTitle=JStoHardCode(unescape(arrNewNav[j]));
		//
		var nodeClassName=arrNav[j]["URL"]?arrNav["LinkClass"]:arrNav["NoLinkClass"];
		//
		if(brw_name=="ie")
			var nodeTitle=unescape(arrNav[j]["Title"]);
		else
			var nodeTitle=JStoHardCode(unescape(arrNav[j]["Title"]));
		if(arrNav[j]["URL"])
			nodeTitle="<A TITLE='"+nodeCompTitle+"' CLASS='"+arrNav["LinkClass"]+"' HREF='"+arrNav[j]["URL"]+"'>"+nodeTitle+"</A>";
		//
		var nodeURL=arrNav[j]["URL"];
		
		if(j!=arrNav.length-1)
		{	
			strTable+="<TD valign='top' nowrap class='"+nodeClassName+"'>"+nodeTitle+"</TD>";
			strTable+="<TD valign='top' nowrap>"+arrNav["MidImage"]+"</TD>";
		}
		else
		{
			strTable+="<TD valign='top' nowrap><TABLE BORDER='0' CELLPADDING='0' CELLSPACING='0'><TR>"+"<TD valign='top' nowrap class='"+nodeClassName+"'>"+nodeTitle+"</TD>"+"</TR><TR><TD nowrap align='center' height='15'>"+arrNav["LastImage"]+"</TD></TABLE></TD>";
		}
			
	}
	strTable+="\n</TABLE>\n";
	return(strTable);
}
function showHidePanelright(id)
 {
	if(id)
	{
		// changing dispaly of child nodes.
		if(document.getElementById(id))
		{
			if(document.getElementById(id).style.display=="")
			{
				document.getElementById(id).style.display="none";
			}
			else
			{
				document.getElementById(id).style.display="";
			}
		}
		// changing bullet to collapse or expand state.
		if(document.getElementById("img_"+id))
		{
			if(document.getElementById("img_"+id).src.indexOf("rectminus.gif")!=-1)
				document.getElementById("img_"+id).src="/images/categories/rectplus.gif";
			else
				document.getElementById("img_"+id).src="/images/categories/rectminus.gif";
		}
	}
 }

/// end of functions.
