View difference between Paste ID: wRAvh9v3 and kXSuxP8k
SHOW: | | - or go back to the newest paste.
1
    stop();
2
    //////////////////////import packages/////////////////////////
3
    import flash.utils.Timer;
4
    import flash.net.*;//used to call the asp api
5
    import flash.external.*;//used to get the url where the flash resides.
6
    import com.landingpage.Base64;//package for encoding login
7
    //////////////DECLARE VARS Objects and Movieclips/////////////
8
    var checkLengthStop:Boolean=false;//boolean to control if function that checks for length is active or deactive
9
    var phoneNumberLength:int;//length depends on countryID
10
    var showTimerNumberInput:Boolean;//show timer while number input is not correct
11
    t_and_c_checkbox.label="                                           ";//leave space, this creates a large hotspot for the checkbox
12
    user_error_text.htmlText="";
13
    input_phone_number.restrict="0-9";//restrict input to only numbers
14
    var countryCode:String;
15
    var clockTicker:clockTick = new clockTick;
16
    var colorTimer_phonenumber:Number;
17
    colorTimer_phonenumber=timer_phonenumber.textColor;
18
    var timerPhoneNumber:int;
19
    page3_next_btn.buttonMode=true;
20
    var feedback_message_voorwaarden:String;
21
    var feedback_message_nummer:String;
22
    var feedback_message_error:String;
23
    ///////////////////////SET VARS//////////////////////////////
24
    var timerPhoneNumberLength:int=50;//timer count down in seconds
25
    timerPhoneNumber=timerPhoneNumberLength;
26
    var timerLastSecondsColor:uint=0xFF0000;//standard red color for last 10 seconds
27
    function getNetworkID(){
28
       var currentURL:String = "";
29
       var netWorkID:String = "";
30
       var netWorkString:String = "";
31
       var netWorkStringLength:int = 0;
32
       try{
33
           currentURL=String(ExternalInterface.call("window.location.href.toString"));
34
       }catch(err:Error){
35
          networkid.htmlText = "Kan url niet ophalen";
36
       }
37
       if(currentURL.indexOf("?") != -1){//there's a ? in the string
38
           var array:Array=currentURL.split("?");
39
           netWorkString=array[1];//url after ?
40
           array = netWorkString.split("&");
41
           for (var i:int=0; i<array.length; i++) {
42
               netWorkString = array[i].substr(0,9);
43
               netWorkString = netWorkString.toLowerCase()
44
               if(netWorkString=="networkid"){
45
                   netWorkStringLength = array[i].length;
46
                   netWorkID = array[i].substr(10,netWorkStringLength);
47
                   networkid.htmlText = netWorkID;
48
               }
49
           }
50
       }
51
    }
52
    getNetworkID();//execute function
53
    /////////////////////// END SET VARS//////////////////////////////
54
    setDynamicContentPage3();//function uses xml settings to set flexible content
55
    function setDynamicContentPage3():void {
56
            if (errorLoadingXML==false) {
57
                    if (loadXmlFile.getSettings("show_timer")=="on") {
58
                            showTimerNumberInput=true;
59
                    } else {
60
                            clock_mc.visible=false;
61
                            timer_phonenumber.visible=false;
62
                            showTimerNumberInput=false;
63
                    }
64
                    if (loadXmlFile.getSettings("show_legalline")=="on") {
65
                            legalline.visible=true;
66
                    } else {
67
                            legalline.visible=false;
68
                    }
69
                    if (loadXmlFile.getSettings("show_t_and_c")=="on") {
70
                            t_and_c_checkbox.visible=true;
71
                            t_and_c_line.visible=true;
72
                    } else {
73
                            t_and_c_checkbox.visible=false;
74
                            t_and_c_checkbox.selected=true;                
75
                            t_and_c_line.visible=false;
76
                    }
77
                    phonenumber_correct.visible=false;//green ok image only visible when phonenumber is inserted correctly
78
                    pijltjes2.visible=true;
79
                    countryCode=loadXmlFile.getSettings("country_code");
80
                    phoneNumberLength=int(loadXmlFile.getSettings("phonenumber_length"));
81
                    input_phone_number.text=loadXmlFile.getSettings("phonenumber_prequel");
82
                    input_phone_number.maxChars=phoneNumberLength;
83
                    exampletext_phone_number.text=loadXmlFile.getSettings("exampletext_phone_number");     
84
                    //
85
                    feedback_message_voorwaarden = loadXmlFile.getSettings("feedback_message_voorwaarden");
86
                    feedback_message_nummer = loadXmlFile.getSettings("feedback_message_nummer");  
87
                    feedback_message_error = loadXmlFile.getSettings("feedback_message_error");    
88
            } else {
89
                    //there was an error loading xml so set everything turned off and country UK
90
                    clock_mc.visible=false;
91
                    timer_phonenumber.visible=false;
92
                    showTimerNumberInput=false;
93
                    legalline.visible=false;//
94
                    t_and_c_checkbox.visible=false;
95
                    t_and_c_checkbox.selected=true;
96
                    t_and_c_line.visible=false;
97
                    phonenumber_correct.visible=false;//green ok image only visible when phonenumber is inserted correctly
98
                    countryCode="0000";
99
                    phoneNumberLength=8;
100
                    input_phone_number.maxChars=phoneNumberLength;
101
                    exampletext_phone_number.text="e.g.0012345678";        
102
                    feedback_message_voorwaarden = "Click OK";     
103
                    feedback_message_nummer = "Click OK";  
104
                    feedback_message_error ="There has been an error!";    
105
            }
106
    }
