// Common function
function change_skidka(namefile, picture, picture_to, order_id)
{
	document.getElementById('skidka_total').innerHTML = 'Расчёт скидки ';
	var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	req.onreadystatechange = function() {
		if (req.readyState == 4)
		{	
			if (req.status == 200)
			{
				//location.reload();
				document.getElementById(picture).innerHTML = '<FONT COLOR=#009900>Ok</FONT>';  // + req.responseText;
				//document.getElementById(picture).innerHTML = '<FONT COLOR=#009900>Ok</FONT>' + req.responseText;
				umiBasket_2.getInstance().updateBasket();

			}
			else document.getElementById(picture).innerHTML = 'Error: ' + req.status;
		}	
	}
	//req.open("GET", '/eshop/basket/?selected_id='+namefile+'&picture='+picture+'&picture_to='+picture_to, true);
	req.open("GET", '/akcii_magazina/?selected_id='+namefile+'&order_id='+order_id + "&rnd=" + Math.random(), true);
	req.send(null);		
}

// сброс всех выбранных акций при несоблюдении условий акции
function error_select() {
	var tds = fetch_tags(document.getElementById("akcii_block"), 'input');
	for (var i = 0; i < tds.length; i++)
	{
		y = tds[i].value;
		tds[i].checked = false;
	}
}

var selected;
function selectRowEffect(object, buttonSelect, order_id) {
	// Проверка на кол-во товаров в корзине для выбираемой скидки
  k_min = parseInt(document.getElementById("skidka_info_kolichestvo_pozicij_v_zakaze_"+buttonSelect).innerHTML);
  order_count = check_order_block('count');  
  if (order_count < k_min)
  {
	  put_value('skidka_err', '<FONT COLOR="#FF0000">&nbsp;<B>Ошибка</B>:&nbsp;Количество товаров меньше '+k_min+'</FONT>');
	  put_value('skidka_msg', '');
	  error_select();
	  change_skidka(buttonSelect, 'skidka_total', buttonSelect, order_id);
	  return false;
  }

  p_min = parseInt(document.getElementById("skidka_info_price_limit_"+buttonSelect).innerHTML);
  porder_total = parseInt(document.getElementById("order_total").innerHTML);
  if (porder_total < p_min)
  {
	  put_value('skidka_err', '<FONT COLOR="#FF0000">&nbsp;<B>Ошибка</B>:&nbsp;Сумма заказа меньше '+p_min+'</FONT>');
	  put_value('skidka_msg', '');
	  error_select();
	  change_skidka(buttonSelect, 'skidka_total', buttonSelect, order_id);
	  return false;
  }

  var procent_skidki = parseInt(document.getElementById("skidka_info_procent_skidki_"+buttonSelect).innerHTML);
  put_value('skidka_msg', procent_skidki+' %');
  put_value('skidka_err', '');
	
  if (!selected) {
	if (document.getElementById) {
	  selected = document.getElementById('defaultSelected');
	} else {
	  selected = document.all['defaultSelected'];
	}
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;
  change_skidka(buttonSelect, 'skidka_total', buttonSelect, order_id);
}

function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}




// Common function
function showLayer(id)
{
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).style.display='block';
}

function hideLayer(id)
{
	document.getElementById(id).style.visibility='hidden';
	document.getElementById(id).style.display='none';
}

function hideLayer_2(name)
{
		var oSkidkaTotalCtrls = document.getElementsByName(name);
		for (iI = 0; iI < oSkidkaTotalCtrls.length; iI++) {
			oSkidkaTotalCtrls[iI].style.visibility='hidden';
			oSkidkaTotalCtrls[iI].style.display='none';

		}
}

function showLayer_inline(id)
{
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).style.display='inline';
}

