

	var controls_one_collection = new Array()
	var controls_multi_collection = new Array()
	var controls_is_collected = false

/*======================*/

function getElements(attrValue, tagName, ownerNode, attrName) //get Elements By Attribute Name
{
	if (!tagName) tagName = "*"; //be aware that IE5.5 has a bug with getElementsByTagName("*") !
	if (!ownerNode) ownerNode = document;
	if (!attrName) attrName = "name";
	var result = [];
	var nl = ownerNode.getElementsByTagName(tagName);
	for (var i=0; i<nl.length; i++)
	{
		if (nl.item(i).getAttribute(attrName) == attrValue)
			result.push(nl.item(i));
	}
	return result;
}

function getElement(attrValue, tagName, ownerNode, attrName) //get Element By Attribute Name
{
	if (!tagName) tagName = "*"; //be aware that IE5.5 has a bug with getElementsByTagName("*") !
	if (!ownerNode) ownerNode = document;
	if (!attrName) attrName = "name";
	var nl = ownerNode.getElementsByTagName(tagName);
	for (var i=0; i<nl.length; i++)
	{
		if (nl.item(i).getAttribute(attrName) == attrValue)
			 return nl.item(i);
	}
	return null;
}

function pa(_obj)
{
	var str = '';
	var i=0;
	for(key in _obj)
	{
		i++;
		blank = '';
		for(j=0;j<(30-key.length);j++)blank +='  ';
		str += key+blank;
		if(i%5 == 0)str += '\n';
	}	
	alert(str);	
	
}


function hidden_cache_fields(_this)
{
	elem = document.getElementById("field_lifetime_value");
	lifetime_elem = elem.parentNode; 

	elem = document.getElementById("field_session_keys_value");
	session_keys_elem = elem.parentNode; 
	
	if(_this.value == 'Session Cache')
	{
		if (document.all && !window.opera)
		{
			session_keys_elem.style.display = 'block';
		}
		else
		{
			session_keys_elem.style.display = 'table-row';
		}
		lifetime_elem.style.display = 'none';
	}
	else if(_this.value == 'Time Cache')
	{
		if (document.all && !window.opera)
		{
			lifetime_elem.style.display = 'block';
		}
		else
		{
			lifetime_elem.style.display = 'table-row';
		}
		session_keys_elem.style.display = 'none';
	}
	else
	{
		lifetime_elem.style.display = 'none';
		session_keys_elem.style.display = 'none';
	}
}


/*
 * function create xmlHttpConnect with Help action page
 * used: Helper script, ajax navigation
 */
