package com.exanimo.security.recaptcha { import flash.external.ExternalInterface; /** * * .. * * @langversion ActionScript 3 * @playerversion Flash 9.0.0 * * @author Matthew Tretter (matthew@exanimo.com) * @since 2008.03.11 * */ public class RecaptchaUtil { private static var _callbackCount:int = 0; private static var _defaultPublicKey:String; // // public methods // /** * * * */ public static function get available():Boolean { return ExternalInterface.available && ExternalInterface.objectID && ExternalInterface.call('EXANIMO.RecaptchaUtil.getAvailable'); } /** * * * */ public static function get defaultPublicKey():String { return RecaptchaUtil._defaultPublicKey; } public static function set defaultPublicKey(defaultPublicKey:String):void { RecaptchaUtil._defaultPublicKey = defaultPublicKey; } /** * * * */ public static function requestAudioData(callback:Function, publicKey:String = null):Boolean { return RecaptchaUtil._requestData(callback, 'createAudio', publicKey); } /** * * * */ public static function requestImageData(callback:Function, publicKey:String = null):Boolean { return RecaptchaUtil._requestData(callback, 'createImage', publicKey); } // // private methods // /** * * * */ private static function _requestData(callback:Function, jsMethodName:String, publicKey:String = null):Boolean { publicKey = publicKey == null ? RecaptchaUtil.defaultPublicKey : publicKey; var callbackId:String = 'com_exanimo_security_recaptcha_RecaptchaUtil_callback_' + RecaptchaUtil._callbackCount++; ExternalInterface.addCallback(callbackId, callback); return ExternalInterface.call('EXANIMO.RecaptchaUtil.' + jsMethodName, ExternalInterface.objectID, publicKey, callbackId); } } }