Guest User

Untitled

a guest
Feb 15th, 2012
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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{
  274.                  currentURL=String(ExternalInterface.call("window.location.href.toString"));    
  275.              }catch(err:Error){
  276.                  currentURL="Empty";
  277.             }
  278.         var affiliateURL:String = loadXmlFile.getSettings("affiliateurl");
  279.             var array:Array=currentURL.split("?");
  280.                     for (var i:int=1; i<array.length; i++) {
  281.                             if(affiliateURL.indexOf("?") != -1){//there's a ? in the string so start with a & symbol to complete the parameters string
  282.                                     if(i==1){
  283.                                             affiliateURL=affiliateURL+"&"+array[i];        
  284.                                     }else{
  285.                                             affiliateURL=affiliateURL+"?"+array[i];
  286.                                     }
  287.                             }
  288.                     affiliateURL=affiliateURL+"&msisdn="+phoneNumber;
  289.                     webOptInAPITest=useServerIP;
  290.                     var variables:URLVariables=new URLVariables();
  291.                     variables.subscriber=phoneNumber;
  292.                     variables.weboptinapi=loadXmlFile.getSettings("weboptinapi");
  293.                     variables.TemplateID=loadXmlFile.getSettings("template");
  294.                     variables.scenario=loadXmlFile.getSettings("scenario");
  295.                     variables.cmguid=loadXmlFile.getSettings("cmguid");
  296.                     variables.country_id=loadXmlFile.getSettings("country_id");
  297.                     //variables.NetworkID=networkid.text;
  298.                     //variables.MSISDN=phoneNumber;  
  299.                     variables.affiliateurl=affiliateURL;
  300.                     variables.hash=loadXmlFile.getSettings("hash");
  301.                     //variables.PIN = test.text;
  302.                     //variables.MNO = mijnCombobox.selectedItem.data;
  303.                     //var xmlString:String = "<?xml version='1.0' encoding='ISO-8859-1'?><root><value>63</value></root>";
  304.                     //var xmlData:XML = new XML(xmlString);                                          
  305.                     var request:URLRequest = new URLRequest();
  306.                     request.url=useServerIP;
  307.                     request.method=URLRequestMethod.POST;
  308.                     request.data=variables;
  309.                     //request.data=xmlData.toXMLString();
  310.                     //request.data=xmlString;
  311.                     //request.contentType = "text/xml";
  312.                     //loader.dataFormat=URLLoaderDataFormat.TEXT;
  313.                     //loader.dataFormat=URLLoaderDataFormat.VARIABLES;
  314.                     loader.addEventListener(Event.COMPLETE, completeHandler);
  315.                     loader.addEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError );
  316.                     loader.load(request);
  317.                     }
  318.         function completeHandler(event:Event):void {
  319.             var xmlDataReturned:XML = new XML(event.target.data);
  320.             var returnCode:String;
  321.             //returnCode=event.target.data;
  322.             returnCode=xmlDataReturned.RESULT.@ID;
  323.             trace("API Return CODE: "+returnCode);
  324.             loader.removeEventListener(Event.COMPLETE, completeHandler);
  325.             loader.removeEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError );
  326.             if (returnCode=="000" || returnCode=="0") {
  327.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_OVER,page3nextbtnOver);
  328.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_OUT,page3nextbtnOut);
  329.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_UP,page3nextbtnReleased);                  
  330.                     user_error_text.htmlText="";
  331.                     sendLeadPixel();
  332.                     gotoAndStop("page4");
  333.             }else {
  334.                     user_error_text.htmlText=feedback_message_error;
  335.                     restartAllTimers();//restart timers so user can enter a different phonenumber
  336.             }
  337.     }
  338.     function onASPLoadIOError(event:Event):void {
  339.             trace("Unable to load web opt-in API");
  340.             user_error_text.htmlText=feedback_message_error;
  341.             restartAllTimers();//restart timers so user can enter a different phonenumber  
  342.     }
  343.     //send lead pixel functions
  344.     function sendLeadPixel(){
  345.      
  346.             var leadURL:String = "http://api.gogogy.com/lead";
  347.             var variablesLead:String = "";
  348.             var array:Array=currentURL.split("?");
  349.             for (var i:int=1; i<array.length; i++) {
  350.                     if(i>1){
  351.                             variablesLead=variablesLead+"?"+array[i];
  352.                     }else{
  353.                             variablesLead=variablesLead+array[i];
  354.                     }
  355.             }
  356.             if(variablesLead==""){
  357.                     variablesLead = "msisdn="+phoneNumber;
  358.             }else{
  359.                     variablesLead = variablesLead+"&msisdn="+phoneNumber;                  
  360.             }
  361.             var variables:URLVariables=new URLVariables(variablesLead);
  362.             var request:URLRequest = new URLRequest();
  363.             request.url=leadURL;
  364.             request.method=URLRequestMethod.POST;
  365.             //authorization part
  366.             var login:String = "gogogy:Pappie23!";
  367.             var credentials:String = Base64.encode(login);
  368.             var authHeader:URLRequestHeader = new URLRequestHeader("Authorization","Basic " + credentials);
  369.             request.requestHeaders.push(authHeader);      
  370.             //authorization part
  371.             request.data=variables;
  372.             loader.dataFormat=URLLoaderDataFormat.TEXT;
  373.             //loader.dataFormat=URLLoaderDataFormat.VARIABLES;
  374.             loader.addEventListener(Event.COMPLETE, completeHandler2);
  375.             loader.addEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError2);
  376.             loader.load(request);
  377.     }
  378.     function completeHandler2(event:Event):void {  
  379.             var xmlDataReturned:XML = new XML(event.target.data);
  380.             var returnCode:String;
  381.             returnCode=xmlDataReturned.status;//@ID;      
  382.             //returnCode=event.target.data;
  383.             loader.removeEventListener(Event.COMPLETE, completeHandler2);
  384.             loader.removeEventListener(IOErrorEvent.IO_ERROR, onASPLoadIOError2);
  385.             if (returnCode=="SAVED") {
  386.                     user_error_text.htmlText="";
  387.                     //remove listeners to main button which calls the asp page and receives the returncode
  388.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_OVER,page3nextbtnOver);
  389.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_OUT,page3nextbtnOut);
  390.                     page3_next_btn.removeEventListener(MouseEvent.MOUSE_UP,page3nextbtnReleased);  
  391.                     checkNumberTimer.removeEventListener(TimerEvent.TIMER, checkLengthPhoneNumberTimerOff);        
  392.             }else{
  393.                     user_error_text.htmlText=feedback_message_error;
  394.             }
  395.     }
  396.     function onASPLoadIOError2(event:Event):void {
  397.             trace("Unable to load leadpixel");
  398.             user_error_text.htmlText=feedback_message_error;
  399.     }
  400.     }
  401.     ///////////////////////////END ASP opt-in API Section///////////////////////////
Add Comment
Please, Sign In to add comment