var sendForm=function(elem, ajax, url, params)
{
	var qry={}, arr=[];
	arr.merge(elem.getElementsByTagName('INPUT'),elem.getElementsByTagName('TEXTAREA'),elem.getElementsByTagName('SELECT'))
	for(var i=0; i<arr.length; i++)
		if(arr[i].name)
			if((arr[i].type!='checkbox' && arr[i].type!='radio') || ((arr[i].type=='checkbox' || arr[i].type=='radio') && arr[i].checked==true))
				qry[arr[i].name] = arr[i].value;
	var ajx=ajax || new Ajax();
	ajx.send(url || elem.action,qry, params);
	if(!ajax) delete ajax;
};

var CCalculator=new Class({
	'init': function(form)
	{
		this.form=form;
		this.id=form.formId.value;
		var fields=$$('.field', form);
		var evt,btn;
		for(var i=0; i<fields.length; i++)
		{
			if(fields[i].type=='checkbox' || fields[i].type=='radio') evt='click';
				else if(fields[i].type=='text') evt='keyup';
					else evt='change';
			if(fields[i].type=='hidden')
			{
				btn=document.createElement('a');
				btn.href='javascript:void(0)';
				btn.innerHTML='Выбрать из каталога';
				tool.addEvent(btn,'click', tool.bind(this.getLinkItems, this, [fields[i].name]));
				x = fields[i].parentNode.firstChild.nextSibling;
				fields[i].parentNode.insertBefore(btn, x);
				
			}
			tool.addEvent(fields[i],evt, tool.bind(this.result, this));
		}
	},
	'clear': function(text, parent)
	{
		if(!parent) parent=this.form;
		if(!parent.childNodes) return;
		for(var i=0; i< parent.childNodes.length; i++)
		{
			if(parent.childNodes[i].id && parent.childNodes[i].id.substr(0,4)=='out_')
				parent.childNodes[i].innerHTML=text;
			this.clear(text, parent.childNodes[i]);
		}
	},
	'getResultCallback': function()
	{
		//alert(this.ajax.response.text);
		this.clear('');
		var data=Ajax.JSON(this.ajax.response.text);
		field = $$(".fieldOut");
		fc = field.length;
		for(i=0;i<fc;i++)
		{
			field[i].innerHTML = data[field[i].id.substr(4)];
		}
		//for(var key in data)
		//	$('out_'+key).innerHTML=data[key];


adda = document.getElementById('out_adda');
adda.style.display='none';
addlink = adda.innerHTML.replace(/\&amp;/g,'&');
//alert(addlink+'\n'+adda.innerHTML);
anchors = document.getElementsByTagName('a');


for(i=0;i<anchors.length;i++)
{
//alert(i+'-'+anchors.length+')'+anchors[i].href);
if(anchors[i].className == 'link_add'){
if(anchors[i].href.indexOf('?') > -1){
anchors[i].href = anchors[i].href.substr(0,anchors[i].href.indexOf('?')) + addlink;
}
else
{
anchors[i].href += addlink;
}
}
}

},
	'result': function(e, name)
	{
		this.fireEvent('change',[name || e.target.name]);
		this.ajax=new Ajax();
		this.ajax.addEvent('success', tool.bind(this.getResultCallback, this));
		this.clear('Подсчёт...');
		sendForm(this.form, this.ajax, '/netcat/modules/calculator/response.php', {'formId': this.id});
	},
	'getLinkItems': function(name)
	{
		var src=this.form[name+'_src'].value;
		win=window.open(src, '', 'width=800, height=600, location=no, scrollbars=yes, status=no, menubar=no, toolbar=no, resizable=yes');
		CCalculator.selectBind=tool.bind(CCalculator.select, this, [win,name]);
		this.form.customSlide[0].checked = true;
		//this.form.topColor.disabled=true;
		this.form.topColor.options[3].selected = true;
		this.form.topColor.disabled = true;
	}
});

CCalculator.select=function(win,name, id)
{
	this.form[name].value=id;
	//var div=$$('.linkContent',this.form[name].parentNode)[0];
	var div=$$('.linkContent',this.form[name].parentNode.parentNode.parentNode.parentNode)[0];
	div.innerHTML=win.document.getElementById('RowIDItem'+id).innerHTML;
	delete(this.win);
	this.result(false,name);
};

CCalculator.onLoad=function()
{
	var forms=$$('.calculatorForm');
	for(var i=0; i<forms.length; i++)
	{
		if(!forms[i].formId) continue;
		CCalculator[i]=new CCalculator(forms[i]);
		tool.loadScript('/netcat/modules/calculator/scripts/form'+CCalculator[i].id+'.js', tool.empty);
		//CCalculator[i].result(false, 'count');
	}
	
};

tool.addEvent(window, 'load', CCalculator.onLoad);
