// $Id: form_scripts.js 53449 2007-01-12 10:50:45Z vgindin $

var need_resize = true;

function setRefreshOn(orig_href)
{
    var href = orig_href;
    if ((i = href.indexOf('?refresh=')) != -1)
    {
        href[i + '?refresh='.length] = '1';
    }
    else if ((i = href.indexOf('&refresh=')) != -1)
    {
        href[i + '&refresh='.length] = '1';
    }
    else if (href.indexOf('?') != -1)
    {
        href = href + '&refresh=1';
    }
    else
    {
        href = href + '?refresh=1';
    }
    return href;
}

function refresh_tab()
{
  try{
    var href = setRefreshOn(window.opener.location.href);
    window.opener.location.replace(href);
  }catch(exc){
  }
}
function refresh_context()
{
  try{
    var href = setRefreshOn(window.opener.parent.location.href);
    window.opener.parent.location.replace(href);
  }catch(exc){
  }
}
function close_form()
{
    need_resize = false;
    window.close();
}
function redirect_context(url)
{
    try{
    window.opener.open(url, '_self');
    }catch(exc){
    }
}
function redirect_opener_parent(url)
{
    try{
    window.opener.open(url, '_self');
    }catch(exc){
    }
}
function redirect_opener(url)
{
    try{
    window.opener.open(url, '_self');
    }catch(exc){
    }
}
function _get_navig()
{
    frms = window.opener.parent.parent.frames;
    for (i=0; i<frms.length; i++)
        if (frms[i].name == "navig")
            return frms[i];
    return null;
}
function _get_navig_tab()
{
    navig = _get_navig();
    if (navig == null)
        return null;
    frms = navig.frames;
    for (i=0; i<frms.length; i++)
        if (frms[i].name == "navigator_tab")
            return frms[i];
    return null;
}
function refresh_navig()
{
    navig = _get_navig();
    if (navig != null)
        navig.location.reload(true);
}
function refresh_navig_tabs(tabs)
{
    if (typeof(tabs) == 'string')
    {
        tabs = [tabs];
    }

    frm = _get_navig_tab()
    if (frm != null)
    {
        href = frm.location.href;
        for (ti=0; ti<tabs.length; ti++)
        {
            if (href.indexOf(tabs[ti]) != -1)
            {
                frm.location.reload(true);
                break;
            }
        }
    }
}
function disable_form(event, theform)
{
    for (i = 0; i < theform.length; i++)
    {
        var tempobj = theform.elements[i];
        if (tempobj.type != null && tempobj.type.toLowerCase() == "submit")
            tempobj.disabled = true;
    }
}

function set_button_value(event, btn, btnValue)
{
    var theform = btn.form;
    var hiddenName = "hidden_" + btn.name;
    var i;
    for (i = 0; i < theform.length; ++i)
    {
    	var element = theform.elements[i];
    	if (element.name == hiddenName)
    	{
    		element.value = btnValue;
    		break;
    	}
    }
}

/*
    Marks 'btn' button as pressed. Request will have the "1" value for pressed button.
*/
function mark_as_pressed(event, btn)
{
    set_button_value(event, btn, "1");
}

/*
    Marks 'btn' button as not pressed. Request will have the "0" value for pressed button.
*/
function mark_as_unpressed(event, btn)
{
    set_button_value(event, btn, "0");
}

function isHttpUnitBrowser() {
  return (navigator.userAgent.indexOf("httpunit")!=-1);
}

function init_focus(elementId) {
    if (isHttpUnitBrowser()){
        return;
    }
    var el = window.document.getElementById(elementId);
    if (el)
    	el.focus();
}

