/* 
 * Dynamic code for the product changer
 */

Behaviour.register({
    '#Form_ProductOptions': {
        initialise: function() {
            getNewLink();
            for (i=0; i< this.elements.length; i++) {
                if (this.elements[i].type == "radio") {
                    this.elements[i].onclick = function() {
                        getNewLink();
                    }
                }else {
                    this.elements[i].onchange = function() {
                        getNewLink();
                    };
                }
            }

        }
    }

});
function getNewLink() {
    var form = $('Form_ProductOptions');
    var query = "?";
    var linkQuery="?"
    var value = "";
    if (form.elements) {
        for (i=1; i<form.elements.length - 1; i++) {
            linkQuery += form.elements[i].name;
            if (form.elements[i].type == "radio") {
                var radioSet = document.getElementsByName(form.elements[i].name);
                value = getSelectedRadioValue(radioSet);
                i += radioSet.length;
            } else {
                value = form.elements[i].value;
                value = value.replace("\n"," | ");
            }
            query += "v[]=" + value + "&";
            linkQuery += "=" + value + "&";
        }

        var link = $('addLink');
        if (link)
            link.href = generateSource(link.href,linkQuery);
    }

}

function getSelectedRadioValue(radioFormControl)
{

    var numRadio;

    numRadio = radioFormControl.length;

    if(numRadio != null)
    {
        for(var iRadio=0;iRadio<numRadio;iRadio++)
        {
            if(radioFormControl[iRadio].checked)
            {
                return radioFormControl[iRadio].value;
            }
        }
    }else{
        if(radioFormControl.checked)
        {
            return radioFormControl.value;
        }
    }

    return '';

}

function generateSource(path,query) {
    if (path.indexOf('?')>0)
        path = path.substring(0,path.indexOf('?'));
    return path+query;
}




