// global vars
var aConf=[];
var autoSavePeriod=60000;
var screenW=screen.width;
var screenH=screen.height;
var screenD=screen.colorDepth;
var stars=new Array();
var host=top.location.hostname;
//
//function tt1(){alert(this.href);};
////////////////////////
function mkStar(o,id){ 
var t=ajax.call('ajxMkStar',id);
if(t)o.src='/s/img/star_on.png';else o.src='/s/img/star_off.png';
};
function sls(k,v){ // set local storage window.name
var t,l;
l=top.name;
if(l==='')t=new Object;else t=eval(l);
t[k]=v;
top.name=serialize(t);
//alert(top.name);
};
function gls(s){ // get local storage
var l,t;
l=top.name;
if(l==='')return '';
t=eval(l);
alert(t[s]);
};
function logScreen(){
var a=[screenW,screenH,screenD];
var t=ajax.call('ajxLogScreen',serialize(a));
//alert(t);
};
var PL=new Array();
function getLinks(){
var b,l;
b=document.getElementById('PageBody');
if(b){l=b.getElementsByTagName('A');
for(var i=0;i<l.length;i++){
if(l[i].className != 'no'){
l[i].onmouseover=tt1;
l[i].onmouseout=tt2;
};
};};
};
 
function tt1(){
var s;
var u=this.href;
u=u.replace('http://'+host+'/','');
var i='l'+u;
if(PL[i])s=PL[i];else {s=ajax.call('ajxGetPage',u);PL[i]=s;};
if(s)tooltip.show(s);
};
 
function tt2(){tooltip.hide();};

function tm(){
var n=new Date();
var m=n.getMinutes();
if (m < 10)m='0' + m;
var h=n.getHours();
var s=n.getSeconds();
if (s < 10)s='0' + s;var mnt=n.getMonth()+1;
var mArr=new Array('','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec');
var a=new Object;
a['time']=n.getDate()+' '+mArr[mnt]+' '+n.getFullYear()+' '+h+':'+m+':'+s;
a['now']=h*10000+m*100+s;
return a;
};
function ldr(s){
var l=document.location;
if(s)document.location=l+s;else document.location=l+'?'+tm()['now'];
};
/////////////////////////////////////////////////////////////////
function serialize(_obj)
{
   // Let Gecko browsers do this the easy way
   if (typeof _obj.toSource !== 'undefined' && typeof _obj.callee === 'undefined')
   {	
      return _obj.toSource();
   }; 
   // Other browsers must do it the hard way
   switch (typeof _obj)
   {
      // numbers, booleans, and functions are trivial:
      // just return the object itself since its default .toString()
      // gives us exactly what we want
      case 'number':
      case 'boolean':
      case 'function':
         return _obj;
         break;
      // for JSON format, strings need to be wrapped in quotes
      case 'string':
         return '\'' + _obj + '\'';
         break;
      case 'object':
         var str;
         if (_obj.constructor === Array || typeof _obj.callee !== 'undefined')
         {
            str = '[';
            var i, len = _obj.length;
            for (i = 0; i < len-1; i++) { str += serialize(_obj[i]) + ','; }
            str += serialize(_obj[i]) + ']';
         }
         else
         {
            str = '{';
            var key;
            for (key in _obj) { str += key + ':' + serialize(_obj[key]) + ','; }
            str = str.replace(/\,$/, '') + '}';
         };
         return str;
         break;
      default:
         return 'UNKNOWN';
         break;
   };
};