// JavaScript Document
var CONTENT_DIV_ID   = 'mainTable';
var CTRL_RECLAMPANEL = 'leftColumn';
var CTRL_LINKLIST    = 'leftLinkList';
var   DBGMODE        = true;


var FORM_DOC_CONTENT  = "";
var FORM_DOC_NAME     = null;
var FORM_DOC_SCENE    = null;

var DIV_LOGIN         = 'loginPlaceholder';
var LOGIN_SUBMIT_BTN  = 'login';
var LOGIN_FIELDS      = new Object( );

var MS_MAX_HEIGHT     = 0;
var MS_POS_CORRECT    = false;


if ( typeof MAINDIV_PREFIX == 'undefined')
     var MAINDIV_PREFIX = "message_";
if ( typeof MENU_AD_VERT == 'undefined')
     var MENU_AD_VERT = "springnavigate";
if ( typeof MENU_DIV_ID == 'undefined')
     var MENU_DIV_ID =  'menudiv';
if ( typeof ARTICLE_KEY == 'undefined')
     var ARTICLE_KEY      = 'article';


var srcout = {'font-size':'12px', 'letter-spacing':'1px', 'font-weight':'bold',color:'#fff2d9','text-decoration':'none'};
var srcovr = {'font-size':'12px', 'letter-spacing':'4px', 'font-weight':'bold',  color:'#131649'};


// ----------------- correct positions ------------------------------------ *
function correctMessagePos( )
{  	if ( MS_POS_CORRECT ) return;

    var o    = $( MAINDIV_PREFIX+'1' );
    var rc   = visi.getObjectRect( MAINDIV_PREFIX+'1');

	MS_MAX_HEIGHT = rc.height;

    var divs = document.getElementsByTagName( 'div');
	for ( var i = 0; i < divs.length; i++)
	{   if ( divs[i].id == undefined ) continue;
		if ( divs[i].id.indexOf( MAINDIV_PREFIX) != 0 ) continue;
		if ( divs[i].id == (MAINDIV_PREFIX+'1')) continue;
		var rc1 = visi.getObjectRect( divs[i]);
		
        if ( MS_MAX_HEIGHT < rc1.height ) MS_MAX_HEIGHT = rc1.height;

		if ( rc.left == rc1.left && rc.top == rc1.top ) continue;

		divs[i].style.left   = rc.left   +'px';
		divs[i].style.top    = rc.top    +'px';
		if ( divs[i].style.width == '1px' )
		     divs[i].style.width  = rc.width  +'px';

		if ( divs[i].style.height == '1px' )
		{   
		    divs[i].style.height = "auto";
/*		
		    if ( divs[i].scrollHeight > rc.height )
		         divs[i].style.height = (divs[i].scrollHeight + 10) +'px';
			else divs[i].style.height = rc.height+o.scrollHeight+'px';
*/			
		}
	}
	for ( var i = 0; i < divs.length; i++)
	{   if ( divs[i].id == undefined ) continue;
		if ( divs[i].id.indexOf( MAINDIV_PREFIX) != 0 ) continue;
		rc = visi.getObjectRect( divs[i]);
		if ( rc.height < MS_MAX_HEIGHT )
		     divs[i].style.height = MS_MAX_HEIGHT+"px";
	}
	MS_POS_CORRECT = true;
}
// ----------------- end correct positions -------------------------------- *

function openurl (args) 
{   var url = args;
	window.open (url);
}
function wait_redirect      ( fnRedirect ) { window.setTimeout(fnRedirect,1000); };

function writeDbgMessage    ( message )
{   var pre = visi.getElement('idPre');
    if ( !pre )
    {   pre  = document.createElement("pre");
        pre.setAttribute( "id",   "idPre" );
        var bod  = document.getElementsByTagName("body")[0];
        bod.appendChild( pre );
    }

    if ( DBGMODE )
    {
        if ( pre )
             pre.innerHTML = message;
			 
    }

    var p1 = message.indexOf( 'err:');
    if ( p1 != -1 )
         utilErrorMessage( message.substr( p1+4));
}
// ----------------- Set Menu ------------------------------------------- *
function processXmlMenu( xml,param )//properties
{   var mnuobj = $(MENU_DIV_ID).menu;
    var arr = xmlSetMenu    ( xml, mnuobj, param.get(NM_ARTICLE));
    var ind = mnuobj.getActivePageFromLinks( param.get(NM_ARTICLE));

	if ( arr[ind-1].background.length ) 
	    param.set( NM_BCKGIMAGE,arr[ind-1].background );

    if ( arr[ind-1].bgcolor.length    ) param.set( NM_BCKGCOLOR,arr[ind-1].bgcolor);
	
	xmlSetLeftMenu( xml,param.get('article'));
	
}

