// JScript File
// Copyright(C) 2007 AILogix., Pty. All rights reserved.

function IsCUXLDENClientInstalled()
{
    var objClient;
    
    try
    {
        objClient = new ActiveXObject("CUXLMon.HyperSession");
        
        if (objClient != null)
        {
			return true;
        }
    }
    catch (e)
    {
		return false;
    }

	return false;
}

function getTargetUrl(strUrl)
{
    var targetQuery;
    var targetUrl;
    
    if (strUrl != null)
       targetQuery = strUrl.split("?");
    
    targetUrl = targetQuery[1];
    
    for (i = 2; i < targetQuery.length; i++)
    {
        targetUrl += "?";
        targetUrl += targetQuery[i];
    }
    
    if (targetUrl != null)
    {
        if (targetUrl.substr(0, 10) == "cuxlden://")
        {
            var target = targetUrl.split("|");

            if (target.length == 7)
            {
                targetUrl = "dup://";
                targetUrl += target[4];
                if (target[5] != "4881")
                    targetUrl += ":" + target[5];
                targetUrl += "/" + encodeURIComponent(decodeURIComponent(target[1]));
                targetUrl += "?" + target[3];
                targetUrl += ":" + target[2];
                
                return targetUrl;
            }
            else
            {
                var Delemeter = targetUrl.split("/");
            
                if (Delemeter.length >= 4)
                {
                    var FileBlock = Delemeter[3].split("?");
                    if (FileBlock.length == 2)
                    {
                        var FileInfo = FileBlock[1].split(":");
                        if (FileInfo.length == 2)
                            return targetUrl;
                        else
                            return null;                            
                    }
                }
                else
                    return null;
            }
        }
        else if (targetUrl.substr(0, 6) == "cup://" ||
            targetUrl.substr(0, 6) == "dup://")
        {
            var Delemeter = targetUrl.split("/");
            
            if (Delemeter.length >= 4)
            {
                var FileBlock = Delemeter[3].split("?");
                if (FileBlock.length == 2)
                {
                    var FileInfo = FileBlock[1].split(":");
                    if (FileInfo.length == 2)
                        return targetUrl;
                    else
                        return null;                            
                }
            }
            else
                return null;
        }
    }
    
    return null;
}

function getMergeUrl(strUrl, strQuery)
{
    var targetUrl;
    
    if (strQuery != null)
        targetUrl = strUrl + "?" + strQuery;
    else
        targetUrl = strUrl;
        
    return targetUrl;           
}

function IsCUXLDENUrl(strUrl)
{
    if (strUrl != null && strUrl.length > 10)
    {
        if (strUrl.substr(0, 10) == "cuxlden://")
        {
            var target = strUrl.split("|");

            if (target.length == 7)
                return true;
            else
            {
                var Delemeter = strUrl.split("/");
            
                if (Delemeter.length >= 4)
                {
                    var FileBlock = Delemeter[3].split("?");
                    if (FileBlock.length == 2)
                    {
                        var FileInfo = FileBlock[1].split(":");
                        if (FileInfo.length == 2)
                            return true;
                    }
                }
            }
        }
        else if (strUrl.substr(0, 6) == "cup://" ||
            strUrl.substr(0, 6) == "dup://")
        {
            var Delemeter = strUrl.split("/");
            
            if (Delemeter.length >= 4)
            {
                var FileBlock = Delemeter[3].split("?");
                if (FileBlock.length == 2)
                {
                    var FileInfo = FileBlock[1].split(":");
                    if (FileInfo.length == 2)
                        return true;
                }
            }
        }
    }
        
    return false;
}

function getTargetFileName(strQuery)
{
    var FileBlock;
    var Delemeter = strQuery.split("/");
            
    if (Delemeter.length >= 4)
        FileBlock = Delemeter[3].split("?");
       
    return decodeURIComponent(FileBlock[0]);
}

function getTargetFileSize(strQuery)
{
    var FileInfo;
    var FileBlock;
    var Delemeter = strQuery.split("/");
            
    if (Delemeter.length >= 4)
        FileBlock = Delemeter[3].split("?");
        
    if (FileBlock.length == 2)
    {
        FileInfo = FileBlock[1].split(":");
    }
       
    return FileInfo[1]; 
}

function getFormatedFileSizeBytes(strFileSize)
{
    var strFormatSize;

    if (isNaN(strFileSize) == false)
    {
        var i = strFileSize.length;
        var j = 0;
        
        for (; i > 0; i--, j++)
        {
            if (j % 3 == 0 && j != 0)
                strFormatSize = "," + strFormatSize;
            
            if (strFormatSize != null)
                strFormatSize = strFileSize.charAt(i - 1) + strFormatSize;
            else
                strFormatSize = strFileSize.charAt(i - 1);
        }    
    }
    else
        strFormatSize = "0";
    
    strFormatSize += " bytes";
    
    return strFormatSize;
}

function getFormatedFileSize(strFileSize)
{
    var strFormatSize;

    if (isNaN(strFileSize) == false)
    {
        var varFileSize = parseInt(strFileSize);
        
        if (varFileSize > 1099511627776)
        {
            strFormatSize = (varFileSize >> 40) + " TB";
        }
        else if (varFileSize > 1073741824)
        {
            strFormatSize = (varFileSize >> 30) + " GB";
        }
        else if (varFileSize > 1048576)
        {
            strFormatSize = (varFileSize >> 20) + " MB";
        }
        else if (varFileSize > 1024)
        {
            strFormatSize = (varFileSize >> 10) + " KB";
        }
        else
        {
            strFormatSize = varFileSize + " bytes";
        }
    }
    else
        strFormatSize = "0";

    return strFormatSize;
}

function getTargetFileHash(strQuery)
{
    var FileInfo;
    var FileBlock;
    var Delemeter = strQuery.split("/");
            
    if (Delemeter.length >= 4)
        FileBlock = Delemeter[3].split("?");
        
    if (FileBlock.length == 2)
    {
        FileInfo = FileBlock[1].split(":");
    }
       
    return FileInfo[0]; 
}

function getTargetFileServerAddress(strQuery)
{
    var ServerAddress;
    var ServerInfo;
    var ServerBlock;
    var Delemeter = strQuery.split("/");
            
    if (Delemeter.length >= 4)
        ServerBlock = Delemeter[2];
        
    ServerInfo = ServerBlock.split(":");
    if (ServerInfo == null)
        ServerAddress = ServerInfo;
    else
        ServerAddress = ServerInfo[0];        
       
    return ServerAddress;
}

function getTargetFileServerPort(strQuery)
{
    var ServerPort;
    var ServerInfo;
    var ServerBlock;
    var Delemeter = strQuery.split("/");
            
    if (Delemeter.length >= 4)
        ServerBlock = Delemeter[2];
        
    ServerInfo = ServerBlock.split(":");
    if (ServerInfo == null)
        ServerPort = "4881";
    else
        ServerPort =  ServerInfo[1];       
        
    return ServerPort;        
}