function auto_resize(event)
{
    if (!need_resize){
        return;
    }
    if (isHttpUnitBrowser()){
        return;
    }
    var bt = new Object();
    bt[getBrowser()] = true;
    var w = 0;
    var h = 0;
    pos = getAbsolutePos(document.getElementById("oRightDownTD"));
    if (bt["NS4"]) {
        w = pos.x1 + 16;
        h = pos.y1 + 16;
    } else if(bt["NS6"]){
        w = pos.x1 + 2;
        h = pos.y1 + 2;
    } else {
        w = pos.x1;
        h = pos.y1 + 70;
    }
    availWidth = screen.availWidth - 100;
    availHeight = screen.availHeight - 100;
    if (availWidth < w) w = availWidth;
    if (availHeight < h) h = availHeight;
    if (w/h > 3) h = w/3;
    if (h/w > 1.5) w = h/1.5;
    if (availWidth < w) w = availWidth;
    if (availHeight < h) h = availHeight;
    if ((!window.frameElement) && (window.opener)) {
    	try
    	{
            if (bt["NS4"] || bt["NS6"]) {
		        window.innerWidth = w;
		        window.innerHeight = h;
		    } else if(bt["IE"]) {
		        window.resizeTo(w + 27, h);
		    } else if(bt["Opera"]) {
                window.resizeTo(w + 20, h);
            }
        }
        catch (err)
        {
        }
    }
}
function hide_field(field_id)
{
    reg_id = field_id + '_outer';
    reg = document.getElementById(reg_id);
    reg.style.visibility='hidden';
    reg.style.display='none';
}
function show_field(field_id)
{
    reg_id = field_id + '_outer';
    reg = document.getElementById(reg_id);
    reg.style.visibility='visible';
    reg.style.display='';
}
//TODO: Delete this code if nothing problems in multi-select-field component
/*
function transferIn(object,object1,object2)
{
    for (var i=0; i<object.length; i++)
    {
        if (object.options[i].selected==true)
        {
            var index = i;
            var newoption = new Option(object.options[index].text, object.options[index].value, true, true);
            var newoption1 = new Option(object.options[index].text, object.options[index].value, true, true);
            object2.options[object2.length] = newoption;
            object1.options[object1.length] = newoption1;
            object.options[i] = null;
            i--;
        }
    }
    if (!document.getElementById) history.go(0);
    selectAll(object2);
    object1.selectedIndex = 0;
    object.selectedIndex = 0;
}

function transferOut(object,object1,object2)
{
    for (var i=0; i<object1.length; i++)
    {
        if (object1.options[i].selected==true)
        {
            var newoption = new Option(object1.options[i].text, object1.options[i].value, true, true);
            object.options[object.length] = newoption;
            object1.options[i] = null;
            object2.options[i] = null;
            i--;
        }
    }
    if (!document.getElementById) history.go(0);
    object.selectedIndex = 0;
    object1.selectedIndex = 0;
    selectAll(object2);
}
*/

function option_up(selectfield)
{
    var selected = new Array();
    for (var i=0; i<selectfield.length; i++)
        if (selectfield.options[i].selected==true)
		selected.push(i);

    for (var l=0; l<selected.length; l++)
    {
        var i = selected[l];
	var j = selected[l]-1;

	if(i==0)
		break;

	var a = selectfield.options[i];
	var b = selectfield.options[j];

	var c = new Option(a.text, a.value, a.defaultSelected, a.selected);

	selectfield.options[i].text = b.text;
	selectfield.options[i].value = b.value;
	selectfield.options[i].selected  = b.selected;
	selectfield.options[i].defaultSelected = b.defaultSelected;

	selectfield.options[j].text = c.text;
	selectfield.options[j].value = c.value;
	selectfield.options[j].selected  = c.selected;
	selectfield.options[j].defaultSelected = c.defaultSelected;
    }           		
}

function option_down(selectfield)
{
    var selected = new Array();
    for (var i=0; i<selectfield.length; i++)
        if (selectfield.options[i].selected==true)
		selected.push(i);

    for (var l=selected.length-1; l>=0; l--)
    {
        var i = selected[l];
	var j = selected[l]+1;

	if(j==selectfield.length)
		break;

	var a = selectfield.options[i];
	var b = selectfield.options[j];

	var c = new Option(a.text, a.value, a.defaultSelected, a.selected);

	selectfield.options[i].text = b.text;
	selectfield.options[i].value = b.value;
	selectfield.options[i].selected  = b.selected;
	selectfield.options[i].defaultSelected = b.defaultSelected;

	selectfield.options[j].text = c.text;
	selectfield.options[j].value = c.value;
	selectfield.options[j].selected  = c.selected;
	selectfield.options[j].defaultSelected = c.defaultSelected;
    }

}

