/*
 * Добавление в закладки
 */
function addBookmark(url, title)
{
  if (!url) url = location.href;
  if (!title) title = document.title;
  
  //Gecko
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) window.sidebar.addPanel (title, url, "");
  //IE4+
  else if (typeof window.external == "object") window.external.AddFavorite(url, title);
  
  return true;
}

function FixOperaFavorites (strUrl, strTitle, arIds) {
	if (! window.opera) {
		return;
	}
	
	var objLink = null;
	
	for (var i = 0; i < arIds.length; i++) {
		objLink = document.getElementById(arIds[i]);
 
		if (! objLink) {
			continue;
		}
		objLink.rel = 'sidebar';
		objLink.href = strUrl;
		objLink.title = strTitle;
	}
}
/*
 * /Добавление в закладки
 */
/**
 * Проверка обязательных полей в форме
 */
function checkForm(form, email, maxMissedFields)
{
	var missed_fields = new Array();
	var focus_field;
	if (!maxMissedFields)
		maxMissedFields = 3;
	if (!email)
		email = 'email';
	if (!form) {
		alert("Form object expected in first argument");
		return false;
	}
	for (var i = 0; i < form.length; i++) {
		var field = form.elements[i];
		if (!field || !field.getAttribute('required') || field.getAttribute('required') != 'required')
			continue;
		
		if(!checkIfFieldFilled(field)) {
			missed_fields.push(getFieldLabel(field));
			if (!focus_field)
				focus_field = field;
		}
	}
	if (focus_field) {
		if(typeof focus_field.length == "undefined") {
			focus_field.focus();
		}
		else {
			if (focus_field.length > 0) {
				focus_field = (focus_field.item) ? focus_field.item(0) : focus_field[0];
				if (focus_field) {
					focus_field.focus();
				}
			}
		}
	}
	var sz = missed_fields.length;
	if (sz > 0) {
		if (sz == 1) {
			alert("Необходимо заполнить поле \"" + missed_fields.pop() + "\".");
			return false;
		}
		else {
			var str = "";
			var isTooMuchMissedFields;
			if(sz > maxMissedFields) {
				isTooMuchMissedFields = true;
				sz = maxMissedFields;
			} else {
				isTooMuchMissedFields = false;
			}
			for(i = 0; i < sz; i++) {
				if(i > 0) {
					if(i == sz - 1) {
						str += " и";
					} else {
						str += ",";
					}
				}
				str += " \"" + missed_fields[i] + "\"";
			}
			if(isTooMuchMissedFields) {
				str += "... и остальные обязательные поля";
			}
			alert("Необходимо заполнить поля" + str + ".");
			return false;
		}
	}
	// проверка подтверждения пароля
	if (form.elements['password'] && form.elements['password_confirm'] && form.elements['password'].value !== form.elements['password_confirm'].value) {
		if(checkIfFieldFilled(form.elements['password'])) {
			theLabel_1 = getFieldLabel(form.elements['password']);
			theLabel_2 = getFieldLabel(form.elements['password_confirm']);
			form.elements['password'].focus();
			s_alert = "Значения полей \"" + theLabel_1 + "\" и \"" + theLabel_2 + "\" не совпадают";
			alert(s_alert);
		}
		return false;
	}
	// проверка валидности e-mail
	var oEmail = document.getElementById(email);
	if (oEmail && form.elements[oEmail.name] && oEmail.value != '') {
		var s_email = oEmail.value;
		var regexp = /[\w\-]+@[\w\-]+\.[\w]+/;
		if (!regexp.test(s_email)) {
			oEmail.focus();
			alert("Неверный синтаксис электронного адреса (E-mail)");
			return false;
		}
	}
	/*
	if (form.elements['email']) {
		var s_email = form.elements['email'].value;
		var regexp = /[\w\-]+@[\w\-]+\.[\w]+/;
		if (!regexp.test(s_email)) {
			form.elements['email'].focus();
			alert("Неверный синтаксис электронного адреса (E-mail)");
			return false;
		}
	}
	*/
	return true;
}