function xmlSetMenu          ( xml,mnuobj, article )
{   var arr    = new Array();
	var menu   = xml.getElementsByTagName( "main" );
    var title  = (menu[0].attributes.length)?menu[0].attributes.getNamedItem( "title").nodeValue:'';
	if ( visi.trim(document.title) == '' && title )
         document.title = visi.trim(title);

    mnuobj.fontStyle('font-weight','bold');

    if ( menu.length )
         arr = mnuobj.xmlParseMenu ( menu[0].childNodes );

	var dropmenu_prop = 
	{   font:   { 'color':'#332a1e','font-weight':'bold', 'font-family':'Arial, sans-serif', 'font-size':'11px'},
		backg:  { bkgimgout: "images/sys/menus/submnu_bg_of.png", bkgimgovr:"images/sys/menus/submnu_bg_on.png"},
		image:  { imgover  : "images/sys/menus/submnu_on.png", imgactive:"images/sys/menus/submnu_of.png",imgnormal:"images/sys/menus/submnu_of.png"},
		tcolor: { textcolorovr:'#ffffff',textcolorout:'#eeeeee'},
		imgsize:{ imgwidth : 20, imgheight: 20 }
	};
    mnuobj.prepareMenuFromArray  ( dropmenu_prop);
    mnuobj.getActivePageFromLinks( article );
	
    mnuobj.create   ( null,HTM_INS  );
	mnuobj.initbuttons( );
	return arr;
}

function xmlSetLeftMenu   ( xml,article )
{   
    var arr    = new Array();
	var menu   = xml.getElementsByTagName( "leftmenu");
	for ( var i = 0; i < menu.length; i++ )
	{
		var attr   = { title:'',clrtitle:'#ffd980',clrlinks:srcout.color};
		try { attr.title    = visi.trim(menu[i].attributes.getNamedItem( "title").nodeValue);    } catch(e) {}
		try { attr.clrtitle = visi.trim(menu[i].attributes.getNamedItem( "clrtitle").nodeValue); } catch(e) {}
		try { attr.clrlinks = visi.trim(menu[i].attributes.getNamedItem( "clrlinks").nodeValue); } catch(e) {}
		try { attr.linkedto = visi.trim(menu[i].attributes.getNamedItem( "linkedto").nodeValue); } catch(e) {}
		
        if ( attr.linkedto != undefined )
		{
		    if ( article.indexOf(attr.linkedto) != 0) continue;
		}
	

		var fields = menu[i].childNodes;
		xmlParseLeftMenu ( fields, arr );
	}
	if ( menu.length )
	{ 
	    buildLeftMenu( arr,attr ); 
	}

}

function xmlParseLeftMenu    ( fields,arLeftMenu )
{   var n   = arLeftMenu.length;
	
	for ( var j = 0; j < fields.length; j++ )
	{   if ( fields[j].nodeType == 1)
		{   switch( fields[j].nodeName )
			{   case 'item':
			        var prop = { id: '1', link: '', name: 'none', target:'_self',image:"",type:'item' };
					try
					{   prop.id    = visi.trim(fields[j].attributes.getNamedItem( "id").nodeValue);
					}
					catch( e ) {}
					

					var chl  = fields[j].childNodes;
				
					for ( var i = 0; i < chl.length; i++ )
					{   if ( chl[i].nodeType != 1 ) continue;
						switch( chl[i].nodeName )
						{   case 'name':    prop.name = visi.trim(chl[i].childNodes[0].nodeValue," \t\n\r\f\""); break;
							case 'link':    
							    prop.link = visi.trim(chl[i].childNodes[0].nodeValue," \t\n\r\f\"");

                                if (  chl[i].attributes != null )								
								{   var trg = chl[i].attributes.getNamedItem( "target");
								    if ( trg ) prop.target = trg.nodeValue;
								}
								break;
							case 'image':   try { prop.image  = visi.trim(chl[i].childNodes[0].nodeValue," \t\n\r\f\""); } catch(e){}; break;
							case 'type' :   prop.type  = visi.trim(chl[i].childNodes[0].nodeValue," \t\n\r\f\"");
						}
					}
					
				    arLeftMenu[n++]    =prop;
				break;
			}
		}
	}
	return arLeftMenu;
}

function buildLeftMenu   ( arLeftStore,attr )
{   var arLeftLinkList = new Array( );
	var reclamBorder   = '0px solid #b81d1d';//#1f5f00',//#b81d1d',

	var s = '';

	s += '<table id="' + CTRL_RECLAMPANEL + '" width="100%" cellpadding="0" cellspacing="1" border="0" style="width: 100%;">' + "\n";
	s += '<tbody>' + "\n";
    var countReclam = 0;
	for ( var i = 0; i < arLeftStore.length; i++ )
	{   if ( arLeftStore[i].image == '' ) 
	    {   arLeftLinkList.push(arLeftStore[i]);
			continue;
		}
		countReclam++;
	    s += '<tr><td style="border: ' + reclamBorder + ';">' + "\n";
		s += '<a href="'   + arLeftStore[i].link + '" title="' + arLeftStore[i].name + '" target="' + arLeftStore[i].target + '">' + "\n";
		s += ' <img src="' + arLeftStore[i].image  + '" align="middle" border="0" alt="' + arLeftStore[i].name + '" style="margin:1px 0px 1px 0px;">' + "\n";
		s += '</a></td></tr>' + "\n";
	}
	s +='</tbody></table>' + "\n";
	var o = $(CTRL_RECLAMPANEL);

	if ( o  && countReclam )
	     o.innerHTML = s;
	buildLeftLinkList( arLeftLinkList,attr ); 
}

