(function()
{
if (window.U_recycle) return;
window.U_recycle=
{
	order_discount: 0,
	add:	function(id,shop_id)
	{
		window.handlers['shop_add']=function(text)
		{
			var cnt = /^(.+?)\|/.exec(text);
			cnt = parseInt (cnt[1],10);
	
			text = text.replace(/.+?\|/, "");
			
			if ($('basket').innerHTML==text)
			{
				$q.validationEngine.buildPrompt("#basket_" + id + "_" + shop_id, "Сожалеем, но количество товара, запрошенное Вами, больше предлагаемого к продаже", "message");   // Неработающий на практике элемент
			}
			else
			{
				$q.validationEngine.buildPrompt("#basket_" + id + "_" + shop_id, "Товар добавлен в корзину", "message");
				$('basket').innerHTML=text;
			}


        	setTimeout(function() { $q.validationEngine.closePrompt(".formError", true); }, 6000)
		};
		
		$('recycle_form').elements[0].value	= id;
		$('recycle_form').elements[1].value	= shop_id;
		$('recycle_form').elements[2].name	= 'submit_shop_add';
		
		$('recycle_form').submit();
	},
	drop:	function(type, index, id)
	{
		window.handlers['shop_drop']=function(text)
		{
			var param = /^(.+?)\|/.exec(text);
			text = text.replace(/.+?\|/, "");
			
			if(parseInt(param[1],10)==0)
			window.location.href=window.location.href;
			
			$('basket').innerHTML=text;
			
			if(!U_recycle.recalc(type))
			window.location.href=window.location.href;
		};
		
		$('recycle_form').elements[0].value=id;
		$('recycle_form').elements[2].name='submit_shop_drop';
		
		var tovar = $('tovar_'+type+'_'+index);
		tovar.parentNode.removeChild(tovar);
		
		$('recycle_form').submit();
	},
	update:	function(type, index, id)
	{
		window.handlers['shop_update']=function(text)
		{
			var cnt = /^(.+?)\|/.exec(text);
			cnt = parseInt (cnt[1],10);
	
			text = text.replace(/.+?\|/, "");
	
			if($('count_'+type+'_'+index))
			{
				if ($('count_'+type+'_'+index).value > cnt)
	            {
	              $q.validationEngine.buildPrompt("#count_" + type + "_" + index, "Сожалеем, но количество товара, запрошенное Вами, больше предлагаемого к продаже", "message");
	              setTimeout(function() { $q.validationEngine.closePrompt(".formError", true); }, 6000)
	            }

				$('count_'+type+'_'+index).value = cnt;
			}
			
			U_recycle.recalc(type);
			$('basket').innerHTML = text;
		};
		
		var cnt=$('count_'+type+'_'+index).value;
		
		$('recycle_form').elements[0].value	= id;
		$('recycle_form').elements[1].value	= cnt;
		$('recycle_form').elements[2].name	= 'submit_shop_update';
		
		$('recycle_form').submit();
	},
	recalc:	function(type)
	{
		var tovar = $('shop_'+type);
		
		if(!tovar) return;
		
		var data=[];
		
		var inputs	= U_recycle.search(tovar.getElementsByTagName('input'));
		var strongs = U_recycle.search(tovar.getElementsByTagName('strong'));
		
		if (inputs.length != strongs.length) return;
		
		var sum_disc	= 0;
		var sum_full	= 0;
		var sum_count	= 0;
		
		var sum;
		
		for (var i=0;i<inputs.length;i++)
		{
			if(!strongs[i].prces || !strongs[i].price || !inputs[i].price || !inputs[i].disco || !inputs[i].count)
			continue;
			
			sum_count	+= parseInt(inputs[i].count.value,10);
		}
		
		for (var i=0;i<inputs.length;i++)
		{
			if (!strongs[i].prces || !strongs[i].price || !inputs[i].price || !inputs[i].disco || !inputs[i].count)
			continue;
			
			var sum = inputs[i].price.value*inputs[i].count.value;
			sum_full	+= sum;
			
			strongs[i].prces.innerHTML = sum;
			var sum = inputs[i].disco.value*inputs[i].count.value;
			sum_disc	+= sum;
			
			strongs[i].price.innerHTML = sum;
			
			if (sum_count>=U_recycle.order_discount)
			{
				strongs[i].price.parentNode.style.display='';
				strongs[i].prces.parentNode.style.display='none';
			}
			else
			{
				strongs[i].price.parentNode.style.display='none';
				strongs[i].prces.parentNode.style.display='';
			}
		}
		
		if (sum_count<U_recycle.order_discount)
		sum_disc = sum_full;
		
		if (sum_full>sum_disc)
		$('discount_'+type).innerHTML=Math.round(((sum_full/sum_disc)-1)*100);
		else
		$('discount_'+type).innerHTML=0;
		
		if ($('delivery_'+type))
		sum_disc += parseInt($('delivery_'+type).innerHTML,10);
		
		$('count_'+type).innerHTML=sum_count;
		
		$('total_'+type).innerHTML			= sum_disc;
		$('total_pretotal_'+type).innerHTML	= sum_full;
		
		return sum_count;
	},
	search:	function(tags)
	{
		var data	= [];
		var last_id	= 0;
		
		for(var i=0;i<tags.length;i++)
		{
			var name = tags[i].id;
			
			if(name.length<8) continue;
			
			var id	= name.substring(8);
			
			if(id != last_id)
			{
				if(last_id)
				data.push(tmp);
				
				var tmp={};
			}
			
			name		= name.substring(0,5);
			tmp[name]	= tags[i];
			
			last_id = id;
		}
		
		if(last_id)
		data.push(tmp);
		
		return data;
	}
}
})();