function initXmlHttp( url, method )
{
  if (window.XMLHttpRequest) {
      try { xmlHttp = new XMLHttpRequest() } catch(e) {}
  } else if (window.ActiveXObject) {
      try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
      if (!xmlHttp) try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
  }
  
  if(!xmlHttp)return;

  if (method == null) method = "POST";
  xmlHttp.open(method, url, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	return xmlHttp;
}

/*
 * ajax functions to do ajax selects
 */

// send request, change field content
function xml_value( _this, xml_http_page, xml_http_params, field, msg )
{
	var xmlHttp = initXmlHttp( xml_http_page, "POST" );
	if(!xmlHttp)return;

	xmlHttp.send( xml_http_params );
	xmlHttp.onreadystatechange = function() 
	{
	  if (xmlHttp.readyState == 4)
		{
			if(elem_main = document.getElementById("field_"+field+"_value"))
			{
				parent_elem = elem_main.parentNode;
				
				var responce = xmlHttp.responseText;
				if ( responce == '' )
				{
					responce = msg;
				}
				//alert(responce);
				
				if( responce == null || responce == '' )
				{
					parent_elem.style.display = 'none';
				}
				else
				{
					if (document.all && !window.opera)
					{
						parent_elem.style.display = 'block';
					}
					else
					{
						parent_elem.style.display = 'table-row';
					}
	
					elem_main.innerHTML = responce;
				}
				
				// fix selectoxes width. width for all selectboxes is set by JS
				fixSelectboxesWidth();
			}	
		}
	}			
}

// site map, frontend menu page_type/page_id fields
function choose_site_map_pages(_this)
{
	//alert(module);
	field_to_change = 'page_id';
	xml_http_page = _domain+'/'+_view+'/'+module+'/'+entity+'/ChoosePages' + site_file_extension;
	xml_html_params = 'page_type=' + _this.value + '&page_field=' + field_to_change;
	xml_value( _this, xml_http_page, xml_html_params, field_to_change );
}

// item options
function choose_item_option( _this )
{
	field_to_change = 'option_ids';
	xml_http_page = _domain+'/'+_view+'/'+module+'/'+entity+'/ChooseList' + site_file_extension;
	xml_html_params = 'list_id=' + _this.value;
	xml_html_params += '&option_field=' + field_to_change;
	if ( typeof(document.forms[0].ajax_redirect_vars) != 'undefined')
	{
		xml_html_params += '&ajax_redirect_vars=' + document.forms[0].ajax_redirect_vars.value;
	}
	xml_value( _this, xml_http_page, xml_html_params, 'option_ids' );
}



/*
 *	Progress gif
 */
function showProgress()
{
	var progress = document.getElementById("progress");
	if (!progress) return;
	progress.style.display = "block";
}

function hideProgress()
{
	var progress = document.getElementById("progress");
	if (!progress) return;
	progress.style.display = "none";
}

/*
 *	General func
 */
function change_className( node, mode, class1, class2 )
{
	if (node != null)
	{
		if (typeof(node.className) != 'undefined')
		{
			switch(mode)
			{
				case 'add':
					node.className += class1;
					break;
				case 'remove':
					node.className = node.className.replace(class1, '');
					break;
				case 'replace':
					node.className = node.className.replace(class1, class2);
					break;
			}
		}
	}
	
	return node;
}

function _set_focus( node_id, node )
{
	if (node == null)
		node = document.getElementById( node_id );
	if (!node) return;
	
	try{ node.focus();	}
	catch(err){ /*alert(err);*/ }
}

/* cookie functions */
function setCookie (name, value, expires, path, domain, secure) 
{
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "/") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

function getCookie(name) 
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

/* disable, enable fields */
function navigation_field_onchange( _this, fields_to_disable, fields_to_enable, disable_on )
{
	var visible_display_value = 'block';
	if ( !document.all || window.opera )
	{
		visible_display_value = 'table-row';
	}
	var old_display_value_attr = '_old_display_value_for__' + _this.name;

	// disable fields
	if (fields_to_disable && fields_to_disable.length > 0)
	{
		for( var i=0; i<fields_to_disable.length; i++ )
		{
			var field = document.getElementById("field_" + fields_to_disable[i] + "_value");
			if (!field) continue;

			var field_name = fields_to_disable[i];

			parent_elem = field.parentNode;
			
			if (disable_on != null && _this.value == disable_on)
			{
				var new_display_value = 'none';
				var old_display_value = parent_elem.style.display;
				if (old_display_value == '') old_display_value = visible_display_value;
				//alert('FIELDS 1:disable: ' + field_name + ' : ' + old_display_value);
				parent_elem.setAttribute(old_display_value_attr, old_display_value);
			}
			else
			{
				var new_display_value = visible_display_value;
				if (parent_elem.getAttribute(old_display_value_attr))
				{
					new_display_value = parent_elem.getAttribute(old_display_value_attr);
				}
				//alert('FIELDS 1:enable: ' + field_name + ' : ' + new_display_value);
			}
			
			parent_elem.style.display = new_display_value;
		} // end for arr_fields
	} // end if fields


	// enable fields
	if (fields_to_enable && fields_to_enable.length > 0)
	{
		for( var i=0; i<fields_to_enable.length; i++ )
		{
			var field = document.getElementById("field_" + fields_to_enable[i] + "_value");
			if (!field) continue;

			var field_name = fields_to_enable[i];

			parent_elem = field.parentNode;
			
			if (disable_on != null && _this.value != disable_on)
			{
				var new_display_value = 'none';
				var old_display_value = parent_elem.style.display;
				if (old_display_value == '') old_display_value = visible_display_value;
				//alert('FIELDS 2:disable: ' + field_name + ' : ' + old_display_value);
				parent_elem.setAttribute(old_display_value_attr, old_display_value);
			}
			else
			{
				var new_display_value = visible_display_value;
				if (parent_elem.getAttribute(old_display_value_attr))
				{
					new_display_value = parent_elem.getAttribute(old_display_value_attr);
				}
				//alert('FIELDS 2:enable: ' + field_name + ' : ' + new_display_value);
			}
			
			parent_elem.style.display = new_display_value;
		} // end for arr_fields
	} // end if fields
	
}


function UpdateField(fname,perc) 
{
	if(!isNaN(perc)) 
	{
		if (document.getElementById)
		{
			calcfield = document.getElementById(fname);
			calcfield.value = perc;
		} else {
			document.calc_forma[fname].value = perc;
		}
	} else {
		alert('Неверное значение.');
	}
}
function UpdateFlash(fname,perc) 
{
	if(!isNaN(perc) && perc>=0 && perc<=100) 
	{
		if (document.getElementById)
		{
			calcflash = document.getElementById(fname);
			if(calcflash)
			{
				calcflash.SetVariable("newpercent",perc);
			}
		} else {
			if(document[fname])
			{
				document[fname].SetVariable("newpercent",perc);
			}
		}
	} else {
		alert('Неверное значение.');
	}
}
if (window.addEventListener){
 window.addEventListener("load", initPage, false);
}
else if (window.attachEvent){
 window.attachEvent("onload", initPage);
}

//initPage();
function initPage()
{
	initTabs();
	initRegions();
}
/*
 *	Tabs
 */
function initTabs()
{
	var ul = document.getElementById('tabs-container');
	if (ul)
	{
		var tablinks = ul.getElementsByTagName('a');
		for (var i = 0; i < tablinks.length; i++)
		{
			tablinks[i].onclick = tabLinkClickHandler;
		}
	}
}


function tabLinkClickHandler()
{
	var formTag = document.getElementById('hidden-form');
	if (formTag)
	{
		var voteInput = formTag.getElementsByTagName('input')[0];
		voteInput.value = this.rel;
		formTag.submit();
	}
	return false;
}

function initRegions()
{
	var container = document.getElementById('region-container');
	if (container)
	{
		var regionlinks = container.getElementsByTagName('a');
		for (var i = 0; i < regionlinks.length; i++)
		{
			regionlinks[i].onclick = regionLinkClickHandler;
		}
	}
}

function regionLinkClickHandler()
{
	var formTag = document.getElementById('region');
	if (formTag)
	{
		formTag.submit();
	}
	return false;
}