function cycle_property(element_id, props, values)
{
	var elements=element_id;
	if (typeof(element_id)=='string')
		elements=[element_id];
	for (el_k in elements)
	{
	element_id=elements[el_k];

	var obj_lnk = document.getElementById(element_id);
	var props_last_k = props.length-1;
	var vals_last_k = values.length-1;
	var vals_new_k = -1;
	var props_debug = '';
	var vals_debug = '';

	for (var k in props)
	{
		props_debug=props_debug+"'"+props[k]+"' ";
		if (k != props_last_k)
			obj_lnk=obj_lnk[props[k]]
	}

	for (k in values)
	{
		vals_debug=vals_debug+"'"+values[k]+"' ";
		if (vals_new_k == (-1))
		{
			if (values[k] == obj_lnk[props[props_last_k]])

			{
				if (k == vals_last_k)
					vals_new_k=0;
				else
				{
					k++;
					vals_new_k=k;
				}
			}
		}
	}
	if (vals_new_k != (-1))
		obj_lnk[props[props_last_k]]=values[vals_new_k];
	else
		alert('cycle_property('+element_id+', ['+props_debug+'], ['+vals_debug+']) failed\nCurrent value: "'+obj_lnk[props[props_last_k]]+'"');

	}
}