function transfer(object,object1)
{
    for (var i=0; i<object.length; i++)
    {
        if (object.options[i].selected==true)
        {

            var index = i;
            var newoption = new Option(object.options[index].text, object.options[index].value, true, true);
            object1.options[object1.length] = newoption;
            object.options[i] = null;
            i--;
        }
    }
    if (!document.getElementById) history.go(0);
    object1.selectedIndex = 0;
    object.selectedIndex = 0;
}

function deleteSelectedOptions(object)
{
    for (var i=0; i<object.length; i++)
    {
        if (object.options[i].selected==true)
        {
            object.options[i] = null;
            i--;
        }
    }
//    if (!document.getElementById) history.go(0);
//    object.selectedIndex = 0;
}


function addoption(object,title,value)
{
    var newoption = new Option(title, value, true, true);
    object.options[object.length] = newoption;   

//    if (!document.getElementById) history.go(0);
//    object.selectedIndex = 0;
}

function selectAll(object)
{
    if( object )
    {
        var len = object.length;
        for(var i = 0; i < len; i++)
        {
            object.options[i].selected=true;
        }
    }
}
/*
Used to select all checkboxes in the form with given bame
*/
function setChecked(val, formId, chkName) {
    var form = document.getElementById(formId);
    for( i = 0 ; i < form.elements.length ; i++) {
        if ((form.elements[i].name == chkName)&&(!form.elements[i].disabled)) {
            form.elements[i].checked = val;
        }
    }
}

var is_wizard_form_submit = false;

function wizard_form_load() {
	is_wizard_form_submit = false;
}

function wizard_form_submit() {
	is_wizard_form_submit = true;
}

function wizard_form_unload() {
	if (!is_wizard_form_submit) {
		is_wizard_form_submit = false;
		var cancel_button = document.getElementById("cancel");
		if (cancel_button)
		{
			mark_as_pressed(null, cancel_button);
			var frms = document.forms;
			for (var i = 0; i < frms.length; ++i)
				frms[i].submit();
			if (browserType().type != 'MZ')
				return "Закрывайте форму с помощью кнопки 'отмена'";
		}
	}
}

function enter(keyCode, buttonId) {
	if (keyCode == '13') {
		var submit_button = document.getElementById(buttonId);
		submit_button.focus();
		submit_button.click();
		return true;
	}
	return false;
}

function currentDateString()
{
    var dt = new Date();
    var strDay = new Number(dt.getDate()).toString();
    var strMonth = new Number(dt.getMonth()+1).toString();
    if (strDay.length == 1) {
        strDay = "0".concat(strDay);
    }
    if (strMonth.length == 1) {
        strMonth = "0".concat(strMonth);
    }
    return strDay.concat(".", strMonth, ".", new Number(dt.getFullYear()).toString());
}

function currentDateTimeString()
{
	var dt = new Date();
    var strHour = new Number(dt.getHours()).toString();
    var strMin = new Number(dt.getMinutes()).toString();
    if (strHour.length == 1) {
        strHour = "0".concat(strHour);
    }
    if (strMin.length == 1) {
        strMin = "0".concat(strMin);
    }
    return currentDateString().concat(" ", strHour, ":", strMin);
}


function processTextToStrings(textarea, left)
{

	if (document.getElementById)
	{

		var textarea = document.getElementById(textarea);

		var rigth = document.getElementById(left);
		while(rigth.options.length>0)
			rigth.remove(0);

		var left = document.getElementById(left+"_left");
		while(left.options.length>0)
			left.remove(0);

		var str = new String(textarea.value);
		var s = new Array();
		var expr = /\n/;

		s = str.split(expr, 100);
		for(var i=0; i<s.length; i++)
		{
				s[i]=RTrim(s[i]);
		        if(s[i]!="")
			        addOptionTo(left, s[i], s[i]);
		}
	}

	else if (document.all)
	{
		alert('W3C is not defined!');
	}

	else
	{
		alert('W3C is not defined!');
	}


}

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var return_symb = String.fromCharCode(13);
	var caret_return = String.fromCharCode(10);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1){
	if(VALUE.charAt(iTemp) == w_space || VALUE.charAt(iTemp) == return_symb || VALUE.charAt(iTemp) == caret_return){
	}
	else{
		strTemp = VALUE.substring(0,iTemp +1);
		break;
	}
	iTemp = iTemp-1;

	} //End While
	return strTemp;

} //End Function


