function mformat(n,zn)
{
	z = "0000000000";
	n = parseFloat(n);
	p = Math.pow(10, zn);
	s = String(Math.round(n*p)/p);
	s = (s.match(/\./)? s+z : s+"."+z).match('\\d+\\.\\d{'+zn+'}');
	return "$"+s;
}
	
	var ids_checked_count = 0;
	var categories_checked_count = 0;
	var items_checked_count = 0;
	
	var controls_one_collection = new Array()
	var controls_multi_collection = new Array()
	var controls_is_collected = false
	
	function be()
	{
		var flag_one = false;
		var flag_mult = false;
		if(!controls_is_collected) { create_collections() }
		
		var inputs = document.getElementsByTagName('input');
		
		ids_checked_count = 0;
		categories_checked_count = 0;
		items_checked_count = 0;
		
		for (var i=0; i<inputs.length; i++)
		{
			if (inputs[i].type == 'checkbox' && inputs[i].checked)
			{
				if(inputs[i].getAttribute('flag') == 'categories')
				{
					categories_checked_count++;
					categories_page = inputs[i].getAttribute('page');
				}	
				if(inputs[i].getAttribute('flag') == 'items')
				{
					items_checked_count++;
					items_page = inputs[i].getAttribute('page');
				}
				ids_checked_count++;	
			}
		}
		handle_controls();
	}
	
	function create_collections()
	{
		
		if(typeof(document.forms['main']) == 'undefined') { return false; }
		var _form = document.forms['main'];
		var controls_length = _form.elements.length
		for(i = 0; i < controls_length; i++)
		{
			control = _form.elements[i]
			flag = control.getAttribute('flag')
			if(flag == 'mult')
			{
				controls_multi_collection.push( control )
				continue
			}
			if(flag == 'one')
			{
				controls_one_collection.push( control )
				continue
			}
		}
		controls_is_collected = true
	}
	//be3()
	function be3(el)
	{
		var flag_one = false;
		var flag_mult = false;
		if(!controls_is_collected) { create_collections() }
		
		if(typeof(ids_collection) == 'undefined')
		{
			var ids_collection = document.getElementsByName("id[]");
		}
		ids_checked_count = 0
		for(i=0; i<ids_collection.length; i++)
		{
			if(ids_collection[i].type != 'checkbox') {continue}
			ids_checked_count += (ids_collection[i].checked) ? 1 : 0;
		}
		handle_controls()
	}
	
	function handle_controls()
	{
		if(ids_checked_count > 1)
		{
			flag_mult = true
			flag_one = false
		}
		else if(ids_checked_count == 1)
		{
			flag_mult = true
			flag_one = true
		}
		else
		{
			flag_mult = false
			flag_one = false
		}
		
		for(i=0; i<controls_one_collection.length; i++)
		{
			controls_one_collection[i].disabled = !flag_one;
		}
		
		for(i=0; i<controls_multi_collection.length; i++)
		{
			controls_multi_collection[i].disabled = !flag_mult;
		}	
	}
	
function get_html_by_check_id(_form)
{
	var r_ids = _form.r_id;
	var html = "";

	if (r_ids != null)
	{
		if (r_ids.length == null)
		{
			if (r_ids.checked)
			{
				html = "<input type=hidden name=id value="+r_ids.value+">\n";
			}
		}
		else
		{
			for (i=0;i<r_ids.length;i++)
			{
				if (r_ids(i).checked)
				{
					html += "<input type=hidden name=id[] value="+r_ids(i).value+">\n";
				}
			}
		}
	}	
	_form.innerHTML = html + _form.innerHTML;
}

function force_action(_form, _page, _action, _validate)
{
	if(items_checked_count > 0){_page = items_page}
	if(categories_checked_count > 0){_page = categories_page}
	
	if(_action == 'undefined') 
	{
		_action = 'default';
	}	

	if (document.all)
	{
		_form.attributes.action.value = '/admin/'+_page+'/'+_action+'.html'; 
		//otherwise form's attribute "action" won't be changed, but input with name "action"
	}	
	else
	{
		_form.setAttribute("action", "/admin/"+_page+"/"+_action+".html");
	}	
	
	if(_validate == true && _form.getAttribute('onsubmit') != null)
	{
		if(_form.onsubmit() == false)
		{
			return false;
		}
	}
	//sef_filter_disable();
	return false;
}	
		
