﻿// JavaScript Document
// code by Azer Manafov (azerman[at]hotmail[dot]com)

//var NAV_WAIT            = 0;
//var CONTENT_DIV_ID_PREF = 'message_';

if ( typeof MAINDIV_PREFIX != 'undefined')
     CONTENT_DIV_ID_PREF =  MAINDIV_PREFIX;

function clsFloatNavigation2( holderDivId, visihlp, imagesArray )
{
    var m_placeholder = (holderDivId   == 'undefined')?'springnavigate':holderDivId;
	var m_visi   = (visihlp       == 'undefined')?new clsViewHelper():visihlp;
	var m_images = imagesArray;
	var m_prop   = 
	{
        btnPictPrevId   : "leftSlideNav" + (Math.floor(Math.random()*10000)+1),
        btnPictNextId   : "rightSlideNav"+ (Math.floor(Math.random()*10000)+1),
		imgSlider       : "images/userimages/orange_slide1.png",
		imgPictPrev     : "images/sys/btn_slideLeft.png",
		imgPictNext     : "images/sys/btn_slideRight.png",
		
		slideTblId      : "slideBand" +(Math.floor(Math.random()*10000)+1),
		slideRunner     : "slideThumb"+(Math.floor(Math.random()*10000)+1),
		
		callbackSliderMove : null,
		
		slideRunMargin  : 15,
		defwidth        : 100,
		defheight       : 100,
		btnNavWidth     : 24,
		btnNavHeight    : 100,
	    slidesFrame     : 7
		
	};
	var m_slidesNum    = imagesArray.length;
	var m_slidesOffset = 0;
	var m_prevLayer    = 0;
    var m_currSlide    = 0;

	var m_onwinresize  = null;
	
	var m_tm_complete  = new timerAction( setevthand, setevthand,setevthand);
	
	if ( m_slidesNum < m_prop.slidesFrame ) m_prop.slidesFrame = m_slidesNum;
	
	this.gettbid       = function( ){ return m_prop.slideTblId; }
	this.createTable   = createTable;
	this.setProperty   = function( prop ) 
	{    for ( var i in prop )
	     {  
			      m_prop[i] = prop[i];
		 }
	}
	
	function onresize  ( )
	{   if ( m_onwinresize )
	         m_onwinresize( );
		var o     = $(m_prop.slideTblId);
		var rcTbl = visi.getObjectRect(o);
		var td    = o.getElementsByTagName('td');
		var rc    = m_visi.getObjectRect(td[m_currSlide]);
	
		var leftSlideNav = $(m_prop.btnPictPrevId);
		leftSlideNav.style.top  = (rcTbl.top  + 2)+"px";
		leftSlideNav.style.left = (rcTbl.left - m_prop.btnNavWidth)+"px";
		
		var rightSlideNav = $(m_prop.btnPictNextId);
		rightSlideNav.style.top  = (rcTbl.top  + 2)+"px";
		rightSlideNav.style.left = (rcTbl.left + rcTbl.width)+"px";
		if ( m_prop.slidesFrame < m_slidesNum )
		{   m_visi.setVisible( leftSlideNav, true);
		    m_visi.setVisible( rightSlideNav,true);
		}
			
		var tmb = $(m_prop.slideRunner);
		tmb.style.left = (rc.left - 15 ) + 'px';
		tmb.style.top  = (rc.top  - 15 ) + 'px';
		
		m_visi.setVisible( m_prop.slideTblId,true);
	}
	function onclickprev( ) { slideNavClick(0); }
	function onclicknext( ) { slideNavClick(1); }
	function onoutrow   ( ) { floatMouseHandle( 0 ); }
	function onmoverow  ( ) { floatMouseHandle( 1 ); }
	function onclickrow ( ) { floatMouseHandle( 2 ); }
	function setevthand ( state )  
	{   //clearTimeout( m_timerid );
		switch( state )
		{   case TM_STATE_START:  break;
            case TM_STATE_RUN:	  break;
			case TM_STATE_STOP:
				m_timerid = 0;
				var o = $("Row" + m_prop.slideTblId );

				o.onmousemove = onmoverow;
				o.onmouseout  = onoutrow;
				o.onclick     = onclickrow;


				o = $(m_prop.btnPictPrevId);
				o.onclick = onclickprev;
				o = $(m_prop.btnPictNextId);
				o.onclick = onclicknext;
				
				o = $(m_prop.slideTblId);
			
				var td = o.getElementsByTagName('td');
				var rc = m_visi.getObjectRect(td[m_currSlide]);
			
				var tmb = $(m_prop.slideRunner);
				tmb.onclick    = onclickrow;
				
				tmb.style.left = (rc.left - 15 ) + 'px';
				tmb.style.top  = (rc.top  - 15 ) + 'px';
				m_visi.setVisible( tmb,true);
	
				m_onwinresize = window.onresize;
				window.onresize = onresize;
				onresize( );
				m_tm_complete.killtm();
		    break;
		}
	}
	function createTable( )
	{   var s = '';
		var o =$(m_placeholder);
		if ( !o ) return;
		createNavDivs( );
		s += '<table id="' + m_prop.slideTblId + '" cellpadding="0" cellspacing="0" border="1" style="cursor:pointer;"><tbody>';
		s += '<tr id="Row' + m_prop.slideTblId + '" style="z-index:100;">';
		for (var i = 0; i < m_prop.slidesFrame; i++ )
		{
		    s += '<td><img src="' + m_images[i].src + '" align="left" title="' + m_images[i].title + '" /></td>';
		}
		s += '</tr></tbody></table>';
        o.innerHTML = s;
		
		m_tm_complete.setBreakTime( 200 );
		m_tm_complete.starttm     ( );
		setevthand();
		//m_timerid = setTimeout("setevthand()",200);
	}
	function createNavDivs( )
	{    var sz  = m_prop.slideRunMargin *2 + m_prop.defwidth;
         var bod = document.getElementsByTagName('body')[0];
		 
			var divstylesThumb = 
			{ 'position': 'absolute', 'z-index':100, 'visibility':'hidden', 'left':0, 'top':0, 'width':sz+'px', 'height':sz+'px','cursor':'pointer' };
			var divstylesNav = 
			{ 'position': 'absolute', 'z-index':100, 'visibility':'hidden', 'left':0, 'top':0, 'width':m_prop.btnNavWidth+'px', 'height':m_prop.btnNavHeight+'px', 'cursor':'pointer' };
			
		    var divThumb = document.createElement('div');
			var imgThumb = document.createElement("img");
			m_visi.setStyles    ( divThumb, divstylesThumb);
			m_visi.setAttributes( divThumb, {'id':m_prop.slideRunner});
			m_visi.setAttributes( imgThumb, {'width':sz+'px','height':sz+'px','src':m_prop.imgSlider} );
			divThumb.appendChild( imgThumb );
		    bod.appendChild( divThumb );

		    var divLeftNav = document.createElement('div');
			var imgLeftNav = document.createElement("img");
			m_visi.setStyles    ( divLeftNav, divstylesNav);
			m_visi.setAttributes( divLeftNav, {'id':m_prop.btnPictPrevId});
			
			m_visi.setAttributes( imgLeftNav,{'src':m_prop.imgPictPrev,'width':m_prop.btnNavWidth,'height':m_prop.btnNavHeight});
			
			
			divLeftNav.appendChild( imgLeftNav );
		    bod.appendChild( divLeftNav );

		    var divRightNav = document.createElement('div');
			var imgRightNav = document.createElement("img");
			m_visi.setStyles    ( divRightNav, divstylesNav);
			m_visi.setAttributes( divRightNav, {'id':m_prop.btnPictNextId});
			m_visi.setAttributes( imgRightNav,{'src':m_prop.imgPictNext,'width':m_prop.btnNavWidth,'height':m_prop.btnNavHeight});
			
			divRightNav.appendChild( imgRightNav );
		    bod.appendChild( divRightNav );
	}
	
	function floatMouseHandle( act )
	{
		var o   = $( m_prop.slideTblId  );
		var tmb = $( m_prop.slideRunner );
		var td  = o.getElementsByTagName('td');
		var rc  = m_visi.getObjectRect(td[m_currSlide]);
	
		switch( act )
		{
			case 0:	break;
			case 1:
			if ( !m_visi.pointInObject(td[m_currSlide],m_prop.defwidth,m_prop.defheight))
			{   for ( var i = 0; i < td.length; i++ )
				{   rc  = m_visi.getObjectRect(td[i]);
	
					if ( m_visi.pointInObject(td[i],m_prop.defwidth,m_prop.defheight))
					{   

			var img1 = td[m_currSlide].getElementsByTagName('img')[0];
			img1.src = m_images[m_currSlide+m_slidesOffset].src;

					    tmb.style.left = (rc.left - m_prop.slideRunMargin ) + 'px';
					    tmb.style.top  = (rc.top  - m_prop.slideRunMargin ) + 'px';
			var img = td[i].getElementsByTagName('img')[0];
			img.src = m_images[i+m_slidesOffset].csrc;

                        if ( m_prop.callbackSliderMove )
						     m_prop.callbackSliderMove( rc,m_images[i+m_slidesOffset] );
						m_currSlide = i;
						break;
					}
				}
			}
			break;
			case 2:
				for ( var i = 0; i < td.length; i++ )
				{   rc  = m_visi.getObjectRect(td[i]);
					if ( m_visi.pointInObject(td[i],m_prop.defwidth,m_prop.defheight))
					{   
						tmb.style.left = (rc.left - m_prop.slideRunMargin ) + 'px';
						tmb.style.top  = (rc.top  - m_prop.slideRunMargin ) + 'px';
						var prev = MAINDIV_PREFIX + ( m_prevLayer+1);
						var next = MAINDIV_PREFIX + ( i+m_slidesOffset+1); 
						
						if ( m_images[i+m_slidesOffset].link !='')
						{
							visi.goToUrl( m_images[i+m_slidesOffset].link);
						}
                        else
						{   if ( $(prev))
							    showlayer(prev,false);
						    if ( $(next))	
							    showlayer(next,true);
						    m_prevLayer = i+m_slidesOffset;
						    m_currSlide = i;
						}
						break;
					}
				}
				break;
		}
	}

    this.activateScene = function ( scene )
	{   if ( scene > m_images.length) return;

		var o   = $( m_prop.slideTblId  );
		var tmb = $( m_prop.slideRunner );
		var td  = o.getElementsByTagName('td');
		var im  = o.getElementsByTagName('img');

		var prev = MAINDIV_PREFIX + ( m_prevLayer+1);
		var next = MAINDIV_PREFIX + scene; 

		if ( m_images[scene-1].link !='')
		{
			visi.goToUrl( m_images[scene-1].link);
		}
		else
		{   if ( $(prev))
				showlayer(prev,false);
			if ( $(next))	
				showlayer(next,true);
			m_prevLayer = scene-1;
			if ( scene  > m_prop.slidesFrame )
			{
				m_slidesOffset = scene - m_prop.slidesFrame;
				m_currSlide    = m_prop.slidesFrame - 1;
				for ( var i = 0; i < m_prop.slidesFrame; i++ )
				{   im[i].src   = m_images[i+m_slidesOffset].src;
					im[i].title = m_images[i+m_slidesOffset].title;
				}
			}
			else
			{   m_slidesOffset = 0;
				m_currSlide    = scene-1;
			}
			var rc  = m_visi.getObjectRect(td[m_currSlide]);
			tmb.style.left = (rc.left - m_prop.slideRunMargin ) + 'px';
			tmb.style.top  = (rc.top  - m_prop.slideRunMargin ) + 'px';

		}
    }
    function showlayer      ( id, enable )
	{   var o   = m_visi.getElement( id );
	    if ( o == null ) return;
	    var arr = o.getElementsByTagName( '*');
			
		for ( var i = 0; i < arr.length; i ++ )
			  if ( arr[i].id ) showlayer( arr[i].id, enable );
		m_visi.setVisible( id, enable );	
	}
	function slideNavClick( act )
	{   var o   = $(m_prop.slideTblId);
		var im  = o.getElementsByTagName('img');
		switch( act )
		{   case 0:
			m_slidesOffset--;
			if ( m_slidesOffset  < 0 )
			{   m_slidesOffset = 0;
				return;
			}
			break;
			case 1:
			m_slidesOffset++;
			if ( m_slidesOffset + m_prop.slidesFrame > m_slidesNum )
			{   m_slidesOffset--;
				return;
			}
			break;
		}
		for ( var i = 0; i < m_prop.slidesFrame; i++ )
		{   im[i].src   = m_images[i+m_slidesOffset].src;
			im[i].title = m_images[i+m_slidesOffset].title;
		}
		
	}
	

};