var treeNodeClass = "treenode";
var treeErrorNodeClass = "treenodeerror";
var treePlusButtonClass = "treebuttonplus";
var treeMinusButtonClass = "treebuttonminus";
var treePlusButtonFile = "$guic/images/treeplus.gif";
var treeMinusButtonFile = "$guic/images/treeminus.gif";
var treeNoButtonFile = "$guic/images/treenone.gif";

/**
 * Checkbox tree support function.
 * Find the checkbox in the parent node.
 * @param childDiv DIV that is a tree node
 * @return checkbox that lives in the parent node
 */
function treeFindParentCheckbox(childDiv)
{
    var parentDiv = childDiv.parentNode;
    if (parentDiv != null && parentDiv.className != treeNodeClass) {
        parentDiv = null;
    }

    var parentCheckbox = null;
    if (parentDiv != null) {
        parentCheckbox = (parentDiv.getElementsByTagName("INPUT"))[0];
    }
    return parentCheckbox;
}


function treeFindRoot(childDiv)
{
    var current = childDiv;
    while (true)
    {
    	var parent = current.parentNode;
    	if (parent != null && parent.className != treeNodeClass)
    	{
    		return current;
    	}
    	current = parent;
    }
}
/**
 * !!! NOT USED !!!
 * Checkbox tree support function.
 * Look at the state of child checkboxes and set own state accordingly.
 * Proceed recursively to the tree root.
 * @param theCheckbox checkbox that needs its state recalculated
 */
function treeUpdateCheckboxState(theCheckbox)
{
    var theDiv = theCheckbox.parentNode;
    var len = theDiv.childNodes.length;
    var i;

    var allChecked = true;
    var allUnchecked = true;
    for (i = 0; i < len; ++i)
    {
        var child = theDiv.childNodes.item(i);
        if (("className" in child) &&
            (child.className == treeNodeClass))
        {
            childBox = (child.getElementsByTagName("INPUT"))[0];
            if (childBox != null)
            {
                var childBoxChecked = childBox.checked /* && !childBox.disabled*/;
                allChecked = allChecked && childBoxChecked;
                allUnchecked = allUnchecked && (!childBoxChecked);
            }
        }
    }

    theCheckbox.checked = allChecked;
    //theCheckbox.indeterminate = !(allChecked || allUnchecked);

    var parentCheckbox = treeFindParentCheckbox(theDiv);
    if (parentCheckbox != null) {
        treeUpdateCheckboxState(parentCheckbox);
    }
}

/**
 * Checkbox tree support function.
 * Recursively enable/disable the checkboxen in child nodes.
 * @param checkbox checkbox that needs its children updated
 */
function treeUpdateChildCheckboxes(checkbox, strategy)
{
    var children = checkbox.parentNode.childNodes;
    var len = children.length;
    var i;

    for (i = 0; i < len; ++i)
    {
        var child = children.item(i);
        if (("className" in child) &&
            (child.className == treeNodeClass))
        {
            var childBox = (child.getElementsByTagName("INPUT"))[0];
            if (childBox == null) {
                continue;
            }
            strategy(childBox);
            treeUpdateChildCheckboxes(childBox, strategy);
        }
    }
}


function treeFindWasChangedField(checkbox)
{
	return (checkbox.parentNode.getElementsByTagName("INPUT"))[1];
}


/**
 * Checkbox tree support function.
 * Handle clicks for tree checkboxes.
 * @param checkbox checkbox which has been clicked
 */
function treeProcessCheckboxClick(checkbox)
{   
    var theDiv = checkbox.parentNode;
    if (theDiv == null || theDiv.className != treeNodeClass)
    {
        return;
    }
    /*
    parentCheckbox = treeFindParentCheckbox(theDiv);
    if (parentCheckbox != null)
    {
        treeUpdateCheckboxState(parentCheckbox);
    }
    */


    var behaviorFactory = treeFindRoot(checkbox.parentNode).treeBehaviorFactory;
    if (behaviorFactory == null)
    {
    	behaviorFactory = treeBehaviorInheritValuesFactory;
    }
    treeFindWasChangedField(checkbox).value = "1";
    treeUpdateChildCheckboxes(checkbox, behaviorFactory(checkbox));
}

