function isUndefined(property) {
  return (typeof property == 'undefined');
}

if (document.captureEvents && Event)
	document.captureEvents(Event.KEYPRESS);

function onlyDigitsPlus(e) {
	showBlock(true, 'small-basket-recalc-btn');
	var keyChar;
	if (window.event && window.event.keyCode)
		keyChar = window.event.keyCode;
	else if (e && e.which)
		keyChar = e.which;
	else
		return true;

	if ((keyChar > 57 || keyChar < 48) && keyChar != 8) {
		return false;
	}
	return true;
}

// Array.push() - Add an element to the end of an array
if (isUndefined(Array.prototype.push) == true) {
  Array.prototype.push = function() {
     var currentLength = this.length;
     for (var i = 0; i < arguments.length; i++) {
        this[currentLength + i] = arguments[i];
     }
     return this.length;
  };
}

function getNodesByName(parentNode, name) {
	var res = new Array();
	var childs = parentNode.childNodes;
	for (var i=0; i<childs.length; i++)
		if (childs.item(i).nodeName == name)
			res.push(childs.item(i));
	return res;
}

function str_replace (from, to, text) {
	var first = text.indexOf(from);
	if (first >= 0) {
		text = text.substr(0, first)+to+text.substr(first+from.length);
	}
	return text;
}

function e2_decline_for_number (text, number) {
	var text_only = text;

	if (isUndefined(number)) {
		number = text.substr(0, text.indexOf(' '));
		text_only = text.substr(text.indexOf(' '));
	}
	var p_open = text_only.indexOf('(');
	var p_close = text_only.indexOf(')');
	var options_str = '';
	if (p_close > p_open)
		options_str = text_only.substr(p_open, p_close - p_open + 1);
	var options = options_str.slice(1, options_str.length-1);
	options = options.split (',');

	var cases = new Array(2, 0, 1, 1, 1, 2, 2, 2, 2, 2);
	var theCase;
	if ((number%100 > 10) && (number%100 < 20))
		theCase = 2;
	else
		theCase = cases[number%10];
	var option = options[theCase];

	text = str_replace (options_str, option, text);

	return text;
}

function leadSpaces(numb) {
	numb = numb.toString();
	var res = '';
	var l = numb.length;
	for (var i=l; i>0; i--)
		if ((l-i)%3==2)
			res = ' '+numb.charAt(i-1)+res;
		else
			res = numb.charAt(i-1)+res;
	return res;
}

function showBlock(show, id) {
  var element = document.getElementById(id);
  if (element)
    element.style.display = show? 'block':'none';
  return false;
}

function toggleBlock(id) {
  var element = document.getElementById(id);
  if (element)
    element.style.display = (element.style.display == 'none') ? 'block' : 'none';
  return false;
}


function cancelHide(element) {
	if (element.myTimer) {
		clearTimeout(element.myTimer);
		element.myTimer = 0;
	}
}
function trueHide(elementId) {
	var element = document.getElementById(elementId);
	element.style.visibility = 'hidden';
}
function tryToHide(ID) {
	var element = document.getElementById(ID);
	if (element) {
		if (!element.myTimer)
			element.myTimer = setTimeout("trueHide('"+ID+"');", 500);
	}
}


