var validate_data_panel_initted=0,validate_data_panel,realtime_validate_inited={},cached_url_depth,validate_working_form,valImgs=[],validateElMap={},check_elements={},match_validators={fullemailaddress:eval("/^([a-zA-Z0-9_'+*$%^&!.-])+[@+](([a-zA-Z0-9-])+.)+([a-zA-Z0-9:]{2,4})+$/"),emailcharplus:eval("/^([a-zA-Z0-9_'+.-])/"),emailaddress:/^[^\@]\@[^\.]\./,emailchars:/^[a-z0-9\_\-\@\.]+$/,email_localpart_chars:/^\w[\w-.+%]*/,email_localpart_chars_cap:/^[A-Za-z0-9\_\-\.]+$/,atsign:/\@/,notestsign:/\@/,hostname:/^((\*\.|[a-zA-Z0-9])([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/,fqdn_domain:/^((\*\.|[a-zA-Z0-9])([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.){2}[a-zA-Z]{2,6}$/,fullipaddr:/^(\d{1,3}\.){3}\d{1,3}$/,is_ipcidr_or_host:/^[a-z0-9\.\-\/]+$/,ipcidr:/^\d+\.\d+\.\d+\.\d+\/?\d*$/,host:/^[\w\.\-]+$/,wildhost:/^[\*\w\.\-]+$/,wildhostsql:/^[\%\w\.\-]+$/,unlimitedornum:/^[0-9]*$|^unlimited$/,numeric:/^[0-9]+$/,decimal_numeric:/^[-+]?[0-9]+(\.[0-9]+)?$/,decimal_numeric_unlimited:/^[-+]?[0-9]+(\.[0-9]+)?$|^unlimited$/,alphanum:/^[a-z0-9\_\-]+$/i,"start_www.":/^www[.]/i,jpg_gif_png_jpeg:/\.(gif|jpg|png|jpeg)$/,html:/\.(html)$/,spaces_dots_ats_fwdslashes_hyphens:/[\s\.\@\/\-]/,spaces_dots_ats_fwdslashes:/[\s\.\@\/]+/,two_dots:/[^\.]\.[^\.]\.[^\.]/,spaces_ats_fwdslashes:/[\s\@\/]+/,start_end_dashes:/(?:^[-]|[-]$)/,start_end_space:/(?:^[\s]|[\s]$)/,slashes_dots:/[\.\/\\]/,noascii0_255:/[\0\255]/,spaces:/\s+/,forwardslash:/\//,dot:/\./,empty:/^$/,start_end_dots:/(^[.]|[.]$)/,start_dot:/^\./,underscore:/\_/,protocol:/^\S+[:][/][/]/,only_spaces:/^\s+$/,ssl_chars:/^[\-\w\!\+\@\~\:]+$/,whole_nums:/^\d+$/,"1_9only":/^[1-9]$/},offsetQuirk=0;-1==navigator.appVersion.indexOf("MSIE")&&-1==navigator.appVersion.indexOf("Opera")||(offsetQuirk=1);var validgen=0,validateFocusEl,validators={},newest_listener;function password_strength_validator_init(){self.passkey_handler?(passkey_handler(),hide_password_tip_panel()):alert("Javascript Order Error. You cannot call password_strength_validator_init before passkey_handler has been loaded.")}function init_validate_dialog(){if(!validate_data_panel_initted){if(validate_data_panel_initted=1,!document.getElementById("validate_data_panel")){var e=document.createElement("div");e.id="validate_data_panel",e.style.display="none",e.innerHTML='<div class="hd"><div class="lt"></div><span>Inputs not Valid!</span><div class="rt"></div></div><div class="bd"><div id="inputs_val" style="padding: 30px;"></div></div>',document.body.appendChild(e)}(validate_data_panel=new YAHOO.widget.Dialog("validate_data_panel",{width:"300px",fixedcenter:!0,constraintoviewport:!0,close:!0,draggable:!1,modal:!1,buttons:[{text:"Close",handler:function(){validate_data_panel.hide()},isDefault:!0}],visible:!1})).beforeHideEvent.subscribe(handle_hide_validate,validate_data_panel,!0),validate_data_panel.render(),validate_data_panel.hide(),document.getElementById("validate_data_panel").style.display=""}}var handle_hide_validate=function(){validateFocusEl&&validateFocusEl.focus()};function realtime_validate_init(e){if(e){if(!realtime_validate_inited[e])if(realtime_validate_inited[e]=1,YAHOO.util.Event.addListener(window,"resize",reposition_all_validator_imgs),validators[e]){for(var a=0;a<validators[e].length;a++)for(var t=validators[e][a].Els,i=0;i<t.length;i++)t[i].id||(t[i].id="validgen"+validgen++),validateElMap[t[i].id]=e;for(var l in validateElMap){var s=document.getElementById(l);"TEXTAREA"==s.tagName||"text"==s.type||"password"==s.type||"textbox"==s.type?YAHOO.util.Event.addListener(s,"keyup",(function(){single_validate(this.id)}),s,!0):"SELECT"!=s.tagName&&"file"!=s.type||YAHOO.util.Event.addListener(s,"change",(function(){single_validate(this.id)}),s,!0)}}else alert("No validators registerd for that formId: "+e)}else alert("realtime_validate_init must be called with a formId")}function single_validate(e,a){a||(a=validateElMap[e]),a||(a=document.getElementById(e).form.id),do_validate(a,1,0,e)}function validate_box(e,a){a||(a=validateElMap[e]),a||(a=document.getElementById(e).form.id),do_validate(a,0,1,e)}function do_validate(e,a,t,i){var l=1;if(!e)return alert("do_validate requires at least one argument (formId)"),!1;var s=[],d={},n=validators[e]||[];if(validateFocusEl=0,i&&""!=i&&null==check_elements[i]){check_elements[i]={};for(var r=0;r<n.length;r++){for(var o=0,v=0;v<n[r].Els.length;v++)if(n[r].Els[v].id==i){o=1;break}if(o)for(v=0;v<n[r].Els.length;v++)check_elements[i][n[r].Els[v].id]=1}}for(r=0;r<n.length;r++){var _=n[r];if(!_.required||_.required()){if(i&&""!=i){var c=0;for(v=0;v<_.Els.length;v++)check_elements[i][_.Els[v].id]&&(c=1);if(!c)continue}var m=1,u=_.Els[0];switch(_.method){case"match":null==(p="string"==typeof _.vkey?match_validators[_.vkey]:_.vkey)&&alert("Unknown regex key used for match: "+_.vkey+". Valid keys are: "+validate_listmatchers()),_.Els[0].value.match(p)||(m=0);break;case"nomatch":var p;null==(p="string"==typeof _.vkey?match_validators[_.vkey]:_.vkey)&&alert("Unknown regex key used for match: "+_.vkey+". Valid keys are: "+validate_listmatchers()),"match"==_.method?u.value.match(p)||(m=0):u.value.match(p)&&(m=0);break;case"noeqtxt":u.value==_.vkey&&(m=0);break;case"minlength":u.value.length<_.vkey&&(m=0);break;case"maxlength":u.value.length>_.vkey&&(m=0);break;case"NotEleq":u.value==_.Els[1].value&&(m=0);break;case"Eleq":u.value!=_.Els[1].value&&(m=0);break;case"func":(0,_.vkey)(_.Els)||(m=0);break;default:alert("Unknown validator: "+_.method),l=0,make_elements_valid_status(_.Els,0,d)}m?make_elements_valid_status(_.Els,1,d):(_.msg&&!_.msg.match(/^\s*$/)||alert("Missing validation message for validator: "+_.method+" key: "+_.vkey),s.push(_.msg),validateFocusEl||(validateFocusEl=_.Els[0]),make_elements_valid_status(_.Els,0,d),l=0)}else for(var v=0;v<_.Els.length;v++)setup_accept_image(_.Els[v].id,2),YAHOO.util.Dom.removeClass(_.Els[v],"formverifyfailed")}if(t||apply_elements_status(d),!a&&s.length){init_validate_dialog();var f=[];for(r=0;r<s.length;r++)f.push('<p class="validation_msg">'+s[r]+"</p>");document.getElementById("inputs_val").innerHTML=f.join("\n"),validate_data_panel.show(),validateFocusEl.focus()}return!!l}function register_validator(e,a,t,i,l,s){i?(self.password_str_handle_validate&&(password_str_handle_validate=0),!s&&t&&t.length>0&&t[0]&&(s=t[0].form.id),s?(validators[s]&&null!=validators[s]||(validators[s]=[]),validators[s].push({method:e,vkey:a,Els:t,msg:i,required:l})):alert("register_validator requires either a list of form elements from which the formId could be derived or the formId parameter.")):alert("register_validator requires 4 arguments: (validatemethod, vkey, validateEls, vmsg, [required func]")}var reset_validators=function(){validators={}},_deactivate_validator=function(e,a,t){if(realtime_validate_inited[e])for(var i=0;i<a[t].Els;i++){var l=a[t].Els[i];"TEXTAREA"==l.tagName||"text"==l.type||"password"==l.type||"textbox"==l.type?YAHOO.util.Event.removeListener(l,"keyup"):"SELECT"!=l.tagName&&"file"!=l.type||YAHOO.util.Event.removeListener(l,"change")}a.splice(t,1)},remove_validator=function(e){if(e.formid||e.action||e.elementid){for(var a=validators[e.formid],t=0;t<a.length;t++)if(a[t].vkey===e.action)for(var i=0;i<a[t].Els.length;i++)if(a[t].Els[i].id===e.elementid){_deactivate_validator(e.formid,a,t);break}}else alert("please pass {formid:'element_id', action:'validator_action', elementid:'elementname'}")};function apply_elements_status(e){for(var a in e)e[a]?(setup_accept_image(a,1),YAHOO.util.Dom.removeClass(a,"formverifyfailed")):(setup_accept_image(a,0),YAHOO.util.Dom.addClass(a,"formverifyfailed"))}function setup_accept_image(e,a){var t=e+"_status_image_con",i=document.getElementById(t);if(!i){var l=document.getElementById(e),s=document.createElement("div");return s.style.display="block",s.style.position="absolute",s.style.padding=0,s.style.margin=0,s.id=t,s.innerHTML=" ",s.className=a?"accept":"reject",l.nextSibling?l.parentNode.insertBefore(s,l.nextSibling):l.parentNode.appendChild(s),reposition_validator_img(i=s),YAHOO.util.Event.addListener(i,"click",(function(){validate_box(getPreviousInput(this).id)}),i,!0),void valImgs.push(i.id)}2==a?i.style.display="none":a?(i.className="accept",i.style.display=""):(i.className="reject",i.style.display="")}function reposition_all_validator_imgs(){for(var e=0;e<valImgs.length;e++)reposition_validator_img(document.getElementById(valImgs[e]))}function reposition_validator_img(e){if(parentElId=getPreviousInput(e).id,parentEl=document.getElementById(parentElId),parentEl){var a,t=YAHOO.util.Region.getRegion(parentEl);1==YAHOO.util.Dom.hasClass(parentEl,"validator_position_right")&&(a="right"),a&&"right"==a||"SELECT"==parentEl.tagName||"TEXTAREA"==parentEl.tagName||"file"==parentEl.type?e.style.left=t.left+parentEl.offsetWidth+3+"px":e.style.left=t.left+parentEl.offsetWidth-16-(offsetQuirk?4:2)+"px",e.style.top=t.top+(parentEl.offsetHeight-16)/2-(offsetQuirk?2:0)+"px"}else alert("Could not get parent for "+parentElId+" next aw: "+e.id)}function make_elements_valid_status(e,a,t){for(var i=0;i<e.length;i++)e[i].id||(e[i].id="validgen"+validgen++),i>0||(a&&0!=t[e[i].id]?t[e[i].id]=1:t[e[i].id]=0)}function getPreviousInput(e){for(;e.previousSibling&&("INPUT"!=e.tagName||"submit"==e.type||"button"==e.type)&&"SELECT"!=e.tagName&&"TEXTAREA"!=e.tagName;)e=e.previousSibling;return e}function validate_listmatchers(){var e=[];for(var a in match_validators)e.push(a);return e.join(" ")}function get_url_depth(){if(cached_url_depth)return cached_url_depth;var e=window.location.href,a=e.split("/");a.shift(),a.shift(),a.shift(),a.pop(),e.match(/\/frontend\//)&&(a.shift(),a.shift());var t=[];for(i=0;i<a.length;i++)t.push("..");return cached_url_depth=t.join("/")}function radio_value_is(e,a){if(isArray(e)){for(var t=0;t<e.length;t++)if(e[t].value==a&&e[t].checked)return!0}else if(e.value==a&&e.checked)return!0;return!1}function isArray(e){return e.length>0&&(!e[0]||1!=e[0].length)}