function $(id) { return (typeof(id)=='string')?document.getElementById(id): id; } function set_style(obj,style) { obj.setAttribute('class',style); obj.setAttribute('className',style); } function get_style(obj) { return obj.getAttribute('class') || obj.getAttribute('className'); } function add_listener(obj,evType,fn) { if(obj.addEventListener){ obj.addEventListener(evType, fn, false); } else if (obj.attachEvent){ obj.attachEvent('on'+evType, fn); } } function queryString(obj) { var i=0,ar=new Array(); for (name in obj) { if (typeof(obj[name])=='string' || typeof(obj[name])=='number') ar[i++]=encodeURIComponent(name)+'='+encodeURIComponent(obj[name]); } return ar.join('&'); }; function show(id) { var el=$(id); if (el) el.style.display='block'; } function hide(id) { var el=$(id); if (el) el.style.display='none'; } function toggle(id) { var el=$(id); el.style.display= el.style.display=='block'?'none':'block'; } function clear(obj) { while (obj.childNodes.length>0) obj.removeChild(obj.childNodes[0]); return obj; } function nostatus() { window.status='';return true; } function loading_on() { var loader=$('loader'); if (loader) loader.style.display='block'; document.body.style.cursor='wait'; } function loading_off() { var loader=$('loader'); if (loader) loader.style.display='none'; document.body.style.cursor='default'; } function flash(msg) { var flash=$('flash'); if (msg && flash) { flash.innerHTML=msg; set_style(flash,'flash_on'); } else if (msg) { alert(msg); } else if (flash) { flash.innerHTML=' '; set_style(flash,'flash_off'); } } var ae = { xhr:function() { var o=null; try { o=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('MSXML2.XMLHTTP'); } catch(e) { } return o; }, call:function(url,args,on_ok,on_err,mode) { var xhr = ae.xhr(); if (xhr) { if (!mode) mode='GET'; if (!args) args=new Object; xhr.onreadystatechange=function() { if (xhr.readyState==4) { if (xhr.status==200) { var hdr=xhr.getResponseHeader('Content-Type'),err=doc=null; if (hdr.indexOf('text/xml')!=-1){ doc=xhr.responseXML; if (err=doc.getElementsByTagName('error')[0]) { err=err.getAttribute('msg'); } } else { doc=xhr.responseText; } if (err) { if (on_err) on_err(err); else flash(err); } else { if (on_ok) on_ok(doc,args); } loading_off(); } } }; args['trn']=Math.floor(Math.random()*100000); var q=queryString(args); if (mode=='GET') { xhr.open(mode,url+'?'+q,true); xhr.send(null); } else { xhr.open(mode,url,true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;'); xhr.send(q); } } } };