function put_value(name, value) {
		var oSkidkaTotalCtrls = document.getElementsByName(name);
		for (iI = 0; iI < oSkidkaTotalCtrls.length; iI++) {
			if (oSkidkaTotalCtrls[iI].tagName === "INPUT") {
				oSkidkaTotalCtrls[iI].value = value;
			} else {
				oSkidkaTotalCtrls[iI].innerHTML = value;
			}
		}
}

// function to emulate document.getElementById
function fetch_object(idname)
{
	if (document.getElementById)
	{
		return document.getElementById(idname);
	}
	else if (document.all)
	{
		return document.all[idname];
	}
	else if (document.layers)
	{
		return document.layers[idname];
	}
	else
	{
		return null;
	}
}
// function to emulate document.getElementsByTagName
function fetch_tags(parentobj, tag)
{
	if (typeof parentobj.getElementsByTagName != 'undefined')
	{
		return parentobj.getElementsByTagName(tag);
	}
	else if (parentobj.all && parentobj.all.tags)
	{
		return parentobj.all.tags(tag);
	}
	else
	{
		return null;
	}
}

// проверка таблицы order_block
function check_order_block(par) {
	var tds = fetch_tags(document.getElementById("order_block"), 'td');
	//alert(tds.length);
	var order_total_table = 0;
	var order_total_count = 0;
	for (var i = 0; i < tds.length; i++)
	{
		if (tds[i].hasChildNodes() && tds[i].id)  // tds[i].id.substr(0, 12) == 'threadsname_'
		{	
			// получаем пораметры товаров в корзине
			//alert(tds[i].id);
			var details = tds[i].id.split('_');
			//alert(parseInt(details[1]));
			if (details[2] == 'price')	{
				id = parseInt(details[1]);  // id товара
				price = parseInt(fetch_object(tds[i].id).innerHTML);  // цена товара
				var c = fetch_object('citm_'+id+'_count');
				if (c.tagName == 'SPAN')	{
					count = parseInt(c.innerHTML);  // кол-во товара
				}
				else
					count = parseInt(c.value);  // кол-во товара
				//alert(id+' '+price+' '+count);
				order_total_table = order_total_table + price*count;  // считаем сумму заказа
				order_total_count = order_total_count + count;	 // считаем количество штук в заказе
			}
		}
	}
	//alert(order_total_table);
	if(par == 'count') 
		return order_total_count;
	else
		return order_total_table;
}

// Object umiBasket_2 =====================================
/*
	Рассширение класса реализации работы с корзиной
	      для отображения стоимости доставки
*/
// umiBasket_2  ===========================================
var rme = umiBasket.getInstance();

function Skidka() {
    var me = umiBasket.getInstance();
 
    var jumps = 0   
 
    me.jump = function() { jumps++ }
    me.getJumps = function() { return jumps }

	// ####### Организация наследования методов класса корзины #########

    // =============== скопировать метод onUpdate родителя в замыкание
    var super_onUpdate = me.onUpdate
 
    /* перекрыть метод */
    me.onUpdate = function(distance) {
        // вызвать родительский метод
        rezult = super_onUpdate.call(this, distance)

		// получить переменные по стоимости и пределах доставки
		var order_total = parseInt(document.getElementById("order_total").innerHTML);
		// получить количество товаров в заказе
		var order_count = check_order_block('count');
		// отобразить стоимость доставки
		//put_value('skidka_err', order_total + ' ' + order_count + ' ' +Math.random());
		//put_value('skidka_err', '&nbsp;выбрана&nbsp;');

		// получить переменные по стоимости и пределах доставки
		//var order_total = parseInt(document.getElementById("order_total").innerHTML);
		//alert(order_total);

        // вызвать родительский метод
        //return super_addElement.call(this, distance)
		return rezult
    }

	me.eshop_order = function() {
		
	}
    return me
}

// contructor
function umiBasket_2() {

}

umiBasket_2.getInstance = function () {
	if(!umiBasket_2.instance) {
		umiBasket_2.instance = Skidka();
	}
	return umiBasket.instance;
}

