﻿// JScript File
var firstName;
var lastName;
var bookingNumber; 
var xmlHeader;
var targetUrl;
var defaultCountry;

var RecognizedVTErrorTypes = new Array ("missing_data", "wrong_data", "system_error");

function VideoTutorDispatcher() 
{      
    
    firstName = arguments[0];
    lastName = arguments[1];
    bookingNumber = arguments[2]; 
    
    
    // validazione formale  parametri
    if(firstName == "" || lastName == "" || bookingNumber == "") {
        SendDataToFlashMovie("errorType", "missing_data");
        return;
    }
    
    if (DisableActiveElements() != undefined)
        DisableActiveElements();
        
    xmlHeader = GetDataFromFlashMovie("header");
    targetUrl = GetDataFromFlashMovie("targetUrl");
    defaultCountry = GetDataFromFlashMovie("defaultCountry");
    
    PageMethods.VideoTutorDispatcher(xmlHeader, firstName, lastName, bookingNumber, defaultCountry, true, OnSucceeded, OnFailed);
        
}

// Callback function invoked on successful 
// completion of the page method.
function OnSucceeded(data, userContext, methodName) 
{       
    if (methodName == "VideoTutorDispatcher")
    {   
        var result = Sys.Serialization.JavaScriptSerializer.deserialize(data);        
        
        if(!result.Success) 
        {
            if (ToggleWaitingLayer() != undefined)
               ToggleWaitingLayer();  
        } 
                
        if(result.Status == "Verify") 
        {            
            if(result.Success) 
            {
                PageMethods.VideoTutorDispatcher(xmlHeader, firstName, lastName, bookingNumber, defaultCountry, false, OnSucceeded, OnFailed);
            }
            else
            {                       
                HandleWebServiceException(result);
            }
        }
        else if( result.Status == "Retrieve") 
        {
            if(result.Success) 
            {
                var url = targetUrl + "?BkgNo=" + bookingNumber + "&PaxId=" + result.PaxId;              
                window.location.href = url;                 
            }
            else 
            {
                HandleWebServiceException(result);
            }         
        }                      
    }
}

function getErrorType(errType){
    var result = "system_error";
            
    if (errType != null && errType != ''){
        for(var i=0; i<RecognizedVTErrorTypes.length; i++){
            if (errType.toLowerCase() == RecognizedVTErrorTypes[i].toLowerCase()){
                result = errType;
                break;
            }
        }                    
    }
    
    return result;
}

function HandleWebServiceException(data){
    var exception = data;
    
    if (data.constructor == String)
        exception = Sys.Serialization.JavaScriptSerializer.deserialize(data);
                    
    if (exception &&
        typeof(exception.ErrorInfo) != typeof(undefined) &&
        exception.ErrorInfo != null && exception.ErrorInfo != '')        
        SendDataToFlashMovie("errorType", getErrorType(exception.ErrorType) + "|" + exception.ErrorInfo);       
}

// Callback function invoked on failure 
// of the page method.
function OnFailed(error, userContext, methodName) {          
    if (ToggleWaitingLayer() != undefined)
        ToggleWaitingLayer();
        
    var errMessage = error.get_message();
    if (typeof (GenericSystemError) != typeof(undefined) &&
        GenericSystemError != null && GenericSystemError != '')
        errMessage = GenericSystemError;

    if (methodName == "VideoTutorDispatcher")                                    
        SendDataToFlashMovie("errorType", RecognizedVTErrorTypes[2] + "|" + errMessage);    
}


function getFlashMovieObject2(movieName) {
  return $get(movieName);
}

function getFlashMovieObject() {
  var movieName = "idControl";
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return getFlashMovieObject2(movieName);
  }
}

function SendDataToFlashMovie(varName, data) {
    var flashMovie=getFlashMovieObject(varName);
    flashMovie.SetVariable("/:" + varName, data);
}

function GetDataFromFlashMovie(varName) {
    var flashMovie=getFlashMovieObject(varName);
    return flashMovie.GetVariable(varName);
}

if (typeof(Sys) != "undefined") Sys.Application.notifyScriptLoaded();

function RenderFlashObject(content){
    // Effettuo replace a causa di un problema su SAFARI
    content = content.replace(/&lt;/g, "<").replace(/&gt;/g, ">");
    
    if ( $get('divRenderer') != undefined){
        $get('divRenderer').innerHTML = content;
    }
}
