var CONFIG={tool_num:1,toolAsyncRequests:{},domainAsyncRequests:{},staticNameTools:false,domainLookupCache:{},domTable:false,checkDomainsIdle_num:1,checkDomainsIdle:{},processMixer_ThesaurusIdle_num:1,processMixer_ThesaurusIdle:{},simpleAvailibility:true} function toggleTLDs(e){YAHOO.util.Event.preventDefault(e);"tldsCheckMore".toggleNugget("tldsCheckMore",{toggleLinkID:"toggleTLDLink",offLinkHTML:"More \\\/",onLinkHTML:"Less \/\\"});} function checkDomainsDelayed(e){if(e){YAHOO.util.Event.preventDefault(e);} setTimeout(checkDomains,1);} function checkDomainsIdle(e){CONFIG.checkDomainsIdle={};_checkDomainsIdle(CONFIG.checkDomainsIdle_num);CONFIG.checkDomainsIdle_num++;} function _checkDomainsIdle(id,run){if(run!==true){setTimeout('_checkDomainsIdle('+id+', true)',500);CONFIG.checkDomainsIdle[id]=true;return;}else if(CONFIG.checkDomainsIdle[id]){checkDomains();return;}} function checkDomains(e){for(var CobjtId in CONFIG.domainAsyncRequests){YAHOO.util.Connect.abort(CONFIG.domainAsyncRequests[CobjtId]);delete CONFIG.domainAsyncRequests[CobjtId];} if(e){YAHOO.util.Event.preventDefault(e);} CONFIG.staticNameTools=true;var domNames=getDomains().concat(getToolsDomains()).sort().uniqSorted();CONFIG.staticNameTools=false;var tlds=getTLDs();var doms=domNames.crossConcat(tlds,'.');var numDoms=doms.length;if(tlds.length==0){"domainsAvailbleTableContainer".h("Check off some top level domains (.com, .net, etc...)");"registerDomainsContainer".hide();"resetPage".hide();return;} if(domNames.length==0){"domainsAvailbleTableContainer".h("");CONFIG.domTable=false;"registerDomainsContainer".hide();"resetPage".hide();return;} if(tlds.length==1){CONFIG.simpleAvailibility=true;}else{CONFIG.simpleAvailibility=false;} CONFIG.domTable=createDomainTable(domNames,tlds);CONFIG.domTable.domsQueue=doms.reverse();CONFIG.domTable.serversAvailible=["http://domdig.com","http://domdig.com"];"registerDomainsContainer".show();"resetPage".show();CONFIG.domTable.processDomsQueue();} YAHOO.widget.DataTable.prototype.processDomsQueue=function(){dom=this.domsQueue.pop();if(!dom){return;} this.domainStatus(dom);} YAHOO.widget.DataTable.prototype.domainStatus=function(dom){var domName;var domTLD;var domSplitAry=dom.split('.');domName=domSplitAry[0];if(domSplitAry[2]){domTLD=domSplitAry[1]+"."+domSplitAry[2];}else{domTLD=domSplitAry[1];} if(CONFIG.domainLookupCache[dom]!=undefined&&CONFIG.domainLookupCache[dom]!='e'){this.updateDomainStatus(domName,domTLD,CONFIG.domainLookupCache[dom]);this.processDomsQueue();return;} server=this.serversAvailible.pop();if(!server){return;} this.updateDomainStatus(domName,domTLD,"wait");var loc=server+'/API/domainavailability.php?domains='+dom;var that=this;var domainStatusCallback={success:function(o){that.serversAvailible.push(o.argument);var rootNode=o.responseXML.documentElement;var domainNodes=rootNode.getElementsByTagName('domain');for(var index=0,len=domainNodes.length;index Available');}else{this.updateCell(row,tld,'');} break;case"f":if(CONFIG.simpleAvailibility){this.updateCell(row,tld,'x Taken');}else{this.updateCell(row,tld,'x');} break;case"wait":this.updateCell(row,tld,"");break;case"to":this.updateCell(row,tld,'Timeout');break;default:this.updateCell(row,tld,'Error');break;} break;};} function createDomainTable(doms,tlds){var columnHeaders=[{key:"Domain",sortable:true}];var fields=["Domain"];tlds.each(function(tld){columnHeaders.push({key:tld,sortable:true});fields.push(tld);});var domsAry=[];for(var index=0,len=doms.length;index'+''+''+'Available'+''+''+'x'+'Taken'+''+'';} var dataTable=new YAHOO.widget.DataTable("domainsAvailbleTableContainer",columnSet,dataSource,{caption:caption});return dataTable;} function getDomains(){var doms="domainsCheckFrame".getIframeElementById("domainsCheck").value.listToArray();for(var index=0,len=doms.length;index'+dom+'');}} domsHTML=domsOrig.concat(domsGenHTML).join(', ');setDomainsPretty(domsHTML);displayDomainsPretty();} function updateDomainsCheck(e){setDomains(getDomains().concat(getToolsDomains()).uniq().join(', '));displayDomains();} function initNameTools(){var aItemData=[{text:"Create",submenu:{id:"toolsAddMenuMixers",itemdata:[{text:"List",onclick:{fn:function(){attachTool(createMixer_List())}}},{text:"List of 600 Suffixes (may slow browser)",onclick:{fn:function(){attachTool(createMixer_List({suffixes:'all'}))}}},{text:"Thesaurus",onclick:{fn:function(){attachTool(createMixer_Thesaurus())}}}]}},{text:"Filter",submenu:{id:"toolsAddMenuFilters",itemdata:[{text:"List",onclick:{fn:function(){attachTool(createFilter_List())}}},{text:"Length",onclick:{fn:function(){attachTool(createFilter_Length())}}}]}}];var oMenuBar=new YAHOO.widget.MenuBar("mymenubar",{lazyload:true,itemdata:aItemData,showdelay:1,autosubmenudisplay:true});oMenuBar.render("toolsAddMenu");} function processMixer_List(tool,input){var list=tool.getElementsByTagName('textarea')[0].value.listToArray();if(0==input.length){return list;} if(0==list.length){return input;} return input.crossConcat(list);} function processMixer_Thesaurus(tool,input){if(CONFIG.staticNameTools){return tool.lastOutput;} var prevReq=CONFIG.toolAsyncRequests[tool.id];if(prevReq){YAHOO.util.Connect.abort(prevReq);delete CONFIG.toolAsyncRequests[tool.id];YAHOO.util.Dom.getElementsByClassName('waitContainer','span',tool)[0].innerHTML='';} removeToolWarnings(tool);if(0==input.length){CONFIG.processMixer_ThesaurusIdle={};YAHOO.util.Dom.getElementsByClassName('waitContainer','span',tool)[0].innerHTML='';attachToolWarning(tool,"Thesaurus has no input so it can't generate synonyms.
Hint: Try adding a creation tool list with some text above this thesaurus tool.");tool.lastOutput=input;return input;} var resultsPerWord=YAHOO.util.Dom.getElementsByClassName('resultsPerWord','input',tool)[0].value;var maxLengthPerWord=YAHOO.util.Dom.getElementsByClassName('maxLengthPerWord','input',tool)[0].value;var query=$H({resultsPerWord:resultsPerWord,maxLengthResult:maxLengthPerWord,words:input.join(',')}).toQueryString();if(tool.lastQuery!=query){CONFIG.processMixer_ThesaurusIdle={};tool.lastInput=input;_processMixer_ThesaurusIdle(tool.id,CONFIG.processMixer_ThesaurusIdle_num);CONFIG.processMixer_ThesaurusIdle_num++;tool.lastOutput=input;} return tool.lastOutput;} function _processMixer_ThesaurusIdle(toolid,id,run){if(run!==true){setTimeout('_processMixer_ThesaurusIdle("'+toolid+'", '+id+', true)',500);CONFIG.processMixer_ThesaurusIdle[id]=true;return;}else if(CONFIG.processMixer_ThesaurusIdle[id]){_processMixer_ThesaurusAsync(toolid);return;}} function _processMixer_ThesaurusAsync(toolid){var tool=document.getElementById(toolid);var input=tool.lastInput;var callback={success:function(o){YAHOO.util.Dom.getElementsByClassName('waitContainer','span',tool)[0].innerHTML='';tool.lastOutput=[];var baseWords=o.responseXML.getElementsByTagName('baseWord');var similarWords=o.responseXML.getElementsByTagName('similarWord');for(var index=0,len=baseWords.length;index=min)||!min)){output.push(item);}} return output;} CONFIG.tools={mixerList:processMixer_List,mixerThesaurus:processMixer_Thesaurus,filterList:processFilter_List,filterLength:processFilter_Length};function createMixer_List(options){var mixer=createMixer(createTool());mixer.getElementsByTagName('h3')[0].appendChild(document.createTextNode('List'));var input=document.createElement('textarea');YAHOO.util.Dom.addClass(input,"focusOnCreate");if(options&&options['suffixes']){urchinTracker('/interface/tools/create/Mixer_List_Suffixed');input.value='ly, ile, ility, iles, iling, ilehq, ilecentral, agogy, archy, cele, cele, centesis, chondrion, cide, cracy, cycle, ectasia, ectomy, agogy, archy, cele, coele, coel, cele, centesis, chondrion, cide, cracy, cycle, ectasia, ectasis, ectomy, emesis, emia, enchyma, ess, esthesis, esthesia, fugal, ful, hedron, holic, ic, id, ism, ist, itis, itude, ium, kinesis, less, ly, mania, ography, ogram, oid, ology, omics, onomy, onym, osis, osis, osis, phagy, phagia, philia, phobia, phone, science, scope, ship, stan, tropism, us, ward, wise, cide, cracy, cycle, gate, genesis, hood, ic, id, illion, ism, ist, kinesis, mania, manship, nik, graphy, oid, logy, ome, omics, nomy, onym, ous, phil, phob, phone, polis, scope, ship, stan, ville, ware, a, ab, act, am, ambul, anim, ann, ante, anti, auc, aud, auto, acy, age, al, an, ance, ancy, ant, ate, ation, ate, able, al, ant, ar, ate, bene, bi, bio, bibli, brev, cad, cat, ceas, cent, centr, chron, cide, circum, clam, clin, clud, co, com, cogn, contra, corp, cour, cort, cre, cred, cycl, de, dec, dec, dei, demo, di, dia, dic, dit, dis, doc, dog, duc, dom, ecto, endo, equi, e, en, epi, ev, exter, er, ed, en, er, ed, en, er, est, fa, fac, femto, fer, fic, fid, fig, flect, flict, flu, for, form, fort, fract, fuge, fuse, ful, ful, fold, fy, gen, geo, giga, gor, grad, graph, hale, her, hetero, hex, homo, hyper, in, in, infra, inter, intro, it, ian, ia, iatry, ic, ice, ing, ion, ism, ist, ite, ity, ive, ify, ing, ize, ic, ile, ing, ish, ive, jac, judice, jug, labor, lex, lect, lide, loc, log, luc, lude, less, ly, mal, man, main, metr, mega, mem, ment, min, meso, meta, micro, mill, milli, mis, mit, mob, mono, morph, multi, ment, nano, nasc, nom, non, non, nov, ness, oct, ob, omni, oper, over, or, ory, ous, pair, pat, para, ped, pel, pend, per, peri, phan, phe, phil, phon, phot, pico, pict, pli, plore, poly, pon, port, post, pre, prim, pro, psych, pute, quat, quint, quip, quir, re, retro, rupt, sanct, sci, scrib, se, sect, sent, semi, sept, serve, sequ, sist, soci, sol, solv, spect, sper, spir, stand, strain, stru, sub, super, syn, ship, ster, tact, tain, tect, tele, tend, tera, term, terr, test, tire, theo, therm, tor, tract, trans, tri, tribute, un, uni, unti, ure, vac, vade, veh, ven, ver, verb, vert, vi, vid, vit, voc, volv, with, ward, wise, y, y, ac, an, ence, ag, st, ami, stead, annu, ant, aug, audi, cy, ency, ent, ible, ial, ent, ary, bine, bi, biblio, cap, abs, af, ag, al, an, ap, enni, as, aut, aur, ical, ient, at, cata, cede, cis, claim, clus, cog, con, gnos, counter, cur, cresc, dign, div, dict, dys, doct, dox, duct, ex, em, et, extra, or, or, fess, fact, feign, flex, fluct, fore, frag, gin, gress, gram, hes, ses, im, im, an, ics, ty, ative, ject, junct, leag, leg, lum, manu, kilo, miss, mov, nat, nym, oc, eous, pare, pass, pod, puls, pond, phas, ply, pos, pur, prin, quad, penta, quis, scio, script, sec, sens, secut, solu, spec, stant, strict, struct, suc, supra, sym, tang, ten, teg, tens, the, tors, trai, vect, vent, verv, vers, vie, viv, voke, volt, cath, ceed, claus, col, curr, cret, dit, dif, ef, fec, fain, flux, frai, gree, graf, sex, il, itive, just, leg, lig, lust:, mot, gnant, of, ose, path, pens, phen, quest, sue, solut, spi, stab, string, stroy, suf, tig, tent, tend, tort, treat, cess, con, curs, crease, es, fic, fit, ir, nai, op, ious, fan, quer, spic, stat, stige, stry, sup, ting, tin, com, ec, fas, feat, phant, stan, sur, cor, cip, fea, fant, sti, sta, sus';}else{urchinTracker('/interface/tools/create/Mixer_List');} mixer.appendChild(input);YAHOO.util.Dom.addClass(mixer,"mixerList");return mixer;} function createMixer_Thesaurus(){urchinTracker('/interface/tools/create/Mixer_thesaurus');var mixer=createMixer(createTool());var waitContainer=document.createElement('span');YAHOO.util.Dom.addClass(waitContainer,"waitContainer");mixer.getElementsByTagName('h3')[0].appendChild(waitContainer);mixer.getElementsByTagName('h3')[0].appendChild(document.createTextNode('Thesaurus'));var maxResultsPerWord_input=document.createElement('input');maxResultsPerWord_input.value="20";YAHOO.util.Dom.addClass(maxResultsPerWord_input,"resultsPerWord");mixer.appendChild(maxResultsPerWord_input);mixer.appendChild(document.createTextNode('Synonyms max per input'));mixer.appendChild(document.createElement('br'));var maxLengthPerWord_input=document.createElement('input');maxLengthPerWord_input.value="8";YAHOO.util.Dom.addClass(maxLengthPerWord_input,"maxLengthPerWord");mixer.appendChild(maxLengthPerWord_input);mixer.appendChild(document.createTextNode('Letter max synonyms'));YAHOO.util.Dom.addClass(mixer,"mixerThesaurus");return mixer;} function createFilter_List(){urchinTracker('/interface/tools/create/Filter_List');var filter=createFilter(createTool());filter.getElementsByTagName('h3')[0].appendChild(document.createTextNode('List'));var input=document.createElement('textarea');YAHOO.util.Dom.addClass(input,"focusOnCreate");filter.appendChild(input);YAHOO.util.Dom.addClass(filter,"filterList");return filter;} function createFilter_Length(){urchinTracker('/interface/tools/create/Filter_Length');var filter=createFilter(createTool());filter.getElementsByTagName('h3')[0].appendChild(document.createTextNode('Length'));var min_input=document.createElement('input');var max_input=document.createElement('input');min_input.value="1";max_input.value="10";YAHOO.util.Dom.addClass(min_input,"length");YAHOO.util.Dom.addClass(max_input,"length");filter.appendChild(min_input);filter.appendChild(document.createTextNode('Characters min each input'));filter.appendChild(document.createElement('br'));filter.appendChild(max_input);filter.appendChild(document.createTextNode('Characters max each input'));YAHOO.util.Dom.addClass(filter,"filterLength");return filter;} function createTool(){var close=document.createElement('a');YAHOO.util.Dom.addClass(close,"close");close.href="JavaScript:closeTool("+CONFIG.tool_num+")";var header=document.createElement('h3');header.appendChild(close);var tool=document.createElement('li');tool.id="tool"+CONFIG.tool_num;YAHOO.util.Dom.addClass(tool,"tool");tool.appendChild(header);CONFIG.tool_num++;return tool;} function createMixer(tool){var mixer=tool;YAHOO.util.Dom.addClass(mixer,"mixer");return mixer;} function createFilter(tool){var filter=tool;YAHOO.util.Dom.addClass(filter,"filter");return filter;} function attachTool(tool){var dd=new YAHOO.example.DDList(tool.id);var handleID=tool.id+"_handle";tool.getElementsByTagName('h3')[0].id=handleID;dd.setHandleElId(handleID);$("nameGenerationTools").appendChild(tool);var focusEl=YAHOO.util.Dom.getElementsByClassName("focusOnCreate",false,tool)[0];if(focusEl){focusEl.focus();} processTools();} function attachToolWarning(tool,warningHTML){var warningDiv=document.createElement('div');warningDiv.innerHTML=warningHTML;YAHOO.util.Dom.addClass(warningDiv,"warning");tool.appendChild(warningDiv);} function removeToolWarnings(tool){var warningDiv=YAHOO.util.Dom.getElementsByClassName('warning','div',tool)[0];if(warningDiv){warningDiv.parentNode.removeChild(warningDiv);}} function closeTool(tool_num,skipProcess){var tool=$("tool"+tool_num);YAHOO.util.Event.purgeElement(tool,true);tool.parentNode.removeChild(tool);if(skipProcess!==true){processTools();}} function processToolsEvent(){setTimeout(processTools,1);} function processTools(skipAsyncRequsts){if(skipAsyncRequsts===true){CONFIG.staticNameTools=true;} updateDomainsCheckPretty(getToolsDomains(),getDomains());if(skipAsyncRequsts===true){CONFIG.staticNameTools=false;}else{checkDomainsIdle();}} function getToolsDomains(){var input=[];var tools=$("nameGenerationTools").getElementsByTagName('li');for(var index=1,len=tools.length;indexthis.lastY){this.goingUp=false;} this.lastY=y;},onDragOver:function(e,id){var srcEl=this.getEl();var destEl=Dom.get(id);if(destEl.nodeName.toLowerCase()=="li"){var orig_p=srcEl.parentNode;var p=destEl.parentNode;if(this.goingUp){p.insertBefore(srcEl,destEl);}else{p.insertBefore(srcEl,destEl.nextSibling);} DDM.refreshCache();}}});Event.onDOMReady(YAHOO.example.DDApp.init,YAHOO.example.DDApp,true);})();function init(){YAHOO.util.Event.addListener("toggleTLDLink","click",toggleTLDs);YAHOO.util.Event.addListener("domainLookup","mouseup",checkDomainsDelayed);YAHOO.util.Event.addListener("registerDotster","click",registerDotster);YAHOO.util.Event.addListener("nameGenerationTools","keyup",processToolsEvent);setTimeout("initNameTools()",1);initResetDialog();CONFIG.tutorialText=new YAHOO.widget.Panel("tutorialText",{width:"700px",visible:false,constraintoviewport:false});"tutorialText".show();CONFIG.tutorialText.render();} YAHOO.util.Event.onDOMReady(init);function readTutorial(){if(CONFIG.tutorialText.visible===undefined){CONFIG.tutorialText.show();CONFIG.tutorialText.cfg.setProperty('fixedcenter',true);CONFIG.tutorialText.visible=true;}else{CONFIG.tutorialText.hide();delete CONFIG.tutorialText.visible;}} function watchTutorial(){if($('tutorialVideoContainer')===null){var tutorialVideoContainer=document.createElement('div');tutorialVideoContainer.id="tutorialVideoContainer";$("innernews").appendChild(tutorialVideoContainer);"tutorialVideoContainer".h(' ');CONFIG.tutorialVideo=new YAHOO.widget.Panel("tutorialVideoContainer",{width:"400px",visible:true,constraintoviewport:false});CONFIG.tutorialVideo.hideEvent.subscribe(function(){CONFIG.tutorialVideo.destroy();});CONFIG.tutorialVideo.cfg.setProperty('fixedcenter',true);CONFIG.tutorialVideo.render();var downloadLink=document.createElement('a');downloadLink.href="http://domdig.com/videos/Domdig.comTutorial.wmv";downloadLink.innerHTML="Download(High res - 6.11MB)";downloadLink.target='_blank';tutorialVideoContainer.appendChild(downloadLink);}else{CONFIG.tutorialVideo.destroy();}} function initResetDialog(){var resetPage=function(){for(var CobjtId in CONFIG.domainAsyncRequests){YAHOO.util.Connect.abort(CONFIG.domainAsyncRequests[CobjtId]);delete CONFIG.domainAsyncRequests[CobjtId];} for(var CobjtId in CONFIG.toolAsyncRequests){YAHOO.util.Connect.abort(CONFIG.toolAsyncRequests[CobjtId]);delete CONFIG.toolAsyncRequests[CobjtId];} var toolsContainer=new YAHOO.util.Element('nameGenerationTools');var tools=toolsContainer.getElementsByTagName('li');while(tools.length>0){closeTool(tools[0].id.substr(4),true);} setDomainsPretty("");setDomains("");"registerDomainsContainer".hide();"resetPage".hide();CONFIG.domTable=false;"domainsAvailbleTableContainer".h("");this.hide();};var handleNo=function(){this.hide();};var simpledialog1=new YAHOO.widget.SimpleDialog("resetPageDialog",{width:"300px",fixedcenter:true,visible:false,draggable:false,close:true,text:"By doing this all of the work you've done on the page will be gone -- domain names you've typed in, and the tools (mixers / filters) you've setup.",constraintoviewport:true,buttons:[{text:"Yes",handler:resetPage},{text:"No",handler:handleNo,isDefault:true}]});simpledialog1.setHeader("Are you sure?");simpledialog1.render(document.body);YAHOO.util.Event.addListener("resetPage","click",simpledialog1.show,simpledialog1,true);} function registerDotster(){var domainsReg=[];$("domainsAvailble").getElements('checkbox').each(function(box){if(box.checked){domainsReg.push(box.id.substring(7));}});var params=$H({DomainName:domainsReg.join(','),siteid:'4798','submit.x':Math.round(Math.random()*99+1),'submit.y':Math.round(Math.random()*19+1),submit:'GO',aid:'10275198',pid:'2455723',url:'https://secure.registerapi.com/dds2/index.php'});var url='http://www.tkqlhce.com/interactive?'+params.toQueryString();window.location=url;} function setContainerWait(idOrElement,text){html="";if(text){html+=" "+text;} if(idOrElement.innerHTML!=undefined){idOrElement.innerHTML=html;}else{idOrElement.h(html);}} function randomKeyInObjectHash(hObject){for(var key in hObject){return key;}} function a(o){alert(o);} String.prototype.isString=function(){return true;};String.prototype.h=function(html){var o=document.getElementById(this);o.innerHTML=html;} String.prototype.geth=function(){return document.getElementById(this).innerHTML;} String.prototype.hURL=function(url,waitText,callbackSuccessFunction){var that=this;var callback={success:function(o){that.h(o.responseText);if(callbackSuccessFunction)callbackSuccessFunction(o)},failure:function(o){that.h('Error, please try again');}} setContainerWait(this,waitText);var cObj=YAHOO.util.Connect.asyncRequest('GET',url,callback);} String.prototype.addClass=function(c){YAHOO.util.Dom.addClass(document.getElementById(this),c);} String.prototype.removeClass=function(c){YAHOO.util.Dom.removeClass(document.getElementById(this),c);} String.prototype.hide=function(){this.addClass('hidden');} String.prototype.show=function(){this.removeClass('hidden');} String.prototype.getv=function(){return document.getElementById(this).value;} String.prototype.setv=function(v){document.getElementById(this).value=v;} String.prototype.toggleNugget=function(nuggetName,options){if(!options){options="";} if(this.geth()==""){url="http://domdig.com/nuggets/"+nuggetName+".php";this.hURL(url,undefined,options.onFunction);if(options.toggleLinkID&&options.onLinkHTML){options.toggleLinkID.h(options.onLinkHTML);}}else if(this.geth()!=""){this.h("");if(options.offFunction){options.offFunction();} if(options.toggleLinkID&&options.offLinkHTML){options.toggleLinkID.h(options.offLinkHTML);}}} String.prototype.getIframeElementById=function(id){var doc=this.getIframeDocument();return doc.getElementById(id);} String.prototype.getIframeDocument=function(){var that=this;var iframe=document.getElementById(that);var doc=false;if(iframe.document){doc=iframe.contentWindow.document;} if(iframe.contentDocument){doc=iframe.contentDocument;} return doc;} if(YAHOO){YAHOO.util.Event.purgeChildren=function(node){node.each(function(node){alert(node);})}} Array.prototype.crossConcat=function(ary,glue){if(!glue) glue="";var cross=[];for(var index=0,len=this.length;index-1,Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')==-1},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:(document.createElement('div').__proto__!==document.createElement('form').__proto__)},ScriptFragment:']*>([\u0001-\uFFFF]*?)',JSONFilter:/^\/\*-secure-\s*(.*)\s*\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}} var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}} var Abstract=new Object();Object.extend=function(destination,source){for(var property in source){destination[property]=source[property];} return destination;} Object.extend(Object,{inspect:function(object){try{if(object===undefined)return'undefined';if(object===null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}},toJSON:function(object){var type=typeof object;switch(type){case'undefined':case'function':case'unknown':return;case'boolean':return object.toString();} if(object===null)return'null';if(object.toJSON)return object.toJSON();if(object.ownerDocument===document)return;var results=[];for(var property in object){var value=Object.toJSON(object[property]);if(value!==undefined) results.push(property.toJSON()+': '+value);} return'{'+results.join(', ')+'}';},keys:function(object){var keys=[];for(var property in object) keys.push(property);return keys;},values:function(object){var values=[];for(var property in object) values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);}});Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}} Function.prototype.bindAsEventListener=function(object){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[event||window.event].concat(args));}} Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16);},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;},toPaddedString:function(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;},toJSON:function(){return isFinite(this)?this.toString():'null';}});Date.prototype.toJSON=function(){return'"'+this.getFullYear()+'-'+ (this.getMonth()+1).toPaddedString(2)+'-'+ this.getDate().toPaddedString(2)+'T'+ this.getHours().toPaddedString(2)+':'+ this.getMinutes().toPaddedString(2)+':'+ this.getSeconds().toPaddedString(2)+'"';};var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}} return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=count===undefined?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return this;},truncate:function(length,truncation){length=length||30;truncation=truncation===undefined?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:this;},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)});},escapeHTML:function(){var self=arguments.callee;self.text.data=this;return self.div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject('',function(memo,node){return memo+node.nodeValue}):div.childNodes[0].nodeValue):'';},toQueryParams:function(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(hash[key].constructor!=Array)hash[key]=[hash[key]];hash[key].push(value);} else hash[key]=value;} return hash;});},toArray:function(){return this.split('');},succ:function(){return this.slice(0,this.length-1)+ String.fromCharCode(this.charCodeAt(this.length-1)+1);},times:function(count){var result='';for(var i=0;i-1;},startsWith:function(pattern){return this.indexOf(pattern)===0;},endsWith:function(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;},empty:function(){return this=='';},blank:function(){return/^\s*$/.test(this);}});if(Prototype.Browser.WebKit||Prototype.Browser.IE)Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,'&').replace(//g,'>');},unescapeHTML:function(){return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');}});String.prototype.gsub.prepareReplacement=function(replacement){if(typeof replacement=='function')return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};} String.prototype.parseQuery=String.prototype.toQueryParams;Object.extend(String.prototype.escapeHTML,{div:document.createElement('div'),text:document.createTextNode('')});with(String.prototype.escapeHTML)div.appendChild(text);var Template=Class.create();Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Template.prototype={initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){return this.template.gsub(this.pattern,function(match){var before=match[1];if(before=='\\')return match[2];return before+String.interpret(object[match[3]]);});}} var $break={},$continue=new Error('"throw $continue" is deprecated, use "return" instead');var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){iterator(value,index++);});}catch(e){if(e!=$break)throw e;} return this;},eachSlice:function(number,iterator){var index=-number,slices=[],array=this.toArray();while((index+=number)=result) result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||valueb?1:0;}).pluck('value');},toArray:function(){return this.map();},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function') iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#';}} Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0,length=iterable.length;i1?this:this[0];},uniq:function(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value))) array.push(value);return array;});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';},toJSON:function(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(value!==undefined)results.push(value);});return'['+results.join(', ')+']';}});Array.prototype.toArray=Array.prototype.clone;function $w(string){string=string.strip();return string?string.split(/\s+/):[];} if(Prototype.Browser.Opera){Array.prototype.concat=function(){var array=[];for(var i=0,length=this.length;i';},toJSON:function(){return Hash.toJSON(this);}});function $H(object){if(object instanceof Hash)return object;return new Hash(object);};if(function(){var i=0,Test=function(value){this.key=value};Test.prototype.key='foo';for(var property in new Test('bar'))i++;return i>1;}())Hash.prototype._each=function(iterator){var cache=[];for(var key in this){var value=this[key];if((value&&value==Hash.prototype[key])||cache.include(key))continue;cache.push(key);var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}};ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}},include:function(value){if(value1&&!((readyState==4)&&this._complete)) this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+ (this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005) headers['Connection']='close';} if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function') for(var i=0,length=extras.length;i=200&&this.transport.status<300);},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(state=='Complete'){try{this._complete=true;(this.options['on'+this.transport.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);} var contentType=this.getHeader('Content-type');if(contentType&&contentType.strip().match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i)) this.evalResponse();} try{(this.options['on'+state]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+state,this,transport,json);}catch(e){this.dispatchException(e);} if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null}},evalJSON:function(){try{var json=this.getHeader('X-JSON');return json?json.evalJSON():null;}catch(e){return null}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))} this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,param){this.updateContent();onComplete(transport,param);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.container[this.success()?'success':'failure'];var response=this.transport.responseText;if(!this.options.evalScripts)response=response.stripScripts();if(receiver=$(receiver)){if(this.options.insertion) new this.options.insertion(receiver,response);else receiver.update(response);} if(this.success()){if(this.onComplete) setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;} this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property]) if(element.nodeType==1) elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $A($(element).getElementsByTagName('*')).each(Element.extend);},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1)element=element.nextSibling;return $(element);},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(typeof selector=='string') selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=element.ancestors();return expression?Selector.findElement(ancestors,expression,index):ancestors[index||0];},down:function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();var descendants=element.descendants();return expression?Selector.findElement(descendants,expression,index):descendants[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=element.previousSiblings();return expression?Selector.findElement(previousSiblings,expression,index):previousSiblings[index||0];},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=element.nextSiblings();return expression?Selector.findElement(nextSiblings,expression,index):nextSiblings[index||0];},getElementsBySelector:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},getElementsByClassName:function(element,className){return document.getElementsByClassName(className,element);},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){if(!element.attributes)return null;var t=Element._attributeTranslations;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];var attribute=element.attributes[name];return attribute?attribute.nodeValue:null;} return element.getAttribute(name);},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;if(elementClassName.length==0)return false;if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)"))) return true;return false;},addClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).add(className);return element;},removeClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).remove(className);return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element)[element.hasClassName(className)?'remove':'add'](className);return element;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue)) element.removeChild(node);node=nextNode;} return element;},empty:function(element){return $(element).innerHTML.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);while(element=element.parentNode) if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Position.cumulativeOffset(element);window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);style=style=='float'?'cssFloat':style.camelize();var value=element.style[style];if(!value){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;} if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles,camelized){element=$(element);var elementStyle=element.style;for(var property in styles) if(property=='opacity')element.setOpacity(styles[property]) else elementStyle[(property=='float'||property=='cssFloat')?(elementStyle.styleFloat===undefined?'cssFloat':'styleFloat'):(camelized?property:property.camelize())]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;return element;},getDimensions:function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null) return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}} return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';} return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=element.style.overflow||'auto';if((Element.getStyle(element,'overflow')||'visible')!='hidden') element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf,childElements:Element.Methods.immediateDescendants});if(Prototype.Browser.Opera){Element.Methods._getStyle=Element.Methods.getStyle;Element.Methods.getStyle=function(element,style){switch(style){case'left':case'top':case'right':case'bottom':if(Element._getStyle(element,'position')=='static')return null;default:return Element._getStyle(element,style);}};} else if(Prototype.Browser.IE){Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/)) if(value[1])return parseFloat(value[1])/100;return 1.0;} if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none')) return element['offset'+style.capitalize()]+'px';return null;} return value;};Element.Methods.setOpacity=function(element,value){element=$(element);var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){style.filter=filter.replace(/alpha\([^\)]*\)/gi,'');return element;}else if(value<0.00001)value=0;style.filter=filter.replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+(value*100)+')';return element;};Element.Methods.update=function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();var tagName=element.tagName.toUpperCase();if(['THEAD','TBODY','TR','TD'].include(tagName)){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML=''+html.stripScripts()+'
';depth=2;break;case'TR':div.innerHTML=''+html.stripScripts()+'
';depth=3;break;case'TD':div.innerHTML='
'+html.stripScripts()+'
';depth=4;} $A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=html.stripScripts();} setTimeout(function(){html.evalScripts()},10);return element;}} else if(Prototype.Browser.Gecko){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};} Element._attributeTranslations={names:{colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){var node=element.getAttributeNode('title');return node.specified?node.nodeValue:null;}}};(function(){Object.extend(this,{href:this._getAttr,src:this._getAttr,type:this._getAttr,disabled:this._flag,checked:this._flag,readonly:this._flag,multiple:this._flag});}).call(Element._attributeTranslations.values);Element.Methods.Simulated={hasAttribute:function(element,attribute){var t=Element._attributeTranslations,node;attribute=t.names[attribute]||attribute;node=$(element).getAttributeNode(attribute);return node&&node.specified;}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement('div').__proto__){window.HTMLElement={};window.HTMLElement.prototype=document.createElement('div').__proto__;Prototype.BrowserFeatures.ElementExtensions=true;} Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});} if(arguments.length==2){var tagName=methods;methods=arguments[1];} if(!tagName)Object.extend(Element.Methods,methods||{});else{if(tagName.constructor==Array)tagName.each(extend);else extend(tagName);} function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName]) Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);} function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;var cache=Element.extend.cache;for(var property in methods){var value=methods[property];if(!onlyIfAbsent||!(property in destination)) destination[property]=cache.findOrStore(value);}} function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];window[klass]={};window[klass].prototype=document.createElement(tagName).__proto__;return window[klass];} if(F.ElementExtensions){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);} if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(typeof klass=="undefined")continue;copy(T[tag],klass.prototype);}} Object.extend(Element,Element.Methods);delete Element.ByTag;};var Toggle={display:Element.toggle};Abstract.Insertion=function(adjacency){this.adjacency=adjacency;} Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var tagName=this.element.tagName.toUpperCase();if(['TBODY','TR'].include(tagName)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);} setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML=''+this.content+'
';return $A(div.childNodes[0].childNodes[0].childNodes);}} var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);var Selector=Class.create();Selector.prototype={initialize:function(expression){this.expression=expression.strip();this.compileMatcher();},compileMatcher:function(){if(Prototype.BrowserFeatures.XPath&&!(/\[[\w-]*?:/).test(this.expression)) return this.compileXPathMatcher();var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;} this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){this.matcher.push(typeof c[i]=='function'?c[i](m):new Template(c[i]).evaluate(m));e=e.replace(m[0],'');break;}}} this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;} this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){if(m=e.match(ps[i])){this.matcher.push(typeof x[i]=='function'?x[i](m):new Template(x[i]).evaluate(m));e=e.replace(m[0],'');break;}}} this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;if(this.xpath)return document._getElementsByXPath(this.xpath,root);return this.matcher(root);},match:function(element){return this.findElements(document).include(element);},toString:function(){return this.expression;},inspect:function(){return"#";}};Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:"[@#{1}]",attr:function(m){m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(typeof h==='function')return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",'checked':"[@checked]",'disabled':"[@disabled]",'enabled':"[not(@disabled)]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,m,v;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=typeof x[i]=='function'?x[i](m):new Template(x[i]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}} return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/)) return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c); c = false;',className:'n = h.className(n, r, "#{1}", c); c = false;',id:'n = h.id(n, r, "#{1}", c); c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}"); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|\s|(?=:))/,attrPresence:/^\[([\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\]]*?)\4|([^'"][^\]]*?)))?\]/},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++) a.push(node);return a;},mark:function(nodes){for(var i=0,node;node=nodes[i];i++) node._counted=true;return nodes;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++) node._counted=undefined;return nodes;},index:function(parentNode,reverse,ofType){parentNode._counted=true;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){node=nodes[i];if(node.nodeType==1&&(!ofType||node._counted))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++) if(node.nodeType==1&&(!ofType||node._counted))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._counted){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}} if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++) if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i1)?h.unique(results):results;}});function $$(){return Selector.findChildElements(document,$A(arguments));} var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(elements,getHash){var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){var key=element.name,value=$(element).getValue();if(value!=null){if(key in result){if(result[key].constructor!=Array)result[key]=[result[key]];result[key].push(value);} else result[key]=value;}} return result;});return getHash?data:Hash.toQueryString(data);}};Form.Methods={serialize:function(form,getHash){return Form.serializeElements(Form.getElements(form),getHash);},getElements:function(form){return $A($(form).getElementsByTagName('*')).inject([],function(elements,child){if(Form.Element.Serializers[child.tagName.toLowerCase()]) elements.push(Element.extend(child));return elements;});},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i=this.offset[1]&&y=this.offset[0]&&x=this.offset[1]&&this.ycomp=this.offset[0]&&this.xcomp