107
    //add listeners to main button which calls the asp page and receives the returncode
108
    page3_next_btn.addEventListener(MouseEvent.MOUSE_OVER,page3nextbtnOver);
109
    page3_next_btn.addEventListener(MouseEvent.MOUSE_OUT,page3nextbtnOut);
110
    page3_next_btn.addEventListener(MouseEvent.MOUSE_UP,page3nextbtnReleased);
111
    
112
    function page3nextbtnOver(event:MouseEvent) {
113
            if(phonenumber_correct.visible==false){
114
                    page3_next_btn.gotoAndPlay(2);
115
            }else{
116
                    page3_next_btn.gotoAndPlay(14);
117
            }
118
    }
119
    function page3nextbtnOut(event:MouseEvent) {
120
            if(phonenumber_correct.visible==false){
121
                    page3_next_btn.gotoAndPlay(10);
122
            }else{
123
                    page3_next_btn.gotoAndPlay(21);
124
            }      
125
    }
126
    function page3nextbtnReleased(event:MouseEvent) {
127
            trace("Page3 Next Button pressed");
128
            event.target.gotoAndStop(1);
129
            if (t_and_c_checkbox.selected&&input_phone_number.length==phoneNumberLength) {
130
                    //phonenumber field is filled in and t&c is checked
131
                    if (showTimerNumberInput==true) {
132
                            clock_mc.removeClock();
133
                            phoneNumberTimer.removeEventListener(TimerEvent.TIMER, showTimerPhoneNumber);
134
                            checkNumberTimer.stop();
135
                            checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumber);
136
                    } else {
137
                            checkNumberTimer.stop();
138
                            checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);
139
                    }
140
                    sendNumberRequest();//function calls the asp page na receives the retuncode
141
            } else if (input_phone_number.length==phoneNumberLength) {
142
                    //only phonenumber field is filled, t&c is unchecked
143
                    t_and_c_checkbox.selected=true;
144
                    feedback.y=0;
145
                    feedback.message.htmlText=feedback_message_voorwaarden;
146
                    feedback.feedback_button.addEventListener(MouseEvent.MOUSE_UP,feedbackGoToPage4);
147
            } else {
148
                    //phonenumber field is not completely filled in and t&c is unchecked
149
                    if (showTimerNumberInput==true) {
150
                            clock_mc.stopClock();
151
                            phoneNumberTimer.stop();
152
                            checkLengthStop=true;//deactivate phonenumber lenght check, cause this function restarts clock
153
                            feedback.feedback_button.addEventListener(MouseEvent.MOUSE_UP,continueTimerPhoneNumber);
154
                    }
155
                    feedback.y=0;
156
                    feedback.message.htmlText=feedback_message_nummer;
157
            }
158
    }
159
    //feedback action after user has clicked ok the sendrequest function is called which calls the asp page
160
    //and receives the returncode
