From a8df4ff9b12594cb33fc1fdbedc7163713da2504 Mon Sep 17 00:00:00 2001 From: makkalot Date: Thu, 31 Jul 2008 18:40:41 +0300 Subject: generalizing the ajax form code to be used by other forms that will be created in the future --- funcweb/funcweb/static/javascript/ajax.js | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'funcweb') diff --git a/funcweb/funcweb/static/javascript/ajax.js b/funcweb/funcweb/static/javascript/ajax.js index b54ed7a..1b8d44f 100644 --- a/funcweb/funcweb/static/javascript/ajax.js +++ b/funcweb/funcweb/static/javascript/ajax.js @@ -104,3 +104,57 @@ function makePOSTRequest(source, url, target, parameters, options) { http_request.setRequestHeader("Connection", "close"); http_request.send(parameters); } + +function glob_submit(form_element,target_dom){ + /* + * Because it is a common function we have to move it here for better results + * form_element is what we submit and the target_dom is the place that will be replaced + */ + + //sometimes we are not sure which dom to get so is that situation + if(compare(target_dom,'not_sure')==0) + target_dom = which_dom(); + + //if we are in the index page should to that + if (compare(target_dom,'minioncontent')==0){ + before_action = "myj('#resultcontent').hide();myj('#widgetcontent').hide();myj('#methotdscontent').hide();myj('#modulescontent').hide();"; + } + else if(compare(target_dom,'groupscontent')==0){ + before_action = "myj('#miniongroupcontents').hide();"; + } + + form_result = remoteFormRequest(form_element,target_dom, { + 'loading': null, + 'confirm': null, + 'after':null, + 'on_complete':null, + 'loaded':null, + 'on_failure':null, + 'on_success':null, + 'before':before_action + } + ); + return form_result; +} + +function which_dom(){ + /* + * We use the glob submit in lots of places so we should + * know where we are actually so that method will handle that + */ + + dom_result = getElement('minioncontent'); + if (dom_result != null){ + //alert("Im giving back the minioncontent"); + return 'minioncontent'; + + } + + dom_result = getElement('another'); + //will change it later + if (dom_result != null){ + return 'another'; + } + + return dom_result; +} -- cgit From 2c2dfebee9a648227417119374accb47e062cc36 Mon Sep 17 00:00:00 2001 From: makkalot Date: Thu, 31 Jul 2008 18:42:49 +0300 Subject: adding template files for exported groups api --- funcweb/funcweb/templates/add_group.html | 20 ++++++++++++++++++++ funcweb/funcweb/templates/glob_form.html | 13 +++++++++++++ funcweb/funcweb/templates/group_minion.html | 10 ++++++++++ funcweb/funcweb/templates/group_small.html | 19 +++++++++++++++++++ funcweb/funcweb/templates/groups_main.html | 18 ++++++++++++++++++ funcweb/funcweb/templates/list_group.html | 16 ++++++++++++++++ funcweb/funcweb/templates/minion_small.html | 18 ++++++++++++++++++ 7 files changed, 114 insertions(+) create mode 100644 funcweb/funcweb/templates/add_group.html create mode 100644 funcweb/funcweb/templates/glob_form.html create mode 100644 funcweb/funcweb/templates/group_minion.html create mode 100644 funcweb/funcweb/templates/group_small.html create mode 100644 funcweb/funcweb/templates/groups_main.html create mode 100644 funcweb/funcweb/templates/list_group.html create mode 100644 funcweb/funcweb/templates/minion_small.html (limited to 'funcweb') diff --git a/funcweb/funcweb/templates/add_group.html b/funcweb/funcweb/templates/add_group.html new file mode 100644 index 0000000..3386cbc --- /dev/null +++ b/funcweb/funcweb/templates/add_group.html @@ -0,0 +1,20 @@ +
+
+
Add Group
+
+
Name:
+
+ + +
+
+
+
diff --git a/funcweb/funcweb/templates/glob_form.html b/funcweb/funcweb/templates/glob_form.html new file mode 100644 index 0000000..8499d56 --- /dev/null +++ b/funcweb/funcweb/templates/glob_form.html @@ -0,0 +1,13 @@ +
+ +
+
+
Minion Glob
+
+ + +
+
+ diff --git a/funcweb/funcweb/templates/group_minion.html b/funcweb/funcweb/templates/group_minion.html new file mode 100644 index 0000000..bc45fe8 --- /dev/null +++ b/funcweb/funcweb/templates/group_minion.html @@ -0,0 +1,10 @@ +
+ + + + + + +
diff --git a/funcweb/funcweb/templates/group_small.html b/funcweb/funcweb/templates/group_small.html new file mode 100644 index 0000000..2638c2f --- /dev/null +++ b/funcweb/funcweb/templates/group_small.html @@ -0,0 +1,19 @@ +
+
Group
+
+
Group1 + +
+
+
+ Select all: + + +
+
diff --git a/funcweb/funcweb/templates/groups_main.html b/funcweb/funcweb/templates/groups_main.html new file mode 100644 index 0000000..5965c47 --- /dev/null +++ b/funcweb/funcweb/templates/groups_main.html @@ -0,0 +1,18 @@ + + + + + + +
+ +
+ +
+ +
+ + + diff --git a/funcweb/funcweb/templates/list_group.html b/funcweb/funcweb/templates/list_group.html new file mode 100644 index 0000000..49cd8b7 --- /dev/null +++ b/funcweb/funcweb/templates/list_group.html @@ -0,0 +1,16 @@ +
+ +
Groups
+ + +
+ + + + + +
+
+
diff --git a/funcweb/funcweb/templates/minion_small.html b/funcweb/funcweb/templates/minion_small.html new file mode 100644 index 0000000..e3206b2 --- /dev/null +++ b/funcweb/funcweb/templates/minion_small.html @@ -0,0 +1,18 @@ +
+
Minions
+
+
Minion1 + +
+
+
Select all: + + +
+
-- cgit From f2690e9fecbbb038835f05c935598bf07857587c Mon Sep 17 00:00:00 2001 From: makkalot Date: Thu, 31 Jul 2008 18:43:27 +0300 Subject: groups api actions added to main controller --- funcweb/funcweb/controllers.py | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'funcweb') diff --git a/funcweb/funcweb/controllers.py b/funcweb/funcweb/controllers.py index 2bdbe80..efc2c83 100644 --- a/funcweb/funcweb/controllers.py +++ b/funcweb/funcweb/controllers.py @@ -428,9 +428,62 @@ class Funcweb(object): """ identity.current.logout() raise redirect("/") + +################################ Groups API methods here ############################# + @expose(template="funcweb.templates.groups_main") + @identity.require(identity.not_anonymous()) + def groups_main(self): + """ + The main page of the groups + """ + #a dummy object to let us to get the groups api + #we dont supply a new group file it will handle the default + minion_api = Minions("*") + groups = minion_api.group_class.get_group_names() + del minion_api + #result to the template please :) + return dict(groups = groups) + + @expose(template="funcweb.templates.list_group") + @identity.require(identity.not_anonymous()) + def add_new_group(self,group_name,submit): + """ + Adding a new group + """ + minion_api = Minions("*") + minion_api.group_class.add_group(group_name,save=True) + groups = minion_api.group_class.get_group_names() + del minion_api + return dict(groups = groups) + @expose(template="funcweb.templates.list_group") + @identity.require(identity.not_anonymous()) + def remove_group(self,**kw): + """ + Adding a new group + """ + minion_api = Minions("*") + minion_api.group_class.remove_group(kw['group_name'],save=True) + groups = minion_api.group_class.get_group_names() + del minion_api + return dict(groups = groups) + @expose(template="funcweb.templates.list_group") + @identity.require(identity.not_anonymous()) + def list_host_by_group(self,group_name): + """ + Get the hosts for the specified group_name + """ + if not group_name.startswith('@'): + group_name = "".join(["@",group_name.strip()]) + + minion_api = Minions("*") + hosts = minion_api.group_class.get_hosts_by_group_glob(kw['group_name']) + all_minions = minion_api.get_all_hosts() + del minion_api + return dict(hosts = hosts,all_minions = all_minions) +############################# END of GROUPS API METHODS ############################ class Root(controllers.RootController): @expose() -- cgit From e427b3339d90a02d7cf5402fccf54e419335cc03 Mon Sep 17 00:00:00 2001 From: makkalot Date: Thu, 31 Jul 2008 18:44:01 +0300 Subject: usability changes --- funcweb/funcweb/templates/index.html | 17 +++-------------- funcweb/funcweb/templates/master.html | 12 +++++++++++- 2 files changed, 14 insertions(+), 15 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/templates/index.html b/funcweb/funcweb/templates/index.html index 87c446e..3f3944d 100644 --- a/funcweb/funcweb/templates/index.html +++ b/funcweb/funcweb/templates/index.html @@ -6,20 +6,9 @@ -
-
- -
-
Minion Glob
-
- - -
-
- - -
-
+ +
+
Mininons
diff --git a/funcweb/funcweb/templates/master.html b/funcweb/funcweb/templates/master.html index 0b5bcae..dc0e962 100644 --- a/funcweb/funcweb/templates/master.html +++ b/funcweb/funcweb/templates/master.html @@ -17,6 +17,9 @@ + diff --git a/funcweb/funcweb/templates/widgets.html b/funcweb/funcweb/templates/widgets.html index d898134..f85dfd7 100644 --- a/funcweb/funcweb/templates/widgets.html +++ b/funcweb/funcweb/templates/widgets.html @@ -13,7 +13,7 @@ ${ET(minion_form.display(displays_on='genshi'))} - Run Method + Run Method
-- cgit From 8578022bb04931e391e78d1ef16b27fe9a02b120 Mon Sep 17 00:00:00 2001 From: makkalot Date: Wed, 6 Aug 2008 14:18:04 +0300 Subject: remove the jquery framework if someone needs it may follow my myj trick and use it again logs are your friends :) --- funcweb/funcweb/static/javascript/jquery.js | 32 ----------------------------- 1 file changed, 32 deletions(-) delete mode 100644 funcweb/funcweb/static/javascript/jquery.js (limited to 'funcweb') diff --git a/funcweb/funcweb/static/javascript/jquery.js b/funcweb/funcweb/static/javascript/jquery.js deleted file mode 100644 index 3747929..0000000 --- a/funcweb/funcweb/static/javascript/jquery.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * jQuery 1.2.3 - New Wave Javascript - * - * Copyright (c) 2008 John Resig (jquery.com) - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ - * $Rev: 4663 $ - */ -(function(){if(window.jQuery)var _jQuery=window.jQuery;var jQuery=window.jQuery=function(selector,context){return new jQuery.prototype.init(selector,context);};if(window.$)var _$=window.$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem)if(elem.id!=match[3])return jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}else -selector=[];}}else -return new jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return new jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(selector.constructor==Array&&selector||(selector.jquery||selector.length&&selector!=window&&!selector.nodeType&&selector[0]!=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||[selector]);},jquery:"1.2.3",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;this.each(function(i){if(this==elem)ret=i;});return ret;},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value==undefined)return this.length&&jQuery[type||"attr"](this[0],name)||undefined;else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else -return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else -selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector){return selector?jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=value.constructor==Array?value:[value];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else -this.value=value;});},html:function(value){return value==undefined?(this.length?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value==null){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data==undefined&&this.length)data=jQuery.data(this[0],key);return data==null&&parts[1]?this.data(parts[0]):data;}else -return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);}else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else -jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==1){target=this;i=0;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else -jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret;function color(elem){if(!jQuery.browser.safari)return false;var ret=document.defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=elem.style.outline;elem.style.outline="0 solid black";elem.style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&elem.style&&elem.style[name])ret=elem.style[name];else if(document.defaultView&&document.defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else -ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem.setAttribute(name,""+value);}if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)elem[name]=value;return elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[];var cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval!=undefined)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)return val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else -for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data||[]);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event)data.unshift(this.fix({type:type,target:elem}));data[0].type=type;if(exclusive)data[0].exclusive=true;if(jQuery.isFunction(jQuery.data(elem,"handle")))val=jQuery.data(elem,"handle").apply(elem,data);if(!fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var parts=event.type.split(".");event.type=parts[0];var handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in handlers){var handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!parts[1]&&!event.exclusive||handler.type==parts[1]){var ret=handler.apply(this,args);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}if(jQuery.browser.msie)event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){if(this[0])return jQuery.event.trigger(type,data,this[0],false,fn);return undefined;},toggle:function(){var args=arguments;return this.click(function(event){this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return args[this.lastToggle].apply(this,arguments)||false;});},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else -jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new Date).getTime();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(s.type.toLowerCase()=="get"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&s.type.toLowerCase()=="get"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!s.url.indexOf("//"))&&s.dataType=="script"&&s.type.toLowerCase()=="get"){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend)s.beforeSend(xml);if(s.global)jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else -jQuery.handleError(s,xml,status);complete();if(s.async)xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xml){xml.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xml,s]);}function complete(){if(s.complete)s.complete(xml,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||r.status==1223||jQuery.browser.safari&&r.status==undefined;}catch(e){}return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else -for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else -s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall);var hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else -e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.apply(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(!elem)return undefined;type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].apply(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.apply(this.elem,[this.now,this]);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=(new Date()).getTime();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done&&jQuery.isFunction(this.options.complete))this.options.complete.apply(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.fx.step={scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&jQuery.css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(jQuery.css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||jQuery.css(offsetChild,"position")=="absolute"))||(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}return results;};})(); \ No newline at end of file -- cgit From f0c042888db84e241d63cf33683644ab83b65437 Mon Sep 17 00:00:00 2001 From: makkalot Date: Mon, 11 Aug 2008 23:18:16 +0300 Subject: the small patch for adding the list* --- funcweb/funcweb/widget_automation.py | 10 ++++++++-- funcweb/funcweb/widget_validation.py | 9 +++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/widget_automation.py b/funcweb/funcweb/widget_automation.py index 9467f21..9769586 100644 --- a/funcweb/funcweb/widget_automation.py +++ b/funcweb/funcweb/widget_automation.py @@ -28,6 +28,8 @@ class WidgetListFactory(object): 'hash':{ 'type':"RepeatingFieldSet"}, 'list':{ + 'type':"RepeatingFieldSet"}, + 'list*':{ 'type':"RepeatingFieldSet"} } #will contain the input widget created in that class @@ -50,7 +52,8 @@ class WidgetListFactory(object): self.method = method def __add_general_widget(self): - + # a mirror var to show that these are same things + mirror_case = {'list*':'list'} #key is the argument_name and the argument are options for key,argument in self.__argument_dict.iteritems(): #get the type of the argument @@ -69,7 +72,10 @@ class WidgetListFactory(object): if act_special: #calling for example __add_specialized_string(..) - getattr(self,"_%s__add_specialized_%s"%(self.__class__.__name__,current_type))(argument,key) + if current_type == "list*": + getattr(self,"_%s__add_specialized_%s"%(self.__class__.__name__,mirror_case[current_type]))(argument,key) + else: + getattr(self,"_%s__add_specialized_%s"%(self.__class__.__name__,current_type))(argument,key) else: temp_object = getattr(widgets,self.__convert_table[current_type]['default_value'])() #add common options to it diff --git a/funcweb/funcweb/widget_validation.py b/funcweb/funcweb/widget_validation.py index 9b67e7f..b04572a 100644 --- a/funcweb/funcweb/widget_validation.py +++ b/funcweb/funcweb/widget_validation.py @@ -23,11 +23,16 @@ class WidgetSchemaFactory(object): and according to their types it sends the process to more specialized validator adders """ - + # a mirror var to show that these are same things + mirror_case = {'list*':'list'} for argument_name,argument_values in self.method_argument_dict.iteritems(): #some lazy stuff :) #for ex : _add_int_validator(some_arg) - getattr(self,"_add_%s_validator"%(argument_values['type']))(argument_name) + current_type = argument_values['type'] + if current_type == "list*": + getattr(self,"_add_%s_validator"%(mirror_case[current_type]))(argument_name) + else: + getattr(self,"_add_%s_validator"%(current_type))(argument_name) def _add_boolean_validator(self,argument_name): bool_data_set = {} -- cgit From dc00ae6b0a91210ab4686173df80daee53cc1f48 Mon Sep 17 00:00:00 2001 From: makkalot Date: Mon, 11 Aug 2008 23:19:25 +0300 Subject: fix in the controller for list* --- funcweb/funcweb/controllers.py | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/controllers.py b/funcweb/funcweb/controllers.py index 32cde3f..9cf7fc3 100644 --- a/funcweb/funcweb/controllers.py +++ b/funcweb/funcweb/controllers.py @@ -337,13 +337,33 @@ class Funcweb(object): flash("Encountered some error when trying to get method arguments for %s.%s.%s"%(minion,module,method)) return dict() #so we know the order just allocate and put them there - cmd_args=['']*(len(kw.keys())) - + cmd_args=[] + + #firstly create a better dict to lookup + sorted_args = {} for arg in kw.keys(): #wow what a lookup :) - index_of_arg = arguments[minion][method]['args'][arg]['order'] - cmd_args[index_of_arg]=kw[arg] - + tmp_arg_num = arguments[minion][method]['args'][arg]['order'] + sorted_args[tmp_arg_num] = [] + sorted_args[tmp_arg_num].append(arg) + sorted_args[tmp_arg_num].append(kw[arg]) + + #now append them to main cmd args + #not a very efficient algorithm i know i know :| + ordered_keys = sorted_args.keys() + ordered_keys.sort() + for order_key in ordered_keys: + current_argument_name = sorted_args[order_key][0] + current_argument = sorted_args[order_key][1] + current_type = arguments[minion][method]['args'][current_argument_name]['type'] + #for *args types + if current_type == "list*": + for list_arg in current_argument: + cmd_args.append(list_arg) + else: + cmd_args.append(current_argument) + + #print "The list to be send is : ",cmd_args #now execute the stuff #at the final execute it as a multiple if the glob suits for that #if not (actually there shouldnt be an option like that but who knows :)) -- cgit From b66bf7968d9a5f2b16744ac3d1f7e8b15d17dac0 Mon Sep 17 00:00:00 2001 From: makkalot Date: Fri, 15 Aug 2008 11:23:24 +0300 Subject: recursive result parser,for comming resultst from minions --- funcweb/funcweb/result_handler.py | 96 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 funcweb/funcweb/result_handler.py (limited to 'funcweb') diff --git a/funcweb/funcweb/result_handler.py b/funcweb/funcweb/result_handler.py new file mode 100644 index 0000000..e48cd17 --- /dev/null +++ b/funcweb/funcweb/result_handler.py @@ -0,0 +1,96 @@ +def produce_res_rec(counter,result_pack,send_list = None): + """ + A beautiful recursive tree like hash producer + """ + global_result = {} + global_result ['id'] = counter + + + #print "The pack is counter:",counter + #print "The pack is result_pack:",result_pack + #print "The pack is global_result:",global_result + #the final step of the execution + if type(result_pack) != list and type(result_pack) != dict: + return {'id':counter,'text':str(result_pack)} + + elif type(result_pack) == list : + for result_list in result_pack: + counter = 2*counter + if type(result_list) == list: + tmp_list_result = produce_res_rec(counter,result_list,[]) + global_result['text'] = 'res%s%s'%(counter,counter) + if not global_result.has_key('item'): + global_result['item'] = [] + + if type(tmp_list_result) == list: + global_result['item'].extend(tmp_list_result) + else: + global_result['item'].append(tmp_list_result) + + else: + tmp_list_result = produce_res_rec(counter,result_list) + if type(tmp_list_result) == list: + send_list.extend(tmp_list_result) + else: + send_list.append(tmp_list_result) + + elif type(result_pack) == dict : + for key_result,value_result in result_pack.iteritems(): + #a new key added + global_result['text'] = str(key_result) + if not global_result.has_key('item'): + global_result['item'] = [] + + if type(value_result) == list: + tmp_dict_res = produce_res_rec((2*counter+1),value_result,[]) + + else: + tmp_dict_res = produce_res_rec((2*counter+1),value_result) + if type(tmp_dict_res) == list : + global_result['item'].extend(tmp_dict_res) + else: + global_result['item'].append(tmp_dict_res) + + else: #shouldnt come here ! + return {} + + if not send_list: + return global_result + else: + return send_list + +if __name__ == "__main__": + """ + + main_pack = { + 'minion':{'result':True} + } + + main_pack = { + 'minion':[["one","two"],["three","four"]] + } + + + main_pack = { + 'minion':{'result':True} + } + + + """ + main_pack = { + 'minion':[ + { + 'res1':'hey' + }, + { + 'res2':'wey' + } + ] + } + global_result = {'id':0,'item':[]} + final = produce_res_rec(1,main_pack) + print "The final pack is like that : " + global_result['item'].append(final) + print global_result + + -- cgit From 5cf36da39e0b28f5773c910c7bca54cf144d0e89 Mon Sep 17 00:00:00 2001 From: makkalot Date: Sat, 16 Aug 2008 02:02:32 +0300 Subject: some fixes in result handler algorithm should write lots of beautiful unittests now --- funcweb/funcweb/result_handler.py | 111 ++++++++++++++++++++++++-------------- 1 file changed, 70 insertions(+), 41 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/result_handler.py b/funcweb/funcweb/result_handler.py index e48cd17..41898fa 100644 --- a/funcweb/funcweb/result_handler.py +++ b/funcweb/funcweb/result_handler.py @@ -1,34 +1,40 @@ -def produce_res_rec(counter,result_pack,send_list = None): +global_max = 0 +def produce_res_rec(result_pack): """ A beautiful recursive tree like hash producer """ - global_result = {} - global_result ['id'] = counter - - + send_list = [] + global global_max #print "The pack is counter:",counter #print "The pack is result_pack:",result_pack #print "The pack is global_result:",global_result #the final step of the execution if type(result_pack) != list and type(result_pack) != dict: - return {'id':counter,'text':str(result_pack)} + global_max = global_max + 1 + return {'id':global_max,'text':str(result_pack)} elif type(result_pack) == list : for result_list in result_pack: - counter = 2*counter + #counter = 2*counter if type(result_list) == list: - tmp_list_result = produce_res_rec(counter,result_list,[]) - global_result['text'] = 'res%s%s'%(counter,counter) - if not global_result.has_key('item'): - global_result['item'] = [] + #if there is a new list then the new parent trick + global_max = global_max +1 + tmp_parent = {} + tmp_parent['id'] = global_max + tmp_parent['text'] = 'leaf_result%s%s'%(global_max,global_max) + tmp_parent['item'] = [] + + tmp_list_result = produce_res_rec(result_list) if type(tmp_list_result) == list: - global_result['item'].extend(tmp_list_result) + tmp_parent['item'].extend(tmp_list_result) else: - global_result['item'].append(tmp_list_result) + tmp_parent['item'].append(tmp_list_result) + #appended to the parent + send_list.append(tmp_parent) else: - tmp_list_result = produce_res_rec(counter,result_list) + tmp_list_result = produce_res_rec(result_list) if type(tmp_list_result) == list: send_list.extend(tmp_list_result) else: @@ -37,60 +43,83 @@ def produce_res_rec(counter,result_pack,send_list = None): elif type(result_pack) == dict : for key_result,value_result in result_pack.iteritems(): #a new key added - global_result['text'] = str(key_result) - if not global_result.has_key('item'): - global_result['item'] = [] + global_max = global_max +1 + tmp_parent = {} + #counter = 2*counter+1 + tmp_parent ['id'] = global_max + tmp_parent ['text'] = str(key_result) + tmp_parent ['item'] = [] - if type(value_result) == list: - tmp_dict_res = produce_res_rec((2*counter+1),value_result,[]) + tmp_dict_res = produce_res_rec(value_result) - else: - tmp_dict_res = produce_res_rec((2*counter+1),value_result) if type(tmp_dict_res) == list : - global_result['item'].extend(tmp_dict_res) + tmp_parent['item'].extend(tmp_dict_res) else: - global_result['item'].append(tmp_dict_res) + tmp_parent['item'].append(tmp_dict_res) + + send_list.append(tmp_parent) else: #shouldnt come here ! return {} - if not send_list: - return global_result - else: - return send_list + return send_list if __name__ == "__main__": """ - main_pack = { - 'minion':{'result':True} - } - + main_pack = { 'minion':[["one","two"],["three","four"]] } - main_pack = { - 'minion':{'result':True} - } + + + + main_pack = { + + 'minion':{ + 'result1':True, + 'result2':False + }, + 'minion2':{ + 'result3':True, + 'result4':False + }, + 'minion3':{ + 'result5':True, + 'result6':False + } + + + } """ + main_pack = { - 'minion':[ + 'minion1':[ { - 'res1':'hey' + 'res1':[['hey','hhhey'],['mey','mmmey']] }, { - 'res2':'wey' + 'res2':['wey','dey'] + } + ], + 'minion2':[ + { + 'res3':['nums','mums'] + }, + { + 'res4':['wums','dums'] } ] + } - global_result = {'id':0,'item':[]} - final = produce_res_rec(1,main_pack) + + + final = produce_res_rec(main_pack) print "The final pack is like that : " - global_result['item'].append(final) - print global_result + print final -- cgit From 4581178b4ad65df9c1c7f3af4eb5abf55c85a74f Mon Sep 17 00:00:00 2001 From: makkalot Date: Sun, 17 Aug 2008 21:22:18 +0300 Subject: some fixes in result parser --- funcweb/funcweb/result_handler.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/result_handler.py b/funcweb/funcweb/result_handler.py index 41898fa..afd62f1 100644 --- a/funcweb/funcweb/result_handler.py +++ b/funcweb/funcweb/result_handler.py @@ -15,20 +15,20 @@ def produce_res_rec(result_pack): elif type(result_pack) == list : for result_list in result_pack: - #counter = 2*counter if type(result_list) == list: #if there is a new list then the new parent trick global_max = global_max +1 tmp_parent = {} tmp_parent['id'] = global_max - tmp_parent['text'] = 'leaf_result%s%s'%(global_max,global_max) - tmp_parent['item'] = [] + tmp_parent['text'] = 'leaf_result%s'%(global_max) tmp_list_result = produce_res_rec(result_list) - if type(tmp_list_result) == list: + if tmp_list_result and type(tmp_list_result) == list: + tmp_parent['item'] = [] tmp_parent['item'].extend(tmp_list_result) - else: + elif tmp_list_result: + tmp_parent['item'] = [] tmp_parent['item'].append(tmp_list_result) #appended to the parent send_list.append(tmp_parent) @@ -45,16 +45,16 @@ def produce_res_rec(result_pack): #a new key added global_max = global_max +1 tmp_parent = {} - #counter = 2*counter+1 tmp_parent ['id'] = global_max tmp_parent ['text'] = str(key_result) - tmp_parent ['item'] = [] tmp_dict_res = produce_res_rec(value_result) - if type(tmp_dict_res) == list : + if tmp_dict_res and type(tmp_dict_res) == list : + tmp_parent ['item'] = [] tmp_parent['item'].extend(tmp_dict_res) - else: + elif tmp_dict_res: + tmp_parent ['item'] = [] tmp_parent['item'].append(tmp_dict_res) send_list.append(tmp_parent) -- cgit From 2805cfeb0359daf64e97c02a04c13603955e265d Mon Sep 17 00:00:00 2001 From: makkalot Date: Sun, 17 Aug 2008 21:22:47 +0300 Subject: 4 level test cases for result parser --- funcweb/funcweb/tests/test_result_handler.py | 429 +++++++++++++++++++++++++++ 1 file changed, 429 insertions(+) create mode 100644 funcweb/funcweb/tests/test_result_handler.py (limited to 'funcweb') diff --git a/funcweb/funcweb/tests/test_result_handler.py b/funcweb/funcweb/tests/test_result_handler.py new file mode 100644 index 0000000..95dcf73 --- /dev/null +++ b/funcweb/funcweb/tests/test_result_handler.py @@ -0,0 +1,429 @@ +#all the test cases which are 16 and handle 4 level +#list hash indentation are tested manually because +#couldnt find a way to automate that process :) +#zeros stands for dict type 1 id for lists + +test_0000 = { + 'minion1':{ + 'result1':{ + 'result11':{ + 'result111':{ + 'result1111':1111 + } + } + }, + 'result12':{ + 'result12':{ + 'result122':{ + 'result1222':1222 + } + } + } + }, + 'minion2':{ + 'result2':{ + 'result22':{ + 'result222':{ + 'result2222':2222 + } + } + } + , + 'result2s':{ + 'result2s':{ + 'result12s':{ + 'result122s':1225 + } + } + } + } + } + +test_0001 = { + 'minion1':{ + 'result1':{ + 'result11':{ + 'result111':[1111,1111,1111] + } + }, + + 'result12':{ + 'result12':{ + 'result122':[1222,1222,1222] + } + } + }, + 'minion2':{ + 'result2':{ + 'result22':{ + 'result222':[2222,2222,2222] + } + }, + 'result2s':{ + 'result2s':{ + 'result12s':[2225,2225,2225] + } + } + } + } + +test_0010 = { + 'minion1':{ + 'result1':{ + 'result11':[{'res111':111},{'res111':111}] + }, + 'result12':{ + 'result122':[{'res1222':1222},{'res1222':1222}] + } + }, + 'minion2':{ + 'result2':{ + 'result22':[{'res222':222},{'res222':222}] + }, + 'result25':{ + 'result225':[{'res2225':2225},{'res2225':2225}] + } + } + } + +test_0011 = { + 'minion1':{ + 'result1':{ + 'result11':[[1111,1111],[1111,1111]] + }, + 'result12':{ + 'result122':[[1222,1222],[1222,1222]] + } + }, + 'minion2':{ + 'result2':{ + 'result22':[[2222,2222],[2222,2222]] + }, + 'result25':{ + 'result225':[[2225,2225],[2225,2225]] + } + } + } + +test_0100 = { + 'minion1':{ + 'result1':[ + {'dict11':{'dict111':1111},'dict16':{'dict111':1111}}, + {'dict12':{'dict122':1222},'dict18':{'dict122':1222}} + ], + 'result13':[ + {'dict13':{'dict133':1333},'dict15':{'dict133':1333}}, + {'dict14':{'dict144':1444},'dict16':{'dict144':1444}} + ] + }, + 'minion2':{ + 'result2':[ + {'dict22':{'dict222':2222},'dict24':{'dict244':2444}}, + {'dict23':{'dict233':2333},'dict25':{'dict255':2555}} + ], + 'result21':[ + {'dict21':{'dict211':2111},'dict23':{'dict233':2333}}, + {'dict24':{'dict244':2444},'dict27':{'dict244':2444}} + ] + } + } + +test_0101 = { + 'minion1':{ + 'result1':[ + {'dict11':[1111,1111],'dict16':[1666,1666]}, + {'dict12':[1222,1222],'dict18':[1888,1888]} + ], + 'result13':[ + {'dict13':[1333,1333],'dict15':[1555,1555]}, + {'dict14':[1444,1444],'dict16':[1666,1666]} + ] + }, + 'minion2':{ + 'result2':[ + {'dict22':[2222,2222],'dict24':[2444,2444]}, + {'dict23':[2333,2333],'dict25':[2555,2555]} + ], + 'result21':[ + {'dict21':[2111,2111],'dict23':[2333,2333]}, + {'dict24':[2444,2444],'dict27':[2777,2777]} + ] + } + } + +test_0110 = { + 'minion1':{ + 'result1':[ + [{'dict11':[1111,1111]},{'dict16':[1666,1666]}], + [{'dict12':[1222,1222]},{'dict18':[1888,1888]}] + ], + 'result13':[ + [{'dict13':[1333,1333]},{'dict15':[1555,1555]}], + [{'dict14':[1444,1444]},{'dict16':[1666,1666]}] + ] + }, + 'minion2':{ + 'result2':[ + [{'dict22':[2222,2222]},{'dict24':[2444,2444]}], + [{'dict23':[2333,2333]},{'dict25':[2555,2555]}] + ], + 'result21':[ + [{'dict21':[2111,2111]},{'dict23':[2333,2333]}], + [{'dict24':[2444,2444]},{'dict27':[2777,2777]}] + ] + } + } + +test_0111 = { + 'minion1':{ + 'result1':[ + [[1111,1111],[1666,1666]], + [[1222,1222],[1888,1888]] + ], + 'result13':[ + [[1333,1333],[1555,1555]], + [[1444,1444],[1666,1666]] + ] + }, + 'minion2':{ + 'result2':[ + [[2222,2222],[2444,2444]], + [[2333,2333],[2555,2555]] + ], + 'result21':[ + [[2111,2111],[2333,2333]], + [[2444,2444],[2777,2777]] + ] + } + } + +test_1000 = { + 'minion1':{ + 'res1': [ + {'result11':{'result111':{'result1111':1111}}}, + {'result13':{'result133':{'result1333':1333}}} + ], + 'res11':[ + {'result15':{'result155':{'result1555':1555}}}, + {'result17':{'result177':{'result1777':1777}}} + ], + + }, + 'minion2':{ + 'res2':[ + {'result21':{'result211':{'result2111':2111}}}, + {'result23':{'result233':{'result2333':2333}}} + ], + 'res22':[ + {'result25':{'result255':{'result2555':2555}}}, + {'result27':{'result277':{'result2777':2777}}} + ], + } + } + +test_1001 = { + 'minion1':{ + 'res1': [ + {'result11':{'result111':[1111,1111]}}, + {'result13':{'result133':[1333,1333]}} + ], + 'res11':[ + {'result15':{'result155':[1555,1555]}}, + {'result17':{'result177':[1777,1777]}} + ], + + }, + 'minion2':{ + 'res2':[ + {'result21':{'result211':[2111,2111]}}, + {'result23':{'result233':[2333,2333]}} + ], + 'res22':[ + {'result25':{'result255':[2555,2555]}}, + {'result27':{'result277':[2777,2777]}} + ], + } + } + +test_1010 = { + 'minion1':{ + 'res1': [ + {'result11':[{'result111':[1111,1111]}]}, + {'result13':[{'result133':[1333,1333]}]} + ], + 'res11':[ + {'result15':[{'result155':[1555,1555]}]}, + {'result17':[{'result177':[1777,1777]}]} + ], + + }, + 'minion2':{ + 'res2':[ + {'result21':[{'result211':[2111,2111]}]}, + {'result23':[{'result233':[2333,2333]}]} + ], + 'res22':[ + {'result25':[{'result255':[2555,2555]}]}, + {'result27':[{'result277':[2777,2777]}]} + ], + } + } + + +test_1011 = { + 'minion1':{ + 'res1': [ + {'result11':[[1111,1111],[1111,1111]]}, + {'result13':[[1333,1333],[1333,1333]]} + ], + 'res11':[ + {'result15':[[1555,1555],[1555,1555]]}, + {'result17':[{'result177':[1777,1777]}]} + ], + + }, + 'minion2':{ + 'res2':[ + {'result21':[[2111,2111],[2111,2111]]}, + {'result23':[[2333,2333],[2333,2333]]} + ], + 'res22':[ + {'result25':[[2555,2555],[2555]]}, + {'result27':[[2777,2777],[2555]]} + ], + } + } + +test_1100 = { + 'minion1':{ + 'res1': [ + [{'result11':{'result111':{'result1111':1111}}}], + [{'result13':{'result133':{'result1333':1333}}}] + ], + 'res11':[ + [{'result15':{'result155':{'result1555':1555}}}], + [{'result17':{'result177':{'result1777':1777}}}] + ], + + }, + 'minion2':{ + 'res2':[ + [{'result21':{'result211':{'result2111':2111}}}], + [{'result23':{'result233':{'result2333':2333}}}] + ], + 'res22':[ + [{'result25':{'result255':{'result2555':2555}}}], + [{'result27':{'result277':{'result2777':2777}}}] + ], + } + } + +test_1101 = { + 'minion1':{ + 'res1': [ + [{'result11':{'result111':[1111,1111,1111]}}], + [{'result13':{'result133':[1333,1333,1333]}}] + ], + 'res11':[ + [{'result15':{'result155':[1555,1555,1555]}}], + [{'result17':{'result177':[1777,1777,1777]}}] + ], + + }, + 'minion2':{ + 'res2':[ + [{'result21':{'result211':[2111,2111,2111]}}], + [{'result23':{'result233':[2333,2333,2333]}}] + ], + 'res22':[ + [{'result25':{'result255':[2555,2555,2555]}}], + [{'result27':{'result277':[2777,2777,2777]}}] + ], + } + } + +test_1110 = { + 'minion1':{ + 'res1': [ + [[{'result111':{'result1111':1111}}]], + [[{'result133':{'result1333':1333}}]] + ], + 'res11':[ + [[{'result155':{'result1555':1555}}]], + [[{'result177':{'result1777':1777}}]] + ], + + }, + 'minion2':{ + 'res2':[ + [[{'result211':{'result2111':2111}}]], + [[{'result233':{'result2333':2333}}]] + ], + 'res22':[ + [[{'result255':{'result2555':2555}}]], + [[{'result277':{'result2777':2777}}]] + ], + } + } + + +test_1111 = { + 'minion1':{ + 'res1': [ + [[[1111,1111,1111],[1111,1111,1111]]], + [[[1222,1222,1222],[1222,1222,1222]]] + ], + 'res11':[ + [[[1555,1555,1555],[1555,1555,1555]]], + [[[1777,1777,1777],[1777,1777,1777]]] + ], + + }, + 'minion2':{ + 'res2':[ + [[[2111,2111,2111],[2111,2111,2111]]], + [[[2333,2333,2333],[2333,2333,2333]]] + ], + 'res22':[ + [[[2555,2555,2555],[2555,2555,2555]]], + [[[2777,2777,277],[2777,2777,2777]]] + ], + } + } + +test_cases = [ + test_0000, + test_0001, + test_0010, + test_0011, + test_0100, + test_0101, + test_0110, + test_0111, + test_1000, + test_1001, + test_1010, + test_1011, + test_1100, + test_1101, + test_1101, + test_1110, + test_1111 + ] + +from funcweb.result_handler import produce_res_rec + +def test_result_handler(): + """ + Run handler cases + """ + + for test_case in test_cases: + result = produce_res_rec(test_case) + #not a perfect one but it is just a poc + #if sth is wrong can be seen here + #if someone wants to add more casess it is + #just enough to add them to the list + #print result + assert type(result) == list + -- cgit From 016673a62ddbd58694b0c60cc510da4ac7b4ba13 Mon Sep 17 00:00:00 2001 From: makkalot Date: Sun, 17 Aug 2008 23:07:40 +0300 Subject: add the smart parser for comming minion results --- funcweb/funcweb/controllers.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/controllers.py b/funcweb/funcweb/controllers.py index 9cf7fc3..4434db2 100644 --- a/funcweb/funcweb/controllers.py +++ b/funcweb/funcweb/controllers.py @@ -458,7 +458,7 @@ class Funcweb(object): return dict(changed = changed,changes = changes) - @expose(template="funcweb.templates.result") + @expose(format = "json") @identity.require(identity.not_anonymous()) def check_job_status(self,job_id): """ @@ -483,12 +483,19 @@ class Funcweb(object): try: id_result = fc_async.job_status(job_id) + #parse the comming data in a better looking way :) + from funcweb.result_handler import produce_res_rec + minion_result = produce_res_rec(id_result[1]) + #print "The current minion_result is : ",minion_result + global_result = {'id':0,'item':[]} + global_result['item'].extend(minion_result) + except Exception,e: flash("We encountered some error while getting the status for %s job id"%(job_id)) return dict() #the final id_result - return dict(result=id_result) + return dict(minion_result = global_result) @expose(template="funcweb.templates.async_table") @identity.require(identity.not_anonymous()) -- cgit From 67492110e858d8fb730c77d9d73cfbcc7621ec80 Mon Sep 17 00:00:00 2001 From: makkalot Date: Sun, 17 Aug 2008 23:08:36 +0300 Subject: change the output js to show the output as tree --- funcweb/funcweb/static/javascript/utils.js | 88 +++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 19 deletions(-) (limited to 'funcweb') diff --git a/funcweb/funcweb/static/javascript/utils.js b/funcweb/funcweb/static/javascript/utils.js index 9977a85..b872edc 100644 --- a/funcweb/funcweb/static/javascript/utils.js +++ b/funcweb/funcweb/static/javascript/utils.js @@ -30,6 +30,8 @@ function checkController(class_name,check_element){ * do all the stuff here ! */ +//------------------------------------------------------------------------------ + function list_minion_modules(minion_name){ /* * Method that hanles all the stuff on index.html @@ -82,16 +84,18 @@ function get_method_widget(minion_name,module_name,method_name){ send_some_JSON(base_url,data_pack,div_to_replace); } -function check_async_result(job_id){ - //sends some request to get the current job ids status :) + +function get_hosts_by_group(group_name){ + + //it is a part from group management api + //gets the hosts for specified group_name hideElement(getElement('resultcontent')); - var base_url = '/funcweb/check_job_status'; + var base_url = '/funcweb/list_host_by_group'; var data_pack = { - 'job_id':job_id + 'group_name':group_name }; - var div_to_replace = 'resultcontent'; + var div_to_replace = 'miniongroupcontents'; send_some_JSON(base_url,data_pack,div_to_replace); - } function execute_link_method(minion,module,method){ @@ -108,19 +112,6 @@ function execute_link_method(minion,module,method){ send_some_JSON(base_url,data_pack,div_to_replace); } -function get_hosts_by_group(group_name){ - - //it is a part from group management api - //gets the hosts for specified group_name - hideElement(getElement('resultcontent')); - var base_url = '/funcweb/list_host_by_group'; - var data_pack = { - 'group_name':group_name - }; - var div_to_replace = 'miniongroupcontents'; - send_some_JSON(base_url,data_pack,div_to_replace); -} - function send_some_JSON(base_url,data_pack,div_to_replace){ /* * A common method that will responsible for sending @@ -185,3 +176,62 @@ function connection_error(error){ error_div.innerHTML = error_msg; } } + +//------------------------------------------------------------------------------------------------------------- +function check_async_result(job_id){ + //sends some request to get the current job ids status :) + hideElement(getElement('resultcontent')); + var base_url = '/funcweb/check_job_status'; + var data_pack = { + 'job_id':job_id + }; + var div_to_replace = 'resultcontent'; + send_JSON_DOC_info(base_url,data_pack,div_to_replace); + +} + + +function send_JSON_DOC_info(base_url,data_pack,div_to_replace){ + /* + * That method is for getting the result that comes + * from minion side parsed in JSON format + * maybe used for other things also ... + */ + + d=loadJSONDoc(base_url,data_pack); + d.addCallback(load_parsed_result_tree,div_to_replace); + d.addErrback(connection_error); + +} + +function load_parsed_result_tree(div_to_replace,result){ + /* + * The callback for showing the tree structure + */ + + //check for errors + if (compare(result['fg_flash'],null)!=0){ + connection_error(result['tg_flash']); + return; + } + + //firstly load the div that will include the tree + var replace_div = getElement(div_to_replace); + if (replace_div != null){ + //first make it to appear here + showElement(replace_div); + + //place here the tree div that will show up the tree structure + replace_div.innerHTML = '
'; + } + + //now load the tree + tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); + tree.setImagePath("/funcweb/static/images/imgs/"); + tree.loadJSONObject(result['minion_result']); + alert("The tree should be loaded"); + + +} + + -- cgit From f41fa09968ef36d9682094a6988734de0d682388 Mon Sep 17 00:00:00 2001 From: makkalot Date: Sun, 17 Aug 2008 23:10:35 +0300 Subject: add the client side json --> tree parser dhtmltree framework --- funcweb/funcweb/static/css/dhtmlxtree.css | 61 + funcweb/funcweb/static/images/imgs/blank.gif | Bin 0 -> 56 bytes funcweb/funcweb/static/images/imgs/but_cut.gif | Bin 0 -> 87 bytes .../static/images/imgs/csh_bluebooks/blank.gif | Bin 0 -> 56 bytes .../static/images/imgs/csh_bluebooks/book.gif | Bin 0 -> 260 bytes .../images/imgs/csh_bluebooks/book_titel.gif | Bin 0 -> 210 bytes .../static/images/imgs/csh_bluebooks/but_cut.gif | Bin 0 -> 87 bytes .../static/images/imgs/csh_bluebooks/close2.gif | Bin 0 -> 1042 bytes .../images/imgs/csh_bluebooks/folderClosed.gif | Bin 0 -> 250 bytes .../images/imgs/csh_bluebooks/folderOpen.gif | Bin 0 -> 257 bytes .../images/imgs/csh_bluebooks/iconCheckAll.gif | Bin 0 -> 275 bytes .../images/imgs/csh_bluebooks/iconCheckDis.gif | Bin 0 -> 270 bytes .../images/imgs/csh_bluebooks/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_bluebooks/iconChecked.gif | Bin 0 -> 257 bytes .../static/images/imgs/csh_bluebooks/iconSafe.gif | Bin 0 -> 261 bytes .../static/images/imgs/csh_bluebooks/iconText.gif | Bin 0 -> 208 bytes .../images/imgs/csh_bluebooks/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_bluebooks/iconUncheckDis.gif | Bin 0 -> 268 bytes .../static/images/imgs/csh_bluebooks/leaf.gif | Bin 0 -> 260 bytes .../static/images/imgs/csh_bluebooks/line.gif | Bin 0 -> 169 bytes .../static/images/imgs/csh_bluebooks/line1.gif | Bin 0 -> 169 bytes .../static/images/imgs/csh_bluebooks/line1_rtl.gif | Bin 0 -> 169 bytes .../static/images/imgs/csh_bluebooks/line2.gif | Bin 0 -> 165 bytes .../static/images/imgs/csh_bluebooks/line2_rtl.gif | Bin 0 -> 167 bytes .../static/images/imgs/csh_bluebooks/line3.gif | Bin 0 -> 171 bytes .../static/images/imgs/csh_bluebooks/line3_rtl.gif | Bin 0 -> 173 bytes .../static/images/imgs/csh_bluebooks/line4.gif | Bin 0 -> 159 bytes .../static/images/imgs/csh_bluebooks/line4_rtl.gif | Bin 0 -> 159 bytes .../static/images/imgs/csh_bluebooks/lock.gif | Bin 0 -> 116 bytes .../static/images/imgs/csh_bluebooks/minus.gif | Bin 0 -> 211 bytes .../static/images/imgs/csh_bluebooks/minus2.gif | Bin 0 -> 223 bytes .../images/imgs/csh_bluebooks/minus2_rtl.gif | Bin 0 -> 222 bytes .../static/images/imgs/csh_bluebooks/minus3.gif | Bin 0 -> 225 bytes .../images/imgs/csh_bluebooks/minus3_rtl.gif | Bin 0 -> 226 bytes .../static/images/imgs/csh_bluebooks/minus4.gif | Bin 0 -> 222 bytes .../images/imgs/csh_bluebooks/minus4_rtl.gif | Bin 0 -> 220 bytes .../static/images/imgs/csh_bluebooks/minus5.gif | Bin 0 -> 216 bytes .../images/imgs/csh_bluebooks/minus5_rtl.gif | Bin 0 -> 214 bytes .../static/images/imgs/csh_bluebooks/plus.gif | Bin 0 -> 212 bytes .../static/images/imgs/csh_bluebooks/plus2.gif | Bin 0 -> 220 bytes .../static/images/imgs/csh_bluebooks/plus2_rtl.gif | Bin 0 -> 221 bytes .../static/images/imgs/csh_bluebooks/plus3.gif | Bin 0 -> 222 bytes .../static/images/imgs/csh_bluebooks/plus3_rtl.gif | Bin 0 -> 225 bytes .../static/images/imgs/csh_bluebooks/plus4.gif | Bin 0 -> 219 bytes .../static/images/imgs/csh_bluebooks/plus4_rtl.gif | Bin 0 -> 219 bytes .../static/images/imgs/csh_bluebooks/plus5.gif | Bin 0 -> 213 bytes .../static/images/imgs/csh_bluebooks/plus5_rtl.gif | Bin 0 -> 213 bytes .../static/images/imgs/csh_bluebooks/radio_off.gif | Bin 0 -> 249 bytes .../static/images/imgs/csh_bluebooks/radio_on.gif | Bin 0 -> 251 bytes .../static/images/imgs/csh_bluebooks/tombs.gif | Bin 0 -> 231 bytes .../static/images/imgs/csh_bluefolders/blank.gif | Bin 0 -> 56 bytes .../images/imgs/csh_bluefolders/folderClosed.gif | Bin 0 -> 261 bytes .../images/imgs/csh_bluefolders/folderOpen.gif | Bin 0 -> 266 bytes .../images/imgs/csh_bluefolders/iconCheckAll.gif | Bin 0 -> 275 bytes .../images/imgs/csh_bluefolders/iconCheckAll_2.gif | Bin 0 -> 273 bytes .../images/imgs/csh_bluefolders/iconCheckDis.gif | Bin 0 -> 270 bytes .../images/imgs/csh_bluefolders/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_bluefolders/iconChecked.gif | Bin 0 -> 257 bytes .../images/imgs/csh_bluefolders/iconFlag.gif | Bin 0 -> 247 bytes .../images/imgs/csh_bluefolders/iconGraph.gif | Bin 0 -> 250 bytes .../images/imgs/csh_bluefolders/iconSound.gif | Bin 0 -> 244 bytes .../images/imgs/csh_bluefolders/iconText.gif | Bin 0 -> 248 bytes .../images/imgs/csh_bluefolders/iconTexts.gif | Bin 0 -> 256 bytes .../images/imgs/csh_bluefolders/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_bluefolders/iconUncheckDis.gif | Bin 0 -> 268 bytes .../images/imgs/csh_bluefolders/iconWrite1.gif | Bin 0 -> 278 bytes .../images/imgs/csh_bluefolders/iconWrite2.gif | Bin 0 -> 272 bytes .../static/images/imgs/csh_bluefolders/leaf.gif | Bin 0 -> 237 bytes .../static/images/imgs/csh_bluefolders/line.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_bluefolders/line1.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_bluefolders/line2.gif | Bin 0 -> 70 bytes .../static/images/imgs/csh_bluefolders/line3.gif | Bin 0 -> 73 bytes .../static/images/imgs/csh_bluefolders/line4.gif | Bin 0 -> 69 bytes .../static/images/imgs/csh_bluefolders/lock.gif | Bin 0 -> 116 bytes .../static/images/imgs/csh_bluefolders/minus.gif | Bin 0 -> 85 bytes .../static/images/imgs/csh_bluefolders/minus2.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_bluefolders/minus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_bluefolders/minus4.gif | Bin 0 -> 90 bytes .../static/images/imgs/csh_bluefolders/minus5.gif | Bin 0 -> 87 bytes .../static/images/imgs/csh_bluefolders/plus.gif | Bin 0 -> 89 bytes .../static/images/imgs/csh_bluefolders/plus2.gif | Bin 0 -> 95 bytes .../static/images/imgs/csh_bluefolders/plus3.gif | Bin 0 -> 96 bytes .../static/images/imgs/csh_bluefolders/plus4.gif | Bin 0 -> 94 bytes .../static/images/imgs/csh_bluefolders/plus5.gif | Bin 0 -> 92 bytes .../images/imgs/csh_bluefolders/radio_off.gif | Bin 0 -> 249 bytes .../images/imgs/csh_bluefolders/radio_on.gif | Bin 0 -> 251 bytes .../funcweb/static/images/imgs/csh_books/blank.gif | Bin 0 -> 56 bytes .../static/images/imgs/csh_books/folderClosed.gif | Bin 0 -> 189 bytes .../static/images/imgs/csh_books/folderOpen.gif | Bin 0 -> 187 bytes .../static/images/imgs/csh_books/iconCheckAll.gif | Bin 0 -> 275 bytes .../static/images/imgs/csh_books/iconCheckDis.gif | Bin 0 -> 270 bytes .../static/images/imgs/csh_books/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_books/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_books/iconUncheckDis.gif | Bin 0 -> 268 bytes .../funcweb/static/images/imgs/csh_books/leaf.gif | Bin 0 -> 184 bytes .../funcweb/static/images/imgs/csh_books/line.gif | Bin 0 -> 71 bytes .../funcweb/static/images/imgs/csh_books/line1.gif | Bin 0 -> 71 bytes .../funcweb/static/images/imgs/csh_books/line2.gif | Bin 0 -> 70 bytes .../funcweb/static/images/imgs/csh_books/line3.gif | Bin 0 -> 73 bytes .../funcweb/static/images/imgs/csh_books/line4.gif | Bin 0 -> 69 bytes .../funcweb/static/images/imgs/csh_books/lock.gif | Bin 0 -> 116 bytes .../funcweb/static/images/imgs/csh_books/minus.gif | Bin 0 -> 85 bytes .../static/images/imgs/csh_books/minus2.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_books/minus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_books/minus4.gif | Bin 0 -> 90 bytes .../static/images/imgs/csh_books/minus5.gif | Bin 0 -> 87 bytes .../funcweb/static/images/imgs/csh_books/plus.gif | Bin 0 -> 89 bytes .../funcweb/static/images/imgs/csh_books/plus2.gif | Bin 0 -> 95 bytes .../funcweb/static/images/imgs/csh_books/plus3.gif | Bin 0 -> 96 bytes .../funcweb/static/images/imgs/csh_books/plus4.gif | Bin 0 -> 94 bytes .../funcweb/static/images/imgs/csh_books/plus5.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_books/radio_off.gif | Bin 0 -> 249 bytes .../static/images/imgs/csh_books/radio_on.gif | Bin 0 -> 251 bytes .../funcweb/static/images/imgs/csh_books/tombs.gif | Bin 0 -> 169 bytes .../static/images/imgs/csh_books/tombs_open.gif | Bin 0 -> 169 bytes .../static/images/imgs/csh_scbrblue/blank.gif | Bin 0 -> 56 bytes .../images/imgs/csh_scbrblue/folderClosed.gif | Bin 0 -> 99 bytes .../static/images/imgs/csh_scbrblue/folderOpen.gif | Bin 0 -> 98 bytes .../images/imgs/csh_scbrblue/iconCheckAll.gif | Bin 0 -> 275 bytes .../images/imgs/csh_scbrblue/iconCheckDis.gif | Bin 0 -> 270 bytes .../images/imgs/csh_scbrblue/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_scbrblue/iconChecked.gif | Bin 0 -> 257 bytes .../static/images/imgs/csh_scbrblue/iconFlag.gif | Bin 0 -> 248 bytes .../static/images/imgs/csh_scbrblue/iconGraph.gif | Bin 0 -> 250 bytes .../static/images/imgs/csh_scbrblue/iconSound.gif | Bin 0 -> 242 bytes .../static/images/imgs/csh_scbrblue/iconText.gif | Bin 0 -> 132 bytes .../static/images/imgs/csh_scbrblue/iconTexts.gif | Bin 0 -> 139 bytes .../images/imgs/csh_scbrblue/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_scbrblue/iconUncheckDis.gif | Bin 0 -> 268 bytes .../static/images/imgs/csh_scbrblue/iconWrite1.gif | Bin 0 -> 276 bytes .../static/images/imgs/csh_scbrblue/iconWrite2.gif | Bin 0 -> 270 bytes .../static/images/imgs/csh_scbrblue/leaf.gif | Bin 0 -> 237 bytes .../static/images/imgs/csh_scbrblue/line.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_scbrblue/line1.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_scbrblue/line2.gif | Bin 0 -> 70 bytes .../static/images/imgs/csh_scbrblue/line3.gif | Bin 0 -> 73 bytes .../static/images/imgs/csh_scbrblue/line4.gif | Bin 0 -> 69 bytes .../static/images/imgs/csh_scbrblue/lock.gif | Bin 0 -> 116 bytes .../static/images/imgs/csh_scbrblue/minus.gif | Bin 0 -> 85 bytes .../static/images/imgs/csh_scbrblue/minus2.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_scbrblue/minus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_scbrblue/minus4.gif | Bin 0 -> 90 bytes .../static/images/imgs/csh_scbrblue/minus5.gif | Bin 0 -> 87 bytes .../static/images/imgs/csh_scbrblue/plus.gif | Bin 0 -> 89 bytes .../static/images/imgs/csh_scbrblue/plus2.gif | Bin 0 -> 95 bytes .../static/images/imgs/csh_scbrblue/plus3.gif | Bin 0 -> 96 bytes .../static/images/imgs/csh_scbrblue/plus4.gif | Bin 0 -> 94 bytes .../static/images/imgs/csh_scbrblue/plus5.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_scbrblue/radio_off.gif | Bin 0 -> 249 bytes .../static/images/imgs/csh_scbrblue/radio_on.gif | Bin 0 -> 251 bytes .../static/images/imgs/csh_scbrblue/safe_close.gif | Bin 0 -> 259 bytes .../static/images/imgs/csh_scbrblue/safe_open.gif | Bin 0 -> 261 bytes .../funcweb/static/images/imgs/csh_vista/blank.gif | Bin 0 -> 56 bytes .../static/images/imgs/csh_vista/folderClosed.gif | Bin 0 -> 284 bytes .../static/images/imgs/csh_vista/folderOpen.gif | Bin 0 -> 277 bytes .../static/images/imgs/csh_vista/iconCheckAll.gif | Bin 0 -> 237 bytes .../static/images/imgs/csh_vista/iconCheckDis.gif | Bin 0 -> 237 bytes .../static/images/imgs/csh_vista/iconCheckGray.gif | Bin 0 -> 239 bytes .../static/images/imgs/csh_vista/iconChecked.gif | Bin 0 -> 281 bytes .../static/images/imgs/csh_vista/iconFlag.gif | Bin 0 -> 268 bytes .../static/images/imgs/csh_vista/iconGraph.gif | Bin 0 -> 274 bytes .../static/images/imgs/csh_vista/iconSound.gif | Bin 0 -> 305 bytes .../static/images/imgs/csh_vista/iconText.gif | Bin 0 -> 235 bytes .../static/images/imgs/csh_vista/iconTexts.gif | Bin 0 -> 246 bytes .../images/imgs/csh_vista/iconUncheckAll.gif | Bin 0 -> 233 bytes .../images/imgs/csh_vista/iconUncheckDis.gif | Bin 0 -> 232 bytes .../static/images/imgs/csh_vista/iconWrite1.gif | Bin 0 -> 270 bytes .../static/images/imgs/csh_vista/iconWrite2.gif | Bin 0 -> 270 bytes .../funcweb/static/images/imgs/csh_vista/leaf.gif | Bin 0 -> 251 bytes .../funcweb/static/images/imgs/csh_vista/line.gif | Bin 0 -> 71 bytes .../funcweb/static/images/imgs/csh_vista/line1.gif | Bin 0 -> 71 bytes .../funcweb/static/images/imgs/csh_vista/line2.gif | Bin 0 -> 70 bytes .../funcweb/static/images/imgs/csh_vista/line3.gif | Bin 0 -> 73 bytes .../funcweb/static/images/imgs/csh_vista/line4.gif | Bin 0 -> 69 bytes .../funcweb/static/images/imgs/csh_vista/lock.gif | Bin 0 -> 116 bytes .../funcweb/static/images/imgs/csh_vista/minus.gif | Bin 0 -> 131 bytes .../static/images/imgs/csh_vista/minus2.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_vista/minus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_vista/minus4.gif | Bin 0 -> 90 bytes .../static/images/imgs/csh_vista/minus5.gif | Bin 0 -> 87 bytes .../funcweb/static/images/imgs/csh_vista/plus.gif | Bin 0 -> 130 bytes .../funcweb/static/images/imgs/csh_vista/plus2.gif | Bin 0 -> 95 bytes .../funcweb/static/images/imgs/csh_vista/plus3.gif | Bin 0 -> 96 bytes .../funcweb/static/images/imgs/csh_vista/plus4.gif | Bin 0 -> 94 bytes .../funcweb/static/images/imgs/csh_vista/plus5.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_vista/radio_off.gif | Bin 0 -> 249 bytes .../static/images/imgs/csh_vista/radio_on.gif | Bin 0 -> 251 bytes .../static/images/imgs/csh_winstyle/blank.gif | Bin 0 -> 56 bytes .../images/imgs/csh_winstyle/folderClosed.gif | Bin 0 -> 245 bytes .../static/images/imgs/csh_winstyle/folderOpen.gif | Bin 0 -> 252 bytes .../images/imgs/csh_winstyle/iconCheckAll.gif | Bin 0 -> 275 bytes .../images/imgs/csh_winstyle/iconCheckDis.gif | Bin 0 -> 270 bytes .../images/imgs/csh_winstyle/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_winstyle/iconChecked.gif | Bin 0 -> 257 bytes .../static/images/imgs/csh_winstyle/iconFlag.gif | Bin 0 -> 269 bytes .../static/images/imgs/csh_winstyle/iconGraph.gif | Bin 0 -> 263 bytes .../static/images/imgs/csh_winstyle/iconSound.gif | Bin 0 -> 283 bytes .../static/images/imgs/csh_winstyle/iconText.gif | Bin 0 -> 228 bytes .../static/images/imgs/csh_winstyle/iconTexts.gif | Bin 0 -> 237 bytes .../images/imgs/csh_winstyle/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_winstyle/iconUncheckDis.gif | Bin 0 -> 268 bytes .../static/images/imgs/csh_winstyle/iconWrite1.gif | Bin 0 -> 275 bytes .../static/images/imgs/csh_winstyle/iconWrite2.gif | Bin 0 -> 270 bytes .../static/images/imgs/csh_winstyle/leaf.gif | Bin 0 -> 219 bytes .../static/images/imgs/csh_winstyle/leaves.gif | Bin 0 -> 227 bytes .../static/images/imgs/csh_winstyle/line.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_winstyle/line1.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_winstyle/line2.gif | Bin 0 -> 68 bytes .../static/images/imgs/csh_winstyle/line3.gif | Bin 0 -> 73 bytes .../static/images/imgs/csh_winstyle/line4.gif | Bin 0 -> 63 bytes .../static/images/imgs/csh_winstyle/lock.gif | Bin 0 -> 116 bytes .../static/images/imgs/csh_winstyle/minus.gif | Bin 0 -> 78 bytes .../static/images/imgs/csh_winstyle/minus2.gif | Bin 0 -> 86 bytes .../static/images/imgs/csh_winstyle/minus3.gif | Bin 0 -> 88 bytes .../static/images/imgs/csh_winstyle/minus4.gif | Bin 0 -> 85 bytes .../static/images/imgs/csh_winstyle/minus5.gif | Bin 0 -> 81 bytes .../static/images/imgs/csh_winstyle/plus.gif | Bin 0 -> 82 bytes .../static/images/imgs/csh_winstyle/plus2.gif | Bin 0 -> 89 bytes .../static/images/imgs/csh_winstyle/plus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_winstyle/plus4.gif | Bin 0 -> 88 bytes .../static/images/imgs/csh_winstyle/plus5.gif | Bin 0 -> 83 bytes .../static/images/imgs/csh_winstyle/radio_off.gif | Bin 0 -> 249 bytes .../static/images/imgs/csh_winstyle/radio_on.gif | Bin 0 -> 251 bytes .../static/images/imgs/csh_yellowbooks/blank.gif | Bin 0 -> 56 bytes .../images/imgs/csh_yellowbooks/books_close.gif | Bin 0 -> 284 bytes .../images/imgs/csh_yellowbooks/books_open.gif | Bin 0 -> 236 bytes .../images/imgs/csh_yellowbooks/folderClosed.gif | Bin 0 -> 284 bytes .../images/imgs/csh_yellowbooks/folderOpen.gif | Bin 0 -> 273 bytes .../images/imgs/csh_yellowbooks/iconCheckAll.gif | Bin 0 -> 275 bytes .../images/imgs/csh_yellowbooks/iconCheckDis.gif | Bin 0 -> 270 bytes .../images/imgs/csh_yellowbooks/iconCheckGray.gif | Bin 0 -> 279 bytes .../images/imgs/csh_yellowbooks/iconText.gif | Bin 0 -> 129 bytes .../images/imgs/csh_yellowbooks/iconUncheckAll.gif | Bin 0 -> 279 bytes .../images/imgs/csh_yellowbooks/iconUncheckDis.gif | Bin 0 -> 268 bytes .../static/images/imgs/csh_yellowbooks/leaf.gif | Bin 0 -> 284 bytes .../static/images/imgs/csh_yellowbooks/leaf2.gif | Bin 0 -> 236 bytes .../static/images/imgs/csh_yellowbooks/leaf3.gif | Bin 0 -> 284 bytes .../static/images/imgs/csh_yellowbooks/leaf_2.gif | Bin 0 -> 284 bytes .../static/images/imgs/csh_yellowbooks/line.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_yellowbooks/line1.gif | Bin 0 -> 71 bytes .../static/images/imgs/csh_yellowbooks/line2.gif | Bin 0 -> 70 bytes .../static/images/imgs/csh_yellowbooks/line3.gif | Bin 0 -> 73 bytes .../static/images/imgs/csh_yellowbooks/line4.gif | Bin 0 -> 69 bytes .../static/images/imgs/csh_yellowbooks/lock.gif | Bin 0 -> 116 bytes .../static/images/imgs/csh_yellowbooks/minus.gif | Bin 0 -> 85 bytes .../static/images/imgs/csh_yellowbooks/minus2.gif | Bin 0 -> 92 bytes .../static/images/imgs/csh_yellowbooks/minus3.gif | Bin 0 -> 93 bytes .../static/images/imgs/csh_yellowbooks/minus4.gif | Bin 0 -> 90 bytes .../static/images/imgs/csh_yellowbooks/minus5.gif | Bin 0 -> 87 bytes .../static/images/imgs/csh_yellowbooks/plus.gif | Bin 0 -> 89 bytes .../static/images/imgs/csh_yellowbooks/plus2.gif | Bin 0 -> 95 bytes .../static/images/imgs/csh_yellowbooks/plus3.gif | Bin 0 -> 96 bytes .../static/images/imgs/csh_yellowbooks/plus4.gif | Bin 0 -> 94 bytes .../static/images/imgs/csh_yellowbooks/plus5.gif | Bin 0 -> 92 bytes .../images/imgs/csh_yellowbooks/radio_off.gif | Bin 0 -> 249 bytes .../images/imgs/csh_yellowbooks/radio_on.gif | Bin 0 -> 251 bytes .../static/images/imgs/csh_yellowbooks/tombs.gif | Bin 0 -> 259 bytes .../images/imgs/csh_yellowbooks/tombs_open.gif | Bin 0 -> 261 bytes .../funcweb/static/images/imgs/folderClosed.gif | Bin 0 -> 135 bytes funcweb/funcweb/static/images/imgs/folderOpen.gif | Bin 0 -> 139 bytes .../funcweb/static/images/imgs/iconCheckAll.gif | Bin 0 -> 123 bytes .../funcweb/static/images/imgs/iconCheckDis.gif | Bin 0 -> 126 bytes .../funcweb/static/images/imgs/iconCheckGray.gif | Bin 0 -> 126 bytes .../funcweb/static/images/imgs/iconUncheckAll.gif | Bin 0 -> 111 bytes .../funcweb/static/images/imgs/iconUncheckDis.gif | Bin 0 -> 117 bytes funcweb/funcweb/static/images/imgs/leaf.gif | Bin 0 -> 123 bytes funcweb/funcweb/static/images/imgs/line.gif | Bin 0 -> 71 bytes funcweb/funcweb/static/images/imgs/line1.gif | Bin 0 -> 71 bytes funcweb/funcweb/static/images/imgs/line1_rtl.gif | Bin 0 -> 64 bytes funcweb/funcweb/static/images/imgs/line2.gif | Bin 0 -> 70 bytes funcweb/funcweb/static/images/imgs/line2_rtl.gif | Bin 0 -> 64 bytes funcweb/funcweb/static/images/imgs/line3.gif | Bin 0 -> 73 bytes funcweb/funcweb/static/images/imgs/line3_rtl.gif | Bin 0 -> 67 bytes funcweb/funcweb/static/images/imgs/line4.gif | Bin 0 -> 69 bytes funcweb/funcweb/static/images/imgs/line4_rtl.gif | Bin 0 -> 64 bytes funcweb/funcweb/static/images/imgs/lock.gif | Bin 0 -> 116 bytes funcweb/funcweb/static/images/imgs/minus.gif | Bin 0 -> 85 bytes funcweb/funcweb/static/images/imgs/minus2.gif | Bin 0 -> 92 bytes funcweb/funcweb/static/images/imgs/minus2_rtl.gif | Bin 0 -> 84 bytes funcweb/funcweb/static/images/imgs/minus3.gif | Bin 0 -> 93 bytes funcweb/funcweb/static/images/imgs/minus3_rtl.gif | Bin 0 -> 85 bytes funcweb/funcweb/static/images/imgs/minus4.gif | Bin 0 -> 90 bytes funcweb/funcweb/static/images/imgs/minus4_rtl.gif | Bin 0 -> 85 bytes funcweb/funcweb/static/images/imgs/minus5.gif | Bin 0 -> 87 bytes funcweb/funcweb/static/images/imgs/minus5_rtl.gif | Bin 0 -> 82 bytes funcweb/funcweb/static/images/imgs/minus_ar.gif | Bin 0 -> 68 bytes funcweb/funcweb/static/images/imgs/plus.gif | Bin 0 -> 89 bytes funcweb/funcweb/static/images/imgs/plus2.gif | Bin 0 -> 95 bytes funcweb/funcweb/static/images/imgs/plus2_rtl.gif | Bin 0 -> 88 bytes funcweb/funcweb/static/images/imgs/plus3.gif | Bin 0 -> 96 bytes funcweb/funcweb/static/images/imgs/plus3_rtl.gif | Bin 0 -> 89 bytes funcweb/funcweb/static/images/imgs/plus4.gif | Bin 0 -> 94 bytes funcweb/funcweb/static/images/imgs/plus4_rtl.gif | Bin 0 -> 89 bytes funcweb/funcweb/static/images/imgs/plus5.gif | Bin 0 -> 92 bytes funcweb/funcweb/static/images/imgs/plus5_rtl.gif | Bin 0 -> 87 bytes funcweb/funcweb/static/images/imgs/plus_ar.gif | Bin 0 -> 70 bytes funcweb/funcweb/static/images/imgs/radio_off.gif | Bin 0 -> 241 bytes funcweb/funcweb/static/images/imgs/radio_on.gif | Bin 0 -> 361 bytes funcweb/funcweb/static/javascript/dhtmlxcommon.js | 643 ++++ funcweb/funcweb/static/javascript/dhtmlxtree.js | 3742 ++++++++++++++++++++ .../static/javascript/ext/dhtmlxtree_dragin.js | 75 + .../funcweb/static/javascript/ext/dhtmlxtree_ed.js | 189 + .../funcweb/static/javascript/ext/dhtmlxtree_er.js | 80 + .../static/javascript/ext/dhtmlxtree_json.js | 216 ++ .../static/javascript/ext/dhtmlxtree_start.js | 101 + funcweb/funcweb/templates/master.html | 14 +- 306 files changed, 5120 insertions(+), 1 deletion(-) create mode 100644 funcweb/funcweb/static/css/dhtmlxtree.css create mode 100644 funcweb/funcweb/static/images/imgs/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/but_cut.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/book.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/book_titel.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/but_cut.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/close2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconChecked.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconSafe.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line1_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/line4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluebooks/tombs.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll_2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconChecked.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconFlag.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconGraph.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconSound.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconTexts.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/tombs.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_books/tombs_open.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconChecked.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconFlag.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconGraph.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconSound.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconTexts.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_close.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_open.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconChecked.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconFlag.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconGraph.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconSound.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconTexts.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconWrite1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/iconWrite2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_vista/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconChecked.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconFlag.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconGraph.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconSound.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconTexts.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/leaves.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_winstyle/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/blank.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_close.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_open.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconText.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf_2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_on.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs.gif create mode 100644 funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs_open.gif create mode 100644 funcweb/funcweb/static/images/imgs/folderClosed.gif create mode 100644 funcweb/funcweb/static/images/imgs/folderOpen.gif create mode 100644 funcweb/funcweb/static/images/imgs/iconCheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/iconCheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/iconCheckGray.gif create mode 100644 funcweb/funcweb/static/images/imgs/iconUncheckAll.gif create mode 100644 funcweb/funcweb/static/images/imgs/iconUncheckDis.gif create mode 100644 funcweb/funcweb/static/images/imgs/leaf.gif create mode 100644 funcweb/funcweb/static/images/imgs/line.gif create mode 100644 funcweb/funcweb/static/images/imgs/line1.gif create mode 100644 funcweb/funcweb/static/images/imgs/line1_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/line2.gif create mode 100644 funcweb/funcweb/static/images/imgs/line2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/line3.gif create mode 100644 funcweb/funcweb/static/images/imgs/line3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/line4.gif create mode 100644 funcweb/funcweb/static/images/imgs/line4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/lock.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus5_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/minus_ar.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus2.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus2_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus3.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus3_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus4.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus4_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus5.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus5_rtl.gif create mode 100644 funcweb/funcweb/static/images/imgs/plus_ar.gif create mode 100644 funcweb/funcweb/static/images/imgs/radio_off.gif create mode 100644 funcweb/funcweb/static/images/imgs/radio_on.gif create mode 100644 funcweb/funcweb/static/javascript/dhtmlxcommon.js create mode 100644 funcweb/funcweb/static/javascript/dhtmlxtree.js create mode 100644 funcweb/funcweb/static/javascript/ext/dhtmlxtree_dragin.js create mode 100644 funcweb/funcweb/static/javascript/ext/dhtmlxtree_ed.js create mode 100644 funcweb/funcweb/static/javascript/ext/dhtmlxtree_er.js create mode 100644 funcweb/funcweb/static/javascript/ext/dhtmlxtree_json.js create mode 100644 funcweb/funcweb/static/javascript/ext/dhtmlxtree_start.js (limited to 'funcweb') diff --git a/funcweb/funcweb/static/css/dhtmlxtree.css b/funcweb/funcweb/static/css/dhtmlxtree.css new file mode 100644 index 0000000..b18efc5 --- /dev/null +++ b/funcweb/funcweb/static/css/dhtmlxtree.css @@ -0,0 +1,61 @@ +.defaultTreeTable{ + margin : 0px; + padding : 0px; + border : 0px; +} +.containerTableStyle { overflow : auto; position:relative; top:0; font-size : 12px;} +.containerTableStyleRTL span { direction: rtl; unicode-bidi: bidi-override; } +.containerTableStyleRTL { direction: rtl; overflow : auto; position:relative; top:0; font-size : 12px;} +.standartTreeRow{ font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow{ background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.dragAndDropRow{ background-color : navy; color:white; } +.standartTreeRow_lor{ text-decoration:underline; background-color : #FFFFF0; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } +.selectedTreeRow_lor{ text-decoration:underline; background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } + +.standartTreeImage{ width:18px; height:18px; overflow:hidden; border:0; padding:0; margin:0; +font-size:1px; } +.hiddenRow { width:1px; overflow:hidden; } +.dragSpanDiv,.dragSpanDiv td{ font-size : 12px; background-color:white; } + + +.selectionBox{ +background-color: #FFFFCC; +} +.selectionBar { + top:0; + background-color: Black; + position:absolute; + overflow:hidden; + height: 2px; + z-index : 11; +} + +.intreeeditRow{ + width:100%; font-size:8pt; height:16px; border:1px solid silver; padding:0; margin:0; + -moz-user-select: text; +} +.dhx_tree_textSign{ + font-size:8pt; + font-family:monospace; + width:21px; + color:black; + padding:0px; + margin:0px; + cursor:pointer; + text-align: center; +} +.dhx_tree_opacity{ + opacity:0; + -moz-opacity:0; + filter:alpha(opacity=0); +} +.dhx_bg_img_fix{ +width:18px; +height:18px; +background-repeat: no-repeat; +background-position: center; +background-position-x: center; +background-position-y: center; +} + + diff --git a/funcweb/funcweb/static/images/imgs/blank.gif b/funcweb/funcweb/static/images/imgs/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/but_cut.gif b/funcweb/funcweb/static/images/imgs/but_cut.gif new file mode 100644 index 0000000..942bd18 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/but_cut.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/blank.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/book.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/book.gif new file mode 100644 index 0000000..0634564 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/book.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/book_titel.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/book_titel.gif new file mode 100644 index 0000000..d2b49e9 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/book_titel.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/but_cut.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/but_cut.gif new file mode 100644 index 0000000..942bd18 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/but_cut.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/close2.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/close2.gif new file mode 100644 index 0000000..94c267d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/close2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderClosed.gif new file mode 100644 index 0000000..c9649b9 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderOpen.gif new file mode 100644 index 0000000..15e298b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconChecked.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconChecked.gif new file mode 100644 index 0000000..7688b11 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconChecked.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconSafe.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconSafe.gif new file mode 100644 index 0000000..5bd6fc0 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconSafe.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconText.gif new file mode 100644 index 0000000..a130c6e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/leaf.gif new file mode 100644 index 0000000..0634564 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line.gif new file mode 100644 index 0000000..931d591 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1.gif new file mode 100644 index 0000000..931d591 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1_rtl.gif new file mode 100644 index 0000000..b2466f6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line1_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2.gif new file mode 100644 index 0000000..6b38bd5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2_rtl.gif new file mode 100644 index 0000000..2ac45c5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3.gif new file mode 100644 index 0000000..8ed13c6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3_rtl.gif new file mode 100644 index 0000000..7e259a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4.gif new file mode 100644 index 0000000..7d59525 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4_rtl.gif new file mode 100644 index 0000000..61536a8 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/line4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/lock.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus.gif new file mode 100644 index 0000000..8742cbc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2.gif new file mode 100644 index 0000000..eb2ebae Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2_rtl.gif new file mode 100644 index 0000000..7dbdc0f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3.gif new file mode 100644 index 0000000..6d2f0f3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3_rtl.gif new file mode 100644 index 0000000..61e00f2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4.gif new file mode 100644 index 0000000..0acf2ce Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4_rtl.gif new file mode 100644 index 0000000..2e1e281 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5.gif new file mode 100644 index 0000000..b00c9d6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5_rtl.gif new file mode 100644 index 0000000..05f7791 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/minus5_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus.gif new file mode 100644 index 0000000..d84193e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2.gif new file mode 100644 index 0000000..aa2fdd0 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2_rtl.gif new file mode 100644 index 0000000..4a37768 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3.gif new file mode 100644 index 0000000..afecbf7 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3_rtl.gif new file mode 100644 index 0000000..0462010 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4.gif new file mode 100644 index 0000000..3467f99 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4_rtl.gif new file mode 100644 index 0000000..bdbf2d8 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5.gif new file mode 100644 index 0000000..7f50af7 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5_rtl.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5_rtl.gif new file mode 100644 index 0000000..a336987 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/plus5_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluebooks/tombs.gif b/funcweb/funcweb/static/images/imgs/csh_bluebooks/tombs.gif new file mode 100644 index 0000000..312ac91 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluebooks/tombs.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/blank.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderClosed.gif new file mode 100644 index 0000000..fde725c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderOpen.gif new file mode 100644 index 0000000..7375283 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll_2.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll_2.gif new file mode 100644 index 0000000..aed4629 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckAll_2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconChecked.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconChecked.gif new file mode 100644 index 0000000..7688b11 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconChecked.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconFlag.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconFlag.gif new file mode 100644 index 0000000..db85ef8 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconFlag.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconGraph.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconGraph.gif new file mode 100644 index 0000000..96fd208 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconGraph.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconSound.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconSound.gif new file mode 100644 index 0000000..a10dcdb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconSound.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconText.gif new file mode 100644 index 0000000..1c0d179 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconTexts.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconTexts.gif new file mode 100644 index 0000000..1feed5c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconTexts.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite1.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite1.gif new file mode 100644 index 0000000..0e27343 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite2.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite2.gif new file mode 100644 index 0000000..2dafad1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/iconWrite2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/leaf.gif new file mode 100644 index 0000000..8c50c6c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/line.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/line1.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/line2.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/line3.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/line4.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/lock.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus.gif new file mode 100644 index 0000000..ef04a54 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus.gif new file mode 100644 index 0000000..abb84bd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_bluefolders/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/blank.gif b/funcweb/funcweb/static/images/imgs/csh_books/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_books/folderClosed.gif new file mode 100644 index 0000000..e4bd9d6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_books/folderOpen.gif new file mode 100644 index 0000000..020ce72 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_books/leaf.gif new file mode 100644 index 0000000..b0ce63a Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/line.gif b/funcweb/funcweb/static/images/imgs/csh_books/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/line1.gif b/funcweb/funcweb/static/images/imgs/csh_books/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/line2.gif b/funcweb/funcweb/static/images/imgs/csh_books/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/line3.gif b/funcweb/funcweb/static/images/imgs/csh_books/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/line4.gif b/funcweb/funcweb/static/images/imgs/csh_books/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/lock.gif b/funcweb/funcweb/static/images/imgs/csh_books/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/minus.gif b/funcweb/funcweb/static/images/imgs/csh_books/minus.gif new file mode 100644 index 0000000..ef04a54 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_books/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_books/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_books/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_books/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/plus.gif b/funcweb/funcweb/static/images/imgs/csh_books/plus.gif new file mode 100644 index 0000000..abb84bd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_books/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_books/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_books/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_books/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_books/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_books/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/tombs.gif b/funcweb/funcweb/static/images/imgs/csh_books/tombs.gif new file mode 100644 index 0000000..25131ee Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/tombs.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_books/tombs_open.gif b/funcweb/funcweb/static/images/imgs/csh_books/tombs_open.gif new file mode 100644 index 0000000..25131ee Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_books/tombs_open.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/blank.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderClosed.gif new file mode 100644 index 0000000..b365ebd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderOpen.gif new file mode 100644 index 0000000..01f21be Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconChecked.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconChecked.gif new file mode 100644 index 0000000..7688b11 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconChecked.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconFlag.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconFlag.gif new file mode 100644 index 0000000..96abe56 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconFlag.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconGraph.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconGraph.gif new file mode 100644 index 0000000..928c2ea Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconGraph.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconSound.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconSound.gif new file mode 100644 index 0000000..5328b86 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconSound.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconText.gif new file mode 100644 index 0000000..f377914 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconTexts.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconTexts.gif new file mode 100644 index 0000000..aa4d0d5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconTexts.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite1.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite1.gif new file mode 100644 index 0000000..63be321 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite2.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite2.gif new file mode 100644 index 0000000..c761c8b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/iconWrite2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/leaf.gif new file mode 100644 index 0000000..abb8500 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/line.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/line1.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/line2.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/line3.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/line4.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/lock.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus.gif new file mode 100644 index 0000000..ef04a54 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus.gif new file mode 100644 index 0000000..abb84bd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_close.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_close.gif new file mode 100644 index 0000000..bcaa457 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_close.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_open.gif b/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_open.gif new file mode 100644 index 0000000..a351540 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_scbrblue/safe_open.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/blank.gif b/funcweb/funcweb/static/images/imgs/csh_vista/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_vista/folderClosed.gif new file mode 100644 index 0000000..6cba317 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_vista/folderOpen.gif new file mode 100644 index 0000000..a23e98e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckAll.gif new file mode 100644 index 0000000..e076d0e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckDis.gif new file mode 100644 index 0000000..5ce835c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckGray.gif new file mode 100644 index 0000000..e4df898 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconChecked.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconChecked.gif new file mode 100644 index 0000000..24b6835 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconChecked.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconFlag.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconFlag.gif new file mode 100644 index 0000000..2784d0f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconFlag.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconGraph.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconGraph.gif new file mode 100644 index 0000000..1b03efb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconGraph.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconSound.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconSound.gif new file mode 100644 index 0000000..11fe41c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconSound.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconText.gif new file mode 100644 index 0000000..d0cf49a Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconTexts.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconTexts.gif new file mode 100644 index 0000000..5b94f47 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconTexts.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckAll.gif new file mode 100644 index 0000000..5e64821 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckDis.gif new file mode 100644 index 0000000..71e8644 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite1.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite1.gif new file mode 100644 index 0000000..24687cb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite2.gif b/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite2.gif new file mode 100644 index 0000000..c69d6de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/iconWrite2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_vista/leaf.gif new file mode 100644 index 0000000..f101ba8 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/line.gif b/funcweb/funcweb/static/images/imgs/csh_vista/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/line1.gif b/funcweb/funcweb/static/images/imgs/csh_vista/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/line2.gif b/funcweb/funcweb/static/images/imgs/csh_vista/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/line3.gif b/funcweb/funcweb/static/images/imgs/csh_vista/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/line4.gif b/funcweb/funcweb/static/images/imgs/csh_vista/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/lock.gif b/funcweb/funcweb/static/images/imgs/csh_vista/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/minus.gif b/funcweb/funcweb/static/images/imgs/csh_vista/minus.gif new file mode 100644 index 0000000..2bf2b39 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_vista/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_vista/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_vista/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_vista/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/plus.gif b/funcweb/funcweb/static/images/imgs/csh_vista/plus.gif new file mode 100644 index 0000000..8f74758 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_vista/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_vista/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_vista/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_vista/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_vista/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_vista/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_vista/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_vista/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/blank.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/folderClosed.gif new file mode 100644 index 0000000..5f07acb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/folderOpen.gif new file mode 100644 index 0000000..9c6df7e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconChecked.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconChecked.gif new file mode 100644 index 0000000..7688b11 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconChecked.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconFlag.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconFlag.gif new file mode 100644 index 0000000..d40141b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconFlag.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconGraph.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconGraph.gif new file mode 100644 index 0000000..0dee8e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconGraph.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconSound.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconSound.gif new file mode 100644 index 0000000..ed1d0c2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconSound.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconText.gif new file mode 100644 index 0000000..f80329c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconTexts.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconTexts.gif new file mode 100644 index 0000000..f8fad8f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconTexts.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite1.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite1.gif new file mode 100644 index 0000000..99a2d76 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite2.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite2.gif new file mode 100644 index 0000000..d33c330 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/iconWrite2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/leaf.gif new file mode 100644 index 0000000..7aa24a6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/leaves.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/leaves.gif new file mode 100644 index 0000000..1e5140f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/leaves.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/line.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/line.gif new file mode 100644 index 0000000..f9db803 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/line1.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/line1.gif new file mode 100644 index 0000000..f9db803 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/line2.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/line2.gif new file mode 100644 index 0000000..8019049 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/line3.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/line3.gif new file mode 100644 index 0000000..9ff1084 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/line4.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/line4.gif new file mode 100644 index 0000000..15fa54e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/lock.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/minus.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus.gif new file mode 100644 index 0000000..398000f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus2.gif new file mode 100644 index 0000000..fb482e4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus3.gif new file mode 100644 index 0000000..3d99428 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus4.gif new file mode 100644 index 0000000..e90389c Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus5.gif new file mode 100644 index 0000000..ae8ef74 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/plus.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus.gif new file mode 100644 index 0000000..2a89621 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus2.gif new file mode 100644 index 0000000..000ad64 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus3.gif new file mode 100644 index 0000000..92cd8df Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus4.gif new file mode 100644 index 0000000..40fe33f Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus5.gif new file mode 100644 index 0000000..9e5bf61 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_winstyle/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/blank.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/blank.gif new file mode 100644 index 0000000..d7ae406 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/blank.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_close.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_close.gif new file mode 100644 index 0000000..e530246 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_close.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_open.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_open.gif new file mode 100644 index 0000000..d798506 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/books_open.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderClosed.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderClosed.gif new file mode 100644 index 0000000..097838d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderOpen.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderOpen.gif new file mode 100644 index 0000000..96be7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckAll.gif new file mode 100644 index 0000000..2671733 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckDis.gif new file mode 100644 index 0000000..53349a1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckGray.gif new file mode 100644 index 0000000..88137a3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconText.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconText.gif new file mode 100644 index 0000000..c5deed2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconText.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckAll.gif new file mode 100644 index 0000000..c4388e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckDis.gif new file mode 100644 index 0000000..174eff4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf.gif new file mode 100644 index 0000000..e530246 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf2.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf2.gif new file mode 100644 index 0000000..d798506 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf3.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf3.gif new file mode 100644 index 0000000..4fca896 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf_2.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf_2.gif new file mode 100644 index 0000000..4fca896 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/leaf_2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line1.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line2.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line3.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line4.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/lock.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus.gif new file mode 100644 index 0000000..ef04a54 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus2.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus3.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus4.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus5.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus.gif new file mode 100644 index 0000000..abb84bd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus2.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus3.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus4.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus5.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_off.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_off.gif new file mode 100644 index 0000000..b3baf66 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_on.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_on.gif new file mode 100644 index 0000000..476fbb3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/radio_on.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs.gif new file mode 100644 index 0000000..791daee Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs.gif differ diff --git a/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs_open.gif b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs_open.gif new file mode 100644 index 0000000..a3ff503 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/csh_yellowbooks/tombs_open.gif differ diff --git a/funcweb/funcweb/static/images/imgs/folderClosed.gif b/funcweb/funcweb/static/images/imgs/folderClosed.gif new file mode 100644 index 0000000..1ebe3c9 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/folderClosed.gif differ diff --git a/funcweb/funcweb/static/images/imgs/folderOpen.gif b/funcweb/funcweb/static/images/imgs/folderOpen.gif new file mode 100644 index 0000000..c193e86 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/folderOpen.gif differ diff --git a/funcweb/funcweb/static/images/imgs/iconCheckAll.gif b/funcweb/funcweb/static/images/imgs/iconCheckAll.gif new file mode 100644 index 0000000..d908992 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/iconCheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/iconCheckDis.gif b/funcweb/funcweb/static/images/imgs/iconCheckDis.gif new file mode 100644 index 0000000..6f0b1c7 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/iconCheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/iconCheckGray.gif b/funcweb/funcweb/static/images/imgs/iconCheckGray.gif new file mode 100644 index 0000000..cb54c0a Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/iconCheckGray.gif differ diff --git a/funcweb/funcweb/static/images/imgs/iconUncheckAll.gif b/funcweb/funcweb/static/images/imgs/iconUncheckAll.gif new file mode 100644 index 0000000..5e54ec5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/iconUncheckAll.gif differ diff --git a/funcweb/funcweb/static/images/imgs/iconUncheckDis.gif b/funcweb/funcweb/static/images/imgs/iconUncheckDis.gif new file mode 100644 index 0000000..eec88a7 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/iconUncheckDis.gif differ diff --git a/funcweb/funcweb/static/images/imgs/leaf.gif b/funcweb/funcweb/static/images/imgs/leaf.gif new file mode 100644 index 0000000..1cf40f1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/leaf.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line.gif b/funcweb/funcweb/static/images/imgs/line.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line1.gif b/funcweb/funcweb/static/images/imgs/line1.gif new file mode 100644 index 0000000..60f2ccb Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line1.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line1_rtl.gif b/funcweb/funcweb/static/images/imgs/line1_rtl.gif new file mode 100644 index 0000000..96db473 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line1_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line2.gif b/funcweb/funcweb/static/images/imgs/line2.gif new file mode 100644 index 0000000..f2d7bdd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line2_rtl.gif b/funcweb/funcweb/static/images/imgs/line2_rtl.gif new file mode 100644 index 0000000..5e6c6fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line3.gif b/funcweb/funcweb/static/images/imgs/line3.gif new file mode 100644 index 0000000..d718be2 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line3_rtl.gif b/funcweb/funcweb/static/images/imgs/line3_rtl.gif new file mode 100644 index 0000000..df7f5d8 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line4.gif b/funcweb/funcweb/static/images/imgs/line4.gif new file mode 100644 index 0000000..29285e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/line4_rtl.gif b/funcweb/funcweb/static/images/imgs/line4_rtl.gif new file mode 100644 index 0000000..6c97452 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/line4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/lock.gif b/funcweb/funcweb/static/images/imgs/lock.gif new file mode 100644 index 0000000..1d06b0d Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/lock.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus.gif b/funcweb/funcweb/static/images/imgs/minus.gif new file mode 100644 index 0000000..ef04a54 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus2.gif b/funcweb/funcweb/static/images/imgs/minus2.gif new file mode 100644 index 0000000..0372294 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus2_rtl.gif b/funcweb/funcweb/static/images/imgs/minus2_rtl.gif new file mode 100644 index 0000000..521c2bf Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus3.gif b/funcweb/funcweb/static/images/imgs/minus3.gif new file mode 100644 index 0000000..d928af6 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus3_rtl.gif b/funcweb/funcweb/static/images/imgs/minus3_rtl.gif new file mode 100644 index 0000000..837f7c3 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus4.gif b/funcweb/funcweb/static/images/imgs/minus4.gif new file mode 100644 index 0000000..30bc7de Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus4_rtl.gif b/funcweb/funcweb/static/images/imgs/minus4_rtl.gif new file mode 100644 index 0000000..6dd9fbe Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus5.gif b/funcweb/funcweb/static/images/imgs/minus5.gif new file mode 100644 index 0000000..e2e30fc Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus5_rtl.gif b/funcweb/funcweb/static/images/imgs/minus5_rtl.gif new file mode 100644 index 0000000..ae0885b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus5_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/minus_ar.gif b/funcweb/funcweb/static/images/imgs/minus_ar.gif new file mode 100644 index 0000000..4428ba1 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/minus_ar.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus.gif b/funcweb/funcweb/static/images/imgs/plus.gif new file mode 100644 index 0000000..abb84bd Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus2.gif b/funcweb/funcweb/static/images/imgs/plus2.gif new file mode 100644 index 0000000..ea2816e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus2.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus2_rtl.gif b/funcweb/funcweb/static/images/imgs/plus2_rtl.gif new file mode 100644 index 0000000..f1ba582 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus2_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus3.gif b/funcweb/funcweb/static/images/imgs/plus3.gif new file mode 100644 index 0000000..cd6967e Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus3.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus3_rtl.gif b/funcweb/funcweb/static/images/imgs/plus3_rtl.gif new file mode 100644 index 0000000..b8cad18 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus3_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus4.gif b/funcweb/funcweb/static/images/imgs/plus4.gif new file mode 100644 index 0000000..185bd9b Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus4.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus4_rtl.gif b/funcweb/funcweb/static/images/imgs/plus4_rtl.gif new file mode 100644 index 0000000..ce882e4 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus4_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus5.gif b/funcweb/funcweb/static/images/imgs/plus5.gif new file mode 100644 index 0000000..72fe4e5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus5.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus5_rtl.gif b/funcweb/funcweb/static/images/imgs/plus5_rtl.gif new file mode 100644 index 0000000..15455b5 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus5_rtl.gif differ diff --git a/funcweb/funcweb/static/images/imgs/plus_ar.gif b/funcweb/funcweb/static/images/imgs/plus_ar.gif new file mode 100644 index 0000000..d2fcaf0 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/plus_ar.gif differ diff --git a/funcweb/funcweb/static/images/imgs/radio_off.gif b/funcweb/funcweb/static/images/imgs/radio_off.gif new file mode 100644 index 0000000..27dc5f9 Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/radio_off.gif differ diff --git a/funcweb/funcweb/static/images/imgs/radio_on.gif b/funcweb/funcweb/static/images/imgs/radio_on.gif new file mode 100644 index 0000000..efd74ee Binary files /dev/null and b/funcweb/funcweb/static/images/imgs/radio_on.gif differ diff --git a/funcweb/funcweb/static/javascript/dhtmlxcommon.js b/funcweb/funcweb/static/javascript/dhtmlxcommon.js new file mode 100644 index 0000000..34def09 --- /dev/null +++ b/funcweb/funcweb/static/javascript/dhtmlxcommon.js @@ -0,0 +1,643 @@ +//v.1.6 build 80512 + +/* +Copyright DHTMLX LTD. http://www.dhtmlx.com +You allowed to use this component or parts of it under GPL terms +To use it on other terms or get Professional edition of the component please contact us at sales@dhtmlx.com +*/ + /** + * @desc: xmlLoader object + * @type: private + * @param: funcObject - xml parser function + * @param: object - jsControl object + * @param: async - sync/async mode (async by default) + * @param: rSeed - enable/disable random seed ( prevent IE caching) + * @topic: 0 + */ +function dtmlXMLLoaderObject(funcObject, dhtmlObject,async,rSeed){ + this.xmlDoc=""; + + if (typeof(async) != "undefined") + this.async = async; + else this.async = true; + + this.onloadAction=funcObject||null; + this.mainObject=dhtmlObject||null; + this.waitCall=null; + this.rSeed=rSeed||false; + return this; +}; + /** + * @desc: xml loading handler + * @type: private + * @param: dtmlObject - xmlLoader object + * @topic: 0 + */ + dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ + var once=true; + this.check=function (){ + if ((dhtmlObject)&&(dhtmlObject.onloadAction!=null)){ + if ((!dhtmlObject.xmlDoc.readyState)||(dhtmlObject.xmlDoc.readyState == 4)){ + if (!once) return; once=false; //IE 5 fix + dhtmlObject.onloadAction(dhtmlObject.mainObject,null,null,null,dhtmlObject); + if (dhtmlObject.waitCall) { dhtmlObject.waitCall(); dhtmlObject.waitCall=null; } + } + } + }; + return this.check; + }; + + /** + * @desc: return XML top node + * @param: tagName - top XML node tag name (not used in IE, required for Safari and Mozilla) + * @type: private + * @returns: top XML node + * @topic: 0 + */ + dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName,oldObj){ + if (this.xmlDoc.responseXML) { + var temp=this.xmlDoc.responseXML.getElementsByTagName(tagName); + var z=temp[0]; + }else + var z=this.xmlDoc.documentElement; + if (z){ + this._retry=false; + return z; + } + + if ((_isIE)&&(!this._retry)){ + //fall back to MS.XMLDOM + var xmlString=this.xmlDoc.responseText; + var oldObj=this.xmlDoc; + this._retry=true; + this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=false; + this.xmlDoc["loadXM"+"L"](xmlString); + + return this.getXMLTopNode(tagName,oldObj); + } + dhtmlxError.throwError("LoadXML","Incorrect XML",[(oldObj||this.xmlDoc),this.mainObject]); + return document.createElement("DIV"); + }; + + /** + * @desc: load XML from string + * @type: private + * @param: xmlString - xml string + * @topic: 0 + */ + dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ + { + try + { + var parser = new DOMParser(); + this.xmlDoc = parser.parseFromString(xmlString,"text/xml"); + } + catch(e){ + this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); + this.xmlDoc.async=this.async; + this.xmlDoc["loadXM"+"L"](xmlString); + } + } + + this.onloadAction(this.mainObject,null,null,null,this); + if (this.waitCall) { this.waitCall(); this.waitCall=null; } + } + /** + * @desc: load XML + * @type: private + * @param: filePath - xml file path + * @param: postMode - send POST request + * @param: postVars - list of vars for post request + * @topic: 0 + */ + dtmlXMLLoaderObject.prototype.loadXML=function(filePath,postMode,postVars,rpc){ + if (this.rSeed) filePath+=((filePath.indexOf("?")!=-1)?"&":"?")+"a_dhx_rSeed="+(new Date()).valueOf(); + this.filePath=filePath; + + if ((!_isIE)&&(window.XMLHttpRequest)) + this.xmlDoc = new XMLHttpRequest(); + else{ + + if (document.implementation && document.implementation.createDocument) + { + this.xmlDoc = document.implementation.createDocument("", "", null); + this.xmlDoc.onload = new this.waitLoadFunction(this); + this.xmlDoc.load(filePath); + return; + } + else + this.xmlDoc = new ActiveXObject("Microsoft.XMLHTTP"); + } + + + if (this.async) + this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); + this.xmlDoc.open(postMode?"POST":"GET",filePath,this.async); + if (rpc){ + this.xmlDoc.setRequestHeader("User-Agent", "dhtmlxRPC v0.1 (" + navigator.userAgent + ")"); + this.xmlDoc.setRequestHeader("Content-type", "text/xml"); + } else + if (postMode) this.xmlDoc.setRequestHeader('Content-type','application/x-www-form-urlencoded'); + this.xmlDoc.send(null||postVars); + + if (!this.async) (new this.waitLoadFunction(this))(); + + + }; + /** + * @desc: destructor, cleans used memory + * @type: private + * @topic: 0 + */ + dtmlXMLLoaderObject.prototype.destructor=function(){ + this.onloadAction=null; + this.mainObject=null; + this.xmlDoc=null; + return null; + } + + /** + * @desc: Call wrapper + * @type: private + * @param: funcObject - action handler + * @param: dhtmlObject - user data + * @returns: function handler + * @topic: 0 + */ +function callerFunction(funcObject,dhtmlObject){ + this.handler=function(e){ + if (!e) e=window.event; + funcObject(e,dhtmlObject); + return true; + }; + return this.handler; +}; + + /** + * @desc: Calculate absolute position of html object + * @type: private + * @param: htmlObject - html object + * @topic: 0 + */ +function getAbsoluteLeft(htmlObject){ + var xPos = htmlObject.offsetLeft; + var temp = htmlObject.offsetParent; + while (temp != null) { + xPos += temp.offsetLeft; + temp = temp.offsetParent; + } + return xPos; + } + /** + * @desc: Calculate absolute position of html object + * @type: private + * @param: htmlObject - html object + * @topic: 0 + */ +function getAbsoluteTop(htmlObject) { + var yPos = htmlObject.offsetTop; + var temp = htmlObject.offsetParent; + while (temp != null) { + yPos += temp.offsetTop; + temp = temp.offsetParent; + } + return yPos; + } + + +/** +* @desc: Convert string to it boolean representation +* @type: private +* @param: inputString - string for covertion +* @topic: 0 +*/ +function convertStringToBoolean(inputString){ if (typeof(inputString)=="string") inputString=inputString.toLowerCase(); + switch(inputString){ + case "1": + case "true": + case "yes": + case "y": + case 1: + case true: + return true; + break; + default: return false; + } +} + +/** +* @desc: find out what symbol to use as url param delimiters in further params +* @type: private +* @param: str - current url string +* @topic: 0 +*/ +function getUrlSymbol(str){ + if(str.indexOf("?")!=-1) + return "&" + else + return "?" + } + + +function dhtmlDragAndDropObject(){ + if (window.dhtmlDragAndDrop) return window.dhtmlDragAndDrop; + this.lastLanding=0; + this.dragNode=0; + this.dragStartNode=0; + this.dragStartObject=0; + this.tempDOMU=null; + this.tempDOMM=null; + this.waitDrag=0; + window.dhtmlDragAndDrop=this; + + return this; + }; + + dhtmlDragAndDropObject.prototype.removeDraggableItem=function(htmlNode){ + htmlNode.onmousedown=null; + htmlNode.dragStarter=null; + htmlNode.dragLanding=null; + } + dhtmlDragAndDropObject.prototype.addDraggableItem=function(htmlNode,dhtmlObject){ + htmlNode.onmousedown=this.preCreateDragCopy; + htmlNode.dragStarter=dhtmlObject; + this.addDragLanding(htmlNode,dhtmlObject); + } + dhtmlDragAndDropObject.prototype.addDragLanding=function(htmlNode,dhtmlObject){ + htmlNode.dragLanding=dhtmlObject; + } + dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(e) + { + if (e && (e||event).button==2) return; + if (window.dhtmlDragAndDrop.waitDrag) { + window.dhtmlDragAndDrop.waitDrag=0; + document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU; + document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM; + return false; + } + + window.dhtmlDragAndDrop.waitDrag=1; + window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup; + window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove; + window.dhtmlDragAndDrop.dragStartNode=this; + window.dhtmlDragAndDrop.dragStartObject=this.dragStarter; + document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy; + document.body.onmousemove=window.dhtmlDragAndDrop.callDrag; + + if ((e)&&(e.preventDefault)) { e.preventDefault(); return false; } + return false; + }; + dhtmlDragAndDropObject.prototype.callDrag=function(e){ + if (!e) e=window.event; + dragger=window.dhtmlDragAndDrop; + + if ((e.button==0)&&(_isIE)) return dragger.stopDrag(); + if (!dragger.dragNode && dragger.waitDrag) { + dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode,e); + if (!dragger.dragNode) return dragger.stopDrag(); + dragger.gldragNode=dragger.dragNode; + document.body.appendChild(dragger.dragNode); + document.body.onmouseup=dragger.stopDrag; + dragger.waitDrag=0; + dragger.dragNode.pWindow=window; + dragger.initFrameRoute(); + } + + + if (dragger.dragNode.parentNode!=window.document.body){ + var grd=dragger.gldragNode; + if (dragger.gldragNode.old) grd=dragger.gldragNode.old; + + //if (!document.all) dragger.calculateFramePosition(); + grd.parentNode.removeChild(grd); + var oldBody=dragger.dragNode.pWindow; + // var oldp=dragger.dragNode.parentObject; + if (_isIE){ + var div=document.createElement("Div"); + div.innerHTML=dragger.dragNode.outerHTML; + dragger.dragNode=div.childNodes[0]; } + else dragger.dragNode=dragger.dragNode.cloneNode(true); + + dragger.dragNode.pWindow=window; + // dragger.dragNode.parentObject=oldp; + + dragger.gldragNode.old=dragger.dragNode; + document.body.appendChild(dragger.dragNode); + oldBody.dhtmlDragAndDrop.dragNode=dragger.dragNode; + } + + dragger.dragNode.style.left=e.clientX+15+(dragger.fx?dragger.fx*(-1):0)+(document.body.scrollLeft||document.documentElement.scrollLeft)+"px"; + dragger.dragNode.style.top=e.clientY+3+(dragger.fy?dragger.fy*(-1):0)+(document.body.scrollTop||document.documentElement.scrollTop)+"px"; + if (!e.srcElement) var z=e.target; else z=e.srcElement; + dragger.checkLanding(z,e); + } + + dhtmlDragAndDropObject.prototype.calculateFramePosition=function(n){ + //this.fx = 0, this.fy = 0; + if (window.name) { + var el =parent.frames[window.name].frameElement.offsetParent; + var fx=0; + var fy=0; + while (el) { fx += el.offsetLeft; fy += el.offsetTop; el = el.offsetParent; } + if ((parent.dhtmlDragAndDrop)) { var ls=parent.dhtmlDragAndDrop.calculateFramePosition(1); fx+=ls.split('_')[0]*1; fy+=ls.split('_')[1]*1; } + if (n) return fx+"_"+fy; + else this.fx=fx; this.fy=fy; + } + return "0_0"; + } + dhtmlDragAndDropObject.prototype.checkLanding=function(htmlObject,e){ + + if ((htmlObject)&&(htmlObject.dragLanding)) { + if (this.lastLanding) + this.lastLanding.dragLanding._dragOut(this.lastLanding); + this.lastLanding=htmlObject; + this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode,e.clientX, e.clientY,e); + this.lastLanding_scr=(_isIE?e.srcElement:e.target); + } + else { + if ((htmlObject)&&(htmlObject.tagName!="BODY")) this.checkLanding(htmlObject.parentNode,e); + else { + if (this.lastLanding) this.lastLanding.dragLanding._dragOut(this.lastLanding,e.clientX, e.clientY,e); this.lastLanding=0; + if (this._onNotFound) this._onNotFound(); + } + } + } + dhtmlDragAndDropObject.prototype.stopDrag=function(e,mode){ + dragger=window.dhtmlDragAndDrop; + if (!mode) + { + dragger.stopFrameRoute(); + var temp=dragger.lastLanding; + dragger.lastLanding=null; + if (temp) temp.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,temp,(_isIE?event.srcElement:e.target)); + } + dragger.lastLanding=null; + if ((dragger.dragNode)&&(dragger.dragNode.parentNode==document.body)) dragger.dragNode.parentNode.removeChild(dragger.dragNode); + dragger.dragNode=0; + dragger.gldragNode=0; + dragger.fx=0; + dragger.fy=0; + dragger.dragStartNode=0; + dragger.dragStartObject=0; + document.body.onmouseup=dragger.tempDOMU; + document.body.onmousemove=dragger.tempDOMM; + dragger.tempDOMU=null; + dragger.tempDOMM=null; + dragger.waitDrag=0; + } + + dhtmlDragAndDropObject.prototype.stopFrameRoute=function(win){ + if (win) + window.dhtmlDragAndDrop.stopDrag(1,1); + + for (var i=0; i 525){ //mimic FF behavior for Safari 3.1+ + + _isFF=true; + var _FFrv=1.9; + } else + _isKHTML=true; +} +else if (navigator.userAgent.indexOf('Opera') != -1){ + _isOpera=true; + _OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6,3)); + } +else if(navigator.appName.indexOf("Microsoft")!=-1) + _isIE=true; +else { + _isFF=true; + var _FFrv=parseFloat(navigator.userAgent.split("rv:")[1]) + } + +//deprecated, use global constant instead +//determines if current browser is IE +function isIE(){ + if(navigator.appName.indexOf("Microsoft")!=-1) + if (navigator.userAgent.indexOf('Opera') == -1) + return true; + return false; +} + +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPath = function(xpathExp,docObj,namespace,result_type){ + if ((_isKHTML)) return this.doXPathOpera(xpathExp,docObj); + if(_isIE){//IE + if(!docObj) + if(!this.xmlDoc.nodeName) + docObj = this.xmlDoc.responseXML + else + docObj = this.xmlDoc; + if (!docObj) dhtmlxError.throwError("LoadXML","Incorrect XML",[(docObj||this.xmlDoc),this.mainObject]); + + if(namespace!=null) + docObj.setProperty("SelectionNamespaces","xmlns:xsl='"+namespace+"'");// + if(result_type=='single'){ + return docObj.selectSingleNode(xpathExp); + }else{ + return docObj.selectNodes(xpathExp)||new Array(0); + } + }else{//Mozilla + var nodeObj = docObj; + if(!docObj){ + if(!this.xmlDoc.nodeName){ + docObj = this.xmlDoc.responseXML + }else{ + docObj = this.xmlDoc; + } + } + + if (!docObj) dhtmlxError.throwError("LoadXML","Incorrect XML",[(docObj||this.xmlDoc),this.mainObject]); + if(docObj.nodeName.indexOf("document")!=-1){ + nodeObj = docObj; + }else{ + nodeObj = docObj; + docObj = docObj.ownerDocument; + + } + var retType = XPathResult.ANY_TYPE; + if(result_type=='single') + retType = XPathResult.FIRST_ORDERED_NODE_TYPE + var rowsCol = new Array(); + var col = docObj.evaluate(xpathExp, nodeObj, function(pref){return namespace}, retType,null); + if(retType == XPathResult.FIRST_ORDERED_NODE_TYPE){ + return col.singleNodeValue ; + } + var thisColMemb = col.iterateNext(); + while (thisColMemb) { + rowsCol[rowsCol.length] = thisColMemb; + thisColMemb = col.iterateNext(); + } + return rowsCol; + } +} + + +function _dhtmlxError(type,name,params){ + if (!this.catches) + this.catches=new Array(); + + return this; +} + +_dhtmlxError.prototype.catchError=function(type,func_name){ + this.catches[type]=func_name; +} +_dhtmlxError.prototype.throwError=function(type,name,params){ + if (this.catches[type]) return this.catches[type](type,name,params); + if (this.catches["ALL"]) return this.catches["ALL"](type,name,params); + alert("Error type: " + arguments[0]+"\nDescription: " + arguments[1] ); + return null; +} + +window.dhtmlxError=new _dhtmlxError(); + + +//opera fake, while 9.0 not released +//multibrowser Xpath processor +dtmlXMLLoaderObject.prototype.doXPathOpera = function(xpathExp,docObj){ + //this is fake for Opera + var z=xpathExp.replace(/[\/]+/gi,"/").split('/'); + var obj=null; + var i=1; + + if (!z.length) return []; + if (z[0]==".") + obj=[docObj]; + else if (z[0]=="") + { + obj=(this.xmlDoc.responseXML||this.xmlDoc).getElementsByTagName(z[i].replace(/\[[^\]]*\]/g,"")); + i++; + } + else return []; + + for (i; i0) { beforeNode=new Object; beforeNode.tr=parentObject.childNodes[0].tr.previousSibling; } + parentObject._has_top=true; + for (ik=Count; ik>0; ik--) + Nodes[ik]=Nodes[ik-1]; + Count=0; + break; + } + }; + }; + + var n; + if (!(n=this._idpull[itemId]) || n.span!=-1){ + n=Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1); + itemId = Nodes[Count].id; + parentObject.childsCount++; + } + + if(!n.htmlNode) { + n.label=itemText; + n.htmlNode=this._createItem((this.checkBoxOff?1:0),n); + n.htmlNode.objBelong=n; + } + + if(image1) n.images[0]=image1; + if(image2) n.images[1]=image2; + if(image3) n.images[2]=image3; + + + var tr=this._drawNewTr(n.htmlNode); + if ((this.XMLloadingWarning)||(this._hAdI)) + n.htmlNode.parentNode.parentNode.style.display="none"; + + + if ((beforeNode)&&(beforeNode.tr.nextSibling)) + parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling); + else + if (this.parsingOn==parentObject.id){ + this.parsedArray[this.parsedArray.length]=tr; + } + else + parentObject.htmlNode.childNodes[0].appendChild(tr); + + + if ((beforeNode)&&(!beforeNode.span)) beforeNode=null; + + if (this.XMLsource) if ((childs)&&(childs!=0)) n.XMLload=0; else n.XMLload=1; + n.tr=tr; + tr.nodem=n; + + if (parentObject.itemId==0) + tr.childNodes[0].className="hiddenRow"; + + if ((parentObject._r_logic)||(this._frbtr)) + this._setSrc(n.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0],this.imPath+this.radioArray[0]); + + + if (optionStr) { + var tempStr=optionStr.split(","); + + for (var i=0; i=2) + { + this._correctPlus(Nodes[parentObject.childsCount-2]); + this._correctLine(Nodes[parentObject.childsCount-2]); + } + if (parentObject.childsCount!=2) this._correctPlus(Nodes[0]); + + if (this.tscheck) this._correctCheckStates(parentObject); + + if (this._onradh) { + if (this.xmlstate==1){ + var old=this.onXLE; + this.onXLE=function(id){ this._onradh(itemId); if (old) old(id); } + } + else + this._onradh(itemId); + } + + } + return n; +}; + + + + +/** +* @desc: create new node as a child to specified with parentId +* @type: deprecated +* @param: parentId - parent node id +* @param: itemId - new node id +* @param: itemText - new node text +* @param: itemActionHandler - function fired on node select event (optional) +* @param: image1 - image for node without children; (optional) +* @param: image2 - image for closed node; (optional) +* @param: image3 - image for opened node (optional) +* @param: optionStr - options string (optional) +* @param: children - node children flag (for dynamical trees) (optional) +* @topic: 2 +*/ + dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){ + var parentObject=this._globalIdStorageFind(parentId); + if (!parentObject) return (-1); + var nodez=this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children); + + return nodez; + }; +/** +* @desc: create new node as a child to specified with parentId +* @type: public +* @param: parentId - parent node id +* @param: itemId - new node id +* @param: itemText - new node label +* @param: itemActionHandler - function fired on node select event (optional) +* @param: image1 - image for node without children; (optional) +* @param: image2 - image for closed node; (optional) +* @param: image3 - image for opened node (optional) +* @param: optionStr - options string (optional) +* @param: children - node children flag (for dynamical trees) (optional) +* @topic: 2 +*/ + dhtmlXTreeObject.prototype.insertNewChild=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children){ + return this.insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,children); + } +/** +* @desc: parse xml +* @type: private +* @param: dhtmlObject - jsTree object +* @param: node - top XML node +* @param: parentId - parent node id +* @param: level - level of tree +* @topic: 2 +*/ + dhtmlXTreeObject.prototype._parseXMLTree=function(a,b,c,d,xml){ + var p=new xmlPointer(xml.getXMLTopNode("tree")); + a._parse(p); + a._p=p; + } + + dhtmlXTreeObject.prototype._parseItem=function(c,temp,preNode,befNode){ + var id; + if (this._srnd && (!this._idpull[id=c.get("id")] || !this._idpull[id].span)) + { + this._addItemSRND(temp.id,id,c); + return; + } + + var a=c.get_all(); + + if ((typeof(this.waitUpdateXML)=="object")&&(!this.waitUpdateXML[a.id])){ + this._parse(c,a.id,1); + return; + } + + + + + + + var zST=[]; + if (a.select) zST.push("SELECT"); + if (a.top) zST.push("TOP"); + if (a.call) this.nodeAskingCall=a.id; + if (a.checked==-1) zST.push("HCHECKED"); + else if (a.checked) zST.push("CHECKED"); + if (a.open) zST.push("OPEN"); + + if (this.waitUpdateXML){ + if (this._globalIdStorageFind(a.id)) + var newNode=this.updateItem(a.id,a.text,a.im0,a.im1,a.im2,a.checked); + else{ + if (this.npl==0) zST.push("TOP"); + else preNode=temp.childNodes[this.npl]; + + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,0,preNode); + preNode=null; + } + } + else + var newNode=this._attachChildNode(temp,a.id,a.text,0,a.im0,a.im1,a.im2,zST.join(","),a.child,(befNode||0),preNode); + if (a.tooltip) + + newNode.span.parentNode.parentNode.title=a.tooltip; + + if (a.style) + if (newNode.span.style.cssText) + newNode.span.style.cssText+=(";"+a.style); + else + newNode.span.setAttribute("style",newNode.span.getAttribute("style")+"; "+a.style); + + if (a.radio) newNode._r_logic=true; + + if (a.nocheckbox){ + newNode.span.parentNode.previousSibling.previousSibling.childNodes[0].style.display='none'; + newNode.nocheckbox=true; + } + if (a.disabled){ + if (a.checked!=null) this._setCheck(newNode,convertStringToBoolean(a.checked)); + this.disableCheckbox(newNode,1); + } + + + newNode._acc=a.child||0; + + if (this.parserExtension) this.parserExtension._parseExtension.call(this,c,a,(temp?temp.id:0)); + + this.setItemColor(newNode,a.aCol,a.sCol); + if (a.locked=="1") this.lockItem(newNode.id,true,true); + + if ((a.imwidth)||(a.imheight)) this.setIconSize(a.imwidth,a.imheight,newNode); + if ((a.closeable=="0")||(a.closeable=="1")) this.setItemCloseable(newNode,a.closeable); + var zcall=""; + if (a.topoffset) this.setItemTopOffset(newNode,a.topoffset); + if ((!this.slowParse)||(typeof(this.waitUpdateXML)=="object")){ + if (c.sub_exists("item")) + zcall=this._parse(c,a.id,1); + } + + if (zcall!="") this.nodeAskingCall=zcall; + + + c.each("userdata",function(u){ + this.setUserData(c.get("id"),u.get("name"),u.content()); + },this) + + + } + dhtmlXTreeObject.prototype._parse=function(p,parentId,level,start){ + if (this._srnd && !this.parentObject.offsetHeight) { + var self=this; + return window.setTimeout(function(){ + self._parse(p,parentId,level,start); + },100); + } + if (!p.exists()) return; + + this.skipLock=true; //disable item locking + //loading flags + + this.parsCount=this.parsCount?(this.parsCount+1):1; + this.XMLloadingWarning=1; + + + if (!parentId) { //top level + parentId=p.get("id"); + if (p.get("radio")) + this.htmlNode._r_logic=true; + this.parsingOn=parentId; + this.parsedArray=new Array(); + this.setCheckList=""; + this.nodeAskingCall=""; + } + + var temp=this._globalIdStorageFind(parentId); + if (!temp) return dhtmlxError.throwError("DataStructure","XML reffers to not existing parent"); + + if ((temp.childsCount)&&(!start)&&(!this._edsbps)&&(!temp._has_top)) + var preNode=temp.childNodes[temp.childsCount-1]; + else + var preNode=0; + + this.npl=0; + + p.each("item",function(c,i){ + + temp.XMLload=1; + if ((this._epgps)&&(this._epgpsC==this.npl)){ + this._setNextPageSign(temp,this.npl+1*(start||0),level,node); + return -1; + } + + this._parseItem(c,temp,preNode); + + + this.npl++; + + + + },this,start); + + + if (!level) { + p.each("userdata",function(u){ + this.setUserData(p.get("id"),u.get("name"),u.content()); + },this); + + temp.XMLload=1; + if (this.waitUpdateXML){ + this.waitUpdateXML=false; + for (var i=temp.childsCount-1; i>=0; i--) + if (temp.childNodes[i]._dmark) + this.deleteItem(temp.childNodes[i].id); + } + + var parsedNodeTop=this._globalIdStorageFind(this.parsingOn); + + for (var i=0; i1){ + if ( ( (Nodes[1].style.display!="none") || (mode==1) ) && (mode!=2) ) { +//nb:solves standard doctype prb in IE + this.allTree.childNodes[0].border = "1"; + this.allTree.childNodes[0].border = "0"; + nodestyle="none"; + } + else nodestyle=""; + + for (var i=1; i=2) + { + + this._correctPlus(Nodes[targetObject.childsCount-2]); + this._correctLine(Nodes[targetObject.childsCount-2]); + } + + this._correctPlus(Nodes[targetObject.childsCount-1]); + //this._correctLine(Nodes[targetObject.childsCount-1]); + + + if (this.tscheck) this._correctCheckStates(targetObject); + if (oldTree.tscheck) oldTree._correctCheckStates(z); + + } + + //fix source parent + + if (c>1) { oldTree._correctPlus(z.childNodes[c-2]); + oldTree._correctLine(z.childNodes[c-2]); + } + + +// if (z.childsCount==0) + oldTree._correctPlus(z); + oldTree._correctLine(z); + + + this.callEvent("onDrop",[itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),oldTree,targetObject.treeNod]); + return itemObject.id; + }; + + + +/** +* @desc: recursive set default styles for node +* @type: private +* @param: itemObject - target node object +* @topic: 6 +*/ + dhtmlXTreeObject.prototype._clearStyles=function(itemObject){ + if (!itemObject.htmlNode) return; //some weird case in SRND mode + var td1=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1]; + var td3=td1.nextSibling.nextSibling; + + itemObject.span.innerHTML=itemObject.label; + itemObject.i_sel=false; + + if (itemObject._aimgs) + this.dragger.removeDraggableItem(td1.nextSibling); + + if (this.checkBoxOff) { + td1.childNodes[0].style.display=""; + td1.childNodes[0].onclick=this.onCheckBoxClick; + this._setSrc(td1.childNodes[0],this.imPath+this.checkArray[itemObject.checkstate]); + } + else td1.childNodes[0].style.display="none"; + td1.childNodes[0].treeNod=this; + + this.dragger.removeDraggableItem(td3); + if (this.dragAndDropOff) this.dragger.addDraggableItem(td3,this); + if (this._aimgs) this.dragger.addDraggableItem(td1.nextSibling,this); + + td3.childNodes[0].className="standartTreeRow"; + td3.onclick=this.onRowSelect; td3.ondblclick=this.onRowClick2; + td1.previousSibling.onclick=this.onRowClick; + + this._correctLine(itemObject); + this._correctPlus(itemObject); + for (var i=0; i