Prado.WebUI=Class.create();Prado.WebUI.PostBackControl=Class.create();Prado.WebUI.PostBackControl.prototype={initialize:function(a){this._elementOnClick=null,this.element=$(a.ID);Prado.Registry.set(a.ID,this);if(this.element){if(this.onInit){this.onInit(a)}}},onInit:function(a){if(typeof(this.element.onclick)=="function"){this._elementOnClick=this.element.onclick.bind(this.element);this.element.onclick=null}Event.observe(this.element,"click",this.elementClicked.bindEvent(this,a))},elementClicked:function(c,b){var e=Event.element(c);var a=true;var d=null;if(this._elementOnClick){var d=this._elementOnClick(c);if(typeof(d)=="boolean"){a=d}}if(a&&!Prado.Element.isDisabled(e)){this.onPostBack(c,b)}if(typeof(d)=="boolean"&&!d){Event.stop(c)}},onPostBack:function(b,a){Prado.PostBack(b,a)}};Prado.WebUI.TButton=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TLinkButton=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TCheckBox=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TBulletedList=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TImageMap=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TImageButton=Class.extend(Prado.WebUI.PostBackControl);Object.extend(Prado.WebUI.TImageButton.prototype,{onPostBack:function(b,a){this.addXYInput(b,a);Prado.PostBack(b,a);this.removeXYInput(b,a)},addXYInput:function(b,a){imagePos=this.element.cumulativeOffset();clickedPos=[b.clientX,b.clientY];x=clickedPos[0]-imagePos[0]+1;y=clickedPos[1]-imagePos[1]+1;x=x<0?0:x;y=y<0?0:y;id=a.EventTarget;x_input=$(id+"_x");y_input=$(id+"_y");if(x_input){x_input.value=x}else{x_input=INPUT({type:"hidden",name:id+"_x",id:id+"_x",value:x});this.element.parentNode.appendChild(x_input)}if(y_input){y_input.value=y}else{y_input=INPUT({type:"hidden",name:id+"_y",id:id+"_y",value:y});this.element.parentNode.appendChild(y_input)}},removeXYInput:function(b,a){id=a.EventTarget;this.element.parentNode.removeChild($(id+"_x"));this.element.parentNode.removeChild($(id+"_y"))}});Prado.WebUI.TRadioButton=Class.extend(Prado.WebUI.PostBackControl);Prado.WebUI.TRadioButton.prototype.onRadioButtonInitialize=Prado.WebUI.TRadioButton.prototype.initialize;Object.extend(Prado.WebUI.TRadioButton.prototype,{initialize:function(a){this.element=$(a.ID);if(this.element){if(!this.element.checked){this.onRadioButtonInitialize(a)}}}});Prado.WebUI.TTextBox=Class.extend(Prado.WebUI.PostBackControl,{onInit:function(a){this.options=a;if(a.TextMode!="MultiLine"){Event.observe(this.element,"keydown",this.handleReturnKey.bind(this))}if(this.options.AutoPostBack==true){Event.observe(this.element,"change",Prado.PostBack.bindEvent(this,a))}},handleReturnKey:function(b){if(Event.keyCode(b)==Event.KEY_RETURN){var a=Event.element(b);if(a){if(this.options.AutoPostBack==true){Event.fireEvent(a,"change");Event.stop(b)}else{if(this.options.CausesValidation&&typeof(Prado.Validation)!="undefined"){if(!Prado.Validation.validate(this.options.FormID,this.options.ValidationGroup,$(this.options.ID))){return Event.stop(b)}}}}}}});Prado.WebUI.TListControl=Class.extend(Prado.WebUI.PostBackControl,{onInit:function(a){Event.observe(this.element,"change",Prado.PostBack.bindEvent(this,a))}});Prado.WebUI.TListBox=Class.extend(Prado.WebUI.TListControl);Prado.WebUI.TDropDownList=Class.extend(Prado.WebUI.TListControl);Prado.WebUI.DefaultButton=Class.create();Prado.WebUI.DefaultButton.prototype={initialize:function(a){this.options=a;this._event=this.triggerEvent.bindEvent(this);Event.observe(a.Panel,"keydown",this._event)},triggerEvent:function(c,e){var a=Event.keyCode(c)==Event.KEY_RETURN;var d=Event.element(c).tagName.toLowerCase()=="textarea";if(a&&!d){var b=$(this.options.Target);if(b){this.triggered=true;$("PRADO_POSTBACK_TARGET").value=this.options.EventTarget;Event.fireEvent(b,this.options.Event);Event.stop(c)}}}};Prado.WebUI.TTextHighlighter=Class.create();Prado.WebUI.TTextHighlighter.prototype={initialize:function(c){if(!window.clipboardData){return}var a={href:"javascript:;//copy code to clipboard",onclick:"Prado.WebUI.TTextHighlighter.copy(this)",onmouseover:"Prado.WebUI.TTextHighlighter.hover(this)",onmouseout:"Prado.WebUI.TTextHighlighter.out(this)"};var b=DIV({className:"copycode"},A(a,"Copy Code"));document.write(DIV(null,b).innerHTML)}};Object.extend(Prado.WebUI.TTextHighlighter,{copy:function(d){var b=d.parentNode.parentNode.parentNode;var e="";for(var a=0;a<b.childNodes.length;a++){var c=b.childNodes[a];if(c.innerText){e+=c.innerText=="Copy Code"?"":c.innerText}else{e+=c.nodeValue}}if(e.length>0){window.clipboardData.setData("Text",e)}},hover:function(a){a.parentNode.className="copycode copycode_hover"},out:function(a){a.parentNode.className="copycode"}});Prado.WebUI.TCheckBoxList=Base.extend({constructor:function(b){Prado.Registry.set(b.ListID,this);for(var c=0;c<b.ItemCount;c++){var a=Object.extend({ID:b.ListID+"_c"+c,EventTarget:b.ListName+"$c"+c},b);new Prado.WebUI.TCheckBox(a)}}});Prado.WebUI.TRadioButtonList=Base.extend({constructor:function(a){Prado.Registry.set(a.ListID,this);for(var b=0;b<a.ItemCount;b++){var c=Object.extend({ID:a.ListID+"_c"+b,EventTarget:a.ListName+"$c"+b},a);new Prado.WebUI.TRadioButton(c)}}});