161
    function feedbackGoToPage4(event:MouseEvent) {
162
            feedback.feedback_button.removeEventListener(MouseEvent.MOUSE_UP,feedbackGoToPage4);   
163
            if (showTimerNumberInput==true) {
164
                    clock_mc.removeClock();
165
                    phoneNumberTimer.removeEventListener(TimerEvent.TIMER, showTimerPhoneNumber);
166
                    checkNumberTimer.stop();
167
                    checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumber);
168
            } else {
169
                    checkNumberTimer.stop();
170
                    checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);
171
            }
172
            sendNumberRequest();
173
    }
174
    //////////////////////////////Timer Section///////////////////////////////////////////
175
    var checkNumberTimer:Timer;
176
    checkNumberTimer=new Timer(200,0);
177
    if (showTimerNumberInput==true) {
178
            //add timer for phonenumber input
179
            clock_mc.startClock(50000,12);
180
            var phoneNumberTimer:Timer;
181
            phoneNumberTimer=new Timer(1000,0);
182
            phoneNumberTimer.addEventListener(TimerEvent.TIMER, showTimerPhoneNumber);
183
            checkNumberTimer.addEventListener(TimerEvent.TIMER, checkLengthPhoneNumber);
184
            phoneNumberTimer.start();
185
            checkNumberTimer.start();
186
            timer_phonenumber.text=String(timerPhoneNumber);
187
    } else {
188
            checkNumberTimer.addEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);
189
            checkNumberTimer.start();
190
    }
191
    function checkLengthPhoneNumberTimerOff(event:TimerEvent) {
192
            if (input_phone_number.length==phoneNumberLength) {
193
                    phonenumber_correct.visible=true;
194
                    pijltjes2.visible=false;
195
            } else {
196
                    phonenumber_correct.visible=false;
197
                    pijltjes2.visible=true;
198
            }
199
    }
200
    function showTimerPhoneNumber(event:TimerEvent) {
201
            try{   
202
                    timerPhoneNumber--;
203
                    timer_phonenumber.text=String(timerPhoneNumber);
204
                    if (timerPhoneNumber<11) {
205
                            timer_phonenumber.textColor=timerLastSecondsColor;
206
                    } else {
207
                            timer_phonenumber.textColor=colorTimer_phonenumber;
208
                    }
209
                    if (timerPhoneNumber==0) {
210
                            timerPhoneNumber=timerPhoneNumberLength+1;
211
                    }
212
                    if (input_phone_number.length==phoneNumberLength) {
213
                            clock_mc.stopClock();
214
                            phoneNumberTimer.stop();
215
                            phonenumber_correct.visible=true;
216
                            pijltjes2.visible=false;
217
                            page3_next_btn.gotoAndStop(14);
218
                    }
219
            }catch(error:Error){
220
                    trace("ShowTimerPhoneNumber Error");
221
                    phoneNumberTimer.removeEventListener(TimerEvent.TIMER, showTimerPhoneNumber);
222
            }      
223
    }
224
    function checkLengthPhoneNumber(event:TimerEvent) {
225
            try{
226
                    if (input_phone_number.length<phoneNumberLength&&! phoneNumberTimer.running&&timerPhoneNumber>0&&checkLengthStop==false) {
227
                            clock_mc.restartClock();
228
                            phoneNumberTimer.start();
229
                            phonenumber_correct.visible=false;
230
                            pijltjes2.visible=true;        
231
                            trace("Restart Timer check phonenumber");
232
                    }
233
            }catch(error:Error){
234
                    trace("CheckLengthTimer Error");
235
                    checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumber);                        
236
            }
237
    }
238
    function continueTimerPhoneNumber(event:Event) {
239
            feedback.feedback_button.removeEventListener(MouseEvent.MOUSE_UP,continueTimerPhoneNumber);
240
            checkLengthStop=false;
241
    }
242
    function restartAllTimers():void {
243
            //after error code this function restarts timers so user can give an alternate number
244
            if (showTimerNumberInput==true) {
245
                    clock_mc.removeClock();
246
                    clock_mc.startClock(50000,12);
247
                    timerPhoneNumber=50;
248
                    phoneNumberTimer.addEventListener(TimerEvent.TIMER, showTimerPhoneNumber);
249
                    checkNumberTimer.addEventListener(TimerEvent.TIMER, checkLengthPhoneNumber);
250
                    phoneNumberTimer.start();
251
                    checkNumberTimer.start();
252
            } else {
253
                    checkNumberTimer.addEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);
254
                    checkNumberTimer.start();
255
            }