//function cancelHideSearch() {
//	var element = document. getElementById('search-content');
//	if (element) {
//		if (element.hideTimer) {
//			clearTimeout(element.hideTimer);
//			element.hideTimer = 0;
//		}
//	}
//}
//function tryToHideSearch(select) {
//	var element = document.getElementById('search-content');
//	if (element) {
//		if (select)
//			element.focused = false;
//		if (!element.hideTimer)
//			element.hideTimer = setTimeout("scrollSearch(false, 0);", 2000);
//	}
//}
//
//function subScrollSearch() {
//	var element = document.getElementById('search-content');
//	if (element) {
//		var width = element.clientWidth;
//
//		var delta = Math.round(element.step);
//		if (delta < 3)
//			delta = 3;
//		element.step *= 0.87;
//		if (element.scrollDown) {
//			width += delta;
//		} else {
//			width -= delta;
//		}
//		element.style.width = width.toString() + 'px';
//		if ((element.scrollDown && (width >= 270)) || (!element.scrollDown && (width <= 0))) {
//			clearInterval(element.timer);
//			element.criticalSection = false;
//		}
//	}
//}
//
//function scrollSearch(scrollDown, link) {
//	if (link)
//		link.blur();
//	var element = document.getElementById('search-content');
//	if (element) {
//		if (element.focused)
//			cancelHideSearch();
//		var already = scrollDown && element.clientWidth > 250;
//		if (!already) {
//			if (!element.criticalSection && !element.focused && !already) {
//				element.criticalSection = true;
//				element.step = 35;
//				element.scrollDown = scrollDown;
//				element.timer = setInterval('subScrollSearch()', 30);
//			}
//			return false;
//		} else {
//			return true;
//		}
//	}
//	return true;
//}

// M A R K E T

var req;
var reqTimeout;
function loadXMLDoc(url, callBack, method) {
    if (typeof(method) == 'undefined') {
        method = 'GET';
    }
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }

    if (req) {
        args = null;
        if (method == 'POST') {
            separator = url.indexOf('?');
            args = url.substring(separator + 1);
            url = url.substring(0, separator);
        }
        req.onreadystatechange = callBack;
        req.open(method, url, true);
        req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        req.send(args);
        //reqTimeout = setTimeout("submitSmallBasketAbort();", 10);
    }
	return (req ? true : false);
}

var criticalSection = false;
var curID;
function modifySmallBasket(source, user_auth_state) {
    if (!user_auth_state) {
        if (!confirm('Вы не можете редактировать корзину, пока не зарегистрируетесь. Хотите зарегистрироваться?')) {
            return false;
        } else {
            document.location = '/registration/?goodurl=' + document.location.href.replace(/.*Netshop\//, '');
            return false;
        }
    }
	if (!criticalSection) {
		criticalSection = true;
		var element = document.getElementById('small-basket-recalc-btn');
		if (element) {
			element.style.display = 'block';
			element.style.paddingTop = '4px';
			element.innerHTML = "<img src='/images/ajax-loader.gif' alt=''> <small>Сохранение…</small>";
		}
		var ID = source.href.split('?');
		ID = ID[1].split('&');
		for (var i = 0; i < ID.length; i++) {
			if (ID[i].substr(0, 5) == 'cart[') {
				ID = ID[i];
				break;
			}
		}
		ID = str_replace(']', '', str_replace(']', '', str_replace('[', '-', str_replace('[', '-', ID))));
		ID = ID.split('=');
		var CNT = ID[1];
		ID = ID[0];
		curID = ID;
		if (CNT > 0) {
			showBlock(false, 'item-in-price-'+ID);
			showBlock(true, 'item-in-basket-'+ID);
		} else {
			showBlock(true, 'item-in-price-'+ID);
			showBlock(false, 'item-in-basket-'+ID);
		}

		var item = document.getElementById('item-in-basket-'+ID);
		if (item) {
			item.innerHTML = "<img src='/images/ajax-loader.gif' alt='' align=middle>&nbsp;<b>Сохранение…</b>";
		}
		showBlock(true, 'small-basket');
		return !loadXMLDoc(source.href+'&isAjax=1', smallBasketCallBack, 'POST');
	}
	return false;
}


function modifyStatusBasket(source,status) {

 	
        if (!confirm('Если Вы хотите подтвердить свой заказ сейчас (в этом случае заказ сразу будет принят к обработке и Вам не будет перезванивать наш менеджер), нажмите ДА.  Если Вы хотите, чтобы для подтверждения заказа с Вами предварительно связался наш менеджер, нажмите ОТМЕНА')) {
            return true;   
        } else {

         
        var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('name') == 'status') {
			inputs[i].value = 2;
		}
	}

            return true;
        }
    

	return false;
}



