// JavaScript Document
// code by Azer Manafov (azerman[at]hotmail[dot]com)

//getCSSValueOf( 'table.roottbl td:hover','backgroundColor');
function getCSSValueOf( selector, stylename)
{
	    if ( document.styleSheets )
		{
			var sr    = '';
			var theRules = new Array();
			for ( var i = 0; i < document.styleSheets.length; i++ )
			{
				if (document.styleSheets[i].cssRules)
					theRules = document.styleSheets[i].cssRules
				else if (document.styleSheets[i].rules)
					theRules = document.styleSheets[i].rules
				else break;

				for ( var j = 0; j < theRules.length; j++ )
				{   sr = theRules[j].selectorText.toLowerCase( );
				    if ( sr.indexOf(selector) != -1 )
					{   if ( theRules[j].style[stylename])
						     return theRules[j].style[stylename];
						return null;	 
					}
                }
			}
		}
	
    return null;
}
function clsFloatNavigation( divId, visihlp)
{

    var m_divId   = (divId == undefined)?'leftnavigation':divId;
	var m_visihlp = (visihlp == undefined)?new clsViewHelper():visihlp;
	
	var m_width   = 140;
	var m_currImg = 'images/i_nav_01_on.gif';
	var m_normImg = 'images/i_nav_01_off.gif';
    var m_tblName = 'leftnavigationtbl';
	var m_divPref = 'message_';
	var m_clrOvr  = 'black';//'#cfedff';
	var m_clrOut  = 'black';//"#f1faff";
	
	var m_arEvCallback = new clsCallbackList( );
	
	this.setColors     = function( clrOvr, clrOut ) { m_clrOvr = clrOvr; m_clrOut = clrOut; }
    this.addCallback   = function( callback ) {	m_arEvCallback.addCallback(callback); }
	this.getTblId      = function() { return m_tblName; }
	this.getactiveid   = function() { return m_base.getactiveid(); }
	this.addItem       = addItem;
	this.setIcons      = setIcons;

	this.setPrefix     = setPrefix;
	this.create        = create;
	
	clsFloatNavigation.idPref = 'nav_';

	var m_base         = new clsBaseNavigate( divId, visihlp, clsFloatNavigation.idPref );
	m_base.addEvent( 'mouseover', true );

	m_visihlp.registerHelper( navMouseEvent );
	
	function setIcons( normImg, currImg )
	{   m_normImg  = normImg;
		m_currImg  = ( currImg == 'undefined')?m_normImg:currImg;
	}
	function setPrefix( prefix )
	{
		m_divPref = prefix;
	}
	function addItem ( sLink, sText )
	{   
		m_base.addItem ( sLink,sText);
	}
	
	function build   ( activeId )
	{   
	
	    var clrOut = getCSSValueOf( 'table.roottbl','backgroundColor');
		var clrOvr = getCSSValueOf( 'table.roottbl td:hover','backgroundColor');
		if ( clrOut ) m_clrOut = clrOut;
		if ( clrOvr ) m_clrOvr = clrOvr;
	
	    var s='';
		s += '<TABLE id=\"' + m_tblName + '\" class=\"roottbl\" width=\"' + m_width + '\" style="margin: 5px 5px 5px 5px;\">';
		s += '<TBODY>';

		for ( var i = 0; i < m_base.itemCount(); i++ )
		{
			var itm = m_base.getitem(i); 
			var sid = clsFloatNavigation.idPref + m_base.getid(i+1);
			var img = (itm.id != activeId )?m_normImg:m_currImg;

			s += '<TR>\n';
			s += '<TD id=\"'   + sid + '_01\" align=\"center\" valign=\"middle\">';
			s += '<IMG src=\"' + img + '\" border=\"0\" align=\"middle\"></TD>\n';
			s += '<TD id=\"'   + sid + '_02\" align=\"right\" valign=\"middle\">\n';
			s += '<SPAN style=\"font-family:Arial; font-size:12px; font-weight:bold;\">\n';
			s += itm.title;
			s += '</SPAN></TD></TR>\n';
		}
		s += '</TBODY></TABLE>\n';
		hideAllMessages( );
		showMessage    ( activeId, true );
		return s; 
	}
	function showMessage    ( num, enable )
	{
		var id = m_divPref + m_base.getid(num);
		var ob = m_visihlp.getElement(id);
		m_visihlp.setVisible( ob,enable );
	}
	function hideAllMessages( )
	{   var i  = 0;
		var id = m_divPref + m_base.getid(++i);
		var ob = m_visihlp.getElement(id);
		while( ob )
		{   m_visihlp.setVisible( ob,false );
			id = m_divPref + m_base.getid(++i);
			ob = m_visihlp.getElement( id );
		}
	}
	function createNamesFromTag( tagName )
	{   var i  = 0;
		var id = m_divPref + m_base.getid(++i);
		var ob = m_visihlp.getElement(id);
		while( ob )
		{   var h1 = ob.getElementsByTagName( tagName );
			if ( h1 )
				addItem( id, m_visihlp.getInnerText(h1[0]));
			id = m_divPref + m_base.getid(++i);
			ob = m_visihlp.getElement( id );
		}
	}

	function create  ( activeId )
	{	
        var div = m_visihlp.getElement( m_divId );
		var w   = div.style.width;
		if ( w && w.indexOf('px') != -1 )
			 w = w.substring(0,w.indexOf('px'));
		if ( w ) m_width = w-10;
		
		if ( !m_base.itemCount() )
		      createNamesFromTag( 'h1' );
		m_base.setactiveid( activeId );
		
		div.innerHTML = build( m_base.getactiveid()); 
/*		
	var s = '';
    for( var i in this)
	{   s += 'Name :'+i+' Value :'+nav[i] + "\n"; }
	alert(s);
*/		
//		document.write(build( m_activeId ));
	}

    function navMouseEvent(e)
	{	//aphisha
        for ( var i = 0; i < m_arEvCallback.count(); i++ )
		      if ( !m_arEvCallback.callAfter(i)) 
			        m_arEvCallback.call(i);
			  
        var evt    = m_base.eventhandle( e );
		if ( !evt ) return;
		if ( !evt.obj ) return;

		var currid = m_base.getnavid( evt.obj, clsFloatNavigation.idPref );//extract first number from id
		var previd = m_base.getactiveid();
        if ( currid == previd ) return;

		var obj3   = visi.getElement( clsFloatNavigation.idPref + m_base.getid( currid ) + '_01').childNodes[0];//image object
        obj3.src   = m_currImg;
		
		obj3       = visi.getElement( clsFloatNavigation.idPref + m_base.getid( previd )+'_01' ).childNodes[0];
		obj3.src   = m_normImg;



		visi.getElement( clsFloatNavigation.idPref + m_base.getid( currid ) + '_01').style.backgroundColor = m_clrOvr;
		visi.getElement( clsFloatNavigation.idPref + m_base.getid( currid ) + '_02').style.backgroundColor = m_clrOvr;
		
		
		visi.getElement( clsFloatNavigation.idPref + m_base.getid( previd ) + '_01' ).style.backgroundColor = m_clrOut;
		visi.getElement( clsFloatNavigation.idPref + m_base.getid( previd ) + '_02' ).style.backgroundColor = m_clrOut;

		visi.setVisible( m_divPref + m_base.getid( previd ), false );
		visi.setVisible( m_divPref + m_base.getid( currid ), true );
		m_base.setactiveid( currid );
		
        for ( var i = 0; i < m_arEvCallback.count(); i++ )
		      if ( m_arEvCallback.callAfter(i)) 
			        m_arEvCallback.call(i);
	}
	
}