256
    }
257
    ///////////////////////////END Timer Section//////////////////////////////////////////////////////////////////START opt-in API Section///////////////////////////
258
    var loader:URLLoader = new URLLoader();
259
    var webOptInAPITest:String;//url to web opt-in API for test
260
    var currentURL:String;
261
    var phoneNumber:String;//phonenumber
262
    function sendNumberRequest():void {
263
            //check input and on error show error message next to phonenumber inputfield
264
            //on success go to page4
265
            //var webOptInAPI:String;//url to web opt-in API
266
            //var variablesAPI:String;//parameters for API
267
            var useServerIP:String;
268
            //useServerIP = loadXmlFile.getSettings("useserverip");          
269
            phoneNumber=input_phone_number.text;
270
            phoneNumber=phoneNumber.substr(1,phoneNumber.length);
271
            phoneNumber=countryCode+phoneNumber;
272
            trace("phoneNumber: "+phoneNumber);
273-
             try{
273+
                     useServerIP = loadXmlFile.getSettings("useserverip");          
274-
                 currentURL=String(ExternalInterface.call("window.location.href.toString"));    
274+
                try{
275-
             }catch(err:Error){
275+
                        currentURL=String(ExternalInterface.call("window.location.href.toString"));    
276-
                 currentURL="Empty";
276+
                }catch(err:Error){
277
                        currentURL="Empty";
278-
	    var affiliateURL:String = loadXmlFile.getSettings("affiliateurl");
278+
                }
279
                var affiliateURL:String = loadXmlFile.getSettings("affiliateurl");
280-
                    for (var i:int=1; i<array.length; i++) {
280+
                var array:Array=currentURL.split("?");
281-
                            if(affiliateURL.indexOf("?") != -1){//there's a ? in the string so start with a & symbol to complete the parameters string
281+
                for (var i:int=1; i<array.length; i++) {
282-
                                    if(i==1){
282+
                        if(affiliateURL.indexOf("?") != -1){//there's a ? in the string so start with a & symbol to complete the parameters string
283-
                                            affiliateURL=affiliateURL+"&"+array[i];        
283+
                                if(i==1){
284-
                                    }else{
284+
                                        affiliateURL=affiliateURL+"&"+array[i];        
285-
                                            affiliateURL=affiliateURL+"?"+array[i];
285+
                                }else{
286-
									}
286+
                                        affiliateURL=affiliateURL+"?"+array[i];
287-
							}
287+
                                }
288-
					affiliateURL=affiliateURL+"&msisdn="+phoneNumber;
288+
                        }else{//there's no ? so its save to start with a ? symbol
289
                                        affiliateURL=affiliateURL+"?"+array[i];                                
290
                        }
291
                }
292
					webOptInAPITest=useServerIP;
293
					var variables:URLVariables=new URLVariables();
294
					variables.subscriber=phoneNumber; 
295
                    variables.weboptinapi=loadXmlFile.getSettings("weboptinapi");
296
                    variables.TemplateID=loadXmlFile.getSettings("template");
297
					variables.scenario=loadXmlFile.getSettings("scenario");
298
					variables.cmguid=loadXmlFile.getSettings("cmguid");
299
					variables.country_id=loadXmlFile.getSettings("country_id");
300
                    //variables.NetworkID=networkid.text;
301
                    //variables.MSISDN=phoneNumber;  
302
                    variables.affiliateurl=affiliateURL;
303
					variables.hash=loadXmlFile.getSettings("hash");
304
    				//variables.PIN = test.text;
305
            		//variables.MNO = mijnCombobox.selectedItem.data;
306
                    //var xmlString:String = "<?xml version='1.0' encoding='ISO-8859-1'?><root><value>63</value></root>";
307
                    //var xmlData:XML = new XML(xmlString);                                          
308
                    var request:URLRequest = new URLRequest();
309
                    request.url=useServerIP;
310
                    request.method=URLRequestMethod.POST;
311
                    request.data=variables;
312
                    //request.data=xmlData.toXMLString();
313
                    //request.data=xmlString;
314
                    //request.contentType = "text/xml";
315
                    //loader.dataFormat=URLLoaderDataFormat.TEXT;
316
                    //loader.dataFormat=URLLoaderDataFormat.VARIABLES;
317
                    loader.addEventListener(Event.COMPLETE, completeHandler);
318
                    loader.addEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError );
319
                    loader.load(request);
320
					}
321
		function completeHandler(event:Event):void {
322
            var xmlDataReturned:XML = new XML(event.target.data);
323
            var returnCode:String;
324
            //returnCode=event.target.data;
325
            returnCode=xmlDataReturned.RESULT.@ID;
326
            trace("API Return CODE: "+returnCode);
327
            loader.removeEventListener(Event.COMPLETE, completeHandler);
328
            loader.removeEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError );
329
            if (returnCode=="000" || returnCode=="0") {
330
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_OVER,page3nextbtnOver);
331
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_OUT,page3nextbtnOut);
332
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_UP,page3nextbtnReleased);                  
333
                    user_error_text.htmlText="";
