﻿function AddListener(instance, name, handler)
{
    try
    {
        //if (instance.attachEvent)
        if (document.all)
        {
            instance.attachEvent('on' + name, handler);
        }
        else if (instance.addEventListener)
        {
            instance.addEventListener(name, handler, false);
        }
    }
    catch (e)
    {
        alert('AddListener : ' + e.message);
    }
}
function RemoveListener(instance, name, handler)
{
    try
    {
        if (instance.detachEvent)
        {
            instance.detachEvent('on' + name, handler);
        }
        else if (instance.removeEventListener)
        {
            instance.removeEventListener(name, handler, false);
        }
    }
    catch (e)
    {
        alert('RemoveListener : ' + e.message);
    }
}

/// Hide Progress bar
AddListener(window, 'load', function()
{
    var updateProgress = document.getElementById('updateProgress');

    if (updateProgress)
    {
        updateProgress.style.display = 'none';
    }
});

AddListener(window, 'load', function()
{
    document.onmouseout = function()
    {
        HideDiamondDetails();
    }

    this.grid = document.getElementById('diamondGrid');

    if (this.grid)
    {
        this.grid.extension = {};
        this.grid.extension.instance = grid;
        this.grid.extension.activeElement = null;
        this.grid.extension.checkboxs = [];

        this.grid.extension.getParameters = function()
        {
            this.initial();

            var params = [];

            for (var i = 0; i < this.checkboxs.length; i++)
            {
                if (this.checkboxs[i].checked)
                {
                    params.push(this.checkboxs[i].extension.getParameter())
                }
            }
            return (params.length == 0) ? null : params;
        }

        this.grid.extension.initial = function()
        {
            function checkbox_click(checkbox)
            {
                return function()
                {
                    /*if (checkbox.extension.grid.activeElement)
                    {
                    checkbox.extension.grid.activeElement.checked = false;
                    }
                    checkbox.extension.grid.activeElement = checkbox;*/
                    if (checkbox.checked)
                    {
                        if (checkbox.extension.parameter == null)
                        {
                            checkbox.extension.createParameter();
                        }
                    }
                };
            }
            //var inputs = this.instance.getElementsByTagName('INPUT');
            var inputs = document.getElementById('diamondGrid').getElementsByTagName('INPUT');

            this.checkboxs = [];
            for (var i = 0; i < inputs.length; i++)
            {
                if (inputs[i].type.toLowerCase() == 'checkbox')
                {
                    var checkbox = inputs[i];

                    //checkbox.checked = false;
                    checkbox.extension = {};
                    checkbox.extension.instance = checkbox;
                    checkbox.extension.grid = grid;
                    checkbox.extension.parameter = null;
                    checkbox.extension.createParameter = function()
                    {
                        this.parameter = document.createElement('INPUT');
                        this.parameter.type = 'hidden';
                        this.parameter.name = 'diamondInfo';
                        this.parameter.value = this.instance.parentNode.attributes.getNamedItem('diamondInfo').nodeValue;
                        //alert(this.parameter.value);
                    };
                    checkbox.extension.getParameter = function()
                    {
                        if (this.parameter == null)
                        {
                            this.createParameter();
                        }
                        return this.parameter;
                    }
                    AddListener(checkbox, 'click', checkbox_click(checkbox));
                    this.checkboxs.push(checkbox);
                }
            }
        }

        this.grid.extension.initial();
    }
    //diamondGrid_CreateParameter();
});

function PrepareRequestFrom(id)
{
    //debugger;
    var params = [];
    var sender = window.document.getElementById(id);

    if (sender)
    {
        var element;
        var elements = sender.getElementsByTagName('INPUT');

        for (var i = 0; i < elements.length; i++)
        {
            element = elements[i];
            if ((element.type.toLowerCase() == 'radio') && (element.checked))
            {
                params.push(CreateParameter(element.parentNode.attributes.getNamedItem('diamondInfo').nodeValue));
                break;
            }
        }
    }
    return params;
}

function CreateParameter(value)
{
    var param;

    param = document.createElement('INPUT');
    param.type = 'hidden';
    param.name = 'diamondInfo';
    param.value = value;

    return param;
}

function SendRequest(params)
{
    var form;
    //debugger;    
    if (params == undefined)
    {
        params = this.grid.extension.getParameters();
    }

    form = CreateRequestForm(params);
    if (form)
    {
        //        form.action = 'http://dsconfig.stagingone.com/engnew/engagementring/ering.aspx';
        //        form.action = 'http://localhost/testNewEngagementRing/EngagementRing/Ering.aspx';
        //        form.action = 'http://localhost/DemoStoreConfiguratorERing/EngagementRing/Default.aspx';
        form.action = 'ERing.aspx';
        form.submit();
        //return true;
    }
    else
    {
        //alert('Select diamond to Continue.');
        //return false;
    }
}
function CreateRequestForm(params)
{
    if (params)
    {
        var form = document.getElementById('formRequest');

        if (form)
        {
            for (var i = 0; i < form.elements.length; i++)
            {
                form.elements[i].removeNode();
            }
        }
        else
        {
            form = document.createElement('FORM');
            form.id = 'formRequest';

            document.body.appendChild(form);
        }
        //form.target = '_blank';
        form.method = 'post';

        for (var i = 0; i < params.length; i++)
        {
            form.appendChild(params[i]);
        }
        return form;
    }
    else
    {
        return null;
    }
}

function SendRequest1(params)
{
    //    var xmlhttp;

    //    if (window.XMLHttpRequest)
    //    {
    //        xmlhttp = new window.XMLHttpRequest();
    //    }
    //    else
    //    {
    //        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    //    } 

    var form = document.body.appendChild(document.createElement('FORM'));

    for (var i = 0; i < params.length; i++)
    {
        form.appendChild(params[i]);
    }

    form.method = 'post';
    form.target = '_blank';
    //form.action = 'http://localhost/testNewEngagementRing/EngagementRing/Ering.aspx';
    form.action = 'Default.aspx';

    //    var hidden = document.createElement('INPUT');
    //    
    //    hidden.type = 'hidden';
    //    hidden.name = 'kraivich';
    //    hidden.value = 'mint';
    //    form.appendChild(hidden);

    form.submit();
}
function getDiamondParameters()
{

}
function diamondGrid_CreateParameter(sender, e)
{
    var elements = sender.getElementsByTagName('INPUT');
}