function treeBehaviorInheritValuesFactory(theCheckbox)
{
	var checked = theCheckbox.checked;
	return function(childBox)
	{
		childBox.disabled = checked;
	};
}

function treeBehaviorCopyValuesFactory(theCheckbox)
{
	var checked = theCheckbox.checked;
	var changed = ("1" == treeFindWasChangedField(theCheckbox).value);
    return function(childBox)
    {
        if (changed)
        {
        	var fld = treeFindWasChangedField(childBox);
        	if ((fld.value != "1") && changed)
        	{
	            fld.value = "1";
	        }
            childBox.checked = checked;
        }
    };
}

/**
 * Checkbox tree support function.
 * Handle expand/collapse button clicks for tree nodes.
 * @param button expand/collapse button that was clicked
 */
function treeToggleChildren(button)
{
    var theDiv = button.parentNode;
    var children = button.parentNode.childNodes;
    var len = children.length;
    var i;
    var doHide = (button.className == treeMinusButtonClass);

    for (i = 0; i < len; ++i)
    {
        var child = children.item(i);
        if (("className" in child) &&
            (child.className == treeNodeClass))
        {
            child.style.display = (doHide ? "none" : "block");
        }
    }

    button.className = (doHide ? treePlusButtonClass : treeMinusButtonClass);
    button.src = (doHide ? treePlusButtonFile : treeMinusButtonFile);
    auto_resize(null);
}

function treeCreateXmlHttp()
{
    var req = null;

    if(window.XMLHttpRequest)
    {
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = null;
        }
    }
    else if(window.ActiveXObject)
    {
        try
        {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                req = null;
            }
        }
    }

    return req;
}

function treeAddLoadedItems(items, theDiv)
{
    var children = items.childNodes;
    var len = children.length;
    var i;
    var j;
    var parentCheckbox = (theDiv.getElementsByTagName("INPUT"))[0];
    for (i = 0; i < len; ++i)
    {
        var child = children.item(i);
        if (child.tagName != "item")
        {
            continue;
        }
        var newItemValue = child.getAttribute("value");
        var newItemId = theDiv.id + "." + newItemValue;

        var isAttributeTrue = function(attrName) { return ("true" == child.getAttribute(attrName)); };

        var newItemChecked = isAttributeTrue("checked");
        var newItemDisabled = isAttributeTrue("disabled");
        var newItemHasChildren = isAttributeTrue("has-children");

        var newItemColor = child.getAttribute("color");

        var newDiv = window.document.createElement("DIV");
        var imgButton = window.document.createElement("IMG");
        var checkbox = window.document.createElement("INPUT");
        var hidden = window.document.createElement("INPUT");
        var hiddenLoaded = window.document.createElement("INPUT");

        newDiv.className = treeNodeClass;
        newDiv.id = newItemId;
        newDiv.xmlHttpUrl = theDiv.xmlHttpUrl;

        if (newItemHasChildren)
        {
        	imgButton.src = treePlusButtonFile;
			imgButton.onclick =(function ()
            {
                var tmpButton = imgButton;
                return function() { treeHandleLoadChildrenButton(tmpButton); };
            })();
        }
        else
        {
        	imgButton.src = treeNoButtonFile;
        }

        checkbox.type = "checkbox";
        checkbox.name = parentCheckbox.name;
        checkbox.value = newItemValue;
        checkbox.id = newDiv.id + "_check";

        checkbox.disabled = newItemDisabled;
        checkbox.onclick = parentCheckbox.onclick;

        hidden.type = "hidden";
        hidden.name = checkbox.name + "_changed";
        hidden.value = "0";
        hidden.id = newDiv.id + "_changed";

        hiddenLoaded.type = "hidden";
        hiddenLoaded.name = checkbox.name + "_loaded";
        hiddenLoaded.value = newItemValue;

        newDiv.appendChild(imgButton);
        newDiv.appendChild(checkbox);
        newDiv.appendChild(hidden);
        newDiv.appendChild(hiddenLoaded);

        var newItemCaption = "";

        var subChildren = child.childNodes;
        var subLen = subChildren.length;
        for (j = 0; j < subLen; ++j)
        {
            var subChild = subChildren.item(j);
            if (subChild.nodeType == 3 || subChild.nodeType == 4) {
                newItemCaption += subChild.nodeValue;
            }
        }

        if (newItemColor != "")
        {
            var span = window.document.createElement("span");
            span.setAttribute("style", "color:"+newItemColor+"font:bold");
            span.appendChild(window.document.createTextNode(newItemCaption));
            newDiv.appendChild(span);
        }
        else
        {
            newDiv.appendChild(window.document.createTextNode(newItemCaption));
        }
        theDiv.appendChild(newDiv);

        checkbox.checked = newItemChecked;
    }
    treeUpdateChildCheckboxes(parentCheckbox, treeFindRoot(theDiv).treeBehaviorFactory(parentCheckbox));
}

