﻿var lastCall;
var urls = new Array();
var displayElement =  document.getElementById('content'); 

function handleMouseEvent( type, id ) {
    
    lastCall = type + " : " + id;
    if(type=='onMouseClick')
    {
        
        for(var a=0;a<urls.length;a++)
        {
            var url = urls[a];
            if(url[0] == id) {
                if(isOurShips == 1) {
                    LoadShipDataToClient(url[1]);
                } 
                else {
                    if(isBookNow == 0) {
                        // update page
                        var url = languagePrefix + url[1] + "default.aspx?Ajax=1";
                        DoWebRequest(url, OnWebRequestCompleted); 

                        // track page view
                        try {
                            if (url.indexOf("default.aspx?Ajax=1") > -1)
                                url = url.substring(0, url.indexOf("default.aspx?Ajax=1"));
                            TrackGAPageView("/map" + url);
                        }
                        catch(e) { }
                    } 
                    // Get route selection "ws"
                    var serviceUrl = '/services/InternalServices.aspx?MapRouteName=' + id;
                    DoWebRequest(serviceUrl, OnRouteSelectionCallCompleted); 
                }
            }
        }
    }
}

function handleAjaxConnection(path, key) {
    var serviceUrl = '/services/InternalServices.aspx?ajaxconnection=1&path=' + path + '&key=' + key;
    DoWebRequest(serviceUrl, PerformPageUpdate); 

}

function PerformPageUpdate(executor, eventArgs) {
    if(executor.get_responseAvailable()) {
        var url = executor.get_responseData();
        if (url != null && url != '') {
            DoWebRequest(url, OnWebRequestSubcontentCompleted);
        }
    }
    else {
        if (executor.get_timedOut()) {
            window.status = 'Service call timed out';
        }else{
            if (executor.get_aborted())
			    window.status = 'Service call aborted';
	    }
    }

}



function GetUrlSubContent(url) {
    if (url != null && url != '') {
        DoWebRequest(url, OnWebRequestSubcontentCompleted); 
        //todo: track pageview
    }
}

function pageLoad()
{
    displayElement = $get("content");
}

// execute the request
function DoWebRequest(url, callBackFunction)
{
    var wRequest =  new Sys.Net.WebRequest();

    wRequest.set_url(url);  

    // Set the request verb.
    wRequest.set_httpVerb("GET");
    wRequest.set_userContext("user's context");
    var resUrl = wRequest.getResolvedUrl();   

    // Method handler to process result
    wRequest.add_completed(callBackFunction);

    wRequest.invoke();  
    
}

function OnRouteSelectionCallCompleted(executor, eventArgs) {
    if(executor.get_responseAvailable()) {
        HandleRouteSelectionServiceResponse(executor);
    }
    else {
        if (executor.get_timedOut())
            window.status = 'Service call timed out';
        else
            if (executor.get_aborted())
			    window.status = 'Service call aborted';
    }
}

// This function is used to display the Web request body.
function HandleRouteSelectionServiceResponse(executor)
{   
    var response = executor.get_responseData();
    if (response != null && response.split("|").length > 1  ) {
	    if (response.split("|")[0] != null && response.split("|")[0] != '')		
		    SetOutwardFerryRoute(response.split("|")[0]);	
	    if (response.split("|")[1] != null && response.split("|")[1] != '')		
		    SetHomewardFerryRoute(response.split("|")[1]);	
    }
}

function OnWebRequestCompleted(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {
        DisplayWebRequestBody(executor);
    }
    else
    {
        if (executor.get_timedOut())
            alert("Timed Out");
        else
            if (executor.get_aborted())
                alert("Aborted");
    }
}

function OnWebRequestSubcontentCompleted(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {
        DisplayWebRequestSubcontent(executor);
    }
    else
    {
        if (executor.get_timedOut())
            alert("Timed Out");
        else
            if (executor.get_aborted())
                alert("Aborted");
    }
}


// This function is used to display the Web request body <!--subcontent-->-part.
function DisplayWebRequestSubcontent(executor)
{   
    var body = executor.get_responseData();
    var pos1=body.indexOf('<!--subcontent -->');
    body=body.substring(pos1 + 18 );

    var pos2 = body.indexOf("<!--/subcontent -->");
    body=body.substring(0,pos2);

    if (document.all) {
         displayElement.innerHTML = body;
    }
    else {
        // Firefox
         displayElement.innerHTML = body;
    }
    try {
        InitImageBrowsers();
//	    if (InitImageBrowser)
//		    InitImageBrowser();
    }
    catch(e) { }
}



// This function is used to display the Web request body.
function DisplayWebRequestBody(executor)
{   
    var body = executor.get_responseData();
    var pos1=body.indexOf('"__VIEWSTATE"');
    body=body.substring(pos1);

    pos1=body.indexOf(">");
    body=body.substring(pos1 + 1);
    var pos2 = body.indexOf("</form");
    body=body.substring(0,pos2);

    if (document.all) {
         displayElement.innerHTML = body;
    }
    else
        // Firefox
         displayElement.innerHTML = body;

    try {
        InitImageBrowsers();
    }
    catch(e) { }
}

function InitImageBrowsers() {
    // Find all elements in document that have a classname that equals 'imagebrowser_clientID'
    // Init each of the Image Browser in the page with a call to the InitImageBrowser() method in
    // common.js  with the innerHtml (= ClientId of the usercontrol) of each found element as parameter
    var arrElements = document.all || document.getElementsByTagName('*');

    var arrReturnElements = new Array();
    strClassName = "imagebrowser_clientID";
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
//            alert("found:" + oElement.className);
            InitImageBrowser(oElement.innerHTML);
        }
       
    }
}


if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();