334
                    sendLeadPixel();
335
                    gotoAndStop("page4");
336
            }else {
337
                    user_error_text.htmlText=feedback_message_error;
338
                    restartAllTimers();//restart timers so user can enter a different phonenumber
339
            }
340
    }
341
    function onASPLoadIOError(event:Event):void {
342
            trace("Unable to load web opt-in API");
343
            user_error_text.htmlText=feedback_message_error;
344
            restartAllTimers();//restart timers so user can enter a different phonenumber  
345
    }
346
    //send lead pixel functions
347
    function sendLeadPixel(){
348
     
349
            var leadURL:String = "http://api.gogogy.com/lead";
350
            var variablesLead:String = ""; 
351
            var array:Array=currentURL.split("?");
352
            for (var i:int=1; i<array.length; i++) {
353
                    if(i>1){
354
                            variablesLead=variablesLead+"?"+array[i];
355
                    }else{
356
                            variablesLead=variablesLead+array[i];
357
                    }
358
            }
359
            if(variablesLead==""){
360
                    variablesLead = "msisdn="+phoneNumber; 
361
            }else{
362
                    variablesLead = variablesLead+"&msisdn="+phoneNumber;                  
363
            }
364
            var variables:URLVariables=new URLVariables(variablesLead);
365
            var request:URLRequest = new URLRequest();
366
            request.url=leadURL;
367
            request.method=URLRequestMethod.POST;
368
            //authorization part
369
            var login:String = "gogogy:Pappie23!";
370
            var credentials:String = Base64.encode(login);
371
            var authHeader:URLRequestHeader = new URLRequestHeader("Authorization","Basic " + credentials);
372
            request.requestHeaders.push(authHeader);       
373
            //authorization part
374
            request.data=variables;
375
            loader.dataFormat=URLLoaderDataFormat.TEXT;
376
            //loader.dataFormat=URLLoaderDataFormat.VARIABLES;
377
            loader.addEventListener(Event.COMPLETE, completeHandler2);
378
            loader.addEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError2);
379
            loader.load(request);
380
    }
381
    function completeHandler2(event:Event):void {  
382
            var xmlDataReturned:XML = new XML(event.target.data);
383
            var returnCode:String;
384
            returnCode=xmlDataReturned.status;//@ID;       
385
            //returnCode=event.target.data;
386
            loader.removeEventListener(Event.COMPLETE, completeHandler2);
387
            loader.removeEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError2);
388
            if (returnCode=="SAVED") {
389
                    user_error_text.htmlText="";
390
                    //remove listeners to main button which calls the asp page and receives the returncode
391
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_OVER,page3nextbtnOver);
392
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_OUT,page3nextbtnOut);
393
                    page3_next_btn.removeEventListener(MouseEvent.MOUSE_UP,page3nextbtnReleased);  
394
                    checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);        
395
            }else{
396
                    user_error_text.htmlText=feedback_message_error;
397
            }
398
    }
399
    function onASPLoadIOError2(event:Event):void {
400
            trace("Unable to load leadpixel");
401
            user_error_text.htmlText=feedback_message_error;
402
	}
403
	}
404
    ///////////////////////////END ASP opt-in API Section///////////////////////////