<?xml version="1.0" encoding="utf-8"?> <mx:Window xmlns:mx="http://www.adobe.com/2006/mxml" title="Configure Google Docs" width="266" height="140"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.core.Application; import mx.managers.PopUpManager; import mx.events.CloseEvent; public static function open():void { var window:configure = new configure(); window.open(); } private function apply():void{ var e:String = email.text; var p:String = password.text; this.enabled = false; authenticateWithGoogle(e, p); } public function authenticateWithGoogle(email:String, pass:String):void{ var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest("https://www.google.com/accounts/ClientLogin"); request.method = URLRequestMethod.POST; var params:URLVariables = new URLVariables(); params.accountType = 'HOSTED_OR_GOOGLE'; params.Email = email; params.Passwd = pass; params.service = 'writely'; params.source = 'vure-gdoc-v1'; request.data = params; loader.addEventListener(Event.COMPLETE, completeHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, errorhandler); loader.load(request); } private function completeHandler(e:Event):void{ var data:String = e.target.data; var pars:Array = data.split("\n"); for(var i:int = 0; i < pars.length; i++ ){ var a:Number = pars[i].indexOf('Auth='); if (a != -1){ Application.application.so.data.auth = pars[i].substr(5, pars[i].length); } } Application.application.so.flush(); this.close(); this.exit() } private function errorhandler(e:IOErrorEvent):void{ Alert.show('Invalid credentials', 'Error', 4, this); this.enabled = true; } private function exit():void{ NativeApplication.nativeApplication.exit(); } ]]> </mx:Script> <mx:Form id="form"> <mx:FormItem label="Email"> <mx:TextInput id="email"/> </mx:FormItem> <mx:FormItem label="Password"> <mx:TextInput id="password" displayAsPassword="true"/> </mx:FormItem> </mx:Form> <mx:HBox width="100%" paddingLeft="10" paddingRight="10"> <mx:Button label="Cancel" click="exit()" /><mx:Spacer width="100%"/><mx:Button label="Apply" click="apply()"/> </mx:HBox> </mx:Window>