function submitSmallBasket() {
	if (!criticalSection) {
		criticalSection = true;
		var URL = '';
		var form = document.smallBasketForm;
		for (var i = 0; i < document.forms.length; i++) {
			if (document.forms.item(i).name == 'smallBasketForm')
				form = document.forms.item(i);
		}
		if (form) {
			form = form.elements;
			for (var i = 0; i < form.length; i++) {
				var item = form.item(i);
				URL = URL + '&' + item.name + '=' + item.value;
				if ( item.type != 'hidden' ) {
					ID = item.name;
					ID = str_replace(']', '', str_replace(']', '', str_replace('[', '-', str_replace('[', '-', ID))));
					CNT = item.value;
					if (CNT > 0) {
						showBlock(false, 'item-in-price-'+ID);
						showBlock(true, 'item-in-basket-'+ID);
					} else {
						showBlock(true, 'item-in-price-'+ID);
						showBlock(false, 'item-in-basket-'+ID);
					}
					item.style.backgroundColor = '#e0e0e0';
					if (typeof item.readOnly != 'undefined') {
						item.readOnly = true;
					}
				}
			}
			URL = '/netcat/modules/netshop/post.php?isAjax=1&hash='+Math.random()+URL;
			var element = document.getElementById('small-basket-recalc-btn');
			if (element) {
				element.style.paddingTop = '4px';
				element.innerHTML = "<img src='/images/ajax-loader.gif' alt='' hspace=4 align=middle> <small>Сохранение…</small>";
			}
			curID = 0;
			return loadXMLDoc(URL, smallBasketCallBack);
		}
		return false;
	}
	return true;
}

function smallBasketCallBack() {
	if (req.readyState ==4 ) {
		criticalSection = false;
		switch (req.status) {
		case 200:
			var basket = document.getElementById('ajax-small-basket');
			if (basket) {
				basket.innerHTML = req.responseText;
				showBlock(false, 'small-basket-recalc-btn');
			}
			if (curID) {
				var item = document.getElementById('item-in-basket-'+curID);
				if (item) {
					item.innerHTML = "<b>Товар&nbsp;<a href='/Netshop/Cart/'>в корзине</a></b>";
				}
			}
			break;

		default:
			if (confirm('Не удалось сохранить корзину. Перейти к странице редактирования корзины?')) {
				window.location = '/Netshop/Cart/';
			} else {
				var element = document.getElementById('small-basket-recalc-btn');
				if (element) {
					element.style.paddingTop = '0px';
					element.innerHTML = "<a href='/Netshop/Cart/'>Уточнение заказа</a>";
				}
			}
		}
	}
}

function register(e) {
	var code;
	if (!e) e = window.event;
	if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;

	if ((code == 37) && (e.ctrlKey == true)) {
		var destination = document.getElementById('previous_page');
		if (destination) location.href = destination.href;
	}
	if ((code == 39) && (e.ctrlKey == true)) {
		var destination = document.getElementById('next_page');
		if (destination) location.href = destination.href;
	}
}

function init() {
	if (document.getElementById) {
		if (document.getElementById('previous_page')||document.getElementById('next_page'))
			document.onkeydown = register;
	}
}

function disableInputs() {
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('name') == 'f_Whitch_Address_apt') {
			inputs[i].disabled = true;
		}
	}
}

function enableInputs() {
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('name') == 'f_Whitch_Address_apt') {
			inputs[i].disabled = false;
		}
	}
}

function enablestatus() {
	 var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('name') == 'status') {
			inputs[i].value = 1;
		}
	}
}
function disablestatus() {
	 var inputs = document.getElementsByTagName('input');

	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].getAttribute('name') == 'status') {
			inputs[i].value = 2;
		}
	}
}

