// JavaScript Document
// menuline
// code by Azer Manafov (azerman[at]hotmail[dot]com)
// .js encoding - "utf-8"
function clrsheme(background,bkgnorm,bkgcurr,bkgover,clrnorm,clrcurr,clrover)
{
   this.background = background; 
   this.bkgnorm = bkgnorm;
   this.bkgcurr = bkgcurr;
   this.bkgover = bkgover;
   this.clrnorm = clrnorm;
   this.clrcurr = clrcurr;
   this.clrover = clrover;
}

var divsheme = {};
//divsheme.border   = '2px solid #8e2800';
divsheme.width    = '630px';
divsheme.height   =  '22px';
divsheme.left     = '169px';
divsheme.position = 'relative';
divsheme.backgrounColor = '#B81D1D';
divsheme.zIndex   = '40';

//                          background   bkgnorm    bkgcurr    bkgover   clrnorm   clrcurr   clrover
var mnush1 = new clrsheme( '#000000',   '#ffb03b', '#8e2800', '#b64926','#6f1f00','#ffffff','#fff0a5');
//var mnush2 = new clrsheme( '#59370c',   '#de9d44', '#805821', '#ab752b','#59370c','#ffffff','#fff0a5');
var mnush2 = new clrsheme( '#59370c',   '#dcbd94', '#805821', '#ab752b','#59370c','#ffffff','#fff0a5');
var mnush3 = new clrsheme( '#B81D1D',   '#B81D1D', '#801616', '#FFE395','#ffa45a','#ffffff','#B81D1D');
//
function clsLineMenu( divId, visihlp )
{   var m_divId   = (divId == 'undefined')?null:divId;

    var m_arItems = new Array( );
	var m_actveId = 0;
	var m_visihlp = (visihlp == 'undefined')?new clsViewHelper():visihlp;
	var m_hContained = 0;
	
	m_visihlp.registerHelper( mnuMouseEvent );
	
	var mnu_sheme          = mnush3;
	var m_fontstyle        = new Object( );

    var MNU_BORDER         = 0;
	
	var MNU_ITM_HEIGHT     = 14;
	var MNU_ITM_WIDTH      = 116;
	

	this.addItem  = addItem;
	this.create   = create;
	this.activeId = 0;

	this.fontStyle      = fontStyle;
	this.mnuColorSheme  = mnuColorSheme;
	this.mnuBorderWidth = mnuBorderWidth;
	this.mnuItemHeight  = mnuItemHeight;
	this.mnuItemWidth   = mnuItemWidth;

	fontStyle( 'font-size', 12, 'font-family', 'arial', 'font-weight', 'normal','color','#000000');	
    this.resFont        = function( ){ m_fontstyle = new Object( ); }

	function fontStyle( )
	{	
		for ( var i=0; i < arguments.length; i=i+2)
		{	var key = arguments[i+0].toLowerCase();
		    var val = (arguments[i+1]+'').toLowerCase();
			m_fontstyle[key] = val;
	  	}
		
	}

	function mnuColorSheme	( shm ){ if ( shm != 'undefined' ) mnu_sheme = shm; return shm;}
	function mnuBorderWidth ( val ){ if ( val != 'undefined' ) MNU_BORDER     = val; return MNU_BORDER;    }
	function mnuItemHeight  ( val ){ if ( val != 'undefined' ) MNU_ITM_HEIGHT = val; return MNU_ITM_HEIGHT;}
	function mnuItemWidth   ( val ){ if ( val != 'undefined' ) MNU_ITM_WIDTH  = val; return MNU_ITM_WIDTH; }
	

    function addItem ( sLink, sText, sId )
	{   for ( var i = 0; i < m_arItems.length; i++ )
		{   if ( m_arItems[i].title == sText )
			     return;
		}
		var sId = (sId == 'undefined' )?(m_arItems.length+1):sId;  
	    m_arItems.push( {id:(m_arItems.length+1),link:sLink,title:sText,numid:sId});
	    
	}
    this.getItems     = function ( ) { return m_arItems; }

	function build   ( activeId )
	{
	    var s = '';
		
		if ( m_hContained && m_hContained > MNU_ITM_HEIGHT)
		{ 
		     var vpos = (m_hContained -MNU_ITM_HEIGHT)/2 - 2;
			 s += ' <TABLE  id=\"menulineid\" class=\"menuline\" style=\"position:relative; top:'+ vpos + 'px;\" cellSpacing=1 cellPadding=0 width=\"100%\">' + "\n";
		}
		else s += ' <TABLE  id=\"menulineid\" class=\"menuline\" cellSpacing=1 cellPadding=0 width=\"100%\">' + "\n";
		s += " <TBODY>\n";
        s += " <TR>\n";
		for ( var i = 0; i < m_arItems.length; i++ )
		{   var lnk   = urlbase + m_arItems[i].link;
		    var id    = m_arItems[i].id;
		    var title = m_arItems[i].title;
		    if ( id != activeId )
		         s += ' <TD id=\"mnuitem'+(i+1)+'\"><A href=\"'+lnk+'\" style=\"white-space: nowrap;\">&nbsp;&nbsp;' + title + '&nbsp;&nbsp;</A></TD>' + "\n";
			else s += ' <TD id=\"mnuitem'+(i+1)+'\" class=\"own\"><A href=\"'+lnk+'\" style=\"white-space: nowrap;\">&nbsp;&nbsp;' + title + '&nbsp;&nbsp;</A></TD>'+"\n";
		}
		s += " </TR></TBODY></TABLE>\n";
		return s; 
	}
					
	function outStyle( )
	{   
		if ( m_divId )
		{   var div = m_visihlp.getElement(m_divId);
			if ( div )
			{   m_hContained = m_visihlp.getElement(m_divId).style.height;
				if ( m_hContained )
				     m_hContained   = m_hContained.substr(0,m_hContained.length-2);
			}
		}
	    if ( MNU_ITM_HEIGHT == 0 )
			 MNU_ITM_HEIGHT = m_hContained;
		if ( MNU_ITM_HEIGHT == 0 ) MNU_ITM_HEIGHT = m_fontstyle['font-size']+6;
		
        var s = ""; 

		s += "table.menuline    { background:" + mnu_sheme.background + "; border:" + MNU_BORDER + "} \n";
		s += "table.menuline tr { background:" + mnu_sheme.bkgnorm + "; }\n ";
		s += "table.menuline td, td.own, td.vis \n";
		s += "{ font-family: " + m_fontstyle['font-family'] + "; "; 
		s += "  font-weight: " + m_fontstyle['font-weight'] + "; ";
		s += "  font-size:   " + m_fontstyle['font-size']   + "px; "; 
		s += "  width:       " + MNU_ITM_WIDTH  + "px; ";
		s += "  height:      " + MNU_ITM_HEIGHT + "px; ";
		s += "  text-align:  center; ";
		s += "} \n";
		s += "table.menuline td a, td a:link, td a:visited, td a:hover, td a:active ";
		s += "{ font-family: " + m_fontstyle['font-family'] + "; "; 
		s += "  font-weight: " + m_fontstyle['font-weight'] + "; "; 
		s += "  font-size:   " + m_fontstyle['font-size']   + "px; ";
		s += "}\n";
		s += "table.menuline td.own a, td.own a:link, td.own a:visited, td.own a:hover, td.own a:active ";
		s += "{ font-family: " + m_fontstyle['font-family'] + "; "; 
		s += "  font-weight: " + m_fontstyle['font-weight'] + "; ";
		s += "  font-size:   " + m_fontstyle['font-size']   + "px; "; 
		s += "}\n";
		s += "table.menuline td.own    { background:" + mnu_sheme.bkgcurr + "; }\n ";
		s += "table.menuline td.vis    { background:" + mnu_sheme.bkgover + "; }\n ";
		s += "table.menuline a         { color:" + mnu_sheme.clrnorm + "; text-decoration:none;}\n ";
		s += "table.menuline td.own a  { color:" + mnu_sheme.clrcurr + "; text-decoration:none;}\n ";
		s += "table.menuline td.own a:visited { color:" + mnu_sheme.clrcurr + "; text-decoration:none;}\n ";
		s += "table.menuline a:visited { color:" + mnu_sheme.clrnorm + "; text-decoration:none;}\n ";
		s += "table.menuline a:link    { color:" + mnu_sheme.clrnorm + "; text-decoration:none;}\n ";
		s += "table.menuline a:hover   { color:" + mnu_sheme.clrover + "; text-decoration:none;}\n ";
        
        return s;
	}
	
	function create  ( activeId, iHtmRet, parentid )
	{	
		var iHtmRet = (iHtmRet != 'undefined')?iHtmRet:HTM_WRT;
	    var activeId = (activeId == null)?this.activeId:activeId;
		if ( (typeof activeId) == 'string')
		{   var i = 0;
		    for ( i = 0; i < m_arItems.length; i++ )
			{   if ( m_visihlp.trim(m_arItems[i].title) == m_visihlp.trim(activeId))
				{    activeId = i+1;
					 break;
				}
			}
			if ( i == m_arItems.length ) activeId = 1;
		}
	    this.activeId = activeId;

        var div = m_visihlp.getElement( m_divId );
		if ( !div ) // if placeholder not found
		{    if ( !parentid ) return;
			 var parent = m_visihlp.getElement( parentid );
			 div        = m_visihlp.createDivLayer( parent, m_divId,divsheme );
			 iHtmRet    = HTM_INS;
		}
		if ( !div ) return;
//	    getCSSValueOf( 'table.menuline','backgroundColor');
		var styleSheet = (getCSSValueOf( 'table.menuline','backgroundColor'))?"":outStyle( );
		switch( iHtmRet )
		{
			case HTM_RET: 
			    m_visihlp.appendStyle( styleSheet ); 
			    return build( activeId );
			case HTM_INS: 
			    m_visihlp.appendStyle( styleSheet ); 
			    div.innerHTML = build( activeId ); 
			    break;
			case HTM_WRT:
			default:
			    document.write( "<STYLE type=\"text/css\">\n" +  styleSheet + "</STYLE>\n");
			    document.write( build( activeId ));  
			    break;
		}
	}

	function colorshift( colorval, shiftval, dir )
	{   var sig = colorval.indexOf('#');
	    if ( sig != -1 )
	         colorval = colorval.substr( sig+1 );
	    while( colorval.length < 6 ) colorval += '0';
		
		var rgb = new Array( parseInt('0x'+colorval.substr( 0,2)),
							 parseInt('0x'+colorval.substr( 2,2)),
							 parseInt('0x'+colorval.substr( 4,2))
							);
        var str = '';
		for ( var i = 0; i < 3; i++ )
		{  	if ( dir == true )
				 rgb[i] *= shiftval;
		    else rgb[i] /= shiftval;
			var s = rgb[i].toString(16);
			if ( s.length == 1 ) s = '0'+s;
			if ( s.length > 2 ) s = s.substr( s.length-2,2);
			str += s;
		}
		str = '#'+str;
		return str;
	}
	function mnuMouseEvent(e)
	{
		var enable = true;
		e = e || window.event;
		if ( !e ) return;
		if ( e.type == 'mouseover')
			 enable = true;
		else
			if ( e.type == 'mouseout')
				 enable = false;
		else return;
		
		var obj = m_visihlp.getEventTarget( e );
		try
		{   if ( !obj || !obj.parentNode ) return;
		    if ( obj.parentNode.id.indexOf( 'mnuitem') == -1 ) return;
			obj = obj.parentNode;
			if ( document.all||document.getElementById )
			{   if ( enable )
				{   if ( obj.className != 'own')
						 obj.className='vis';
				}
				else 
				{   if ( obj.className != 'own')
						 obj.className='';
				}
			}
		}
		catch( err){}
	}
}
// end  menu line