function ViewImage (src, w, h) 
{
	window.open(src, "good", "width=" + (w+23) + ", height=" + (h+23));
	return false;
}

/* form validation */

function MM_findObj(n, d) //v4.01
{
  var p, i, x;
	if (!d)
		d = document;
	if ((p = n.indexOf("?")) > 0 && parent.frames.length)
	{
    d = parent.frames[n.substring(p + 1)].document;
		n = n.substring(0,p);
	}
  if (!(x = d[n]) && d.all)
		x = d.all[n];
	for (i = 0; !x && i < d.forms.length; i++)
		x = d.forms[i][n];
  for ( i = 0; !x && d.layers && i < d.layers.length; i++)
		x = MM_findObj(n, d.layers[i].document);
  if (!x && d.getElementById)
		x = d.getElementById(n);
	return x;
}

function MM_preloadImages() //v3.0
{
  var d = document;
	if (d.images)
	{
		if (!d.MM_p)
			d.MM_p = new Array();
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i = 0; i < a.length; i++)
    	if (a[i].indexOf("#") != 0)
			{
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_validateForm() //v4.0
{
  var i, p, q, nm, test, num, min, max, errors='', args = MM_validateForm.arguments;
  for (i = 0; i < (args.length - 2); i += 3)
	{
		val = MM_findObj(args[i]);
		test = args[i + 2];
		nm = 'Поле "' + args[i + 1] + '"';
    if (val)
		{
			if ((val = val.value) != "")
			{
				if (test.indexOf('isEmail') != -1)
				{
					p = val.indexOf('@');
        	if (p < 1 || p == (val.length - 1))
						errors += '- ' + nm + ' должно содержать e-mail адрес.\n';
				}
				else if (test != 'R')
				{
					num = parseFloat(val);
        	if (isNaN(val))
						errors += '- ' + nm + ' должно быть числом.\n';
        	if (test.indexOf('inRange') != -1)
					{
						p = test.indexOf(':');
          	min = test.substring(8, p);
						max = test.substring(p + 1);
          	if (num < min || max < num)
							errors += '- ' + nm + ' должно быть числом из интервала от ' + min + ' до ' + max + '.\n';
    			}
				}
			}
			else if (test.charAt(0) == 'R')
				errors += '- ' + nm + ' необходимо заполнить.\n';
		}
	}
	return errors;
}

function validateForm(formName)
{
	var errors = '';
	if (formName == 'regform')
	{
		errors = MM_validateForm(
			"login", "Логин", "R",
			"pass", "Пароль", "R",
			"email", "Email", "RisEmail",
			"addr_country", "Страна", "R",
			"addr_phone", "Телефон", "R"
		);
		val1 = MM_findObj('pass'); if (val1.value.length < 4) errors += '- Пароль должен быть не короче 4 символов.\n';
		val2 = MM_findObj('pass2'); if (val1.value != val2.value) errors += '- Повторно введенный пароль не совпадает с исходным.\n';
		val3 = MM_findObj('addr_city');
		val4 = MM_findObj('addr_city2'); if (val3.value.length == 0 && val4.value.length == 0) errors += '- Необходимо выбрать город из списка или заполнить поле "Другой город".\n';
	}
	else if (formName == 'userinfo')
	{
		errors = MM_validateForm("login", "Логин", "R", "email", "Email", "RisEmail");
		val1 = MM_findObj('pass'); 
		if (val1.value.length != 0)
		{
			val2 = MM_findObj('pass2');
			if (val1.value.length < 4)
				errors += '- Пароль должен быть не короче 4 символов.\n';
			if (val1.value != val2.value)
				errors += '- Повторно введенный пароль не совпадает с исходным.\n';
		}
	}
	else if (formName == 'orginfo')
	{
		errors = MM_validateForm(
			'org_name', 'Название', 'R', 'org_inn', 'ИНН', 'R', 'org_rs', 'Расчетный счет', 'R', 
			'org_ks', 'Корр. счет', 'R', 'org_bank', 'Банк', 'R', 'org_bik', 'БИК', 'R'
		);
	}
	else if (formName == 'addressinfo')
	{
		errors = MM_validateForm("addr_country", "Страна", "R", "addr_phone", "Телефон", "R");
		val3 = MM_findObj('addr_city');
		val4 = MM_findObj('addr_city2'); if (val3.value.length == 0 && val4.value.length == 0) errors += '- Необходимо выбрать город из списка или заполнить поле "Другой город".\n';
	}
	else if (formName == 'forummsg')
	{
		errors = MM_validateForm("login", "Ваш псевдоним", "R", "email", "Ваш email", "NisEmail", "subject", "Тема сообщения", "R");
	}
	
	if (errors)
		alert('При проверке формы обнаружены следующие ошибки:\n' + errors);
  document.MM_returnValue = (errors == '');
	return document.MM_returnValue;
}

/* work with orders */

intID=false

function setInt (id, cost, num)
{
	quanChange (id, cost, num)
	if (intID)
		clearInterval (intID)
	intID = setInterval ("quanChange("+ id +"," + cost + ", " + num +");", 200)
}
function clearInt () 
{
	clearInterval (intID)
}

function quanChange (id, cost, num)
{
	var hid = MM_findObj('remains'+id);
	var m = (hid)? parseInt(hid.value): 0;
	var inp = document.getElementById ("count" + id);
	var pr = document.getElementById ("cost" + id);
	if (!isNaN(num)) {
		var iv = parseInt(inp.value)
		if (num>0 && iv+num<=m)
			var v = iv + num;
		else if (num<0 && iv+num>0) 
			var v = iv + num;
	} else
		var v = isNaN(parseInt(inp.value)) ? 1 : parseInt(inp.value);
	if (v) {
		inp.value = v;
		var nc = v*cost
		var dg = nc.toString().split(".")
		if (dg[1])
			var nd = "," + dg[1].substr(0,2)
		else
			var nd = ""
		pr.innerText=dg[0] + nd + " руб."
	}
	else
		clearInt();
}

function loadBasket()
{
	if (window.parent && window.parent != window)
	{
		d = window.parent.document;
		lay = MM_findObj('BasketLayer', d);
		bdy = MM_findObj('BasketBody');
		if (lay && bdy)
			lay.innerHTML = bdy.innerHTML;
		else
		{
			ebdy = MM_findObj('BasketBodyEmpty');
			lay.innerHTML = (ebdy)? ebdy.innerHTML: "";
		}
		expandBasket(d, (lay && bdy));
	}
}

function deleteItem(item_id)
{
	inp = MM_findObj('count'+item_id);
	if (inp)
		inp.value = 0;
	basketform.submit();
}

function checkQuantity(edt, item_id)
{
	val = parseInt(edt.value);
	hid = MM_findObj('remains'+item_id);
	m = (hid)? hid.value: 0;
	msg = "";

	if (isNaN(val))
	{
		edt.value = 0;
		msg = "Количество товара должно быть целым числом!";
	}
	else if (val < 0)
	{
		edt.value = 0;
		msg = "Количество товара должно быть больше нуля!";
	}
	else if (val > m && m > 0)
	{
		edt.value = m;
		msg = "Вы не можете заказать товара больше чем имеется в наличии!\nОстаток товара на складе: "+m+" шт.";
	}
	
	if (msg != "")
	{
		document.Y_basketFieldError = true;
		alert(msg);
	}

	return msg;
}
/*
function checkBasket(frm)
{
	ok = true;
	prefix = "count";
	for (i = 0; i < frm.elements.length; i++)
	{
		el = frm.elements[i];
		if (el && (el.id.indexOf(prefix) == 0))
		{
			
			item_id = el.id.substring(prefix.length);
			if (checkQuantity(el, item_id) != "")
				ok = false;
		}
	}
	
	return ok;
}
*/
function prepareExpandImg(expand)
{
	MM_preloadImages('/images/buttons/basket_show.gif');
	MM_preloadImages('/images/buttons/basket_hide.gif');
	MM_preloadImages('/images/blocks/basket_left.gif');
	MM_preloadImages('/images/blocks/basket1_left.gif');
	MM_preloadImages('/images/blocks/basket_bg.gif');
	MM_preloadImages('/images/blocks/basket1_bg.gif');
	MM_preloadImages('/images/blocks/basket_right.gif');
	MM_preloadImages('/images/blocks/basket1_right.gif');
	expandBasket(false, expand);
}

function expandBasket(doc, expand)
{
	if (!doc)
		doc = document;
	if (typeof(expand) == 'undefined')
		expand = !doc.Y_basketExpanded;
	doc.Y_basketExpanded = expand;
	lay = MM_findObj('BasketLayer', doc);
	img = MM_findObj('ExpandImg', doc);
	im1 = MM_findObj('bskl', doc);
	im2 = MM_findObj('bskm1', doc);
	im3 = MM_findObj('bskm2', doc);
	im4 = MM_findObj('bskr', doc);
	if (lay && img)
	{
		lay.style.display = (expand)? 'block': 'none';
		img.src = (expand)? '/images/buttons/basket_hide.gif': '/images/buttons/basket_show.gif';
		img.alt = (expand)? 'Скрыть заказ': 'Показать заказ';
		im1.src = (expand)? '/images/blocks/basket_left.gif': '/images/blocks/basket1_left.gif';
		im2.background = im3.background = (expand)? '/images/blocks/basket_bg.gif': '/images/blocks/basket1_bg.gif';
		im4.src = (expand)? '/images/blocks/basket_right.gif': '/images/blocks/basket1_right.gif';
	}
}

// vote on main page
function vote(voting_id)
{
	var frm = document.forms['voting_form'];
	if (frm)
	{
		for (var i = 0; i < frm.elements.length; i++)
			if (frm.elements[i].name == 'vote' && frm.elements[i].checked)
			{
				window.location.href = frm.action + '?vote=' + frm.elements[i].value + '#' + voting_id;
				break;
			}
	}
}
