Meetup.DomDeco.TellFriends=function(){bindMethods(this)};Meetup.DomDeco.TellFriends.Email=function(a,c){bindMethods(this);this.email=a;this.controller=c;this.isAlive=true;this.elm=Meetup.DomDeco.TellFriends.Email.buildElement(a);var b=findChildElements(this.elm,["img"]);connect(b[0],"onclick",this.disappear)};Meetup.DomDeco.TellFriends.Email.prototype.disappear=function(){this.isAlive=false;this.elm.parentNode.removeChild(this.elm);this.controller.relocateMessage()};Meetup.DomDeco.TellFriends.Email.buildElement=function(a){var b=LI({title:a},IMG({src:Meetup.DomDeco.TellFriends.deleteImage,"class":"clickToDel sprite sprite_pixel delete_icon"})," ",LABEL({"for":"emailCheck"},a));return b};Meetup.DomDeco.TellFriends.Overlay=function(){this.elm=Meetup.DomDeco.TellFriends.Overlay.buildElement()};Meetup.DomDeco.TellFriends.Overlay.buildElement=function(){var a=DIV({"class":"T_tellFriendsOverlay"});return a};Meetup.DomDeco.TellFriends.Overlay.prototype.show=function(){this.elm.style.display="block"};Meetup.DomDeco.TellFriends.Overlay.prototype.hide=function(){this.elm.style.display="none"};Meetup.DomDeco.TellFriends.Overlay.prototype.setMessage=function(a){this.elm.innerHTML=a};Meetup.DomDeco.TellFriends.Overlay.prototype.locate=function(a,b){this.elm.style.left=a+"px";this.elm.style.top=b+"px"};Meetup.DomDeco.TellFriends.deleteImage="";Meetup.DomDeco.TellFriends.trim=function(a){return a.replace(/^\s+|\s+$/g,"")};Meetup.DomDeco.TellFriends.validateEmail=null;Meetup.DomDeco.TellFriends.prototype.__repr__=function(){return"Meetup.DomDeco.TellFriends"};Meetup.DomDeco.TellFriends.prototype.decorate=function(b){if(!b){LOG.error("no element passed in to Meetup.DomDeco.AnchorLevelUp.decorate()");return}this.errored={};this.errored.email=false;this.errored.message=false;this.message=$("message");this.original={};this.colorAlert="#d3635f";this.elm=b;this.typedEmails={};this.ul_email=UL({"class":"emailCheckList"});this.elm.parentNode.appendChild(this.ul_email);this.overlay={};this.overlay.email=new Meetup.DomDeco.TellFriends.Overlay();this.overlay.message=new Meetup.DomDeco.TellFriends.Overlay();document.body.appendChild(this.overlay.email.elm);document.body.appendChild(this.overlay.message.elm);connect(this.elm,"onkeypress",this.watchKeyTypeEmail);connect($("emailsAddButton"),"onclick",this.handleEmails);connect(this.message,"onkeypress",this.watchKeyTypeMessage);var a=$$("form.tellFriends");var c=this;a[0].onsubmit=function(g){var f=false;if(!c.handleEmails()){f=true}if(!c.checkEmptyMessage()){c.alertUserMessage("Please type a message for your friend.");f=true}if(f){return false}var e=findChildElements(c.ul_email,["li"]);var d=[];forEach(e,function(h){d[d.length]=h.getAttribute("title")});c.elm.value=d.join(", ");c.ul_email.innerHTML="";c.typedEmails={}};taf=this};Meetup.DomDeco.TellFriends.prototype.checkEmptyMessage=function(){var a=true;if(this.message.value.length===0){a=false}else{if(this.message.value.match(/\S+/)===null){a=false}}return a};Meetup.DomDeco.TellFriends.prototype.relocateMessage=function(){if(this.errored.message){var a=Meetup.Layout.getElementRect(this.message);this.overlay.message.locate(parseInt(a.x,10)+10,parseInt(a.y,10)-25)}};Meetup.DomDeco.TellFriends.prototype.clearAlertMessage=function(){this.overlay.message.hide();this.message.style.backgroundColor=this.original.message;this.errored.message=false};Meetup.DomDeco.TellFriends.prototype.alertUserMessage=function(a){if(typeof this.original.message==="undefined"){this.original.message=MochiKit.Style.getStyle(this.message,"background-color")}this.message.style.backgroundColor=this.colorAlert;this.errored.message=true;this.overlay.message.setMessage("Please type some message.");this.relocateMessage();this.overlay.message.show()};Meetup.DomDeco.TellFriends.prototype.alertUserEmail=function(a){if(typeof this.original.email==="undefined"){this.original.email=MochiKit.Style.getStyle(this.elm,"background-color")}this.elm.style.backgroundColor=this.colorAlert;var b=Meetup.Layout.getElementRect(this.elm);this.overlay.email.locate(parseInt(b.x,10)+10,parseInt(b.y,10)-25);this.overlay.email.setMessage("invalid email address");this.overlay.email.show();this.errored.email=true};Meetup.DomDeco.TellFriends.prototype.clearAlertEmail=function(){this.overlay.email.hide();this.elm.style.backgroundColor=this.original.email;this.errored.email=false};Meetup.DomDeco.TellFriends.prototype.clearValue=function(){this.elm.value=""};Meetup.DomDeco.TellFriends.prototype.handleEmails=function(l){var e=true;if(l!==true){l=false}var h=new RegExp(/\,/);var j=new RegExp(/ /);var b=this.elm.value;var k;var g=[];var d=this;if(b==""){var f=0;for(var n in this.typedEmails){if(this.typedEmails[n].isAlive){++f}}if(f===0){this.alertUserEmail("");return false}return true}if(b.match(h)){k=map(Meetup.DomDeco.TellFriends.trim,b.split(","))}else{if(b.match(j)){k=map(Meetup.DomDeco.TellFriends.trim,b.split(" "))}else{if(b===""){window.setTimeout(function(){d.clearValue()},50);return undefined}else{k=[b]}}}var a=k.length;var c;for(var n=0;n<a;++n){c=k[n];if(c===""){continue}try{Meetup.DomDeco.TellFriends.validateEmail(c);this.handleInputSuccessEmail(c)}catch(m){e=false;this.handleInputErrorEmail(m);g[g.length]=c}}if(!l){if(g.length===0){window.setTimeout(function(){d.clearValue()},50)}else{window.setTimeout(function(){d.clearValue();d.elm.value=g.join(", ")},50)}}this.relocateMessage();return e};Meetup.DomDeco.TellFriends.prototype.handleInputErrorEmail=function(a){this.alertUserEmail(a.message)};Meetup.DomDeco.TellFriends.prototype.handleInputSuccessEmail=function(a){if(typeof this.typedEmails[a]==="undefined"){var b=new Meetup.DomDeco.TellFriends.Email(a,this);this.ul_email.appendChild(b.elm);this.typedEmails[a]=b}else{if(!this.typedEmails[a].isAlive){this.typedEmails[a].isAlive=true;this.ul_email.appendChild(this.typedEmails[a].elm)}}};Meetup.DomDeco.TellFriends.prototype.watchKeyTypeMessage=function(a){if(this.errored.message){this.clearAlertMessage()}};Meetup.DomDeco.TellFriends.prototype.watchKeyTypeEmail=function(b){if(this.errored.email){this.clearAlertEmail()}var e=b.event();var a=e.charCode;var d=e.keyCode;var c=b.modifier();switch(true){case (c.any&&a===118):self=this;window.setTimeout(function(){self.handleEmails()},50);break;case (d===10):case (d===13):this.handleEmails();break}};(function(){Meetup.DomDeco.applyById("emails",Meetup.DomDeco.TellFriends,{deferred:true})})();Meetup.DomDeco.TellFriends.validateEmail=function(c){var l=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|asia|cat|jobs|mobi|tel|travel)$/;var r=/^(.+)@(.+)$/;var s='\\(\\)><@,;:\\\\\\"\\.\\[\\]';var n="[^\\s"+s+"]";var e='("[^"]*")';var o=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var b=n+"+";var q="("+b+"|"+e+")";var k=new RegExp("^"+q+"(\\."+q+")*$");var t=new RegExp("^"+b+"(\\."+b+")*$");var u=0;var f;var d=c.match(r);if(d===null){f=new Error();f.name="EmailInvalidError";f.message="Email address seems incorrect (check @ and .'s)";throw (f)}var j=d[1];var w=d[2];var a=j.length;for(u=0;u<a;++u){if(j.charCodeAt(u)>127){f=new Error();f.name="EmailInvalidError";f.message="Ths username contains invalid characters.";throw (f)}}var h=w.length;for(u=0;u<h;++u){if(w.charCodeAt(u)>127){f=new Error();f.name="EmailInvalidError";f.message="Ths domain name contains invalid characters.";throw (f)}}if(j.match(k)===null){f=new Error();f.name="EmailInvalidError";f.message="The username doesn't seem to be valid.";throw (f)}var p=w.match(o);if(p!==null){for(u=1;u<=4;u++){if(p[u]>255){f=new Error();f.name="EmailInvalidError";f.message="Destination IP address is invalid!";throw (f)}}return true}var m=new RegExp("^"+b+"$");var g=w.split(".");var v=g.length;for(u=0;u<v;u++){if(g[u].search(m)==-1){f=new Error();f.name="EmailInvalidError";f.message="The domain name does not seem to be valid.";throw (f)}}if(g[g.length-1].length!=2&&g[g.length-1].search(l)==-1){f=new Error();f.name="EmailInvalidError";f.message="The address must end in a well-known domain or two letter country.";throw (f)}if(v<2){f=new Error();f.name="EmailInvalidError";f.message="This address is missing a hostname!";throw (f)}return true};