var Debug=(function(){var methods=['log','debug','info','warn','error','assert','dir','dirxml','group','groupEnd','time','timeEnd','count','trace','profile','profileEnd'];function initialize(){if(window.console&&window.console.firebug){return}window.console={};for(var i=0;i<methods.length;++i){window.console[methods[i]]=Prototype.emptyFunction}}return{initialize:initialize}})();Debug.initialize();
function _(s){return gettext(s)}function gettext(s){if(typeof(L10N)!='undefined'&&L10N[s]){return L10N[s]}return s}function ngettext(s,p,n){if(n!=1)return gettext(p);return gettext(s)}function sprintf(s){var bits=s.split('%');var out=bits[0];var re=/^([ds])(.*)$/;for(var i=1;i<bits.length;i++){p=re.exec(bits[i]);if(!p||arguments[i]==null)continue;if(p[1]=='d'){out+=parseInt(arguments[i],10)}else if(p[1]=='s'){out+=arguments[i]}out+=p[2]}return out}
var Bootstrap=(function(){var Hooks={onloadhooks:[],onloadmodalhooks:[]};function onloadRegister(func){Hooks.onloadhooks.push(func)}function onloadmodalRegister(func){Hooks.onloadmodalhooks.push(func)}function runHooks(hook){for(var i=0,h=Hooks[hook],l=h.length;i<l;++i){h[i]()}Hooks[hook]=null}return{onloadRegister:onloadRegister,onloadmodalRegister:onloadmodalRegister,runHooks:runHooks}})();document.observe('dom:loaded',function(){Bootstrap.runHooks('onloadhooks')});document.observe('lightview:loaded',function(){Bootstrap.runHooks('onloadmodalhooks')});window.document.domain='zoosk.com';try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}Ajax.Responders.register((function(){function callInProgress(xmlhttp){switch(xmlhttp.readyState){case 1:case 2:case 3:return true;break;default:return false;break}}function onCreate(request){request['timeoutId']=setTimeout(function(){if(callInProgress(request.transport)){request.transport.abort();if(request.options['onFailure']){request.options['onFailure'](request.transport,request.json)}}},60000)}function onComplete(request){clearTimeout(request['timeoutId'])}return{onCreate:onCreate,onComplete:onComplete}})());
Event.delegate=(function(){function createRules(rules){var cache={};for(var behavior in rules){if(!cache[behavior]){cache[behavior]=Object.extend([],{selector:new Selector(behavior)})}cache[behavior].push(rules[behavior])}return cache}return function(rules){rules=createRules(rules);return function(e){var element=e.target;do{if(element.nodeType==1){for(var behavior in rules){if((rules[behavior].selector).match(element)){Object.extend(e,{trigger:element});for(var i=0,handlers=rules[behavior],l=handlers.length;i<l;++i){handlers[i].call(this,e)}}}}}while((element!=this)&&(element=element.parentNode))}}})();
var Zoosk=(function(){var session=null;function initialize(_session){if(_session){session=_session}if(window.top!=window){Zoosk.FixIFrame()}var inputs=$(document.body).select('input.text','input.password','textarea');if(inputs){for(var i=0,l=inputs.length;i<l;++i){inputs[i].observe('focus',toggleFormField).observe('blur',toggleFormField)}}}function getSession(){return session}function toggleFormField(e){switch(e.type){case'focus':this.addClassName('active');break;case'blur':this.removeClassName('active');break}}return{IEVersion:(function(a){var b=new RegExp("MSIE ([\\d.]+)").exec(a);return b?parseFloat(b[1]):-1})(navigator.userAgent),initialize:initialize,getSession:getSession}})();Zoosk.FixIFrame=function(){var l=Prototype.Browser.IE&&(function(a){var b=new RegExp("MSIE ([\\d.]+)").exec(a);return b?parseFloat(b[1]):-1})(navigator.userAgent)<7,BROWSER_IS_WEBKIT_419=(Prototype.Browser.WebKit&&!document.evaluate),BROWSER_IS_FIREFOX_LT3=navigator.userAgent.indexOf("Firefox")>-1&&parseFloat(navigator.userAgent.match(/Firefox[\/\s](\d+)/)[1])<3;Object.extend(Lightview,{getViewportDimensions:function(){var v=n.getDimensions();if(this.controller&&this.controller.visible()&&this.views&&this.views.length>1){v.height-=this.controllerOffset}return v},restoreCenter:(function(){var a,controllerOffset;function init(){a=this.lightview.getDimensions();controllerOffset=this.controller.visible()?(this.controllerOffset/2):0}var b;if(l){b=function(){this.lightview.setStyle({top:"300px",left:"50%"})}}else{if(BROWSER_IS_WEBKIT_419||BROWSER_IS_FIREFOX_LT3){b=function(){var v=this.getViewportDimensions(),o=document.viewport.getScrollOffsets();this.lightview.setStyle({marginLeft:0,marginTop:0,left:(o[0]+(v.width/2)-(a.width/2)).floor()+"px",top:(o[1]+(v.height/2)-(a.height/2)).floor()+"px"})}}else{b=function(){this.lightview.setStyle({position:"fixed",left:"50%",top:"300px",marginLeft:(0-a.width/2).round()+"px",marginTop:(0-a.height/2-controllerOffset).round()+"px"})}}}return function(){init.call(this);b.call(this)}})()});var n={getDimensions:function(){return{width:this.getWidth(),height:600}}};(function(a){var B=Prototype.Browser,doc=document,element,property={};function getRootElement(){if(BROWSER_IS_WEBKIT_419){return doc}if(B.Opera&&window.parseFloat(window.opera.version())<9.5){return doc.body}return doc.documentElement}function define(D){if(!element){element=getRootElement()}property[D]="client"+D;a["get"+D]=function(){return element[property[D]]};return a["get"+D]()}a.getWidth=define.curry("Width")})(n);document.observe('lightview:opened',Utilities.Focup.bind(Utilities))};Zoosk.Request=Class.create((function(){function successWrapper(success,transport){if(transport.getHeader('Content-Type')=='application/javascript'){return}success(transport)}function initialize(url){var options=arguments[1]||{};var session=Zoosk.getSession(true);if(session){if(url.lastIndexOf('?')==-1){url+='?'+session}else{url+='&'+session}}if(options.onSuccess){options.onSuccess=options.onSuccess.wrap(successWrapper)}new Ajax.Request(url,options)}return{initialize:initialize}})());Zoosk.Platform=(function(){function initialize(args){if(!args)return;Zoosk.Platform.platformName=args.platformName;Zoosk.Platform.providerName=args.providerName;if(args.fx){args.fx.each(function(fx){Zoosk[fx.name].initialize(fx)})}}return{initialize:initialize,getPlatformName:null,providerName:null}})();var Page={};
var Utilities={Focup:function(){this.Focus('focup');if(window==window.top){window.scrollTo(0,0)}},Focus:function(target){var focup=$(target);if(focup){focup.focus();focup.blur()}},StopEvent:function(e){e.stop()},Blur:function(e){this.blur()},ThreadSafeRemove:function(el){el=$(el);if(el.parentNode){el.remove()}},ThreadSafeReplace:function(el,content){el=$(el);if(el.parentNode){el.replace(content)}},Replace:function(el,html){var oldEl=typeof el==="string"?document.getElementById(el):el;if(Prototype.Browser.IE){oldEl.innerHTML=html;return oldEl}var newEl=oldEl.cloneNode(false);newEl.innerHTML=html;oldEl.parentNode.replaceChild(newEl,oldEl);return newEl},GetTimestamp:function(){return Math.round(new Date().getTime()/1000.0)},UpdateHeaderCoins:function(newBalance,_isPulsate){var coinsEl=$('header_coin_balance');if(!coinsEl){return}coinsEl.down('a').innerHTML=newBalance;if(_isPulsate){Effect.Pulsate(coinsEl,{pulses:5,duration:2.5});Effect.ScrollTo(coinsEl)}},ModifyHeaderCoins:function(diff,_polarity,_isPulsate){if(!diff){return}if(_polarity&&_polarity>0){_polarity=1}else{_polarity=-1}Utilities.UpdateHeaderCoins(Utilities.GetNumCoins()+(_polarity*diff),_isPulsate)},GetNumCoins:function(){var coinsEl=$('header_coin_balance');if(!coinsEl){return 0}return parseInt(coinsEl.down('a').innerHTML)},Extend:function(child,methods){var property,value;for(property in methods){value=methods[property];if(!(property in child)&&Object.isFunction(value)&&property!='extend'){child[property]=value.methodize()}}return child}};
var Popover=(function(){var registered=[];function hide(){Lightview.hide()}function show(href,rel){var options=arguments[2]||{};var force=arguments[3]||{};if(this.isLoaded||force){this.isOpen=true;Lightview.show({href:href,rel:rel,options:options})}}function close(){if(this.isLoaded&&this.isOpen){for(var i=0,l=registered.length;i<l;++i){if(registered[i].open){registered[i].close();break}}this.isOpen=false}}function register(popover){registered.push(popover);return popover}function buildRestrictionDOM(message,details){var popover=new Element('div',{className:'restriction_popover'}).setStyle({display:'none'}).insert(new Element('h4').insert(message)).insert(new Element('div',{className:'purpose'}).insert(details)).insert(new Element('a',{href:'#',className:'negative popoverClose'}).insert(_('Cancel'))).insert(new Element('br',{className:'clear'}));document.body.appendChild(popover);return popover}function buildRestriction(message,details){var popover=buildRestrictionDOM(message,details);return register(new Popover.Element(popover))}function buildRestrictionMetric(message,details,from){var popover=buildRestrictionDOM(message,details);return register(new Popover.Metric(popover,from))}return{isLoaded:false,isOpen:false,DefaultOptions:{autosize:true,menubar:false,overflow:'hidden'},show:show,hide:hide,close:close,register:register,buildRestriction:buildRestriction,buildRestrictionMetric:buildRestrictionMetric}})();Popover.Basic=Class.create({initialize:function(href,rel){this.href=href;this.rel=rel;this.options=Object.clone(Popover.DefaultOptions);this.options=Object.extend(this.options,arguments[2]||{});this.open=false},addTriggers:(function(){function popWrapper(e){e.stop();this.pop()}return function(triggers){if(Object.isString(triggers)){triggers=[triggers]}var triggerObj={};if(Object.isArray(triggers)){triggerObj[arguments[1]||'click']=triggers}else{triggerObj=triggers}var wrapper=popWrapper.bindAsEventListener(this);var delegates;var eventTriggers;for(var event in triggerObj){delegates={};eventTriggers=triggerObj[event];for(var i=0,l=eventTriggers.length;i<l;++i){delegates[eventTriggers[i]]=wrapper}document.observe(event,new Event.delegate(delegates))}return this}})(),pop:function(){if(Popover.isOpen){return}var force=arguments[0]||false;if(Popover.isLoaded||force){this.open=Popover.isOpen=true;Lightview.show({href:this.href,rel:this.rel,options:this.options})}},close:function(){this.open=false}});Popover.Element=Class.create(Popover.Basic,{initialize:function($super,element){this.container=element=$(element);if(element.visible()){element.hide()}$super('#'+this.container.identify(),'inline',arguments[2])}});Popover.Flash=Class.create(Popover.Basic,{initialize:function($super,swfSrc){this.swfSrc=swfSrc;$super(this.swfSrc,'flash',arguments[2])}});Popover.Metric=Class.create(Popover.Element,{initialize:function($super,element,from){$super(element,arguments[3]);this.from=from},pop:function($super){$super();if(pageTracker){pageTracker._trackPageview.defer(this.from)}}});Popover.RecoverPassword=Class.create(Popover.Element,{initialize:function($super,element){$super(element,arguments[3]);this.form=this.container.down('form');this.success=this.container.down('.recover_success');this.error=this.container.down('.recover_error');this.form.observe('submit',this.submitPassword.bindAsEventListener(this))},submitPassword:function(e){e.stop();var form=e.element();var popover=this;new Zoosk.Request('/ajax/recover_password.php',{method:'post',parameters:form.serialize(true),onSuccess:function(transport){var response=transport.responseJSON;var message;if(response.success){popover.error.hide();popover.success.show();return}popover.success.hide();popover.error.show()},onFailure:function(){popover.success.hide();popover.error.show()}})},close:function($super){$super();this.form.reset();this.success.hide();this.error.hide()}});Popover.ReportUser=Class.create(Popover.Element,{initialize:function($super,element){$super(element,arguments[2]);this.form=this.container.down('form').observe('submit',this.fireEvent);$(this.form['reason']).observe('change',this.showInfo)},showInfo:function(e){var reason=$F(this);var extra=$('additionalInfoDiv');if(reason!='Just because'){extra.show()}else{extra.hide()}},fireEvent:function(e){e.stop();this.fire('popover:reportUser')},close:function($super){$super();this.form.reset();$('additionalInfoDiv').hide();this.form.fire('popover:reportCancel')}});Popover.Captcha=Class.create(Popover.Element,{initialize:function($super,element,api_key){$super(element,arguments[4]);this.api_key=api_key;this.captcha=this.container.down('form').observe('submit',this.validateCaptcha.bindAsEventListener(this));this.boundCallback=Prototype.emptyFunction},validateCaptcha:(function(){function captchaSuccess(transport){var response=transport.responseJSON;if(response.success){this.boundCallback();Popover.hide()}else{captchaError.call(this)}}function captchaError(){this.reset()}return function(e){e.stop();new Zoosk.Request('/ajax/check_captcha.php',{method:'post',parameters:this.captcha.serialize(true),onSuccess:captchaSuccess.bind(this),onFailure:captchaError.bind(this)})}})(),create:function(){Recaptcha.create(this.api_key,'recaptcha_image',{theme:'custom',lang:'en',custom_theme_widget:'recaptcha'})},destroy:function(){Recaptcha.destroy()},reset:function(){Recaptcha.reload()},pop:function($super){this.create();$super()},close:function($super){$super();this.destroy();this.boundCallback=Prototype.emptyFunction},setTitle:function(localizedText){$('captcha_title').update(localizedText)}});Popover.FbReview=Class.create(Popover.Element,(function(){function initialize($super,_element){$super(_element,arguments[2])}function addBehaviors(){this.container.observe('click',Event.delegate({'.send_analytics':sendAnalytics.bindAsEventListener(this)}))}function sendAnalytics(e){if(!pageTracker)return;var analytics=e.element().up('.analytics');var pageName=analytics.getAttribute('page_name');var reviewUrl=analytics.getAttribute('review_url');if(!pageName)return;pageTracker._trackPageview(pageName)}return{initialize:initialize,addBehaviors:addBehaviors}})());Popover.CoinInstantRenew=Class.create(Popover.Element,(function(){function initialize($super,_element,_isRefreshPage){$super(_element,arguments[3]);$('coin_instant_renew').isRefreshPage=_isRefreshPage}function addBehaviors(){$('coin_instant_renew_form').observe('click',Event.delegate({'.coin_package_item':selectItem.bindAsEventListener(this,'cir_plan'),'.coin_cc_item':selectItem.bindAsEventListener(this,'cir_prem_id')}))}function pop($super){$super();$('coin_exception').update('');$('coin_instant_action').show()}function selectItem(e,postName){var input=$(e.trigger).down('input');var items=$('coin_instant_renew_form').select('input[name="'+postName+'"]');items.each(function(item){item.up('div').removeClassName('current')});var contentDiv=input.up('div').addClassName('current');input.checked=true}return{initialize:initialize,addBehaviors:addBehaviors,pop:pop}})());Popover.CoinInstantRenew.Functions=(function(){function onSuccess(transport,contentDiv){var response=transport.responseJSON;if(response.exception){$('coin_exception').update(response.exception)}if(response.success){if(contentDiv.isRefreshPage){setTimeout("location.reload(true);",2000);document.observe('click',refreshPage.bind(this))}else{processSuccess.coinBalance=response.newCoinBalance;document.observe('click',processSuccess)}return}else if(response.isAboveLimit){contentDiv.show();return}window.top.location=response.storeLocation}function onFailure(contentDiv){$('coin_exception').update(new Element('p').insert(_('There was an unknown error, try again.')))}function setUp(contentDiv){var spinner=new Element('img',{src:'http://s3.amazonaws.com/static.zoosk.com/20100319/images/loaders/loader_contentarea.gif'}).setStyle({marginTop:'3px',marginLeft:'5px',position:'absolute'});$('coin_exception').update(spinner);$('coin_instant_action').hide()}function processSuccess(){Popover.hide();Utilities.UpdateHeaderCoins(processSuccess.coinBalance,true);document.stopObserving('click',processSuccess);document.fire('coinInstantRenew:success',{userBalance:processSuccess.coinBalance})}function refreshPage(e){location.reload(true)}return{onSuccess:onSuccess,onFailure:onFailure,setUp:setUp}})();Popover.Suggest=Class.create(Popover.Element,{initialize:function($super,element){$super(element,arguments[2])},close:function($super){$super();this.container.fire('popover:suggestClose')}});Popover.Gift=Class.create(Popover.Element,(function(){function initialize($super,element){$super(element,arguments[2]);$('gift_flirt').observe('submit',submitFlirt.bindAsEventListener(this));$('gift_nomessage').observe('click',noFlirt.bindAsEventListener(this))}function submitFlirt(e){e.stop();this.container.fire('popover:gift',{flirtMsg:$F(e.element()['gift_message'])});Popover.hide()}function noFlirt(e){e.stop();this.container.fire('popover:gift');Popover.hide()}return{initialize:initialize}})());Popover.Language=Class.create(Popover.Element,(function(){function initialize($super,element){$super(element,arguments[2]);this.langForm=this.container.down('form');this.langInput=$(this.langForm['set_locale']);addBehaviors.call(this)}function addBehaviors(){this.langForm.observe('click',Event.delegate({'a':submitForm.bindAsEventListener(this)}))}function submitForm(e){e.stop();setLocale.call(this,$(e.trigger).getAttribute('lang'))}function setLocale(lang){this.langInput.setValue(lang);this.langForm.submit()}return{initialize:initialize,setLocale:setLocale}})());Popover.Login=Class.create(Popover.Element,(function(){var streamArgs=null;var notifyEl=null;function initialize($super,element,_streamArgs){element=$(element);$super(element);if(_streamArgs){this.streamArgs=_streamArgs}this.notifyEl=$('buddies_notify_optin');element.observe('click',Event.delegate({'.claimCoins':onClaim.bindAsEventListener(this)}))}function onClaim(e){e.stop();Popover.hide();if(Zoosk.myspace&&this.streamArgs){Zoosk.myspace.Activity.pop(this.streamArgs)}else if(Zoosk.facebook&&this.streamArgs){Zoosk.facebook.Stream.pop(this.streamArgs)}}return{initialize:initialize}})());Bootstrap.onloadmodalRegister(function(){Popover.isLoaded=true});document.observe('lightview:opened',function(){Popover.isOpen=true}).observe('lightview:hidden',function(){Popover.close()}).observe('click',Event.delegate({'.popoverClose':function(e){e.stop();Popover.hide()}}));
var Validation={};Validation.Element={extend:function(element){Utilities.Extend(element,Validation.Element);element.label=null;element.errs=null;element.lastVal=null;element.lastErr=null;element.validators=[];return element},attachValidators:function(element,labelElement,errListElement,validators){element.label=labelElement;element.errs=errListElement.select('li');element.validators=validators;if(Object.isElement(element)){if(element.tagName=='SELECT'){element.observe('change',Validation.Events.Element.validate)}else{element.observe('focus',element.hideErr).observe('blur',Validation.Events.Element.validate)}}else if(Object.isArray(element)){var boundFocus=element.hideErr.bind(element);var boundBlur=Validation.Events.Element.validate.bind(element);for(var i=0,l=element.length;i<l;++i){element[i].observe('focus',boundFocus).observe('blur',boundBlur)}}return element},validate:function(element){var result=-1;for(var i=0;i<element.validators.length;++i){if(!element.validators[i](element)){result=i;break}}if(result===-1){return true}element.lastVal=element.validators[result];element.lastErr=element.errs[result];return false},showErr:function(element){if(!Object.isElement(element.lastErr)){return}if(Object.isElement(element)){element.addClassName('form_error')}if(element.label){element.label.addClassName('form_error')}element.lastErr.show();return element},hideErr:function(element){if(Object.isElement(element)){element.removeClassName('form_error')}if(element.label){element.label.removeClassName('form_error')}element.errs.invoke('hide');return element}};Validation.Form={extend:function(element){Utilities.Extend(element,Validation.Form);element.validators=[];element.firstFail=null;return element},attachElement:function(element,fieldElement){element.validators.push(fieldElement);return element},validate:function(element){var invalidFields=element.validators.invoke('hideErr').reject(Validation.Element.validate).invoke('showErr');if(invalidFields.length==0){return true}element.firstFail=invalidFields[0];return false},focusErr:function(element){element=element.firstFail;if(!element){return}else if(element.fxLock>Utilities.GetTimestamp()){return}var target=Object.isArray(element)?element[0]:element;if(window.top==window){var offset=-1*Math.round(document.viewport.getHeight()/3);var goTo=element.label?element.label.identify():target.identify();Effect.ScrollTo.defer(goTo,{offset:offset})}else{target.focus();target.blur();Validation.Element.showErr.defer(element)}element.fxLock=Utilities.GetTimestamp()+3;var effectElements=[];if(!Object.isArray(element)&&(element.tagName!='TEXTAREA')){effectElements.push(target)}effectElements.push(element.lastErr);Effect.multiple(effectElements,Effect.Pulsate,{speed:0});return element}};Validation.Form.SuggestEmail={extend:function(element,emailField){Validation.Form.extend(element);element.emailField=emailField;element.emailOriginal=emailField.getValue();var suggestPopover=Popover.register(window.suggest=new Popover.Suggest('suggest_container'));suggestPopover.container.observe('click',Event.delegate({'.email_suggest':Validation.Events.Form.SuggestEmail.save.bind(element)})).observe('popover:suggestClose',Validation.Events.Form.SuggestEmail.close.bind(element))}};Validation.Events={};Validation.Events.Element={validate:function(e){if(!this.validate()&&(this.lastVal!=Validation.Validators.Required&&this.lastVal!=Validation.Validators.EditHeightRequired)){this.showErr()}else{this.hideErr()}}};Validation.Events.Form={validate:function(e){if(this.validate()){return}e.stop();this.focusErr()}};Validation.Events.Form.SuggestEmail={validate:function(e){e.stop();if(!this.validate()){this.focusErr();return}if(this.emailOriginal==this.emailField.getValue()){this.submit();return}if(this.inAjax===true){return}this.inAjax=true;new Zoosk.Request('/ajax/validate_email.php',{method:'post',parameters:{email:this.emailField.getValue()},onSuccess:Validation.Events.Form.SuggestEmail.callback.bind(this),onFailure:Validation.Events.Form.SuggestEmail.ignore.bind(this)})},callback:function(transport){var response=transport.responseJSON,data=response.data;if(data.code===1){this.submit()}else{suggest.container.update(data.details);suggest.pop()}},save:function(e){if(e){e.stop()}this.emailField.value=$F(suggest.container.down('input:checked'));if(this.emailField.getValue().length>0){this.submit()}else{this.validate();this.focusErr();Popover.hide()}},close:function(e){this.inAjax=false;e.stop()},ignore:function(e){if(e){e.stop()}Validation.Events.Form.SuggestEmail.close.call(this,e);this.submit()}};Validation.Validators={Required:function(_element){_element.value=$F(_element).strip();return _element.present()&&$F(_element)!='#NA#'},RequiredRadio:function(_element){return _element.any(function(e){return e.checked})},Account:function(_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}value=value.gsub(/[\s-_.]+/,'');return(Validation.Validators.CCNumType.Default.test(value)||Validation.Validators.CCNumType.Masked.test(value))},Digits:function(_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}return Validation.Validators.DDNum.Digits.test(value)},DDMasked:function(_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}return Validation.Validators.DDNum.Masked.test(value)},AlphaNumeric:function(_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}return Validation.Validators.DDNum.AlphaNumeric.test(value)},CCNumType:function(_typeField,_maskedDefault,_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}var cardType=$F(_typeField);if(Validation.Validators.CCNumType.Masked.test(value)){return _maskedDefault==cardType}var passed=true;switch(cardType){case'Visa':passed=Validation.Validators.CCNumType.Visa.test(value);break;case'Mastercard':passed=Validation.Validators.CCNumType.Mastercard.test(value);break;case'Amex':passed=Validation.Validators.CCNumType.Amex.test(value);break;case'Discover':passed=Validation.Validators.CCNumType.Discover.test(value);break;case'Maestro':passed=Validation.Validators.CCNumType.Maestro.test(value);break;case'Solo':passed=Validation.Validators.CCNumType.Solo.test(value);break;case'Switch':passed=Validation.Validators.CCNumType.Switch.test(value);break;case'Carte Bleue':passed=Validation.Validators.CCNumType.CarteBleue.test(value);break;case'Diners Club':passed=Validation.Validators.CCNumType.DinersClub.test(value);break}return passed},Cvv:function(_element){var value=$F(_element).strip();_element.value=value;if(!_element.present()){return true}return(/[0-9]{3,4}/).test(value)},EditHeightRequired:function(_element){if(!$(_element).up('div').visible()){return true}return Validation.Validators.Required(_element)},MetricHeight:function(_element){if(!$(_element).up('div').visible()){return true}var cmHeight=$F(_element);if(!/[0-9]+/.test(cmHeight)){return false}if(cmHeight<91||cmHeight>241){return false}return true},MaxLength:function(_element){var element=$(_element),elementVal=$F(element),maxlength=element.getAttribute('maxlength');if(!element.maxlength&&maxlength){if(maxlength){element.maxlength=parseInt(maxlength)}}if(!element.maxlength){return true}return elementVal.length<=element.maxlength},Safe:function(_element){_element.value=$F(_element).strip();if(!_element.present()){return true}return $F(_element).search(/^[^!@\[\]\{\}<>?=]+$/i)!=-1},Safe2:function(_element){_element.value=$F(_element).strip();if(!_element.present()){return true}return $F(_element).search(/^[^!@\[\]\{\}\\\"\|\?\*<>&=]+$/i)!=-1},Email:function(_element){_element.value=$F(_element).strip();return $F(_element).search(Validation.Validators.Email.Regex)!=-1},EmailOptional:function(_element){if($F(_element).blank()){return true}return Validation.Validators.Email(_element)},Matches:function(_element){if(!_element.matches){_element.matches=_element.readAttribute('matches')}return($F(_element).strip()==$F(_element.matches).strip())},Noop:function(_element){return true}};Validation.Validators.Email.Regex=/^[a-z0-9_-]+(?:[a-z0-9._%+-]+)*@(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?\.)+(?:[A-Z]{2}|aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel)$/i;Validation.Validators.DDNum={};Validation.Validators.DDNum.Digits=/^([0-9\s]+)$/;Validation.Validators.DDNum.AlphaNumeric=/^([\s0-9A-Za-z]+)$/;Validation.Validators.DDNum.Masked=/^([0-9A-Za-z\*\s]+)$/;Validation.Validators.CCNumType.Default=/^[0-9]{13,20}$/;Validation.Validators.CCNumType.Masked=/^\*{9,16}[0-9]{4}$/;Validation.Validators.CCNumType.Visa=/^4[0-9]{12}(?:[0-9]{3})?$/;Validation.Validators.CCNumType.Discover=/^6(?:011|5[0-9]{2})[0-9]{12}$/;Validation.Validators.CCNumType.Mastercard=/^5[1-5][0-9]{14}$/;Validation.Validators.CCNumType.Amex=/^3[47][0-9]{13}$/;Validation.Validators.CCNumType.Maestro=/^[0-9]{13,20}$/;Validation.Validators.CCNumType.Solo=/^[0-9]{13,20}$/;Validation.Validators.CCNumType.Switch=/^[0-9]{13,20}$/;Validation.Validators.CCNumType.CarteBleue=/^[0-9]{13,20}$/;Validation.Validators.CCNumType.DinersClub=/^5[4-5][0-9]{14}$/;
Zoosk.Form={extend:function(element,submitBtn,_cancelElm,_methods,_eventHandlers){element=$(element);Validation.Form.extend(element);if(!_methods)_methods=Zoosk.Form.Methods;Utilities.Extend(element,_methods);if(!_eventHandlers)_eventHandlers=Zoosk.Form.Events;element.submitBtn=$(submitBtn);Zoosk.Form.Element.SubmitBtn.extend(element.submitBtn);element.observe('submit',_eventHandlers.z_onsubmit);if(_cancelElm){element.cancelElm=$(_cancelElm);Zoosk.Form.Element.CancelElm.extend(element.cancelElm)}Event.observe(window,'unload',_eventHandlers.z_onunload.bind(element));return element}};Zoosk.Form.Methods={addValidator:function(element,fieldName,validators){var field=$(element[fieldName]);if(!Object.isElement(field)){return}Validation.Element.extend(field);field.attachValidators(element.getFieldLabel(field),element.getFieldErrList(field),validators);return element.attachElement(field)},addRadioValidator:function(element,fieldName,validators,errors,label){var field=element.select('input[name='+fieldName+']');if(field.length==0)return;errors=$(errors);var label=label?$(label):null;Validation.Element.extend(field);field.attachValidators(label,errors,validators);return element.attachElement(field)},getFieldLabel:function(element,field){return field.up().down('label')},getFieldErrList:function(element,field){return field.next('ul')}};Zoosk.Form.Events={z_onsubmit:function(e){Validation.Events.Form.validate.call(this,e);if(!e.stopped){this.submitBtn.z_disable();if(this.cancelElm){this.cancelElm.z_disable()}}},z_onunload:function(e){this.submitBtn.z_enable();if(this.cancelElm){this.cancelElm.z_enable()}}};Zoosk.Form.Element={};Zoosk.Form.Element.SubmitBtn={extend:function(element){element=$(element);Utilities.Extend(element,Zoosk.Form.Element.SubmitBtn.Methods);element.oldVal=element.getValue();return element}};Zoosk.Form.Element.CancelElm={extend:function(element){element=$(element);Utilities.Extend(element,Zoosk.Form.Element.CancelElm.Methods)}};Zoosk.Form.Element.SubmitBtn.Methods={z_disable:function(element){element.disable().removeClassName('submit_pref').addClassName('submit_disabled').value=_('please wait...');Zoosk.Form.Element.SubmitBtn.Methods.z_enable.delay(180,element);return element},z_enable:function(element){element.enable().removeClassName('submit_disabled').addClassName('submit_pref').value=element.oldVal;return element}};Zoosk.Form.Element.CancelElm.Methods={z_disable:function(element){element.hide();Zoosk.Form.Element.CancelElm.Methods.z_enable.delay(180,element);return element},z_enable:function(element){element.show();return element}};
Zoosk.Form.Callback={extend:function(element,submitBtn,callback){var events=Object.clone(Zoosk.Form.Events);events.z_onsubmit=events.z_onsubmit.wrap(function(proceed,e){proceed(e);if(e&&!e.stopped){callback(e)}});return Zoosk.Form.extend(element,submitBtn,null,null,events)}};Zoosk.Form.Referral={extend:function(element,submitBtn){return Zoosk.Form.extend(element,submitBtn,null,Zoosk.Form.Referral.Methods)}};Zoosk.Form.Referral.Methods=Object.extend(Object.clone(Zoosk.Form.Methods),{getFieldLabel:function(element,field){return null},getFieldErrList:function(element,field){return $('manual_emails_errs').down('ul')}});Zoosk.Form.EmailSuggestorEvents=Object.extend(Object.clone(Zoosk.Form.Events),{z_onsubmit:function(e){Validation.Events.Form.validate.call(this,e);if(!e.stopped){Validation.Events.Form.SuggestEmail.validate.call(this,e);if(!e.stopped){this.submitBtn.z_disable();if(this.cancelElm){this.cancelElm.z_disable()}}}}});Zoosk.Form.Ajaxie=Object.extend(Object.clone(Zoosk.Form.Events),(function(){function extend(_element,_onSuccess,_onFailure,_setUp){element=$(_element);element.method=element.getAttribute('method');element.ajaxUrl=element.getAttribute('ajax_action');element.onSuccess=_onSuccess;element.onFailure=_onFailure;element.setUp=_setUp;return this}function z_onsubmit(e){var form=e.element();Validation.Events.Form.validate.call(this,e);if(!e.stopped){e.stop();var contentDiv=form.up('div');if(form.setUp){form.setUp(contentDiv)}new Zoosk.Request(form.ajaxUrl,{method:form.method,parameters:form.serialize(true),onSuccess:function(transport){form.onSuccess(transport,contentDiv)},onFailure:function(){form.onFailure(contentDiv)}})}}return{extend:extend,z_onsubmit:z_onsubmit}})());Zoosk.TextCharCounter=(function(){function extend(element,displayElement,maxText,errorClass,enclosingElement){element=$(element);displayElement=$(displayElement);enclosingElement=$(enclosingElement);var maxTextByTwo=maxText/2;var timer;var boundCount=function(){count(element,displayElement,maxText,errorClass,enclosingElement,maxTextByTwo)};element.observe('focus',function(){timer=setInterval(boundCount,250)}).observe('blur',function(){clearInterval(timer);boundCount()});return element}function count(element,displayElement,maxText,errorClass,enclosingElement,maxTextByTwo){var textValue=$F(element);var textLength=textValue.length;if(textLength<maxTextByTwo){if(enclosingElement.visible()){enclosingElement.hide()}return}var charsLeft=maxText-textLength;if(charsLeft<0){displayElement.update(Math.abs(charsLeft)+_(' characters too long, please shorten.'))}else{displayElement.update(charsLeft+_(' characters remaining.'))}displayElement[(textLength>maxText?'add':'remove')+'ClassName'](errorClass);if(!enclosingElement.visible()){enclosingElement.show()}}return{extend:extend}})();
var Control={};