function treeCallXmlHttp(theButton, url)
{
    var req = treeCreateXmlHttp();
    if (req == null)
    {
        return;
    }
    handler = function() { treeHandleXmlHttp(req, theButton) };
    req.onreadystatechange = handler;
    req.open("GET", url, true);
    req.send("");
}

function treeRemoveChildErrors(theDiv)
{
    var childErrors = theDiv.getElementsByTagName("DIV");
    if (childErrors.length > 0 && childErrors[0].className == treeErrorNodeClass)
    {
        theDiv.removeChild(childErrors[0]);
    }
}

function treeHandleXmlHttp(req, theButton)
{
	var btn = theButton;
    if (req.readyState == 0)
    {
        btn.onclick = null;
        btn.src = treeNoButtonFile;
        btn.className = '';
    }
    else if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            treeRemoveChildErrors(btn.parentNode);
            var root = req.responseXML.documentElement;
            treeAddLoadedItems(root, btn.parentNode);
            btn.src = treeMinusButtonFile;
            btn.className = treeMinusButtonClass;
            btn.parentNode.xmlHttpUrl = null;
            btn.onclick = function() { treeToggleChildren(btn); };
        }
        else
        {
            var theDiv = btn.parentNode;
            treeRemoveChildErrors(theDiv);

            var newDiv = window.document.createElement("DIV");
            newDiv.className = treeErrorNodeClass;
            newDiv.innerHTML = "Failed to load element";
            newDiv.id = theDiv.id + "_err";
            theDiv.appendChild(newDiv);

            btn.src = treePlusButtonFile;
            btn.className = treePlusButtonClass;
            btn.onclick = function() { treeHandleLoadChildrenButton(btn); };
        }
    }
}

function treeHandleLoadChildrenButton(theButton)
{
	var xmlHttpUrl = treeFindRoot(theButton.parentNode).xmlHttpUrl;
	if (xmlHttpUrl != null)
	{
		var nodeValue = (theButton.parentNode.getElementsByTagName("INPUT"))[0].value;
		var completeUrl = xmlHttpUrl + "&nodeValue=" + encodeURIComponent(nodeValue);
		treeCallXmlHttp(theButton, completeUrl);
	}
}


function insertProperty(source, target)
{
	var sObj = source;
	var opt = sObj.options[sObj.selectedIndex].value ;
	var tObj = document.getElementsByName(target)[0];
	tObj.value += " ${" + opt + "} ";
}

/**
 * writing checkboxes to document
 */ 

function writeCheckboxes(target, url)
{
	var form = target;
	var data = {};
	
	if(navigator.appName != 'Microsoft Internet Explorer')	
	{
		while(form.nodeType == Node.ELEMENT_NODE && form.tagName.toLowerCase() != 'form' && form != document)
			form = form.parentNode;
	}
	else
	{
		while(form.tagName.toLowerCase() != 'form' && form != document)
			form = form.parentElement;
	}

	var inputs = document.getElementsByTagName('input'), i;
	for(i=0; i<inputs.length; i++)
	{
		if('checkbox'==inputs[i].getAttribute('type'))
		{
			var checkbox = inputs[i];
			if(checkbox.checked)
			{
				var name = checkbox.getAttribute('name');
				var value = checkbox.getAttribute('value');
				if(!name || !value)
					continue;
				if(!data[name])
					data[name] = new Array();
				data[name][data[name].length]=value;
			}
		}
	}

	for (var name in data)
        url = setParam(url, name, data[name]);
	
	return url;
}
