﻿// JScript File

var sBridgeURL = 'ClientServerBridge.aspx';
var g_sDebug = '';
var g_sHomePage = 'Default.aspx';

function sendToServer(sFunc, sParams, sCaller)
{
    sParams = escape(sParams);
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
        //self.xmlHttpReq.overrideMimeType("text/xml");
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', sBridgeURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            if (onServerResult)
            {
               onServerResult(self.xmlHttpReq.responseText);
            }
        }
    }
    
    try
    {
        self.xmlHttpReq.send('func=' + sFunc + '&params=' + sParams + '&caller=' + sCaller + '&group=' + g_nGroupId + '&page=' + GetCurrentPage());
    }
    catch(e)
    {
        self.xmlHttpReq.send('func=' + sFunc + '&params=' + sParams + '&caller=' + sCaller + '&page=' + GetCurrentPage());
    }
}

function GetCurrentPage()
{
    var sPage = location.pathname.substring(location.pathname.lastIndexOf('/') + 1);
    
    if (sPage == '')
    {
        return (g_sHomePage);
    }
    else
    {
        return (sPage);
    }
}

function GetFromServer(sFunc, sParams, sCaller)
{
    g_sDebug += 'SENT: func=' + sFunc + '     sParams=' + sParams + '     sCaller=' + sCaller + '\n---------------------\n\n';

    if (sCaller == null)
    {
        sCaller = '';
    }
    
    var oTemp = new sendToServer(sFunc, sParams, sCaller);
}

function onServerResult(sResponseStr)
{
    g_sDebug += 'RCVD: ' + sResponseStr + '\n---------------------\n\n';

    var sFunc = sResponseStr.split('^#@')[0];
    var sCaller = sResponseStr.split('^#@')[1];
    var sResult = sResponseStr.split('^#@')[2];

    if (sResult == "NotLoggedIn")
    {
//                location.href = 'Home.aspx';
//                return;
    }
    
    if (sCaller == "DoNothing")
    {
        return;
    }
    
    if (sResult == "Access Denied")
    {
        alert(sFunc + ": Access Denied!");
        return;
    }
    
    switch (sFunc)
    {
        case "TryLogin":
            CheckLoginResult(sResult, sCaller);
            
            break;
           
        case "SignOut":
            AfterSignOut(sResult);
            
            break;
            
        case "AskForPassword":
            PasswordSent(sResult);
            
            break;

        case "DoesUserExist":
            UserAlreadyExists(sResult);
            
            break;
            
        case "GetCurrentUserProfile":
            PopulateUserProfile(sResult);
            
            break;
            
        case "GetUserProfile":
            PopulateUserProfile(sResult);
            
            break;
            
        case "GetSavedFilterQueriesForCurrentUserByType":
            PopulateSavedFilterQueries(sResult);
            
            break;
            
        case "DeleteSavedFilterQuery":
            UpdateSavedFilterQueriesList();

            break;
            
        case "SaveFilterQuery":
            UpdateSavedFilterQueriesList();

            break;
            
        case "GetGroupLocations":
            BuildPage(sResult);
            
            break;
            
        case "SaveLocation":
            UpdateLocations();
            
            break;
            
        case "DeleteLocation":
            UpdateLocations();
            
            break;
            
        case "DeletePhoto":
            RefreshPhotos();
            
            break;

        default:
            if (eval('window.' + sFunc + '_Result'))
            {
                var func = eval('window.' + sFunc + '_Result');
                
                func(sResult, sCaller);
            }
            
            break;
        
    }
}    