function checkIfFieldFilled(field)
{
	if(typeof field != "object") {
		alert("Expected object, " + (typeof field) + " given");
		return false;
	}
	var fieldType = (field.type) ? field.type : "checkboxArray";

	switch(fieldType) {
		case "text":
		case "password":
		case "file":
		case "textarea":
		case "checkbox":
		case "select":
		case "select-one":
			return (field.value.length == 0) ? false : true;
			break;
		case "checkboxArray":
			var res = false;
			var i;
			for(i = 0; i < field.length; i++) {
				var item = (field.item) ? field.item(i) : field[i];
				if(item.checked) {
					return true;
				}
			}
			return (i > 0) ? res : true;
			break;
		default:
			alert("Don't know, hot to deal with " + field.type + " input");
			break;
	}
	return true;
}

function getFieldLabel(field)
{
	var labels = document.getElementsByTagName("label");
	if(!field.type) {
		field = (field.item) ? field.item(0) : field[0];
	}
	var field_id = field.id;
	var sz = labels.length;
	var i;
	for(i = 0; i < sz; i++) {
		var label = labels.item(i);

		if(label.attributes['for'].nodeValue == field_id) {
			var res = label.textContent;
			if(!res) {	//WORKAROUND for IE7
				res = label.innerHTML;
			}
			res = res.replace(/<[\/]?[A-z0-9+]>/g, "");
			if(res.substring(res.length - 1, res.length) == ":") {
				res = res.substring(0, res.length - 1);
			}
			if(res.substring(0, 1) == "*") {
				res = res.substring(1, res.length);
			}
			return res;
		}
	}
	return false;
}
/**
 * /Проверка обязательных полей в форме
 */

/**
 * Установить дефолтное значение
 */
function setDefaultValue (e)
{
	e = e || window.event;
	var obj;
	if (e.srcElement)
		obj = e.srcElement;
	else
		obj = this;
	if (obj.value == '') {
		obj.value = obj.getAttribute('this_default_value');
	}
}
/**
 * Снять дефолтное значение
 */
function delDefaultValue (e)
{
	e = e || window.event;
	var obj;
	if (e.srcElement)
		obj = e.srcElement;
	else
		obj = this;
	if (obj.getAttribute('this_default_value') == obj.value) {
		obj.value = '';
	}
}
/**
 * Поле по умолчанию
 */
function firstUpdateDefaultValue ()
{
	var oAllInputs = document.getElementsByTagName("input");
	for (var i = 0; i < oAllInputs.length; i++) {
		if (oAllInputs[i].getAttribute('this_default_value') && oAllInputs[i].getAttribute('this_default_value').length > 0 && oAllInputs[i].type == 'text') {
			if (oAllInputs[i].value == '') {
				oAllInputs[i].value = oAllInputs[i].getAttribute('this_default_value');
			}
			addEventSimple(oAllInputs[i], 'focus', delDefaultValue);
			addEventSimple(oAllInputs[i], 'blur', setDefaultValue);
		}
	}
}

addEventSimple(window, 'load', firstUpdateDefaultValue);

/**
 * /Поле по умолчанию
 */

/**
 * Добавить событие
 */
function addEventSimple(obj, evt, fn)
{
	if (obj.addEventListener)
		obj.addEventListener(evt, fn, false);
	else if (obj.attachEvent)
		obj.attachEvent('on' + evt, fn);
}
/**
 * Удалить событие
 */
function removeEventSimple(obj, evt, fn)
{
	if (obj.removeEventListener)
		obj.removeEventListener(evt, fn, false);
	else if (obj.detachEvent)
		obj.detachEvent('on' + evt, fn);
}
/**
 * Показывает/скрывает всплывающее окошко
 */
function displayInfoBlock (id, e)
{
	e = e || window.event;
	var obj = document.getElementById(id);
	if (obj) {
		if (obj.parentNode.className == 'opened') {
			hideAllInfoBlocks();
		}
		else {
			hideAllInfoBlocks();
			obj.parentNode.className = 'opened';
		}
		cancelEvent(e);
	}
	//return false;
}
/**
 * Спятать все всплвшие окна
 */
function hideAllInfoBlocks ()
{
	if (arFilter && arFilter.length > 0) {
		for (var i = 0; i < arFilter.length; i++) {
			var obj = document.getElementById(arFilter[i]);
			if (obj && obj.parentNode.className == 'opened') {
				obj.parentNode.className = '';
			}
		}
	}
}
var arFilter = new Array();
addEventSimple(document, 'click', hideAllInfoBlocks);
/**
 * Остановить выполнение дальнейших событий
 */
function cancelEvent (e)
{
	e = e || window.event;
	if (e.stopPropagation)
		e.stopPropagation();
	// otherwise set the cancelBubble property of the original event to true (IE)
	e.cancelBubble = true;
}