function cleanFilter()
{
   var inputs = document.forms["main"].elements;
   for(i=0; i<inputs.length; i++){
    	if(inputs[i].name.substr(0, 6) != 'filter') {continue}
   		if(inputs[i].type == 'text')
	    {
	      	inputs[i].value = '';
	    }
	    if(inputs[i].type == 'select' || inputs[i].type == 'select-one')
	    {
	    	inputs[i].selectedIndex = 0;
	    }
   }
   return;
}	

function sef_filter_disable()
{
   var inputs = document.forms["main"].elements;
   for(i = 0; i < inputs.length; i++){
    	if(inputs[i].name.substr(0, 6) != 'filter') {continue}
   		if(inputs[i].type == 'text' && inputs[i].value == '')
	    {
	      	inputs[i].disabled = true;
	    }
	    if((inputs[i].type == 'select' || inputs[i].type == 'select-one') && inputs[i].selectedIndex == 0)
	    {
	    	inputs[i].disabled = true;
	    }
   }
   return;
}




var MenuCount = 15;
var templates = '';
var Ev = null;

function showhide( hideall )
{
var workElem = null;

if (window.event == null)
{
	return;
}

if (window.event.srcElement != '' && window.event.srcElement.id != '')
	workElem = window.event.srcElement;
else
	workElem = window.event.srcElement.parentElement;

menuID = workElem.id.replace('title_', '');

if (hideall == null) hideall = true;

if (hideall)
{
	for (i=0;i<MenuCount;i++)
	{
		var divMenu = document.getElementById("menu_" + i);

		if (divMenu != null && "menu_" + i != menuID)
		{
			var active = divMenu.getAttribute("active");

			divMenu.style.visibility = "hidden";
			divMenu.setAttribute("active","0");
			divMenu.style.display = "none";
		}
	}
}

var divMenu = document.getElementById(menuID);

if (divMenu == null)
	return;

var active = divMenu.getAttribute("active");

if (active == null || active == "0")
{
	divMenu.style.visibility = "visible";
	divMenu.style.display = "block";
	divMenu.setAttribute("active","1");
	
	if (menuID != "menu_6")
	{
		if (divMenu.already_set_leftstyle == null)
		{
			divMenu.style.left = window.event.clientX - window.event.offsetX + 6;
			divMenu.already_set_leftstyle = true;
		}
		if (divMenu.already_set_top == null)
		{
			divMenu.style.top = window.event.clientY - window.event.offsetY + 25;
			divMenu.already_set_top = true;
		}
	}
	else
	{
		divMenu.style.left += 20;
	}
}
else
{
	divMenu.style.visibility = "hidden";
	divMenu.style.display = "none";
	divMenu.setAttribute("active","0");
}
}


/*======================*/

p_ids = new Array();
is_n_p = 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 go_to_by_post(get_vars)
{
	html = '';
		
	pos_equal = get_vars.indexOf('=');
	pos_amp = get_vars.indexOf('&');
	
	if ((pos_equal != -1) && (pos_amp != -1))
	{
		get_vars_array = get_vars.split("&");
		s = '';
		for (key in get_vars_array)
		{
			field_var_pos = get_vars_array[key].indexOf('=');
			if (field_var_pos != -1)
			{
				name_value = get_vars_array[key].split('=');
				
				var element_by_name = getElement(name_value[0],'input');
				
				if (element_by_name != null)
				{
					element_by_name.value = name_value[1];
				}	
				else
				{
					html += '<input type=hidden name='+name_value[0]+' value='+name_value[1]+'>\n';
				}	
				
			}
		}
		
		pos_equal = -1;
	}	
	else if (pos_equal != -1)
	{
		name_value = get_vars.split('=');
		html += '<input type=hidden name='+name_value[0]+' value='+name_value[1]+'>\n';
	}
	
	html += get_html_by_check_id();
	
	document.forms[0].innerHTML = html + document.forms[0].innerHTML;
	
	//alert(html);
	document.forms[0].submit();
	return false;
}
function setSelected(selectElement, id)
{
	selectElement = document.getElementById(selectElement);

	for(var i = 0; i < selectElement.options.length; i++)
	{
		if (selectElement.options[i].value == id)
		{
			selectElement.options[i].selected = true;
			return;
		}
	}
}

