/* dynlite dhtml dom api  
 * peter assenov- AIP Solutions Ltd.' 2003
 * @version: 2.1.5/25.12.2003
 */
/* dynlite initialisation */
dom=(document.getElementById)?1:0;
ns6=(dom&&!document.all)?1:0;
if(!dom)
{	alert('This site is not compatible with your browser!');
	self.location.href='browser.html';
}
version=2.1; 
develop=1;
onerror=function(msg,url,lno){if(window.develop&&window.debug) debug.error(msg,url,lno); return true}; 
/* dynlite debug */
debug=new Object();
debug.log=['--- dynlite log activated. ---'];
debug.add=function(msg){this.log[this.log.length]=msg}
debug.show=function(){alert(this.log.join('\n'))} 
debug.error=function(msg,url,lno)
{	var err=[' <msg> '+msg,' <line> '+lno,' <url>   '+url.replace(/^.*(\/|\\)/,'')];
	this.add('!Error: '+err.join(''));
	alert('Error!\n------------------------------------------------\ndynlite detected the following error: \n\n'+err.join('\n'));
	if(window.develop&&confirm('show dynlite activity log?')) this.show();
}
debug.info=function(el,vis)
{	if(typeof(el)=='object')
	{	var code=[],j=0;
		if(el.xml) code[0]=el.xml;
		else for(var i in el){code[j++]=i+' -> '+el[i]}
		(vis)?document.write(code.join('<br>')):alert(code.join('\n'));
	}
	else alert(el);
}
debug.status=function(val){window.status=val}
window.log=window.debug;
log.add((window.develop)?'#dynlite initialised in developping mode.':'#dynlite initialised successfully.');

/* dynlite doc  */
function dyncss(type,num)
{	this.type=type||'link';													
	this.num=num||0;
	this.arr=(document.styleSheets&&document.styleSheets.length)?(this.type=='import')?(ns6)?document.styleSheets.item(this.num).cssRules.item(0).styleSheet.cssRules:document.styleSheets[this.num].imports[0].rules:(this.type=='link')?(ns6)?document.styleSheets.item(this.num).cssRules:document.styleSheets[this.num].rules:0:0;
	this.el=null;
log.add((this.arr)?'- stylesheet object of type '+this.type+' created.':'! could not find stylesheet definition of type '+this.type);
}
dyncss.prototype.attr=function(el,prop,val)
{	for (var i=this.arr.length-1; i>=0; i--)									
	{	this.el=this.arr[i];													
		if(this.el.selectorText.toLowerCase()==el.toLowerCase())				
		{	if(val==null) return(this.el.style[prop]);						
			else this.el.style[prop]=val;							
		return 0;
		}
	}
}
evt=new Object()						
evt.add=function(elm,evt,obj,met)
{	if(/^on/.test(evt))
	{	cel = window[elm].el||window[elm];
		cel[evt]=function(e){(met)?window[obj][met](e):obj(e)};
	}
	else (ns6)?elm.addEventListener(evt,obj,false):elm.attachEvent('on'+evt,obj);
log.add('- '+evt+' event listener to object '+elm+' added.');
}
evt.evoke=function(elm,cevt,pars)
{	var cel=window[elm].el||window[elm];
	var cpars=(pars)?pars.toString():'';									
return (cel&&cel[cevt])?cel[cevt](cpars):null;							
}
page=new Object();
page.css=new dyncss();
page.init=[];/*load handling*/
page.add=function(func,method){page.init[page.init.length]=(method)?'window["'+func+'"].'+method:func;}
page.onload=function()
{	eval(this.init.join(";"));
	if (window.init) window.init();
log.add('#onload code executed.');
}
onload=function(){page.onload()}
log.add('#dynlite doc initialised.');

/* dynlite layer */ 
function dynobj(name)
{	this.name=name;
	this.el=document.getElementById(this.name+'Div');
	if(this.el)
	{	this.css=this.el.style;
		this.el.obj=this;
		window[this.name]=this;
	}
log.add((this.el)?'- object: '+this.name+' created.':'! could not create object: '+this.name);
}
dynobj.prototype.show=function(nest){this.css.visibility=(nest)?'inherit':'visible';}
dynobj.prototype.hide=function(){this.css.visibility='hidden';}
log.add('#dynlite layer loaded.');
//enjoy...

