var key_chars='abcdefghijklmnopqrstuvwxyz';function cCustomStyledElements(AElementTag,AStyledElementTag,AElementType){if(!AElementTag||!AStyledElementTag)throw'cCustomStyledElements: element tag is not assigned';this.init=cCustomStyledElements_Init;this.destroy=cCustomStyledElements_Destroy;this.element_onfocus=cCustomStyledElement_onFocus;this.element_onclick=null;this.window_onclick=null;this.ondisabledchange=null;this.elements_process=cCustomStyledElements_ElementsProcess;this.element_init=cCustomStyledElements_ElementInit;this.element_destroy=cCustomStyledElements_ElementDestroy;this.property_change_listeners_add=cCustomStyledElements_PropertyChangeListenersAdd;this.styled_elements=new Array();this.element_tag=AElementTag;this.element_type=AElementType;this.styled_element_tag=AStyledElementTag;this.property_change_listeners=new Array();this.property_change_timer_id=null;this.last_element_id=0;this.unique_id_get=cCustomStyledElements_UniqueIDGet;this.property_change_listen_process=cCustomStyledElements_PropertyChangeListenProcess;this.id_get=cCustomStyledElements_IDGet;}function cCustomStyledElements_Init(ACollection){this.elements_process(ACollection,this.element_init);}function cCustomStyledElements_Destroy(ACollection){this.elements_process(ACollection,this.element_destroy);var elements=this.styled_elements;this.styled_elements=new Array();for(var i=0;i<elements.length;i++)if(elements[i])this.styled_elements.push(elements[i]);}function cCustomStyledElements_ElementsProcess(ACollection,AFunction){try{var LCollection=(ACollection?ACollection:document.getElementsByTagName(this.element_tag));for(var i=0;i<LCollection.length;i++)if((LCollection[i].className=="styled")&&(!this.element_type||(LCollection[i].type==this.element_type)))AFunction(LCollection[i]);this.property_change_listeners_add(['disabled','ondisabledchange']);this.property_change_listen_process();}catch(e){if(document.location.hostname.indexOf('.local')==-1)alert('Internal error: please reload page');else alert('ERROR: '+e.message);}}function cCustomStyledElements_IDGet(){return this.last_element_id++;}function cCustomStyledElements_UniqueIDGet(AObject){return'cs_'+this.styled_element_tag+'_'+this.id_get();}function cCustomStyledElements_ElementInit(AObject){var LStyledElement=document.createElement(this.styled_element_tag);LStyledElement.id=this.unique_id_get(AObject);LStyledElement.disabled=AObject.disabled;LStyledElement.tabIndex=AObject.tabIndex;LStyledElement.element=AObject;LStyledElement.manager=this;LStyledElement.ondisabledchange=this.element_ondisabledchange;AObject.styled_element=LStyledElement;if(document.all){if(this.element_onclick)AObject.attachEvent('onclick',this.element_onclick);AObject.attachEvent('onfocus',this.element_onfocus);}else{if(this.element_onclick)AObject.addEventListener('click',this.element_onclick,false);AObject.addEventListener('focus',this.element_onfocus,false);}this.styled_elements.push(LStyledElement);return AObject.parentNode.insertBefore(LStyledElement,AObject);}function cCustomStyledElements_ElementDestroy(AObject){if(!AObject.styled_element)return;AObject.styled_element.parentNode.removeChild(AObject.styled_element);var manager=AObject.styled_element.manager;for(i=0;i<manager.styled_elements.length;i++)if(manager.styled_elements[i]&&(manager.styled_elements[i]==AObject.styled_element))manager.styled_elements[i]=null;AObject.styled_element=null;}function cCustomStyledElements_PropertyChangeListenersAdd(APropertyListeners){LExistsCheck=function(ACollection,AValue){for(var i=0;i<ACollection.length/2;i++)if(ACollection[i*2]==AValue)return true;return false;};for(var i=0;i<APropertyListeners.length/2;i++)if(!LExistsCheck(this.property_change_listeners,APropertyListeners[i*2])){this.property_change_listeners.push(APropertyListeners[i*2]);this.property_change_listeners.push(APropertyListeners[i*2+1]);}}function cCustomStyledElements_PropertyChangeListenProcess(){if(this.property_change_timer_id)clearInterval(this.property_change_timer_id);if((this.property_change_listeners.length==0)||(this.styled_elements.length==0))return;var LScript='  var L<~ObjectID~> = document.getElementById("<~ObjectID~>");  if (L<~ObjectID~> && (L<~ObjectID~>.<~Property~> != L<~ObjectID~>.element.<~Property~>))    L<~ObjectID~>.<~Method~>();';var LObject='';var LResult=new Array();for(var j=0;j<this.styled_elements.length;j++){if(this.styled_elements[j])for(var i=0;i<this.property_change_listeners.length/2;i++)LResult.push(LScript .replace(/<~ObjectID~>/mg,this.styled_elements[j].id).replace(/<~Property~>/mg,this.property_change_listeners[i*2]).replace(/<~Method~>/mg,this.property_change_listeners[i*2+1]));}this.property_change_timer_id=setInterval('try {'+LResult.join('\n')+'} catch (e) {}',300);}function cCustomStyledElement_onFocus(){this.styled_element.focus();}function cCheckboxList(){var self=new cCustomStyledElements('input','img','checkbox');self.init_i=self.init;self.init=function(){if(arguments.length==1){self.init_i(arguments[0]);}else if(arguments.length==3){self.path=arguments[0];self.image_name=arguments[1];self.image_ext=arguments[2];self.init_i();}else throw'cCheckboxList.init(): Incorrect arguments count';};self.element_init_i=self.element_init;self.element_init=function(input){if(input.styled_element){input.styled_element.paint();return;}var img_checkbox=self.element_init_i(input);img_checkbox.src_init=self.img_checkbox_src_int;img_checkbox.className="img_checkbox"+(input.checked?"_checked":"");img_checkbox.onclick=self.img_checkbox_onclick;img_checkbox.onmousedown=self.img_checkbox_onmousedown;img_checkbox.onmouseup=self.img_checkbox_onmouseup;img_checkbox.onmouseout=self.img_checkbox_onmouseup;img_checkbox.onkeydown=self.img_checkbox_onkeydown;img_checkbox.paint=self.img_checkbox_paint;img_checkbox.pushed=false;img_checkbox.src_init();};self.img_checkbox_src_int=function(){this.src=this.manager.path+this.manager.image_name+(this.element.checked?"_checked":"")+(this.pushed||this.disabled?"_pushed":"")+"."+this.manager.image_ext;};self.img_checkbox_paint=function(){this.className="img_checkbox"+(this.element.checked?"_checked":"");this.src_init();};self.element_ondisabledchange=function(){this.disabled=this.element.disabled;this.paint();};self.img_checkbox_onclick=function(){this.element.click();this.paint();};self.element_onclick=function(){(document.all?window.event.srcElement.styled_element:this.styled_element).paint();};self.img_checkbox_onmousedown=function(){this.pushed=true;this.className=this.className+"_pushed";this.src_init();};self.img_checkbox_onmouseup=function(){this.pushed=false;this.className=this.className.replace("_pushed","");this.src_init();};self.img_checkbox_onkeydown=function(ae){if((ae?ae:window.event).keyCode==32)this.onclick();};return self;};var CSCheckboxList=new cCheckboxList();function cDropDowns(){var self=new cCustomStyledElements('select','div');self.init_i=self.init;self.init=function(ACollection){this.property_change_listeners_add(['selectedIndex','onselectedindexchange']);this.init_i(ACollection);};self.element_init_i=self.element_init;self.element_init=function(ASelect){var LDiv_Select=ASelect.styled_element;if(LDiv_Select)LDiv_Select.innerHTML="";else{LDiv_Select=self.element_init_i(ASelect);LDiv_Select.className="div_select "+ASelect.name;LDiv_Select.tabIndex=-1;LDiv_Select.disabled=false;LDiv_Select.selectedIndex=ASelect.selectedIndex;LDiv_Select.onselectedindexchange=self.div_select_onselectedindexchange;ASelect.focus=self.select_focus;}if(ASelect.selectedIndex<0)ASelect.selectedIndex=0;var LDiv_Selected_Node=document.createElement("div");LDiv_Selected_Node.id=LDiv_Select.id+'_selected_node';LDiv_Selected_Node.tabIndex=ASelect.tabIndex;LDiv_Selected_Node.disabled=ASelect.disabled;LDiv_Selected_Node.owner=LDiv_Select;LDiv_Selected_Node.style.cursor="default";LDiv_Selected_Node.node_get=self.div_selected_node_popup_node_get;LDiv_Selected_Node.set=self.div_selected_node_set;LDiv_Selected_Node.class_set=self.div_selected_node_class_set;LDiv_Selected_Node.manager=self;LDiv_Selected_Node.element=ASelect;LDiv_Selected_Node.innerHTML=ASelect.options[ASelect.selectedIndex].text;LDiv_Selected_Node.class_set();LDiv_Selected_Node_Wrapper=document.createElement('div');LDiv_Selected_Node_Wrapper.id=LDiv_Selected_Node.id+'_wrapper';LDiv_Selected_Node_Wrapper.className='div_selected_node_wrapper';LDiv_Selected_Node_Wrapper.onclick=self.div_selected_node_wrapper_onclick;LDiv_Selected_Node_Wrapper.selected_node=LDiv_Selected_Node;LDiv_Selected_Node_Wrapper.appendChild(LDiv_Selected_Node);LDiv_Select.selected_node=LDiv_Selected_Node;LDiv_Select.appendChild(LDiv_Selected_Node_Wrapper);self.div_selected_node_events_init(LDiv_Selected_Node);self.div_select_popup_init(LDiv_Selected_Node);};self.div_select_init=self.element_init;self.select_focus=function(){this.styled_element.selected_node.focus();};self.div_select_onselectedindexchange=function(){this.selected_node.set(this.selected_node.element.selectedIndex,true);};self.div_selected_node_events_init=function(AObj){AObj.onclick_i=(AObj.disabled?null:this.div_selected_node_onclick);AObj.onkeydown=(AObj.disabled?null:this.div_selected_node_onkeydown);};self.div_select_popup_init=function(ADiv_Selected_Node){var LDiv_Select_Popup=document.createElement("div");LDiv_Select_Popup.className="div_select_popup";LDiv_Select_Popup.id=ADiv_Selected_Node.owner.id+'_popup';LDiv_Select_Popup.selected_node=ADiv_Selected_Node;LDiv_Select_Popup.highlighted_index=ADiv_Selected_Node.owner.element.selectedIndex;LDiv_Select_Popup.open=self.div_select_popup_open;LDiv_Select_Popup.close=self.div_select_popup_close;LDiv_Select_Popup.onchange=self.div_select_popup_onchange;LDiv_Select_Popup.IsOpened=false;ADiv_Selected_Node.div_popup=LDiv_Select_Popup;var LOptions=ADiv_Selected_Node.owner.element.options,LDiv_Popup_Node;for(var i=0;i<LOptions.length;i++){LDiv_Popup_Node=document.createElement("div");LDiv_Popup_Node.className="div_select_popup_node"+(ADiv_Selected_Node.owner.element.selectedIndex==i?"_over":"");LDiv_Popup_Node.id=LDiv_Select_Popup.id+'_'+i+'_option';LDiv_Popup_Node.index=i;LDiv_Popup_Node.style.cursor="default";LDiv_Popup_Node.div_popup=LDiv_Select_Popup;LDiv_Popup_Node.onclick=self.div_popup_node_click;LDiv_Popup_Node.onmouseover=self.div_popup_node_mouseover;LDiv_Popup_Node.onmouseout=self.div_popup_node_mouseout;LDiv_Popup_Node.highlight_set=self.div_popup_node_highlight_set;LDiv_Popup_Node.innerHTML=LOptions[i].text;LDiv_Select_Popup.appendChild(LDiv_Popup_Node);}ADiv_Selected_Node.owner.appendChild(LDiv_Select_Popup);};self.div_selected_node_onclick=function(){if(this.div_popup.IsOpened)this.div_popup.close();else this.div_popup.open();};self.div_selected_node_onkeydown=function(AEvent){var e=(document.all?event:AEvent);var LNode=this.node_get();if(e.keyCode==9)this.div_popup.close();if(e.keyCode==38)this.set(this.owner.element.selectedIndex-1);if(e.keyCode==40)this.set(this.owner.element.selectedIndex+1);if(e.keyCode==13){this.set(this.div_popup.highlighted_index);this.div_popup.close();}if((e.keyCode>=65)&&(e.keyCode<=90)){var LNodes=this.div_popup.getElementsByTagName('div');var LKeyChar=key_chars.charAt(e.keyCode-65);for(var i=(LNode.index<LNodes.length-1?LNode.index+1:0);i<LNodes.length;i++){if(i==LNode.index)return;if(LNodes[i].innerHTML.charAt(0).toLowerCase()==LKeyChar)return this.set(i);if(i==LNodes.length-1)i=-1;}}};self.div_selected_node_class_set=function(AIndex){this.className="div_selected_node"+((AIndex?AIndex:this.owner.element.selectedIndex)==0||this.disabled?"_disabled":"");};self.element_ondisabledchange=function(){var selected_node=this.selected_node;selected_node.disabled=this.disabled=this.element.disabled;selected_node.manager.div_selected_node_events_init(selected_node);selected_node.class_set();};self.div_selected_node_set=function(AIndex,AExcludeEventRaise){var LSelect=this.owner.element;if((AIndex<0)||(AIndex>LSelect.options.length-1))return;var LNode=this.node_get();LNode.highlight_set(false);LSelect.selectedIndex=AIndex;LSelect.styled_element.selectedIndex=AIndex;this.class_set(AIndex);this.innerHTML=LSelect.options[AIndex].text;LNode=this.node_get();LNode.highlight_set(true);if(!AExcludeEventRaise)this.div_popup.onchange();};self.div_selected_node_popup_node_get=function(){var LIndex = this.owner.element.selectedIndex;return this.div_popup.childNodes[(LIndex <0?0:LIndex)];};self.div_select_popup_open=function(){var LOptions=this.getElementsByTagName("div");for(var i=0;i<LOptions.length;i++)LOptions[i].highlight_set(LOptions[i].index==this.selected_node.owner.element.selectedIndex);this.selected_node.owner.style.zIndex=50;this.style.display="block";this.IsOpened=true;};self.div_selected_node_wrapper_onclick=function(){if(this.selected_node.onclick_i)this.selected_node.onclick_i();};self.div_select_popup_close=function(){if(!this.IsOpened)return;this.selected_node.owner.style.zIndex=1;this.style.display="none";this.IsOpened=false;};self.div_select_popup_onchange=function(){var LSelect=this.selected_node.owner.element;try{if(LSelect.onchange)LSelect.onchange();}catch(e){}};self.div_popup_node_mouseover=function(){if(this.div_popup.IsOpened){var LSelected_Node=this.div_popup.selected_node.node_get();LSelected_Node.highlight_set(false);this.highlight_set(true);}};self.div_popup_node_mouseout=function(){if(this.div_popup.IsOpened)this.highlight_set(false);};self.div_popup_node_click=function(){var LSelected_Node=this.div_popup.selected_node;if(LSelected_Node.owner.element.selectedIndex!=this.index)LSelected_Node.set(this.index);this.div_popup.close();};self.div_popup_node_highlight_set=function(AHighlight){this.className="div_select_popup_node"+(AHighlight?"_over":"");if(AHighlight)this.div_popup.highlighted_index=this.index;};self.window_onclick=function(AArgumentEvent){var e=(AArgumentEvent?AArgumentEvent:window.event);var LElement=(e.srcElement?e.srcElement:e.target);try{var LSelect_List=document.getElementsByTagName('select');for(var i=0;i<LSelect_List.length;i++){var LSelect=LSelect_List[i].styled_element;if(LSelect&&(LElement.id.indexOf(LSelect.selected_node.id)==-1)&&LSelect.selected_node.div_popup.IsOpened)LSelect.selected_node.node_get().div_popup.close();}}catch(e){}};if(document.all)document.onclick=self.window_onclick;else{window.captureEvents(window.Event.CLICK);window.onclick=self.window_onclick;}return self;};var CSDropDowns=new cDropDowns();function cRadioButtons(){var self=new cCustomStyledElements('input','img','radio');self.init_i=self.init;self.init=function(){if(arguments.length==1){self.init_i(arguments[0]);}else if(arguments.length==3){self.path=arguments[0];self.image_name=arguments[1];self.image_ext=arguments[2];self.init_i();}else throw'cRadioButtons.init(): Incorrect arguments count';};self.element_init_i=self.element_init;self.element_init=function(input){if(input.styled_element){input.styled_element.src_init();return;}var img_radiobutton=self.element_init_i(input);img_radiobutton.src_init=self.img_radiobutton_src_init;img_radiobutton.className="img_radiobutton"+(input.checked?"_checked":"");img_radiobutton.paint=self.img_radiobutton_paint;img_radiobutton.pushed=false;img_radiobutton.src_init();self.img_radiobutton_events_init(img_radiobutton);};self.img_radiobutton_events_init=function(obj){obj.onclick=(obj.disabled?null:this.img_radiobutton_onclick);obj.onmousedown=(obj.disabled?null:this.img_radiobutton_onmousedown);obj.onmouseup=(obj.disabled?null:this.img_radiobutton_onmouseup);obj.onmouseout=(obj.disabled?null:this.img_radiobutton_onmouseup);obj.onkeydown=(obj.disabled?null:this.img_radiobutton_onkeydown);};self.img_radiobutton_src_init=function(){this.src=this.manager.path+this.manager.image_name+(this.element.checked?"_checked":"")+(this.pushed||this.disabled?"_pushed":"")+"."+this.manager.image_ext;};self.img_radiobutton_paint=function(){var coll=document.getElementsByName(this.element.name),obj;for(var i=0;i<coll.length;i++){obj=coll.item(i);obj.checked=false;if(obj.styled_element){obj.styled_element.className="img_radiobutton";obj.styled_element.src_init();}}this.className="img_radiobutton_checked";this.element.checked=true;this.src_init();};self.img_radiobutton_onclick=function(){this.paint();this.element.click();};self.img_radiobutton_onmousedown=function(){this.pushed=true;this.className=this.className+"_pushed";this.src_init();};self.img_radiobutton_onmouseup=function(){this.pushed=false;this.className=this.className.replace("_pushed","");this.src_init();};self.img_radiobutton_onkeydown=function(ae){var e=(ae?ae:window.event);if(e.keyCode==32)this.onclick();};self.element_ondisabledchange=function(){this.disabled=this.element.disabled;this.manager.img_radiobutton_events_init(this);this.src_init();};self.element_onclick=function(){(document.all?window.event.srcElement.styled_element:this.styled_element).paint();};return self;};var CSRadioButtons=new cRadioButtons();