function deleteKeywords( oTextBox )
{
	oTextBox.value = oTextBox.value.replace(" and ", " & ");
	oTextBox.value = oTextBox.value.replace(" apostrophe ", " ` ");
	oTextBox.value = oTextBox.value.replace(" dot ", " . ");
	oTextBox.value = oTextBox.value.replace(" semicolon ", " ; ");
	oTextBox.value = oTextBox.value.replace(" comma ", " , ");
	oTextBox.value = oTextBox.value.replace(" dash ", " - ");
	oTextBox.value = oTextBox.value.replace(" colon ", " : ");
}

function moveRow(node, moveUp)
{
	var tr = node;
	while (tr.nodeName != "TABLE" && tr.nodeName != "TR")
		tr = tr.parentNode;
		
	var current_tr = tr;
	var new_tr = tr;
	
	if (tr.nodeName != "TR")
		return;
	var tbody = tr;
	while (tbody.nodeName != "TABLE" && tbody.nodeName != "TBODY")
		tbody = tbody.parentNode;
	var tr2;
	if (moveUp)
	{
		tr2 = tr.previousSibling;
		while (tr2 && tr2.nodeName != "TR") tr2 = tr2.previousSibling;
		if (tr2.rowIndex == 0) return;
		if(tr2.getAttribute('move') == 'false')return;
		new_tr = tr2;	
	}
	else
	{
		tr2 = tr.nextSibling;
		while (tr2 && tr2.nodeName != "TR") tr2 = tr2.nextSibling;
		if(tr2 == null)return;
		new_tr = tr2;	
		if (tr2)
		{
			tr2 = tr2.nextSibling;
			while (tr2 && tr2.nodeName != "TR") tr2 = tr2.nextSibling;
		}
	}
	
	var current_hidden = document.getElementById("hidden"+current_tr.id.substr(2));
	var new_hidden = document.getElementById("hidden"+new_tr.id.substr(2));
	
	tmp = current_hidden.value;
	current_hidden.value = new_hidden.value;
	new_hidden.value = tmp;
	
	tmp = current_tr.className;
	current_tr.className = new_tr.className;
	new_tr.className = tmp;

	var values = [];
	if (document.all) //save checkbox values - fix IE bug with checkbox values
	{
		var inputs = tr.getElementsByTagName("INPUT");
		for (var i=0; i<inputs.length; i++)
		{
			if (inputs[i].type == "checkbox")
			{
				if (!inputs[i].name || inputs[i].name == "")
				{
					alert("Can't save checkbox value.\nName is undefined!");
					break;
				}
				values[inputs[i].name] = inputs[i].checked;
			}
		}
	}
	
	tr = tbody.removeChild(tr);
	tbody.insertBefore(tr, tr2);
	
	if (document.all) //restore checkbox values
	{
		for (var name in values)
		{
			var input = tr.all[name];
			if (input.tagName == "INPUT")
			{
				input.checked = values[name];
			}
		}
	}
}
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 getObjectX(object) {return getObjectC(object, "x")}
function getObjectY(object) {return getObjectC(object, "y")}
function getObjectC(object, c)
{
    pos = 0;
    while (object != null) 
    {
        pos += (c == "y") ? object.offsetTop : object.offsetLeft;
        object = object.offsetParent;
    }
    return pos;
}

function get_help(obj,text_id,div_id)
{
	if(div_id == undefined)div_id = "help_div";
	
	var help_elem = document.getElementById(div_id);

	var text_elem = document.getElementById(text_id);

	if(help_elem.style.display == 'none')
	{
		help_elem.innerHTML = text_elem.innerHTML;
		
		help_elem.style.position = "absolute";
		help_elem.style.top = getObjectY(obj)+40;
		help_elem.style.left = getObjectX(obj)-150;
		help_elem.style.display = 'inline';
		help_elem.style.width = '200px';
	}	
	else
	{	
		help_elem.style.display = 'none';
	}	
}


