
/*
	"Hemi" JavaScript Framework
	Engine for Web Applications 3.1
	Composite file "hemi.comp.js" release: 3.1.9
	Copyright 2002 - 2010. All Rights Reserved.
	Author: Stephen W. Cote
	Email: sw.cote@gmail.com
	Project: http://www.whitefrost.com/Hemi/
	BSD License: http://www.whitefrost.com/Hemi.license.txt
*/
(function(){H.include("hemi.event");H.namespace("ui.wideselect",H,{newInstance:
function(o,h,ph){var n=H.newObject("wideselect","3.1.9");if(!D.TO(o))o=document.body;n.o={p:o,c:0,b:[],r:[],rh:[],h:h,ph:ph,a:null,v:[],g:[],s:[],qr:[],qo:0};n.p={m:0,buffered:1,auto_commit:1,is_commit:0,buffer_delay:20,buffer_step:10,auto_scroll:0,auto_select:0,maximum_items:100,maximum_rollover:1,item_id_counter:0,multiple:0,is_paging:0,current_page:0,maximum_page_size:0,maximum_page_items:200,page_marker:0,page_stop:0,page_hashing:1,is_requested:0,can_request:0,cc:"wideselect_container",class_item:"wideselect_item",class_item_blocked:"wideselect_item_blocked",class_item_hover:"wideselect_item_hover",class_item_active:"wideselect_item_active"};n.setMultiple=function(b){this.p.multiple=(b?1:0);this.deselectAllItems();};n.getMultiple=function(){return(this.p.multiple?true:false);};n.setMaximumItems=function(i){this.p.maximum_items=i;};n.getMaximumItems=function(){return this.p.maximum_items;};n.setMaximumPageItems=function(i){this.p.maximum_page_items=i;};n.getMaximumPageItems=function(){return this.p.maximum_page_items;};n.getCurrentPageItemCount=function(){var t=this,_p,_s;_p=t.o;_s=t.p;if(!D.TO(_p.g[_s.current_page]))_p.g[_s.current_page]=[];return _p.g[_s.current_page].length;};n.getContainer=function(){return this.o.c;};n.getBufferMark=function(){return this.p.m;};n.setResultHandler=function(f){this.o.h=f;};n.getBufferSize=function(){return this.o.b.length;};n.getItemSize=function(){return this.o.r.length;};n.getItems=function(){return this.o.r;};n.getItem=function(i){return this.o.r[i];};n.getActiveItem=function(){var c=this.o;if(c.a){return c.r[c.rh[c.a.getAttribute("rid")]]}return null;};n.setCanRequest=function(b){this.p.can_request=b;};n.setIsPaging=function(i){this.p.is_paging=(i?1:0);this.clearPagingValues();};n.getIsPaging=function(){return this.p.is_paging;};n.setPageStop=function(b){this.p.page_stop=(b?1:0);};n.getPageStop=function(){return this.p.page_stop;};n.setAutoCommit=function(b){this.p.auto_commit=b;};n.setAutoScroll=function(b){this.p.auto_scroll=b;};n.setAutoSelect=function(b){this.p.auto_select=b;};n.setMaximumRollover=function(b){this.p.maximum_rollover=b;};n.deselectAllItems=function(){var a,_p=this.o,i=0,l;a=_p.r;l=a.length;_p.v=[];_p.a=null;for(;i<l;i++){a[i].object.className=this.p.class_item;}};n.init=function(){var t=this,v,d,_m=H.message.service,_d=H.event,c,_p;_p=t.o;d=document.createElement("div");d.setAttribute("avoid","1");_p.p.appendChild(d);d.className=t.p.cc;_d.addScopeBuffer(t);t.scopeHandler("buffer_check",0,0,1);t.scopeHandler("commit_buffer",0,0,1);t.scopeHandler("mouseover",0,0,1);t.scopeHandler("mouseout",0,0,1);t.scopeHandler("click",0,0,1);_d.addEventListener(d,"mouseover",t._prehandle_mouseover,0);_d.addEventListener(d,"mouseout",t._prehandle_mouseout,0);_d.addEventListener(d,"click",t._prehandle_click,0);_m.subscribe(t,"destroy","HWD",window);_p.c=d;t.r=4;};n.HWD=function(){this.destroy();};n.setIsBuffered=function(b){var t=this,c;t.p.buffered=b;t.p.m=0;t.o.b=[];};n.setBufferOffset=function(i){this.p.buffer_step=i;};n.setBufferDelay=function(i){this.p.buffer_delay=i;};n.destroy=function(){var t=this,c_p;_p=t.o;if(t.r==4){t.clearItems();_p.b=[];_p.p.removeChild(_p.c);H.registry.service.removeObject(t);}t.r=0;};n.addItem=function(s,d){var t=this,c,_p;_p=t.o;if(t.r!=4)return;if(t.p.buffered){_p.b[_p.b.length]={name:s,data:d};if(t.p.auto_commit&&!t.p.is_commit){window.setTimeout(t._prehandle_buffer_check,t.p.buffer_delay);}}else{t._addItem(s,d);}};n._handle_buffer_check=function(){var t=this,c;if(t.p.auto_commit&&!t.p.is_commit){t._handle_commit_buffer();}};n.commitBuffer=function(){this._handle_commit_buffer();};n._handle_commit_buffer=function(){var t=this,c,l,b,m,i,v,_p;_p=t.o;t.p.is_commit=1;l=_p.b.length;b=false;m=t.p.m;for(i=m;i<(m+t.p.buffer_step);i++){if(i>=l){b=true;break;}v=_p.b[i];t._addItem(v.name,v.data);t.p.m++;}if(b){t.p.m=0;_p.b=[];t.p.is_commit=0;H.message.service.publish("onbuffercommitted",t);}else{window.setTimeout(t._prehandle_commit_buffer,t.p.buffer_delay);}};n.pageItem=function(s,d){var t=this,_p,_s,page_size,l,v={name:s,data:d};_p=t.o;_s=t.p;page_size=_s.maximum_page_size;if(_s.is_paging){if(!D.TO(_p.g[page_size]))_p.g[page_size]=[];l=_p.g[page_size].length;if(l>=_s.maximum_page_items){page_size=(++_s.maximum_page_size);if(!D.TO(_p.g[page_size]))_p.g[page_size]=[];l=_p.g[page_size].length;}if(_s.page_hashing)_p.s[d.id]=1;_p.g[page_size][l]=v;}};n.updatePage=function(){var t=this,_p=this.o,_s=this.p,a,b,i,p,c,o;if(!_s.is_paging)return 0;c=_s.current_page;p=_s.maximum_page_size;t.clearItems();if(D.TO(_p.g[c])){for(i=0;i<_p.g[c].length;i++){o=_p.g[c][i];if(_s.page_hashing&&o.data&&o.data.id&&_p.qr[o.data.id])_p.s[o.data.id]=0;t.addItem(o.name,o.data);}}else{t.addItem("Paging Error at Page #"+c,"_avoid");}};n._addItem=function(s,d){var t=this,e,i=H.guid(),v,l,_p,_s;_s=t.p;_p=t.o;l=_p.r.length;if(_s.maximum_items>0&&l>=_s.maximum_items){if(_s.maximum_rollover){t.clearItem(0);l--;}else{return;}}e=document.createElement("div");_p.c.appendChild(e);e.className=_s.class_item;if((D.TS(d)&&d!="_avoid")||(D.TO(d)&&d.value!="_avoid")){e.setAttribute("is-result-item","1");}e.setAttribute("rid",i);H.xml.setInnerXHTML(e,s,0,0,0,0,1);v={name:s,data:d,object:e,id:i,index:l};_p.r[l]=v;_p.rh[i]=l;if(_s.auto_select)t.setActiveItem(l);if(_s.auto_scroll)t.scrollToItem(l);};n._handle_mouseover=function(v){var t=this,o,e,_p,_s,l;_s=t.p;_p=t.o;if(D.TN(v))o=_p.r[v].object;else{e=H.event.getEvent(v);o=(!D.TU(v)&&v.nodeType)?v:H.event.getEventSource(v);if(o&&o.nodeType==3)o=o.parentNode;l=o;while(l){if(typeof l.getAttribute!=D.U&&l.getAttribute("is-result-item")){o=l;break;}l=l.parentNode;}}if(o.getAttribute("is-result-item")&&((_s.multiple&&!_p.v[o.getAttribute("rid")])||(!_s.multiple&&o!=_p.a))&&(!_s.is_paging||(_s.page_hashing&&_p.s[_p.r[_p.rh[o.getAttribute("rid")]].data.id]))){o.className=_s.class_item+" "+_s.class_item_hover;}};n._handle_mouseout=function(v){var t=this,o,e,_p,_s,l;_s=t.p;_p=t.o;e=H.event.getEvent(v);o=(!D.TU(v)&&v.nodeType)?v:H.event.getEventSource(v);if(o&&o.nodeType==3)o=o.parentNode;l=o;while(l){if(typeof l.getAttribute!=D.U&&l.getAttribute("is-result-item")){o=l;break;}l=l.parentNode;}if(o.getAttribute("is-result-item")&&((_s.multiple&&!_p.v[o.getAttribute("rid")])||(!_s.multiple&&o!=_p.a))&&(!_s.is_paging||(_s.page_hashing&&_p.s[_p.r[_p.rh[o.getAttribute("rid")]].data.id]))){o.className=_s.class_item;}};n.setActiveItem=function(i){this.selectItem(i,1);};n.selectItem=function(i,b){var t=this;if(t.o.r[i]!=null){t._handle_mouseover(i);t._handle_click(i,b);t.scrollToItem(i);}};n.scrollToItem=function(i){var t=this,c;c=t.o;if(c.r[i]!=null){c.c.scrollTop=c.r[i].object.offsetTop;}};n._handle_click=function(v,b){var t=this,o,e,_p,_s,l;_p=t.o;_s=t.p;if(D.TN(v)){o=_p.r[v].object;}else{e=H.event.getEvent(v);o=(!D.TU(v)&&v.nodeType)?v:H.event.getEventSource(v);if(o&&o.nodeType==3)o=o.parentNode;l=o;while(l){if(typeof l.getAttribute!=D.U&&l.getAttribute("is-result-item")){o=l;break;}l=l.parentNode;}}if(o.getAttribute("is-result-item")&&(!_s.is_paging||(_s.page_hashing&&_p.s[_p.r[_p.rh[o.getAttribute("rid")]].data.id]))){if((_s.multiple&&_p.v[o.getAttribute("rid")])||(!_s.multiple&&o==_p.a)){_p.v[o.getAttribute("rid")]=0;_p.a=null;o.className=_s.class_item+" "+_s.class_item_hover;return;}if(!_s.multiple&&_p.a!=null){_p.a.className=_s.class_item;_p.v[_p.a.getAttribute("rid")]=0;}_p.a=o;_p.v[o.getAttribute("rid")]=1;o.className=_s.class_item+" "+_s.class_item_active;if(!b){H.message.service.publish("onresultclick",t);if(D.TF(_p.h))_p.h("onresultclick",_p.r[_p.rh[o.getAttribute("rid")]]);}}};n.clearItem=function(i){var t=this,o,c,d,_p,x;_p=t.o;o=_p.r[i];if(o){d=o.id;if((t.p.multiple&&_p.v[d])||(!t.p.multiple&&o!=_p.a)){_p.a=null;_p.v[d]=0;}_p.rh[d]=null;o=o.object;_p.c.removeChild(o);_p.r.splice(i,1);for(x=i;x<_p.r.length;x++){_p.r[x].index=x;_p.rh[_p.r[x].id]=x;}}};n.clearItems=function(){var t=this,c,a,i,_p;_p=t.o;_p.a=null;_p.r=[];_p.rh=[];t.p.m=0;_p.b=[];a=_p.c.childNodes;for(i=a.length-1;i>=0;i--){_p.c.removeChild(a[i]);}};n.clearPagingValues=function(){var _s=this.p,_p=this.o;_s.current_page=0;_s.maximum_page_size=0;_s.page_mark=0;_s.page_stop=0;_p.g=[];_p.s=[];_p.qr=[];};n.reset=function(){var t=this;t.endRequest();t.clearItems();t.clearPagingValues();};n.moveFirst=function(){var _p=this.o,_s=this.p;_s.current_page=0;this.updatePage();if(D.TF(_p.ph))_p.ph("onpagenavigate",_s.current_page);};n.moveLast=function(){var _s=this.p,_p=this.o;if(_s.page_stop){_s.current_page=_s.maximum_page_size;this.updatePage();if(D.TF(_p.ph))_p.ph("onpagenavigate",_s.current_page);}};n.getCanMoveNext=function(){return this.moveNext(1);};n.getCanMovePrevious=function(){return this.movePrevious(1);};n.moveNext=function(b){var _s=this.p,_p=this.o;if((_s.current_page+1)<_s.maximum_page_size||(_s.page_stop&&(_s.current_page+1)==_s.maximum_page_size)){if(!b){_s.current_page++;this.updatePage();if(D.TF(_p.ph))_p.ph("onpagenavigate",_s.current_page);}return 1;}return 0;};n.movePrevious=function(b){var _s=this.p,_p=this.o;if((_s.current_page-1)>=0&&D.TO(_p.g[_s.current_page-1])){if(!b){_s.current_page--;this.updatePage();if(D.TF(_p.ph))_p.ph("onpagenavigate",_s.current_page);}return 1;}return 0;};n.importPageItems=function(a,b){if(!D.TO(a))return 0;var n,c=0,_s=this.p,v,z,s,l,_p=this.o,r=a.length,t=this;if(r==0){if(_p.r.length==0&&_p.g.length==0){if(_s.is_paging)t.pageItem("Zero Items","_avoid");else	t.addItem("Zero Items","_avoid");}}else{s=_s.page_mark;l=_s.maximum_page_items;for(z=0;z<a.length;z++){n=a[z];c++;if(_s.is_paging)t.pageItem(n.label,n);else t.addItem(n.label,n);}_s.page_mark+=_s.maximum_page_items;}if(c<_s.maximum_page_items||b)_s.page_stop=1;if(_s.is_paging)t.updatePage();};n.getIsRequested=function(){return this.p.is_requested;};n.request=function(o){var t=this,_s,b;_s=t.p;if(!_s.can_request){H.message.service.S("Cannot request control","200.4");return;}if(_s.is_requested){b=(o==t.o.qo)?1:0;t.endRequest();if(b)return;}t.o.qo=o;t.alignControl(o);_s.is_requested=1;if(_s.is_paging)t.updatePage();};n.endRequest=function(){var t=this,_p,_s;_p=t.o;_s=t.p;if(!_s.is_requested||!_s.can_request)return 0;_p.c.style.display="none";if(_s.is_paging)t.clearItems();_s.is_requested=0;_p.qo=null;return 1;};n.alignControl=function(o){var	w=o.offsetWidth,h=o.offsetHeight,l=H.event.getAbsoluteLeft(o),t=H.event.getAbsoluteTop(o),c_w,c_h,_p=this.o,_s=this.p;_p.c.style.display="block";c_w=_p.c.offsetWidth;c_h=_p.c.offsetHeight;_p.c.style.top=(t+h)+"px";_p.c.style.left=l+"px";};n.init();H.registry.service.addObject(n);return n;}});}());
/* End Hemi Framework 3.1 */

