/******************cntrl.js*****************************/ function NiftyCheck(){ if(!document.getElementById || !document.createElement) return(false); var b=navigator.userAgent.toLowerCase(); if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1) return(false); return(true); } function Rounded(selector,bk,color,size){ var i; var v=getElementsBySelector(selector); var l=v.length; for(i=0;i0;i--){ var x=document.createElement("b"); x.className=cn + i; x.style.backgroundColor=color; d.appendChild(x); } el.appendChild(d,el.firstChild); } function getElementsBySelector(selector){ var i; var s=[]; var selid=""; var selclass=""; var tag=selector; var objlist=[]; if(selector.indexOf(" ")>0){ //descendant selector like "tag#id tag" s=selector.split(" "); var fs=s[0].split("#"); if(fs.length==1) return(objlist); return(document.getElementById(fs[1]).getElementsByTagName(s[1])); } if(selector.indexOf("#")>0){ //id selector like "tag#id" s=selector.split("#"); tag=s[0]; selid=s[1]; } if(selid!=""){ objlist.push(document.getElementById(selid)); return(objlist); } if(selector.indexOf(".")>0){ //class selector like "tag.class" s=selector.split("."); tag=s[0]; selclass=s[1]; } var v=document.getElementsByTagName(tag); // tag selector like "tag" if(selclass=="") return(v); for(i=0;i0?(tableSeparatorWidth*SepCount):0))/tableColCount) ; if (col==tableColCount-1) if ((w*tableColCount+tableSeparatorWidth*SepCount)>tableWidth) {w=w-((w*tableColCount+tableSeparatorWidth*SepCount)-tableWidth);} else if ((w*tableColCount+tableSeparatorWidth*SepCount)0) { Column[col].Width=width; Column[col].TableNode.style.width=width+'px'; Column[col].MainNode.style.width=width+'px'; } }; /*public******************************************************/ this.toString=function() {return 'object Cntrl.Table';}; this.Show=function(){ this.MainTable.style.display='block'; alert(this.box.innerHTML); }; this.SetColumnSize=function(col,width,proportion) { if (width<1) return; proportion=proportion?true:false; var nextSiblingWidth=Column[col+1].Width+(Column[col].Width-width); if (nextSiblingWidth<1) {nextSiblingWidth=1; width=Column[col+1].Width-1;}; ResizeColumn(col,width); ResizeColumn(col+1,nextSiblingWidth); //ResizeColumn(col-1,) }; this.SetCell=function(col,row,c) { if (Cells[col][row].firstChild) funct.DeleteChilds(Cells[col][row]); Cells[col][row].appendChild(c); }; this.SetHeader=function(col,c) { if (Column[col].MainNode.firsChild) funct.DeleteChilds(Column[col].MainNode); c.innerHTML=Column[col].Width+';'; Column[col].MainNode.appendChild(c); }; this.ConstructHeader=function() { //funct.DeleteChilds(this.Header); }; } }; /***************************************************************/ function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') element = document.getElementById(element); if (arguments.length == 1) return element; elements.push(element); } return elements; }; funct={ browser:{ IE:(navigator.userAgent.indexOf("MSIE ")>0 ? true: false) }, rand:function( min, max ) {// Generate a random integer // + original by: Leslie Hoare if( max ) { return Math.floor(Math.random() * (max - min + 1)) + min; } else { return Math.floor(Math.random() * (min + 1)); } }, getBody:function() { return document.getElementsByTagName('body')[0]; }, CloneProperty:function(fromObj, toObj) { for(Property in fromObj) { toObj[Property]=fromObj[Property]; }; }, DeleteChilds:function(elm) { while (elm.firstChild) elm.removeChild(elm.firstChild); }, fixEvent:function fixEvent(event) { event = event || window.event; if ( event.isFixed ) return event; event.isFixed = true; event.preventDefault = (event.preventDefault || function(){this.returnValue = false}); event.stopPropagation = (event.stopPropagaton || function(){this.cancelBubble = true}); if (!event.target) event.target = event.srcElement; if (!event.relatedTarget && event.fromElement) { event.relatedTarget = (event.fromElement == event.target ? event.toElement : event.fromElement); }; if ( event.pageX == null && event.clientX != null ) { var html = document.documentElement, body = document.body; event.pageX = event.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0); event.pageY = event.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0); }; if ( !event.which && event.button ) { event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); }; return event; }, Event: (function() { var guid = 0; /* Вызывается в контексте элемента всегда this = element */ function commonHandle(event) { event = funct.fixEvent(event); var handlers = this.events[event.type]; for ( var g in handlers ) { var handler = handlers[g]; var ret = handler.call(this, event); if ( ret === false ) { event.preventDefault(); event.stopPropagation(); } } } return { add: function(elem, type, handler) { if (elem.setInterval && ( elem != window && !elem.frameElement ) ) {elem = window}; if (!handler.guid) {handler.guid = ++guid;}; if (!elem.events) { elem.events = {}; elem.handle = function(event) { if (typeof event !== "undefined") {return commonHandle.call(elem, event)}; }; }; if (!elem.events[type]) { elem.events[type] = {} if (elem.addEventListener) {elem.addEventListener(type, elem.handle, false)} else if (elem.attachEvent) {elem.attachEvent("on" + type, elem.handle)} } elem.events[type][handler.guid] = handler; }, remove: function(elem, type, handler) { var handlers = elem.events && elem.events[type]; if (!handlers) return; delete handlers[handler.guid]; for(var any in handlers) return; if (elem.removeEventListener) {elem.removeEventListener(type, elem.handle, false);} else if (elem.detachEvent) {elem.detachEvent("on" + type, elem.handle)}; delete elem.events[type]; for (var any in elem.events) return; delete elem.handle; delete elem.events; } }; }()), OnDomReady:function(f, t) { t=(t?t:0); var newFunc=f; var newTimeOut=t; funct.Event.add(window,'load',function(){ if (newTimeOut>0) {window.setTimeout(newFunc,newTimeOut);} else newFunc(); }); }, CreateElement:function (opt) { d=document; if (!opt['tag']) return; var elm=null; elm=d.createElement(opt['tag']); if (opt['className']) elm.className=opt['className']; if (opt['css']) elm.style.cssText=opt['css']; if (opt['colspan']) elm.colSpan=opt['colspan']; if (opt['value']) elm.value=opt['value']; if (opt['text']) elm.appendChild(d.createTextNode(opt['text'])); if (opt['type']) elm.type=opt['type']; if (opt['href']) elm.href=opt['href']; if (opt['src']) elm.src=opt['src']; if (typeof(opt['parent'])=='object') {opt['parent'].appendChild(elm);}; if (typeof(opt['child'])=='object') {elm.appendChild(opt['child']);}; return elm; }, getElementHeight:function(element) { return (element.clientHeight || element.style.posHeight); }, getElementWidth:function(){return (document.documentElement && document.documentElement.clientWidth) || (document.body && document.body.clientWidth);}, getBodyScrollTop:function(){return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);}, getBodyScrollLeft:function(){return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);}, getBodyHeight:function(){return (document.documentElement && document.documentElement.clientHeight) || (document.body && document.body.clientHeight);}, getBodyWidth:function(){return (document.documentElement && document.documentElement.clientWidth) || (document.body && document.body.clientWidth);}, getMouseXY:function (e) { //alert(e.x); var r; r={x:0,y:0}; if (this.browser.IE) {r.x=e.x; r.y=e.y;} else {r.x=e.pageX;r.y=e.pageY;}; return r; }, Effect:{ setOpacity:function(id, value) { //alert(2); $(id).style.opacity = value/10; $(id).style.filter = 'alpha(opacity=' + value*10 + ')'; }, Fade:function(id,from,to,speed) { speed=speed||1000; //from=(from||10); //to=to||0; delta=0.1*(to-from)/Math.abs(to-from); c=(to-from)/delta; for (i=0;i<=c;i++) { o=from+(delta*i); t=(speed/c)*i setTimeout('funct.Effect.setOpacity("'+id+'",'+o+');',t); } } } }; /***************************************************************/ /******************JsHttpRequest.js*****************************/ /** * JsHttpRequest: JavaScript "AJAX" data loader * Minimized version: see debug directory for the complete one. * * @license LGPL * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/ * @version 5.x $Id$ */ function JsHttpRequest(){ var t=this; t.onreadystatechange=null; t.readyState=0; t.responseText=null; t.responseXML=null; t.status=200; t.statusText="OK"; t.responseJS=null; t.caching=false; t.loader=null; t.session_name="PHPSESSID"; t._ldObj=null; t._reqHeaders=[]; t._openArgs=null; t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used,
must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"}; t.abort=function(){ with(this){ if(_ldObj&&_ldObj.abort){ _ldObj.abort(); } _cleanup(); if(readyState==0){ return; } if(readyState==1&&!_ldObj){ readyState=0; return; } _changeReadyState(4,true); } }; t.open=function(_2,_3,_4,_5,_6){ with(this){ if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){ this.loader=RegExp.$2?RegExp.$2:null; _2=RegExp.$3; _3=RegExp.$4; } try{ if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){ _3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1); } } catch(e){ } _openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""}; _ldObj=null; _changeReadyState(1,true); return true; } }; t.send=function(_7){ if(!this.readyState){ return; } this._changeReadyState(1,true); this._ldObj=null; var _8=[]; var _9=[]; if(!this._hash2query(_7,null,_8,_9)){ return; } var _a=null; if(this.caching&&!_9.length){ _a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method; var _b=JsHttpRequest.CACHE[_a]; if(_b){ this._dataReady(_b[0],_b[1]); return false; } } var _c=(this.loader||"").toLowerCase(); if(_c&&!JsHttpRequest.LOADERS[_c]){ return this._error("unk_loader",_c); } var _d=[]; var _e=JsHttpRequest.LOADERS; for(var _f in _e){ var ldr=_e[_f].loader; if(!ldr){ continue; } if(_c&&_f!=_c){ continue; } var _11=new ldr(this); JsHttpRequest.extend(_11,this._openArgs); JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null}); var _12=_11.load(); if(!_12){ this._ldObj=_11; JsHttpRequest.PENDING[_11.id]=this; return true; } if(!_c){ _d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12); }else{ return this._error(_12); } } return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders"); }; t.getAllResponseHeaders=function(){ with(this){ return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[]; } }; t.getResponseHeader=function(_13){ with(this){ return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null; } }; t.setRequestHeader=function(_14,_15){ with(this){ _reqHeaders[_reqHeaders.length]=[_14,_15]; } }; t._dataReady=function(_16,js){ with(this){ if(caching&&_ldObj){ JsHttpRequest.CACHE[_ldObj.hash]=[_16,js]; } responseText=responseXML=_16; responseJS=js; if(js!==null){ status=200; statusText="OK"; }else{ status=500; statusText="Internal Server Error"; } _changeReadyState(2); _changeReadyState(3); _changeReadyState(4); _cleanup(); } }; t._l=function(_18){ var i=0,p=0,msg=this._errors[_18[0]]; while((p=msg.indexOf("%",p))>=0){ var a=_18[++i]+""; msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length); p+=1+a.length; } return msg; }; t._error=function(msg){ msg=this._l(typeof (msg)=="string"?arguments:msg); msg="JsHttpRequest: "+msg; if(!window.Error){ throw msg; }else{ if((new Error(1,"test")).description=="test"){ throw new Error(1,msg); }else{ throw new Error(msg); } } }; t._hash2query=function(_1e,_1f,_20,_21){ if(_1f==null){ _1f=""; } if((""+typeof (_1e)).toLowerCase()=="object"){ var _22=false; if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){ _1e={form:_1e}; } for(var k in _1e){ var v=_1e[k]; if(v instanceof Function){ continue; } var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k); var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName; if(_26){ var tn=v.tagName.toUpperCase(); if(tn=="FORM"){ _22=true; }else{ if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){ }else{ return this._error("inv_form_el",(v.name||""),v.tagName); } } _21[_21.length]={name:_25,e:v}; }else{ if(v instanceof Object){ this._hash2query(v,_25,_20,_21); }else{ if(v===null){ continue; } if(v===true){ v=1; } if(v===false){ v=""; } _20[_20.length]=_25+"="+this.escape(""+v); } } if(_22&&_21.length>1){ return this._error("must_be_single_el"); } } }else{ _20[_20.length]=_1e; } return true; }; t._cleanup=function(){ var _28=this._ldObj; if(!_28){ return; } JsHttpRequest.PENDING[_28.id]=false; var _29=_28.span; if(!_29){ return; } _28.span=null; var _2a=function(){ _29.parentNode.removeChild(_29); }; JsHttpRequest.setTimeout(_2a,50); }; t._changeReadyState=function(s,_2c){ with(this){ if(_2c){ status=statusText=responseJS=null; responseText=""; } readyState=s; if(onreadystatechange){ onreadystatechange(); } } }; t.escape=function(s){ return escape(s).replace(new RegExp("\\+","g"),"%2B"); }; } JsHttpRequest.COUNT=0; JsHttpRequest.MAX_URL_LEN=2000; JsHttpRequest.CACHE={}; JsHttpRequest.PENDING={}; JsHttpRequest.LOADERS={}; JsHttpRequest._dummy=function(){ }; JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout}; JsHttpRequest.setTimeout=function(_2e,dt){ window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s; if(typeof (_2e)=="string"){ id=window.JsHttpRequest_tmp(_2e,dt); }else{ var id=null; var _31=function(){ _2e(); delete JsHttpRequest.TIMEOUTS[id]; }; id=window.JsHttpRequest_tmp(_31,dt); JsHttpRequest.TIMEOUTS[id]=_31; } window.JsHttpRequest_tmp=null; return id; }; JsHttpRequest.clearTimeout=function(id){ window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c; delete JsHttpRequest.TIMEOUTS[id]; var r=window.JsHttpRequest_tmp(id); window.JsHttpRequest_tmp=null; return r; }; JsHttpRequest.query=function(url,_35,_36,_37){ var req=new this(); req.caching=!_37; req.onreadystatechange=function(){ if(req.readyState==4){ _36(req.responseJS,req.responseText); } }; req.open(null,url,true); req.send(_35); }; JsHttpRequest.dataReady=function(d){ var th=this.PENDING[d.id]; delete this.PENDING[d.id]; if(th){ th._dataReady(d.text,d.js); }else{ if(th!==false){ throw "dataReady(): unknown pending id: "+d.id; } } }; JsHttpRequest.extend=function(_3b,src){ for(var k in src){ _3b[k]=src[k]; } }; JsHttpRequest.LOADERS.xml={loader:function(req){ JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"}); this.load=function(){ if(this.queryElem.length){ return ["xml_no_form_upl"]; } if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){ if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){ return ["xml_no_diffdom",RegExp.$1]; } } var xr=null; if(window.XMLHttpRequest){ try{ xr=new XMLHttpRequest(); } catch(e){ } }else{ if(window.ActiveXObject){ try{ xr=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){ } if(!xr){ try{ xr=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){ } } } } if(!xr){ return ["xml_no"]; } var _40=window.ActiveXObject||xr.setRequestHeader; if(!this.method){ this.method=_40&&this.queryText.length?"POST":"GET"; } if(this.method=="GET"){ if(this.queryText){ this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText; } this.queryText=""; if(this.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } }else{ if(this.method=="POST"&&!_40){ return ["xml_no_headers"]; } } this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml"; var id=this.id; xr.onreadystatechange=function(){ if(xr.readyState!=4){ return; } xr.onreadystatechange=JsHttpRequest._dummy; req.status=null; try{ req.status=xr.status; req.responseText=xr.responseText; } catch(e){ } if(!req.status){ return; } try{ var _42=req.responseText||"{ js: null, text: null }"; eval("JsHttpRequest._tmp = function(id) { var d = "+_42+"; d.id = id; JsHttpRequest.dataReady(d); }"); } catch(e){ return req._error("js_invalid",req.responseText); } JsHttpRequest._tmp(id); JsHttpRequest._tmp=null; }; xr.open(this.method,this.url,true,this.username,this.password); if(_40){ for(var i=0;i=0?"&":"?")+this.queryText; } this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script"; this.queryText=""; if(!this.method){ this.method="GET"; } if(this.method!=="GET"){ return ["script_only_get"]; } if(this.queryElem.length){ return ["script_no_form"]; } if(this.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } var th=this,d=document,s=null,b=d.body; if(!window.opera){ this.span=s=d.createElement("SCRIPT"); var _4a=function(){ s.language="JavaScript"; if(s.setAttribute){ s.setAttribute("src",th.url); }else{ s.src=th.url; } b.insertBefore(s,b.lastChild); }; }else{ this.span=s=d.createElement("SPAN"); s.style.display="none"; b.insertBefore(s,b.lastChild); s.innerHTML="Workaround for IE."; var _4a=function(){ s=s.getElementsByTagName("SCRIPT")[0]; s.language="JavaScript"; if(s.setAttribute){ s.setAttribute("src",th.url); }else{ s.src=th.url; } }; } JsHttpRequest.setTimeout(_4a,10); return null; }; }}; JsHttpRequest.LOADERS.form={loader:function(req){ JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."}); this.load=function(){ var th=this; if(!th.method){ th.method="POST"; } th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form"; if(th.method=="GET"){ if(th.queryText){ th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText; } if(th.url.length>JsHttpRequest.MAX_URL_LEN){ return ["url_too_long",JsHttpRequest.MAX_URL_LEN]; } var p=th.url.split("?",2); th.url=p[0]; th.queryText=p[1]||""; } var _4e=null; var _4f=false; if(th.queryElem.length){ if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){ _4e=th.queryElem[0].e; _4f=true; th.queryElem=[]; }else{ _4e=th.queryElem[0].e.form; for(var i=0;i")+""; if(!_4e){ _4e=th.span.firstChild; } d.body.insertBefore(s,d.body.lastChild); var _57=function(e,_59){ var sv=[]; var _5b=e; if(e.mergeAttributes){ var _5b=d.createElement("form"); _5b.mergeAttributes(e,false); } for(var i=0;i<_59.length;i++){ var k=_59[i][0],v=_59[i][1]; sv[sv.length]=[k,_5b.getAttribute(k)]; _5b.setAttribute(k,v); } if(e.mergeAttributes){ e.mergeAttributes(_5b,false); } return sv; }; var _5f=function(){ top.JsHttpRequestGlobal=JsHttpRequest; var _60=[]; if(!_4f){ for(var i=0,n=_4e.elements.length;i=0;i--){ var _64=qt[i].split("=",2); var e=d.createElement("INPUT"); e.type="hidden"; e.name=unescape(_64[0]); e.value=_64[1]!=null?unescape(_64[1]):""; _4e.appendChild(e); } for(var i=0;i