function buildLeftLinkList( arLeftLinkList,attr )
{   
	srcout.color = attr.clrlinks;

	if ( arLeftLinkList.length )
	{
		o = $(CTRL_LINKLIST);
		if ( o )
		{   var blk = new clsMsgBox( CTRL_LINKLIST, "Id"+CTRL_LINKLIST, visi );
	        blk.setprop   ( {minwidth:200,imgsize:{width:8,height:8}});
		
	        blk.setimgs
            (   {   lt: 'images/sys/pannels/panel8x8_lt.png', 
					top:'images/sys/pannels/panel8x8_top.png', 
					rt: 'images/sys/pannels/panel8x8_rt.png',
					lef:'images/sys/pannels/panel8x8_lef.png',
					ct: 'images/sys/pannels/panel8x8_ct.png',
					rig:'images/sys/pannels/panel8x8_rig.png',
					lb: 'images/sys/pannels/panel8x8_lb.png', 
					bot:'images/sys/pannels/panel8x8_bot.png', 
					rb: 'images/sys/pannels/panel8x8_rb.png'
				} 
            );
			var s   = '';
			if ( attr.title != '' )
                 s  += '<p style="font-weight:bold; font-size:12px; color:'+attr.clrtitle+'; text-align:center; text-decoration:underline; margin:0; margin-top: 10px;padding:0;"> ' + attr.title 
				 + ' </p><br>';
	        var tblwid = visi.getObjectRect(CTRL_RECLAMPANEL).width;

            var wid    = new clsCalcStringWidth('calcWid',{'font-size':'12px','font-weight':'normal'});
            for ( var i = 0; i < arLeftLinkList.length; i++)
		    {   if ( arLeftLinkList[i].type == 'item')
				{   
			        var bElips = false;
			        wid.clear( );//16+9+

                    var name = arLeftLinkList[i].name;
                    var wtst = wid.calcStringWidth( name );

					while( wtst > tblwid - 60 )
					{   name = name.substring(0, name.length-1);
						wid.clear( );
						wtst = wid.calcStringWidth( name );
						bElips = true;
					}
					if ( bElips ) name += '...';
					s += '<p style="color:#000000; font-weight:bold; text-align:center; font-size:12px; margin:0; margin-top:8px; ">';
                    s += '<a href="' + arLeftLinkList[i].link + '" title="' + arLeftLinkList[i].name + '" target="' + 
			              arLeftLinkList[i].target + '" style="font-size:12px; letter-spacing:1px; font-weight:normal; color:' + attr.clrlinks + ';">' + name + '</a></p>';
				}
                if ( arLeftLinkList[i].type == 'title')
				{   if ( arLeftLinkList[i].name != 'none' )
					{   s += '<p style="font-weight:bold; font-size:12px; color:'+attr.clrtitle+'; text-align:center; text-decoration:underline; margin:10px 0px 5px 0px; padding:0;"> ' + arLeftLinkList[i].name + "</p>";
					}
					else s +='<br>';
				}
            }
            s += ' <p>&nbsp;</p>';

		    blk.setcontent( s );
		    blk.create    ( );
		   
		    var al = o.getElementsByTagName("A");
		    for ( var i = 0; i < al.length; i++)
		    {   visi.setStyles(al[i],srcout);
			    al[i].onmouseover = leftmenuBtnInOut;
	            al[i].onmouseout  = leftmenuBtnInOut;
		    }
		}

	}
}

function leftmenuBtnInOut( e )
{   if ( e == undefined ) e = event || window.event;
	switch( e.type )
	{   case 'mouseover': visi.setStyles(this, srcovr); break;
		case 'mouseout':  visi.setStyles(this, srcout); break;
	}
}
// ------------------------ standalone show/hide layers ----------------- *
// usually flash callback for navigate layers; or any layer navigation without float menu
function callbackShowLayer( id )
{   var navmenuobject    = $(MENU_AD_VERT);
    if ( navmenuobject == null )
    {   showlayer(MAINDIV_PREFIX+showlayer.currLayer,false);
		showlayer(MAINDIV_PREFIX+id,true);
	}
	else
	{   navmenuobject.navmnu.activateScene( id );
	    showlayer(MAINDIV_PREFIX+id,true);
	}
	showlayer.currLayer = id;
	correctMessagePos( );
}

// hide / show layers without float navigation
function showlayer      ( id, enable )
{   
	if ( showlayer.currLayer  ==  undefined || !showlayer.currLayer )
	     showlayer.currLayer = '1';

    var o   = 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 );
	visi.setVisible( id, enable );
	if ( enable )
	     showlayer.currLayer = id.substr( MAINDIV_PREFIX.length );
}

