rhymix/addons/captcha/captcha.min.js

2 lines
No EOL
7.2 KiB
JavaScript

/* procFilter 함수를 가로채서 captcha 이미지 및 폼을 출력 */
var oldExecXml=null;var calledArgs=null;(function(a){a(function(){var b=null;function c(){a("form").each(function(n){var l=false;if(!a(this).attr("onsubmit")||a(this).attr("onsubmit").indexOf("procFilter")<0){var m=a(this).find("input[name=act]").val();for(var n=0;n<captchaTargetAct.length;n++){if(captchaTargetAct[n]==m){l=true;break}}}if(l){a(this).append('<input type="hidden" name="captchaType" value="inline" />');if(!a(this).find("input[name=error_return_url]")){a(this).append('<input type="hidden" name="error_return_url" value="'+current_url+'" />')}a(this).submit(function(p){if(a(this).find("input[name=secret_text]").val()){return true}p.preventDefault();var o=this;a("#captcha_layer form").submit(function(r){r.preventDefault();if(!a("#secret_text").val()){a(this).find("input[type=text]").val("").focus();return false}a(o).append('<input type="hidden" name="secret_text" value="'+a("#secret_text").val()+'" />');a(o).submit()});var q=new Array();q.captcha_action="setCaptchaSession";q.mid=current_mid;oldExecXml("","",q,b.show,new Array("error","message","about_captcha","captcha_reload","captcha_play","cmd_input","cmd_cancel"))})}});var d=a(document.body);var g;if(!b){var j=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;var k=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;var i=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;var h=request_uri+"addons/captcha/swf/play.swf";if(j&&k&&!i){_object_='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="0" height="0" id="captcha_audio" align="middle">';_object_+='<param name="allowScriptAccess" value="always" />';_object_+='<param name="quality" value="high" />';_object_+='<param name="movie" value="'+h+'" />';_object_+='<param name="wmode" value="window" />';_object_+='<param name="allowFullScreen" value="false">';_object_+='<param name="bgcolor" value="#fffff" />';_object_+="</object>"}else{_object_='<embed src="'+h+'" quality="high" wmode="window" allowFullScreen="false" bgcolor="#ffffff" width="0" height="0" name="captcha_audio" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'}b=a('<div id="captcha_layer" style="position:fixed; top:0; left:0; width:100%; height:100%;display:none;z-index:10">').appendTo(document.body);var f="margin:-105px 0 0 -105px; top:50%; left:50%;";if(screen.width<480){f=""}var e=a('<div style="z-index:1000;position:absolute; width:310px;'+f+' background:#fff; border:3px solid #ccc;"><form method="post" action=""><div style="position:relative; margin:25px 20px 15px 20px"><img src="about:blank" id="captcha_image" alt="CAPTCHA" width="240" height="50" style="display:block; width:240px; height:50px; border:1px solid #b0b0b0" /><button type="button" class="reload" title="" style="position:absolute; top:0; left:245px; width:25px; height:25px; padding:0; overflow:visible; border:1px solid #575757; background:#747474 url('+request_uri+'addons/captcha/img/icon.gif) no-repeat center 5px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px; cursor:pointer;box-shadow:0 0 3px #444 inset;-moz-box-shadow:0 0 3px #444 inset;-webkit-box-shadow:0 0 3px #444 inset;"></button><button type="button" class="play" title="" style="position:absolute; top:27px; left:245px; width:25px; height:25px; padding:0; overflow:visible; border:1px solid #575757; background:#747474 url('+request_uri+'addons/captcha/img/icon.gif) no-repeat center -20px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px; cursor:pointer;box-shadow:0 0 3px #444 inset;-moz-box-shadow:0 0 3px #444 inset;-webkit-box-shadow:0 0 3px #444 inset;"></button></div><label id="captchaAbout" for="captcha" style="display:block; border-top:1px dashed #c5c5c5; padding:15px 0; margin:0 20px; font-size:12px; color:#5f5f5f;"></label><input name="" type="text" id="secret_text" style="margin:0 20px; width:232px; border:1px solid #bdbdbd; padding:3px 4px; font-size:18px; font-weight:bold;" /><div style="margin:20px; border-top:1px dashed #c5c5c5; padding:15px 0 0 0; text-align:center"><button type="submit" style="height:31px; line-height:31px; padding:0 15px; margin:0 2px; font-size:12px; font-weight:bold; color:#fff; overflow:visible; border:1px solid #5c8a16; background:#6faa13;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px; cursor:pointer;box-shadow:0 0 3px #666 inset;-moz-box-shadow:0 0 3px #666 inset;-webkit-box-shadow:0 0 3px #666 inset;"></button><button type="button" class="cancel" style="height:31px; line-height:31px; padding:0 15px; margin:0 2px; font-size:12px; font-weight:bold; color:#fff; overflow:visible; border:1px solid #575757; background:#747474;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px; cursor:pointer;box-shadow:0 0 3px #444 inset;-moz-box-shadow:0 0 3px #444 inset;-webkit-box-shadow:0 0 3px #444 inset;"></button></div></form>'+_object_+"</div>").appendTo(b);e.find("button.cancel").click(function(){a("#captcha_layer").hide()});e.find("button.play").click(function(){var l=window.captcha_audio||document.captcha_audio;var m=current_url.setQuery("captcha_action","captchaAudio").setQuery("rnd",(new Date).getTime());e.find("input[type=text]").focus();l.setSoundTarget(m,"1")});e.find("button.reload").click(function(){var l=new Array();l.captcha_action="setCaptchaSession";l.mid=current_mid;oldExecXml("","",l,function(){a("#captcha_image").attr("src",current_url.setQuery("captcha_action","captchaImage").setQuery("rnd",(new Date).getTime()))})});b.exec=function(p,l,s,o,r,q,m){var n=false;a.each(captchaTargetAct||{},function(t,u){if(u==l){n=true;return false}});if(n){a("#captcha_layer form").submit(function(t){t.preventDefault();if(!a("#secret_text").val()){a(this).find("input[type=text]").val("").focus();return false}b.compare();return false});calledArgs={module:p,act:l,params:s,callback_func:o,response_tags:r,callback_func_arg:q,fo_obj:m};var s=new Array();s.captcha_action="setCaptchaSession";s.mid=current_mid;oldExecXml(p,l,s,b.show,new Array("error","message","about_captcha","captcha_reload","captcha_play","cmd_input","cmd_cancel"))}else{oldExecXml(p,l,s,o,r,q,m)}return true};b.show=function(l){a("#captcha_layer").show();a("#captchaAbout").html(l.about_captcha);a("#captcha_layer .reload").attr("title",l.captcha_reload);a("#captcha_layer .play").attr("title",l.captcha_play);a("#captcha_layer button[type=submit]").html(l.cmd_input);a("#captcha_layer button.cancel").html(l.cmd_cancel);a("#captcha_image").attr("src",current_url.setQuery("captcha_action","captchaImage").setQuery("rnd",(new Date).getTime()));e.find("input[type=text]").val("").focus();a("html, body").css("height","100%")};b.compare=function(l){var m=new Array();m.captcha_action="captchaCompare";m.mid=current_mid;m.secret_text=a("#secret_text").val();oldExecXml(calledArgs.module,calledArgs.act,m,function(){a("#captcha_layer").hide();oldExecXml(calledArgs.module,calledArgs.act,calledArgs.params,calledArgs.callback_func,calledArgs.response_tags,calledArgs.callback_func_arg,calledArgs.fo_obj)})}}return b}a(window).ready(function(){oldExecXml=exec_xml;exec_xml=c().exec})})})(jQuery);