// JavaScript Document
// JavaScript Document
// class clsGlobalProperties
// code by Azer Manafov (azerman[at]hotmail[dot]com)


 var NM_LANGUAGE      = "language";
 var NM_MAINMENUXML   = "mainmenuxml";
 var NM_USERIMGFOLDER = "userimgfolder";
 var NM_ARTICLE       = "article";

 var NM_BCKGIMAGE     = "bckgimage";
 var NM_BCKGCOLOR     = "bckgcolor";
 var NM_SECTION       = "section";

 var NM_BANNER        = "banner";
 var NM_BANNERBGCLR   = "bannerbgclr";

 var NM_BANNERSWF     = "bannerswf";
 var NM_BANNERXML     = "bannerxml";

 var NM_LOGOHEIGHT    = "logoheight";
 var NM_ALBUMPROFILE  = "albumprofile";
 var NM_ALBUMBIGDIM   = "albumbigdim";

 var NM_CENTERWIDTH   = "centerwidth";
 var NM_MESSAGEWIDTH  = "messagewidth";
 var NM_LEFTWIDTH     = "leftwidth";
 var NM_CENTERHEIGHT  = "centerheight";
 
 var NM_LANGSUPPORT   = "langsupport";


function clsGlobalProperties( xmlparser )
{   var m_xmlparser = xmlparser;
	var m_qs        = new Querystring( );
    var m_prop      = new Object( );
        m_prop[NM_LANGUAGE      ] = "en";
        m_prop[NM_MAINMENUXML   ] = "mainmenu";
        m_prop[NM_USERIMGFOLDER ] = "images/userimages/";
        m_prop[NM_ARTICLE       ] = "homepage";

        m_prop[NM_BCKGIMAGE     ] = "";
        m_prop[NM_BCKGCOLOR     ] = "";
        m_prop[NM_SECTION       ] = 1;

        m_prop[NM_BANNER        ] = "";
        m_prop[NM_BANNERBGCLR   ] = "";

        m_prop[NM_BANNERSWF     ] = "";
        m_prop[NM_BANNERXML     ] = "";

        m_prop[NM_LOGOHEIGHT    ] = 0;
        m_prop[NM_ALBUMPROFILE  ] = "";
        m_prop[NM_ALBUMBIGDIM   ] = 0;

        m_prop[NM_CENTERWIDTH   ] = 0;
        m_prop[NM_MESSAGEWIDTH  ] = 0;
        m_prop[NM_LEFTWIDTH     ] = 0;
        m_prop[NM_CENTERHEIGHT  ] = 0;
 
        m_prop[NM_LANGSUPPORT   ] = null;

    this.set = _clsGlobalProperties_set;
	this.get = _clsGlobalProperties_get;
    this.loadDefaults = function( path )
	{
		m_xmlparser.parseFile( path, parseDefaults);
		
		m_prop[NM_LANGUAGE]      = m_qs.get( 'lang',      m_prop[NM_LANGUAGE]);
		m_prop[NM_ARTICLE]       = m_qs.get( 'article',   m_prop[NM_ARTICLE]);
		m_prop[NM_SECTION]       = m_qs.get( 'scene',     m_prop[NM_SECTION]);
		m_prop[NM_USERIMGFOLDER] = m_qs.get( 'albumfldr', m_prop[NM_USERIMGFOLDER]);
		m_prop[NM_ALBUMBIGDIM]   = m_qs.get( 'albsize',   m_prop[NM_ALBUMBIGDIM]);

	}
	
	function parseDefaults ( xml )
	{
		var defaults   = xml.getElementsByTagName( "defaults" );
	
		if ( defaults.length )
		{   var elm;
			var whitespace = "\'\" \t\n\r\f";
			for ( var key in m_prop )
			{   if ( typeof m_prop[key] == 'string' || typeof m_prop[key] == 'number')
				{
					elm = defaults[0].getElementsByTagName(key);
					if ( elm.length ) m_prop[key]      = visi.trim(elm[0].childNodes[0].nodeValue,whitespace);
				}
			}

			elm = defaults[0].getElementsByTagName( NM_LANGSUPPORT);
			if ( elm.length )
			{   m_prop.langsupport = new Array( );
				var lng = elm[0].getElementsByTagName("lang");
				for ( var i = 0; i < lng.length; i++)
				{
					m_prop.langsupport.push({lang:visi.trim(lng[i].childNodes[0].nodeValue,whitespace),text:visi.trim(lng[i].attributes.getNamedItem("text").nodeValue)});
				}
			}
		if ( m_prop[NM_USERIMGFOLDER].lastIndexOf("/") != m_prop[NM_USERIMGFOLDER].length+1)
		     m_prop[NM_USERIMGFOLDER] += "/";
/*	
			 var cnt = 0;
			 for ( var key in m_prop )
			 {
				 alert( ++cnt + "." + key + "=" + m_prop[key]);
			 }

            for ( var i = 0; i < m_prop.langsupport.length; i++ )
			{   
				for ( var key in m_prop.langsupport[i] )
				{
					 alert( key + "=" + m_prop.langsupport[i][key]);
				}
			}
			 */
																						   
		}
		return m_prop;
	}
	function _clsGlobalProperties_set( )
	{	for ( var i=0; i < arguments.length; i=i+2)
		{	var key = arguments[i+0];// 
		    var val = arguments[i+1];
			m_prop[key] = val;
	  	}
		
	}
	function _clsGlobalProperties_get( name ) { return ( m_prop[name] != undefined )?m_prop[name]:null; }
	
};// end clsGlobalProperties