/**
 * Перегрузим событие добавления элемента в корзину
 */
umiBasket.getInstance().onAfterAddElement = function(iElementId, iCount) {
	var oCounter = document.getElementById("item_count_" + iElementId);
	var oArea = document.getElementById("item_text_" + iElementId);
	if (oCounter && oArea) {
		oCounter.innerHTML = iCount;
		oArea.className = 'basket_helper_visible';
	}
}

/**
 * Перегрузим событие удаления элемента из корзины
 */
umiBasket.getInstance().onAfterRemoveBasketItem = function (iElementId)
{
	var hdl = function(oResponce) {
		if (oResponce.basket_items.length == 0) {
			location.href = location.href;
		}
	}
	lLib.getInstance().makeRequest('/eshop/json_get_basket/?', hdl);
	
	var oCartRows = document.getElementsByName('basketrow_'+iElementId);
	for (iI = 0; iI < oCartRows.length; iI++) {
		oCartRows[iI].style.display = 'none';
	}
}
 
 function initCity () {
	 var id = document.getElementById('city_choice');
	 if (id) {
		 id.onchange = function () {
			 /*
			 document.location = this.value;
			*/
			//alert(window.location);
			userChoice(this.value);
			document.location = window.location;

		 }
	 }
 }
 
 
 if (window.addEventListener) {
	 window.addEventListener('load', initCity, false);
 }
 else if (window.attachEvent) {
	 window.attachEvent('onload', initCity, false);
 }

 /*Cockies*/
 function setCookie (name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function userChoice(menuId) {
	var d = new Date();
    var time = d.getTime() + 2592000;
	setCookie("city_id", menuId, false, '/');
	
	if (window.XMLHttpRequest)
	{// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
	}
	else
	{// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlhttp.open('GET', '/data/json_set_city/' + menuId, true);
	xmlhttp.send(null);

	
	return true;
}

 

 AjXmlSimple = function(XMLname,idResDiv) {
	$('allBlack').style.display = 'block';
     var req = new Ajax.Request(
         XMLname,
         {
            method: 'get',
            onSuccess:
			function(resp) {
				  var response = resp.responseText || "no response text";
				  $(idResDiv).innerHTML = response;
				  $(idResDiv).style.marginTop = (getHeight()/2 - 380 + getBodyScrollTop()) + 'px';
			}
         }
     );
	 return false;
}

 AjXmlSimpleNew = function(XMLname,idResDiv) {
	$('allBlack').style.display = 'block';
     var req = new Ajax.Request(
         XMLname,
         {
            method: 'get',
            onSuccess:
			function(resp) {
				  var response = resp.responseText || "no response text";
				  $(idResDiv).innerHTML = response;
				  $(idResDiv).style.marginTop = (getHeight()/2 - 460 + getBodyScrollTop()) + 'px';
			}
         }
     );
	 return false;
}

 AjXmlSimpleDva = function(XMLname,idResDiv) {
     var req = new Ajax.Request(
         XMLname,
         {
            method: 'get',
            onSuccess:
			function(resp) {
				  var response = resp.responseText || "no response text";
				  $(idResDiv).innerHTML = response;
			}
         }
     );
	 return false;
}

testCal = function() {
    Calendar.setup({
        inputField     :    "f_date_c",     // id of the input field
        ifFormat       :    "%d.%m.%Y",      // format of the input field
        button         :    "f_trigger_c",  // trigger for the calendar (button ID)
        align          :    "Bl",           // alignment (defaults to "Bl")
        singleClick    :    false
    });

}


destroyAjax = function() {
	$('allBlack').style.display = 'none';
	$('ajax').innerHTML = '';
}


getHeight = function() {					
	return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
}

 getBodyScrollTop = function () {
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}


function checkForm(obj, elems) {
var element, pattern;
    for (var i = 0; i < obj.elements.length; i++) {
        element = obj.elements[i];
        if (elems != undefined)
            if (elems.join().indexOf(element.type) < 0) continue;
        if (!element.getAttribute("required")) continue;
        if (pattern = element.getAttribute("check_pattern")) {
            pattern = new RegExp(pattern, "g");
            if (!pattern.test(element.value)) {
                alert(element.getAttribute("required"));
                element.focus();
                return false;
            }
        } else if(/^\s*$/.test(element.value)) {
            alert(element.getAttribute("required"));
            element.focus();
            return false;
        }
    }
return true;
}