﻿// JScript File

    var id
    var baseaddress
        
    function IsCaptchaValid()
    {
        var txtCaptcha = document.getElementById('txtCaptcha');
        
        var xmlHttp = XmlHttp.create();
        
        xmlHttp.open("GET", "CCACaptchaProxy.asp?action=validate&url=" + baseaddress + "&id=" + id + "&token=" + txtCaptcha.value, false);  
        xmlHttp.send();
        
        var result = xmlHttp.responseText;

        if (result == "1")
            return true
        else
            return false
    }
    
    function ReRenderCaptcha(withFocus)
    {
        id = GetUniqueID();
        
        var txtCaptcha = document.getElementById('txtCaptcha');
        txtCaptcha.value = "";
        
        if (withFocus)
            SetFocus();
            
        var imgCaptcha = document.getElementById('imgCaptcha');
        imgCaptcha.src = GetImageSrc();
    }
    
    function SetFocus()
    {
        var txtCaptcha = document.getElementById('txtCaptcha');
        if (txtCaptcha != null)
            txtCaptcha.focus();
    }
    
    function RenderCaptcha(url)
    {
        var span = document.getElementById('CaptchaSpan');
        id = GetUniqueID();
        baseaddress = url;
        
        span.innerHTML += '<input id="txtCaptcha" type="text" />&nbsp;<img id="imgCaptcha" src="' + GetImageSrc() + '">';
    }
    
    function GetImageSrc()
    {
        return "CCACaptchaProxy.asp?action=image&url=" + baseaddress + "&id=" + id;
    }

    function getXmlHttpPrefix() 
    {
        if (getXmlHttpPrefix.prefix)
              return getXmlHttpPrefix.prefix;

        var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];

        var o;

        for (var i = 0; i < prefixes.length; i++) 
        {
              try 
              {
                    o = new ActiveXObject(prefixes[i] + ".XmlHttp");
                    return getXmlHttpPrefix.prefix = prefixes[i];
              }
              catch (ex) {};
        }
    }



    function XmlHttp() {}

 

    XmlHttp.create = function () 
    {

        if (window.XMLHttpRequest) 
        {

        var req = new XMLHttpRequest();

        if (req.readyState == null) 
        {
            req.readyState = 1;
            req.addEventListener(
                "load", 
                function () 
                {
                    req.readyState = 4;
                    if (typeof req.onreadystatechange == "function")
                          req.onreadystatechange();
                }, 
                false);
        }

        return req;
        }

        if (window.ActiveXObject) {
            return new ActiveXObject(getXmlHttpPrefix() + ".XmlHttp");
        }
    };

    function GetUniqueID()
    {    
        var id = ""; 
        
        for (var i = 1; i <= 32; i++) 
        { 
            var n = Math.floor(Math.random() * 16.0).toString(16); 
            id += n; 
        } 
       
        return id;
    }

