/* procFilter 함수를 가로채서 captcha 이미지 및 폼을 출력 */
var calledArgs = null;
(function($){
$(function() {
var captchaXE = null;
function xeCaptcha() {
$('form').each(function(i)
{
var isSubmitHook = false;
if (!$(this).attr('onsubmit') || $(this).attr('onsubmit').indexOf('procFilter') < 0)
{
var act = $(this).find('input[name=act]').val()
for(var i = 0; i');
if(!$(this).find('input[name=error_return_url]'))
$(this).append('');
$(this).submit(function(event){
if ($(this).find('input[name=secret_text]').val())
{
return true;
}
event.preventDefault();
var self = this;
$('#captcha_layer form')
.submit(function(e){
e.preventDefault();
if(!$('#secret_text').val()){
$(this).find('input[type=text]').val('').focus();
return false;
}
$(self).append('');
$(self).submit();
});
var params = new Array();
params['captcha_action'] = 'setCaptchaSession';
params['mid'] = current_mid;
window.oldExecXml('', '', params, captchaXE.show,new Array('error','message','about_captcha','captcha_reload','captcha_play','cmd_input','cmd_cancel'));
});
}
});
var body = $(document.body);
var captchaIma;
if (!captchaXE) {
var fc_isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var fc_isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var fc_isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var _swfURL_ = request_uri + 'addons/captcha/swf/play.swf';
if(fc_isIE && fc_isWin && !fc_isOpera){
_object_ ='';
}else{
_object_ = '';
}
captchaXE = $('
').appendTo(document.body);
var top_left = 'margin:-105px 0 0 -105px; top:50%; left:50%;';
if(screen.width<480) { top_left = ''; }
var $div = $('
').appendTo(captchaXE);
$div.find('button.cancel')
.click(function(){ $('#captcha_layer').hide(); });
$div.find('button.play')
.click(function(){
var swf = window['captcha_audio'] || document['captcha_audio'];
var audio = current_url.setQuery('captcha_action','captchaAudio').setQuery('rnd', (new Date).getTime());
$div.find('input[type=text]').focus();
swf.setSoundTarget(audio,'1');
});
$div.find('button.reload')
.click(function(){
var params = new Array();
params['captcha_action'] = 'setCaptchaSession';
params['mid'] = current_mid;
window.oldExecXml('','',params, function() {
$("#captcha_image").attr("src", current_url.setQuery('captcha_action','captchaImage').setQuery('rnd', (new Date).getTime()));
});
});
captchaXE.exec = function(module, act, params, callback_func, response_tags, callback_func_arg, fo_obj) {
var doCheck = false;
$.each(captchaTargetAct || {}, function(key,val){ if (val == act){ doCheck = true; return false; } });
if (doCheck) { /* captcha 를 사용하는 경우 */
$('#captcha_layer form')
.submit(function(e){
e.preventDefault();
if(!$('#secret_text').val()){
$(this).find('input[type=text]').val('').focus();
return false;
}
captchaXE.compare(); return false;
});
calledArgs = {'module':module,'act':act,'params':params,'callback_func':callback_func,'response_tags':response_tags,'callback_func_arg':callback_func_arg,'fo_obj':fo_obj};
var params = new Array();
params['captcha_action'] = 'setCaptchaSession';
params['mid'] = current_mid;
window.oldExecXml(module, act, params, captchaXE.show,new Array('error','message','about_captcha','captcha_reload','captcha_play','cmd_input','cmd_cancel'));
} else {
window.oldExecXml(module, act, params, callback_func, response_tags, callback_func_arg, fo_obj);
}
return true;
};
captchaXE.show = function(ret_obj) {
$('#captcha_layer').show();
$("#captchaAbout").html(ret_obj['about_captcha']);
$("#captcha_layer .reload").attr('title',ret_obj['captcha_reload']);
$("#captcha_layer .play").attr('title',ret_obj['captcha_play']);
$("#captcha_layer button[type=submit]").html(ret_obj['cmd_input']);
$("#captcha_layer button.cancel").html(ret_obj['cmd_cancel']);
$("#captcha_image").attr("src", current_url.setQuery('captcha_action','captchaImage').setQuery('rnd', (new Date).getTime()));
$div.find('input[type=text]').val('').focus();
$('html, body').css('height','100%');
};
captchaXE.compare = function(e) {
var params = new Array();
params['captcha_action'] = 'captchaCompare';
params['mid'] = current_mid;
params['secret_text'] = $('#secret_text').val();
window.oldExecXml(calledArgs.module,calledArgs.act,params, function() {
$("#captcha_layer").hide();
window.oldExecXml(calledArgs.module, calledArgs.act, calledArgs.params, calledArgs.callback_func, calledArgs.response_tags, calledArgs.callback_func_arg, calledArgs.fo_obj);
} );
};
}
return captchaXE;
}
$(window).ready(function(){
if(!window.oldExecXml) {
window.oldExecXml = window.exec_xml;
window.exec_xml = xeCaptcha().exec;
}
});
});
})(jQuery);