var Part=new Class({Implements:[Events,Config],initialize:function(a){this.xel=a;this.set(Part.parse(a),true);this.addEvent("set",this.save.bind(this))},save:function(e){e=e||this.get();var c=this.xel,f=c.ownerDocument,g=false;var j=false;if(!("hasAttribute" in c)){j=[];for(var a=c.attributes,d=0,b;b=a[d];d++){j.push(b.nodeName)}}for(var h in e){if((j&&j.contains(h))||(!j&&c.hasAttribute(h))){c.setAttribute(h,e[h]);delete e[h]}else{g=true}}if(!(this instanceof Survey)){this.setDirty()}if(!g){this.getSurvey().fireEvent("update part",[this,e]);return true}for(var a=c.childNodes,d=0,b;b=a[d];d++){var h=b.nodeName;if(e.hasOwnProperty(h)){if(b.firstChild){b.removeChild(b.firstChild)}b.appendChild(f.createCDATASection(e[h]))}}this.getSurvey().fireEvent("update part",[this,e]);return true},setDirty:function(a){if(typeof a=="undefined"){a=true}if(a){this.xel.setAttribute("is_dirty",1)}else{this.xel.setAttribute("is_dirty",0)}return this},remove:function(){return this.getSurvey().removePart(this)},_walk:function(a,g,c,b){var d=this.xel[g||a],f=this.getSurvey(),e=[];while(d){if(d.nodeName=="part"&&(!c||d.getAttribute("type")==c)){if(!b){return f.$(d)}e.push(f.$(d))}d=d[a]}return b?e:null},getPrevious:function(a){return this._walk("previousSibling",null,a,false)},getAllPrevious:function(a){return this._walk("previousSibling",null,a,true)},getNext:function(a){return this._walk("nextSibling",null,a,false)},getAllNext:function(a){return this._walk("nextSibling",null,a,true)},getChildren:function(a){return this._walk("nextSibling","firstChild",a,true)},getFirstChild:function(a){return this._walk("nextSibling","firstChild",a,false)},getLastChild:function(a){return this._walk("previousSlibling","lastChild",a,false)},getParent:function(a){return this._walk("parentNode",null,a,false)},getSiblings:function(a){return this.getParent().getChildren(a).erase(this)},getPage:function(){return this.getParent("page")},getPreviousPage:function(){return this.getPage().getPrevious("page")},getNextPage:function(){return this.getPage().getNext("page")},hasChild:function(){return this.xel.getElementsByTagName("part").length?true:false},appendChild:function(a){var b=a.xel.parentNode?true:false;this.xel.appendChild(a.xel);if(b){this.getSurvey().fireEvent("move part",a,0)}},insertBefore:function(a){var c=a.xel,b=this.xel.parentNode?true:false;c.parentNode.insertBefore(this.xel,c);if(b){this.getSurvey().fireEvent("move part",this,0)}},insertAfter:function(a){var c=a.xel,b=this.xel.parentNode?true:false;if(c.nextSibling){c.parentNode.insertBefore(this.xel,c.nextSibling)}else{c.parentNode.appendChild(this.xel)}if(b){this.getSurvey().fireEvent("move part",this,0)}},moveUp:function(){var a=this.getPrevious();if(a){this.insertBefore(a);return true}var c=this.getPreviousPage();if(!c){return false}if("removeAllTriggers" in this){this.removeAllTriggers()}var b=c.getLastChild();if(b){this.insertAfter(b)}else{c.appendChild(this)}return true},moveDown:function(){var b=this.getNext();if(b){this.insertAfter(b);return true}var c=this.getNextPage();if(!c){return false}if("removeAllTriggers" in this){this.removeAllTriggers()}var a=c.getFirstChild();if(a){this.insertBefore(a)}else{c.appendChild(this)}return true},createPart:function(a,b){var d=this.getSurvey(),c=d.createPart(a,b);if(c instanceof Part.Page){c.insertAfter(this.getPage())}else{if(this instanceof Part.Page){this.appendChild(c)}else{c.insertAfter(this)}}if(a=="page"){d.makePageRank()}d.fireEvent("create part",c,0);return c},getLabel:function(){return""},getDescr:function(){return""}});Part.parse=function(e){var d=xGetAttr(e,true);for(var c=0,a=e.childNodes.length;c<a;c++){var f=e.childNodes[c];var b=f.nodeName;if(b=="part"||b=="triggers"){continue}d[b]=xValue(f)}return d};Part.Page=new Class({Extends:Part,getPage:function(){return this},getParent:function(){return this.getSurvey()},remove:function(){if(this.hasChild()){return false}if(!this.getPrevious()&&!this.getNext()){return false}var a=this.getSurvey();a.removePart(this);a.makePageRank()},getLabel:function(){return sprintf(T("page title"),this.get("rank"))},moveUp:function(){var a=this.getPreviousPage();if(!a){return false}if("removeAllTriggers" in this){this.removeAllTriggers()}this.insertBefore(a);this.getSurvey().makePageRank();return this},moveDown:function(){var a=this.getNextPage();if(!a){return false}if("removeAllTriggers" in this){this.removeAllTriggers()}this.insertAfter(a);this.getSurvey().makePageRank();return this},makePartRank:function(){var c=this.getChildren();for(var b=0,a;a=c[b];b++){a.set("rank",b+1,true)}}});Part.Separator=new Class({Extends:Part,getLabel:function(){return this.get("title")||T("untitled separator")}});Part.Html=new Class({Extends:Part,getLabel:function(){return"[HTML]"}});Part.Text=new Class({Extends:Part,getLabel:function(){return this.get("subject")||T("untitled text question")},_amend:function(){var c=this.get("least_input","most_input");if(c.least_input&&c.most_input&&c.least_input>c.most_input){var b=Math.min(c.least_input,c.most_input);var a=Math.max(c.least_input,c.most_input);this.set({least_input:b,most_input:a},true)}},getDescr:function(){var a=[];if(this.get("is_require")){a.push(T("is require"))}a.push(T("open-end question"));return a.join(", ")}});Part.Select=new Class({Extends:Part,getLabel:function(){return this.get("subject")||T("untitled multiple choice")},_amend:function(){var e=this.get("least_choice","most_choice");var d=e.least_choice,b=e.most_choice;if(d&&b&&d>b){var d=Math.min(e.least_choice,e.most_choice);var b=Math.max(e.least_choice,e.most_choice)}var c=this.getChildren();if(c){var a=c.length;if(d>a){d=a}if(b>a){b=a}}this.set({least_choice:d,most_choice:b},true)},getDescr:function(){var a=this.get("is_require","form_type"),b=[];if(a.is_require){b.push(T("is require"))}if(a.form_type=="checkbox"){b.push(T("multiple choice"))}else{b.push(T("single choice"))}return b.join(", ")}});Part.Select_Option=new Class({Extends:Part,getLabel:function(){return this.get("label")||T("untitled option")},_amend:function(){var c=this.get("least_input","most_input");var b=c.least_input,a=c.most_input;if(b&&a&&b>a){var b=Math.min(c.least_input,c.most_input);var a=Math.max(c.least_input,c.most_input);this.set({least_input:b,most_input:a},true)}}});Part.Matrix=new Class({Extends:Part,getLabel:function(){return this.get("subject")||T("untitled matrix question")},getRowOptions:function(){var e=this.getSurvey(),c=[];for(var a=xSelect(this.xel,'./part[@direction="row"]'),b=0,d=a.length;b<d;b++){c.push(e.$(a[b]))}return c},getColOptions:function(){var e=this.getSurvey(),c=[];for(var a=xSelect(this.xel,'./part[@direction="col"]'),b=0,d=a.length;b<d;b++){c.push(e.$(a[b]))}return c},getDescr:function(){var a=[];if(this.get("is_require")){a.push(T("is require"))}a.push(T("matrix question"));return a.join(", ")}});Part.Matrix_Option=new Class({Extends:Part,getLabel:function(){var a=this.get("direction");if(a=="row"){return this.get("label")||T("untitled question")}else{if(a=="col"){return this.get("label")||T("untitled option")}}return false},getPrevious:function(){var b=this.get("direction");var a=this.xel.previousSibling;while(a){if(a.nodeName=="part"&&a.getAttribute("direction")==b){return this.getSurvey().$(a)}a=a.previousSibling}return false},getNext:function(){var b=this.get("direction");var a=this.xel.nextSibling;while(a){if(a.nodeName=="part"&&a.getAttribute("direction")==b){return this.getSurvey().$(a)}a=a.nextSibling}return false}});var Survey=new Class({Extends:Part,_part_class:{page:Part.Page,separator:Part.Separator,html:Part.Html,text:Part.Text,select:Part.Select,select_option:Part.Select_Option,matrix:Part.Matrix,matrix_option:Part.Matrix_Option},_part_tpl:{page:'<part type="page" rank="9999"><title/></part>',separator:'<part type="separator" rank="9999"><title/><intro/></part>',html:'<part type="html" rank="9999"><code/></part>',text:'<part type="text" rank="9999" is_require="1" form_type="input" form_width="0" form_height="0" least_input="0" most_input="0" validator=""><subject/><intro/></part>',select:'<part type="select" rank="9999" is_require="1" form_type="radio" column_per_row="1" least_choice="0" most_choice="0" shuffle_options="0"><subject/><intro/></part>',matrix:'<part type="matrix" rank="9999" is_require="1" form_type="radio" has_score="0" pre_column_one_response="0"><subject/><intro/></part>',select_option:'<part type="select_option" rank="9999" mime="text/plain" score="0" allow_specify="0" input_width="0" least_input="0" most_input="0"><label/><url/></part>',matrix_option:'<part type="matrix_option" rank="9999" direction="" score="0"><label/></part>'},initialize:function(a){this.xdoc=xDocument(a);this.parent(a.documentElement);this._parts=new Hash({});this.addEvents({"create part":this.setDirty.bind(this,true),"update part":this.setDirty.bind(this,true),"remove part":this.setDirty.bind(this,true),"move part":this.setDirty.bind(this,true),"set assoc triggers":this.setDirty.bind(this,true),"remove assoc triggers":this.setDirty.bind(this,true),"remove depend triggers":this.setDirty.bind(this,true)})},toXml:function(){return xText(this.xdoc)},_getPartClass:function(a){if(a in this._part_class){return this._part_class[a]}throw new Error("Survey._getPartClass(): invalid type ["+a+"]")},$:function(d){if(d instanceof Part){return d}var b=this._parts;if($type(d)=="string"){var a=b.get(d);if(a){return a}var c=xSelect(this.xdoc,'//part[@type][@sn="'+d+'"]',true);if(!c){throw new Error("Survey.$(): sn not exist!")}}else{if($type(d)=="element"){var c=d,d=c.getAttribute("sn");if(c.nodeName!="part"||!d){throw new Error("Survey.$(): invalid element")}var a=b.get(d);if(a){return a}}else{throw new Error("Survey.$(): invalid argument")}}var a=new (this._getPartClass(c.getAttribute("type")))(c);a.getSurvey=$lambda(this);if("_amend" in a){a._amend()}b.set(a.get("sn"),a);return a},getSurvey:function(){return this},createPart:function(d,e){var b=this._part_tpl[d];if(!b){throw new Error("Survey._createPartElement(): invalid type ["+d+"]")}var f=xDocument(b);var g=this.xdoc.importNode(f.documentElement,true);delete f;e=e||{};e.sn=uuid();xSetAttr(g,e);var a=this.$(g);if(d=="select"){for(var c=0;c<2;c++){a.appendChild(this.createPart("select_option"))}}else{if(d=="matrix"){for(var c=0;c<3;c++){a.appendChild(this.createPart("matrix_option",{direction:"row"}))}for(var c=0;c<5;c++){a.appendChild(this.createPart("matrix_option",{direction:"col"}))}}}a.setDirty();return a},importXel:function(g){var g=this.xdoc.importNode(g,true);var c=(new Date()).format("%Y-%m-%d %H:%M:%S");for(var b=xSelect(g,"descendant-or-self::part"),d=0,e=b.length;d<e;d++){var a=b[d],f=a.getAttribute("sn");xSetAttr(a,{sn:uuid(),copy_from:f,create_time:c,update_time:c,is_dirty:1})}this.setDirty();return this.$(g)},removePart:function(a){if("removeAllTriggers" in a){a.removeAllTriggers()}this.fireEvent("remove part",a,0);var c=a.get("sn"),b=a.xel;delete a.xel;b.parentNode.removeChild(b);this._parts.erase(c);a=null;this.setDirty();return true},appendPage:function(a){if(!(a instanceof this._getPartClass("page"))){throw new Error("Survey.appendPage(): invalid arguments")}this.makePageRank();return a},getPages:function(){return this._walk("nextSibling","firstChild","page",true)},getPage:function(b){var a=xSelect(this.xdoc,'/survey/part[@type="page"][@sn=""]',true);return this.$(a)},getFirstPage:function(){return this._walk("nextSibling","firstChild","page",false)},getLastPage:function(){return this._walk("previousSibling","lastChild","page",false)},makePageRank:function(){for(var b=this.getPages(),c=0,a=b.length;c<a;c++){b[c].set("rank",c+1)}}});var Survey_View=new Class({Implements:Events,_part_view:{},initialize:function(a){this.root=a},createPartView:function(a,h){try{var l=new Part_View(a,this.root)}catch(k){return false}this.setPartView(a,l);if(a instanceof Part.Page){var j=this.root.ownerDocument.createDocumentFragment();j.appendChild(l.getEl());var o=l.getEl("content");for(var b=a.getChildren(),g=0,n=b.length;g<n;g++){this.createPartView(b[g],o)}this.root.appendChild(j)}else{if(h){h.appendChild(l.getEl())}else{var m=a.getPrevious();if(m){var c=this.getPartView(m);l.getEl().inject(c.getEl(),"after")}else{var d=this.getPartView(a.getPage());l.getEl().inject(d.getEl("content"),"top")}}}this.fireEvent("create view",l,0);return l},setPartView:function(b,a){this._part_view[b.get("sn")]=a},getPartView:function(b){var a=this._part_view[b.get("sn")];if(a){return a}return false},renderPart:function(c,b){var a=this.getPartView(c);if(a){return a.render(b)}return false},removePartView:function(b){var a=this.getPartView(b);if(!a){return false}delete this._part_view[b.get("sn")];a.destroy()},scrollToPart:function(b){var c=this._scroll_fx;if(!c){c=new Fx.Scroll(this.root.ownerDocument.window,{offset:{x:0,y:-50}});this._scroll_fx=c}if(b instanceof Part.Page){c.toTop()}else{var a=this.getPartView(b);if(!a){return false}c.toElement(a.getEl())}}});var Part_View=new Class({Implements:Events,_place:{},initialize:function(c,a,b){this.part=c;this.window=a?a.ownerDocument.window:window;switch(c.get("type")){case"page":$extend(this,Part_View.Page);break;case"separator":$extend(this,Part_View.Separator);break;case"html":$extend(this,Part_View.Html);break;case"text":$extend(this,Part_View.Text);break;case"select":$extend(this,Part_View.Select);break;case"matrix":$extend(this,Part_View.Matrix);break;default:throw new Error("Part_View.Element: invalid part type ["+c.get("type")+"]")}if(b){var d=a.getElement('.part[sn="'+c.get("sn")+'"]');if(d){this.el=d}}if(!this.el){this.render()}},getEl:function(a){return a?this.el.getElement(this._getPlaceSelector(a)):this.el},_getPlaceSelector:function(a){return this._place[a]["selector"]},_getPlaceFunction:function(a){var b=this._place[a]["function"];if(b){return this[b]}return false},render:function(a){if(!this.el){this._render()}if(a){this._getPlaceFunction(a).delay(0,this)}else{for(var b in this._place){var c=this._getPlaceFunction(b);if(c){c.delay(0,this)}}}return this},_createElement:function(){return this.window.Element.run(arguments,this.window)},destroy:function(){delete this.part;delete this.window;if(this.el){this.el.destroy()}}});Part_View.Page={_place:{survey_title:{selector:".survey-title","function":"_renderSurveyTitle"},survey_intro:{selector:".survey-intro","function":"_renderSurveyIntro"},content:{selector:".content"}},_render:function(){var a=contact('<div class="page-header">','<h1 class="survey-title"></h1>','<div class="survey-intro"></div>',"</div>",'<ol class="content"></ol>');this.el=this._createElement("div",{html:a,"class":"page",sn:this.part.get("sn")})},_renderSurveyTitle:function(){this.getEl("survey_title").set("text",this.part.getSurvey().get("title")||T("untitled survey"))},_renderSurveyIntro:function(){var a=this.part.getSurvey().get("intro");this.getEl("survey_intro").set({html:a,styles:{display:a?"":"none"}})}};Part_View.Separator={_place:{title:{selector:".title","function":"_renderTitle"},intro:{selector:".intro","function":"_renderIntro"}},_render:function(){var a=contact('<h2 class="title"></h2>','<div class="intro" style="display:none"></div>');this.el=this._createElement("div",{html:a,"class":"part separator",sn:this.part.get("sn")})},_renderTitle:function(){this.getEl("title").set("text",this.part.getLabel())},_renderIntro:function(){var b=this.part.get("intro"),a=this.getEl("intro");this.getEl("intro").set({html:b,styles:{display:b?"block":"none"}})}};Part_View.Html={render:function(){if(!this.el){this.el=this._createElement("div",{html:'<div class="code"></div>',"class":"part html",sn:this.part.get("sn")})}this.el.getElement(".code").set("html",this.part.get("code")||this.part.getLabel())}};Part_View.Text={_place:{title:{selector:".title","function":"_renderTitle"},intro:{selector:".intro","function":"_renderIntro"},form:{selector:"input, textarea","function":"_renderForm"}},_render:function(){var a=contact('<h4 class="title"><span class="subject"></span><span class="require"></span></h4>','<div class="intro"></div>',"<input>");this.el=this._createElement("li",{html:a,"class":"part text",sn:this.part.get("sn")})},_renderTitle:function(){var b=this.getEl("title"),a=this.part;b.getElement(".subject").set("text",a.getLabel());b.getElement(".require").set("text",a.get("is_require")?"*":"")},_renderIntro:function(){var a=this.part.get("intro");this.getEl("intro").set({styles:{display:a?"block":"none"},html:a})},_renderForm:function(){var b=this.part,d=b.get("form_type");var c={id:b.get("sn"),name:b.get("sn")};if(d=="textarea"){c.rows=b.get("form_height")>0?b.get("form_height"):5;c.cols=b.get("form_width")>0?b.get("form_width"):50}else{c.type="text";c.size=b.get("form_width")>0?b.get("form_width"):35;var e=b.get("most_input");if(e){c.maxlength=e}}var a=this.getEl("form");var f=$(a.ownerDocument.createElement(d));f.set(c).replaces(a)}};Part_View.Select={_place:{title:{selector:".title","function":"_renderTitle"},intro:{selector:".intro","function":"_renderIntro"},form:{selector:".content","function":"_renderForm"}},_render:function(){var a=contact('<h4 class="title"><span class="subject"></span><span class="require"></span></h4>','<div class="intro"></div>','<div class="content"></div>');this.el=this._createElement("li",{html:a,"class":"part select",sn:this.part.get("sn")})},_renderTitle:function(){var b=this.getEl("title"),a=this.part;b.getElement(".subject").set("text",a.getLabel());b.getElement(".require").set("text",a.get("is_require")?"*":"")},_renderIntro:function(){var a=this.part.get("intro");this.getEl("intro").set({html:a,styles:{display:a?"block":"none"}})},_renderForm:function(){var p=this.part.getChildren(),o=[];if(p.length<=26){var n=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]}else{var n=[];for(var l=1,q=p.length;l<=q;l++){n.push(l)}}for(var l=0,q=p.length;l<q;l++){o.push(this._renderOption(p[l],n.shift()))}var c=this.part;var b=[],m=c.get("sn");if(c.get("form_type")=="select"){o.unshift('<option value="">'+T("-- please select --")+"</option>");b=contact('<select id="',m,'" name="',m,'[]">',contact.run(o),"</select>")}else{var k=1;if(o.length){k=(c.get("column_per_row")>o.length)?o.length:c.get("column_per_row")}var r=Math.ceil(o.length/k);var g=[];if(k>1){var a=parseInt(100/k,10);for(var l=0;l<k;l++){g.push('<col width="'+a+'%"/>')}}g=g.length?"<colgroup>"+contact.run(g)+"</colgroup>":"";var f="even";for(var l=0;l<r;l++){var e=[];for(var h=0;h<k;h++){var d=o.shift();e.push("<td>"+(d?d:"&nbsp;")+"</td>")}f=(f=="even")?"odd":"even";b.push(contact('<tr class="',f,'" valign="top">',contact.run(e),"</tr>"))}b=contact('<table class="options">',g,contact.run(b),"</table>")}this.getEl("form").set("html",b)},_renderOption:function(e,h){var d=this.part;var l=d.get("form_type");var f=e.get("sn"),g=d.get("sn");var i=e.getLabel();if(l=="select"){return'<option id="'+f+'" value="'+f+'">'+h+".&nbsp;"+i.htmlspecialchars()+"</option>"}var j="";if(e.get("allow_specify")){var c=e.get("input_width")>0?e.get("input_width"):10;var b=e.get("most_input")>0?e.get("most_input"):"";j=contact('<input type="text" name="',g,"[specify][",f,']" id="',f,'_specify" maxlength="',b,'" size="',c,'"/>')}var k="";k+=h+".&nbsp;"+i.htmlspecialchars();var a=contact('<input type="',l,'" id="',f,'" name="',g,'[]" value="',f,'"/><label for="',f,'">',k,"</label>",j);if(e.get("url")){a+='<br/><label for="'+f+'"><img src="'+e.get("url")+'"/></label>'}return a}};Part_View.Matrix={_place:{title:{selector:".title","function":"_renderTitle"},intro:{selector:".intro","function":"_renderIntro"},form:{selector:".content","function":"_renderForm"}},_render:function(){var a=contact('<h4 class="title"><span class="subject"></span><span class="require"></span></h4>','<div class="intro"></div>','<div class="content"></div>');this.el=this._createElement("li",{html:a,"class":"part matrix",sn:this.part.get("sn")})},_renderTitle:function(){var b=this.getEl("title"),a=this.part;b.getElement(".subject").set("text",a.getLabel());b.getElement(".require").set("text",a.get("is_require")?"*":"")},_renderIntro:function(){var a=this.part.get("intro");this.getEl("intro").set({html:a,styles:{display:a?"block":"none"}})},_renderForm:function(){var n=this.part;var l=n.getColOptions(),m=n.getRowOptions();var g=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];var b=[],r=["&nbsp;"];for(var q=0,h=l.length;q<h;q++){var a=l[q];var f=g.shift()+".&nbsp;"+(a.getLabel());r.push(f)}b.push(contact('<tr align="center"><th class="col-option">',r.join('</th><th class="col-option">'),"</th></tr>"));row_class="even";var u=n.get("sn"),d=n.get("form_type");for(var q=0,h=m.length;q<h;q++){var o=m[q],v=o.get("sn");var f=(q+1)+".&nbsp;"+(o.getLabel());var e=[f];for(var p=0,t=l.length;p<t;p++){var s=l[p],k=s.get("sn");e.push(contact('<input type="',d,'" id="',v,"_",k,'" name="',u,"[",v,'][]" value="',k,'"/>'))}row_class=(row_class=="even")?"odd":"even";var c=contact('<tr class="',row_class,'"><td class="row-option">',e.join('</td><td align="center">'),"</td></tr>");b.push(c)}b=contact('<table class="options">',contact.run(b),"</table>");this.getEl("form").set("html",b)}};Part.parseTrigger=function(e){var f={on:e.getAttribute("on"),"do":e.getAttribute("do"),"with":[]};var a=e.getAttribute("when");if(a){f.when=a}var c=e.getElementsByTagName("part");for(var d=0,b;b=c[d];d++){f["with"].push(b.getAttribute("sn"))}return f};Part.implement({getAssocTriggers:function(){var a=this.getPage().getTriggersNode();if(!a){return[]}return xSelect(a,'./trigger[@on="'+this.get("sn")+'"]')},getAssocParts:function(){var c=this.getAssocTriggers(),e=[];for(var b=0,a;a=c[b];b++){var a=Part.parseTrigger(a);e.combine(a["with"])}var d=this.getSurvey();return e.map(function(f){return d.$(f)})},getDependTriggers:function(){return xSelect(this.xel.ownerDocument,'//triggers/trigger/part[@sn="'+this.get("sn")+'"]/..')},getDependParts:function(){var b=this.getSurvey(),a=[];$each(this.getDependTriggers(),function(c){a.include(c.getAttribute("on"))});return a.map(function(c){return b.$(c)})},createTrigger:function(){var a=this.xel.ownerDocument.createElement("trigger");a.setAttribute("on",this.get("sn"));this.getPage().getTriggersNode(true).appendChild(a);return a},removeAssocTriggers:function(){var b=this.getAssocTriggers();if(!b.length){return false}var a=this.getAssocParts();$each(b,function(c){c.parentNode.removeChild(c)});this.getSurvey().fireEvent("remove assoc triggers",[this,a],0);this.setDirty();return true},removeDependTriggers:function(){var b=this.getDependTriggers();if(!b.length){return false}var a=this.getDependParts();$each(b,function(c){c.parentNode.removeChild(c)});this.getSurvey().fireEvent("remove depend triggers",[this,a],0);this.setDirty();return true},removeAllTriggers:function(){this.removeAssocTriggers();this.removeDependTriggers()}});Part.Page.implement({getTriggersNode:function(d){var c=this.xel;var a=c.getElementsByTagName("triggers");if(a.length){return a[0]}if(!d){return false}var b=c.ownerDocument.createElement("triggers");c.insertBefore(b,c.firstChild);return b},getTriggers:function(){return this.xel.getElementsByTagName("trigger")},getTriggerHostParts:function(f){var g=this.getTriggers(),c=[];for(var e=0,h=g.length;e<h;e++){c.include(g[e].getAttribute("on"))}var a=this.getSurvey();c=c.map(function(i){return a.$(i)});if(f){for(var e=0,j=[],b;b=c[e];e++){var d=b.get("rank");if(j[d]){j.push(b)}else{j[d]=b}}c=j.clean()}return c},removeAllTriggers:function(){this.parent();var d=this.getTriggersNode();if(!d){return}var b=xSelect(d,"./trigger/part"),f=this.getSurvey();for(var c=0,e;e=b[c];c++){var a=f.$(e);if(a instanceof Part.Page){e.parentNode.removeChild(e)}}return true},removeAllTriggers:function(){this.parent();var c=this.getTriggersNode();if(!c){return}var a=xSelect(c,'./trigger[@do="goto"]');for(var b=0,d;d=a[b];b++){c.removeChild(d)}return true}});Part.Select_Option.implement({getAssocTriggers:function(){var a=this.getPage().getTriggersNode();if(!a){return[]}return xSelect(a,'./trigger[@when="'+this.get("sn")+'"]')},removeDependTriggers:function(){},getTrigger:function(){var a=this.getAssocTriggers();return(a&&a.length)?a[0]:false},setAssocParts:function(g,f){var c=this.getTrigger(),a=this.xel.ownerDocument;if(!c){c=this.getParent().createTrigger();c.setAttribute("when",this.get("sn"))}else{var h=c.firstChild;while(h){c.removeChild(h);h=c.firstChild}}c.setAttribute("do",f);for(var b=0,d=g.length;b<d;b++){var e=a.createElement("part");e.setAttribute("sn",g[b].get("sn"));c.appendChild(e)}this.getSurvey().fireEvent("set assoc triggers",this);this.setDirty()}});
