//	Таймер (прогрессбар) анонса
var tmp_sec	=	0;
var pause	=	15;
var ShowError_focus	=	false;
function Anons_Timer() {
	tmp_sec++;
	$("#anons_progressbar").progressbar({
		value: ((tmp_sec*100)/pause)
	});
	if (tmp_sec >= pause) {
		tmp_sec	=	0;
		$("#anons_progressbar").progressbar({
			value: ((tmp_sec*100)/pause)
		});
		ChangeAnons();
	}
}

//	Смена анонса
var anons_cache = ["", "", "", "", "", "", "", ""];
function ChangeAnons() {
	var anons_count = 4;
	var anons_i	=	$("#anons_i").html();
	anons_i++;
	if (anons_i > anons_count) anons_i = 1;
	$("#anons_i").html(anons_i);
	if (anons_cache[anons_i] != "") {
		$("#top_anons").html(anons_cache[anons_i]);
	} else {
		$("#top_anons").load("anons_imgs/_anons_" + anons_i + ".htm");
		anons_cache[anons_i]	=	$("#top_anons").html();
	}
}

//	открыть историю одного заказа
function History_ShowOrder(uniq) {	history_table	=	$("#history_div").html();
	var w = $(window);	$("#footer_loader").css("top",(w.height()-$("#footer_loader").height())/2+w.scrollTop() + "px");
	$("#footer_loader").css("left",(w.width()-$("#footer_loader").width())/2+w.scrollLeft() + "px");
	$("#footer_loader").show();

	$("#history_div").load("partner/istoriya_zakazov/"+uniq, function(response, status, xhr) {		//if (status == "success")
		$("#footer_loader").hide();
	});}

//	проверяем поле с поиском
function CheckSearch() {
	var	def_q	=	"название товара, артикул, ...";
	var q	=	$("#search").val();
	if (q	==	"") {		$("#search").val(def_q);
		$("#search").css("color", "#a5a5a5");
	}

	$('#search').focus(function() {		q	=	$("#search").val();
		if (q	==	def_q) {			$("#search").css("color", "#000000");
			$("#search").val("");		}	});

	$('#search').focusout(function() {
		q	=	$("#search").val();
		if (q	==	"") {
			$("#search").css("color", "#a5a5a5");
			$("#search").val(def_q);
		}
	});

	$('#search_mini_form').submit(function() {
		q	=	$("#search").val();
		if (q != def_q) document.location.href	=	"/search/"+$("#search").val();
		return false;
	});

	var search_cache = {};
	$( "#search" ).autocomplete({
		minLength: 2,
		source: function(request, response) {
			if ( request.term in search_cache ) {
				response( search_cache[ request.term ] );
				return;
			}

			$.ajax({
				url: "./autocomplete.php",
				dataType: "json",
				data: "what=search_auto&q="+encodeURIComponent($("#search").val()),
				success: function( data ) {
					search_cache[ request.term ] = data;
					response( data );
				}
			});
		}
	});}

//	Отправить заказ
function MakeOrder(paymentid, deliveryid, additionaltext, delivery_calendar) {
	$(".subtitle").html("Ваш заказ отправлен");
	$(".indent").html("<div style='font-size:14px;'>Отправляем ваш заказ. Ожидайте...</div>");
	var	products	=	"";
	for (var i in basket_array) {
		tmp_price	=	basket_array[i]['price'];

		if ( (basket_array[i]['price2'] > 0) && (basket_array[i]['for_unit2'] > 0) ) {
			if (basket_array[i]['count'] >= basket_array[i]['for_unit2']) tmp_price	=	basket_array[i]['price2'];
		}

		products	+=	basket_array[i]["id"] + "||" + tmp_price + "||" + basket_array[i]["count"] + "::";
	}

	//alert(products);

	$(".indent").load("/autocomplete.php", {
								'what':	'make_order',
								'products':		products,
								'payment_id':	paymentid,
								'delivery_id':	deliveryid,
								'additional':	additionaltext,
								'delivery_calendar': delivery_calendar
							} );
	$("#header_basket").hide();
	$("#header_basket_logo").hide();}

//	Пересчитать кол-во товара если оно было изменено
function UpdateCountIfNeed() {
	clearInterval(intervalID);
	var test	=	0;
	var tmp_price	=	0;
	for (var i in basket_array) {		var	pid	=	basket_array[i]['id'];
		/*if ($("#qty_"+pid).val() <= 0) { DelItemFromBasket(pid); break; }*/
		if (basket_array[i]['count'] != $("#qty_"+pid).val()) {
			basket_array[i]['count']	=	$("#qty_"+pid).val();

			tmp_price	=	basket_array[i]['price'];
			if ( (basket_array[i]['price2'] > 0) && (basket_array[i]['for_unit2'] > 0) ) {
				if (basket_array[i]['count'] >= basket_array[i]['for_unit2']) tmp_price	=	basket_array[i]['price2'];
			}

			$("#sum_of_"+pid).html(Number_Format( basket_array[i]['count'] * tmp_price ));
			$("#price_of_"+pid).html(Number_Format( tmp_price ));
			$.ajax({url: "/autocomplete.php?what=change_count_in_basket&pid="+pid+"&count="+$("#qty_"+pid).val(), async: false});
			test++;
		}
	}
	if (test > 0) {
		UpdateBasketSum();
		UpdateHeaderBasket();
	}}

//	Пересчитать сумму товаров в корзине
function UpdateBasketSum() {	var	sum = 0;
	for (var i in basket_array) {		sum += (basket_array[i]['price'] * basket_array[i]['count']);	}
	if (sum > 0) {
		$("#basket_all_sum").html(Number_Format(sum));
	} else {
   		document.location.href	=	"partner/vasha_korzina";	}}

//	Функция возвращает число в заданном формате (валюта)
function Number_Format(num) {
	var decimal	=	2;

	var x 			= 	Math.pow(10,decimal);
    var m 			= 	Math.abs(num) * x;
	var n 			= 	Math.floor(Math.round(m)) / x;
    var num 		= 	n.toFixed(decimal);

	var parts		=	num.split('.');
    var frontPart	=	parts[0];
	var length		=	frontPart.length;
	var s			=	'';
	for (i=0; i<length; i++) {
		if ( (Math.round(i/3) == (i/3)) && (i != 0) ) s = '&nbsp;' + s;
		s = frontPart.charAt((length-1)-i) + s;
	}

	s = s + ',' + parts[1];

    return s;
}

//	Удалить товар из корзины
function DelItemFromBasket(product_id) {
	var	sum = 0;
	for (var i in basket_array) {
		if (basket_array[i]['id'] == product_id) {
			delete basket_array[i];
			$("#product_line_"+product_id).hide();
			$("#product_line_"+product_id+"_add").hide();
			$.ajax({url: "/autocomplete.php?what=del_item_from_basket&pid="+product_id, async: false});
			UpdateHeaderBasket();
		}
	}
	UpdateBasketSum();
}

//	Обновить сроку вверху о корзине
function UpdateHeaderBasket() {	//$("#header_basket_info").html("");
	$.ajax({url: "/autocomplete.php?what=header_basket_info", success: function(data) {$("#header_basket_info").html(data);}});
	$("#header_basket").show();
	$("#header_basket_logo").show();}

//	Добавить товар в корзину
function Add2Basket(product_id, qty_id) {
	var qty = $("#"+qty_id).val();
	var w = $(window);
	/*
	var dcb	=	getOffsetRect( document.getElementById(qty_id) );
	//alert(dcb.left + "x" + dcb.top);
	var brw_top		=	dcb.top		-	($("#basket_reminder_wraper").height() / 2);
	var brw_left	=	dcb.left	-	($("#basket_reminder_wraper").width() / 2);
	var brw_width	=	$("#basket_reminder_wraper").width();
	if (dcb.left + (brw_width / 2) > w.width()) brw_left	=	w.width()	-	$("#basket_reminder_wraper").width() - 10;
	*/

	//	если хотим, что бы появлялось напротив кнопки "купить"
	//$("#basket_reminder_wraper").css("top", brw_top + "px");
	//$("#basket_reminder_wraper").css("left", brw_left + "px");

	$("#basket_reminder_wraper").css("position","absolute");

	//	если хотим, что бы появлялось в правом нижнем углу
	$("#basket_reminder_wraper").css("top",(w.height()-$("#basket_reminder_wraper").height())+w.scrollTop()-10 + "px");
	$("#basket_reminder_wraper").css("left",(w.width()-$("#basket_reminder_wraper").width())+w.scrollLeft()-10+ "px");
	$("#basket_reminder_pname").html("... загружается ...");
	$("#basket_reminder_wraper").fadeIn('slow');
	var jqxhr = $.ajax({ url: "/autocomplete.php?what=pnamebyid&pid="+product_id,
							success: function(data) {								$("#basket_reminder_pname").html(data);

								$.ajax({url: "/autocomplete.php?what=add2basket&pid="+product_id+"&count="+qty,
									success: function(data) {                                    	UpdateHeaderBasket();									}});

								$("#basket_reminder_wraper").delay(1200).fadeOut('slow');
							},
							error: function(data) { $("#basket_reminder_wraper").delay(1200).fadeOut('slow'); }
					   });}

//	Подсвечивать ошибочное поле
function ShowError(element, hint, hint_color, back_color, f) {
	$("#"+element).css("background-color", back_color);
	$("#"+element).css("border-color", hint_color);
	$("#hint_"+element).css("color", hint_color);
	$("#hint_"+element).html(hint);
	if ((f) && (!ShowError_focus)) {
		//console.log("#"+element)
		$("#"+element).focus();
		ShowError_focus = true;
	}
}

//	Валидатор
function validate(field, type) {
   var pp = '';
   var zz = $(field).val();
	// Проверка логина
   if(type == 'login'){
   var pp = /^[a-zA-Z][a-zA-Z-\._]+[a-zA-Z0-9]$/;
   }
	// Только английские буквы
   if(type == 'en'){
   var pp = /^[a-zA-Z]*$/;
   }
	// Только русские буквы
   else if(type == 'ru'){
   var pp = /^[а-яА-Я]*$/;
   }
	// Англо-русские буквы
   else if(type == 'enru'){
   var pp = /^[a-zA-Zа-яА-Я]*$/;
   }
	// Англ. и цифры
   else if(type == 'en123'){
   var pp = /^[a-zA-Z0-9]*$/;
   }
	// !Более корректная форма проверки почты
   else if(type == 'email'){
   var pp = /^[a-zA-Z0-9][-\._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]+\.)+[a-zA-Z]{2,6}$/;
   }
	// Цифры
   else if(type == '123'){
   var pp = /^[0-9]*$/;
   }
	//Ошибка если не указан параметр
   else if(pp == ''){
   return false;
   }
	// Присутствие значения в поле
      if (field === ''){
         return false;
      }
	//Проверка поля по выбранному типу
    else if(!zz.match(pp)){
    return false;
    }
      return true;
 }


//	Замена фона на нужный цвет
function ChangeBgColor(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor) {	if (theAction	==	"over") {
		theRow.style.backgroundColor	=	thePointerColor;	}
	if (theAction	==	"out") {
		theRow.style.backgroundColor	=	theDefaultColor;
	}}

//	Проверка URL на наличие # и загрузка страницы с учетом этих данных
function CheckURLForHash(C) {
	if (window.location.hash != ""){		//alert(C+'/'+window.location.hash.replace("#", "")+' #ajax-main-col');
		$('#ajax-main-col').load(C+'/'+window.location.hash.replace("#", "")+' #ajax-main-col');
	}
}

//	Открыть или закрыть выбор производителя
function ShowVendorList() {
	$('.vendors-list-page').toggle();

	$('.vendors-list-back').width($('.vendors-list-page').width()+30);
	$('.vendors-list-back').height($('.vendors-list-page').height()+30);

	var dcb	=	getOffsetRect( document.getElementById('vendors-list-page') );

	$('.vendors-list-back').css('left', (dcb.left-4)+"px");
	$('.vendors-list-back').css('top', (dcb.top-5)+"px");

	$('.vendors-list-back').toggle();
}

//	Изменить вывод товаров согласно выбранному производителю
function ChangeVendor(V, C) {
	var w = $(window);
	$("#footer_loader").css("top",(w.height()-$("#footer_loader").height())/2+w.scrollTop() + "px");
	$("#footer_loader").css("left",(w.width()-$("#footer_loader").width())/2+w.scrollLeft() + "px");
	$("#footer_loader").show();
	$('#ajax-main-col').load('catalog/'+C+'/vendor.-'+V+' #ajax-main-col', function(response, status, xhr) {
		$("#footer_loader").hide();
	});
}

//	Изменить внешний вид списка каталога С на V
function ChangeView(V, C) {
	var w = $(window);
	$("#footer_loader").css("top",(w.height()-$("#footer_loader").height())/2+w.scrollTop() + "px");
	$("#footer_loader").css("left",(w.width()-$("#footer_loader").width())/2+w.scrollLeft() + "px");
	$("#footer_loader").show();
	$('#ajax-main-col').load('catalog/'+C+'/view.-'+V+' #ajax-main-col', function(response, status, xhr) {
		$("#footer_loader").hide();
	});
}

//	Перейти к странице P в каталоге C
function GoToPage(P, C) {	var w = $(window);
	$("#footer_loader").css("top",(w.height()-$("#footer_loader").height())/2+w.scrollTop() + "px");
	$("#footer_loader").css("left",(w.width()-$("#footer_loader").width())/2+w.scrollLeft() + "px");
	$("#footer_loader").show();	$('#ajax-main-col').load(C+'/page.-'+P+' #ajax-main-col', function(response, status, xhr) {
		$("#footer_loader").hide();
	});}

//	устанавливаем количество продуктов на страницу
function SetProductsPerPage(ppp, url) {	setCookie("products_per_page", ppp, {expires: 630720000});
	$('#ajax-main-col').load('catalog/'+url+' #ajax-main-col');}

// уcтанавливает cookie
function setCookie(name, value, props) {
	props = props || {}
	var exp = props.expires
	if (typeof exp == "number" && exp) {
		var d = new Date()
		d.setTime(d.getTime() + exp*1000)
		exp = props.expires = d
	}
	if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

	value = encodeURIComponent(value)
	var updatedCookie = name + "=" + value
	for(var propName in props){
		updatedCookie += "; " + propName
		var propValue = props[propName]
		if(propValue !== true){ updatedCookie += "=" + propValue }
	}
	document.cookie = updatedCookie

}

// возвращает cookie если есть или undefined
function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
	  "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	))
	return matches ? decodeURIComponent(matches[1]) : undefined
}

/********************************************************************************************************/
function wOpen(URL,wName,features) {
	window.open(URL,wName,features);
	return false;
}



/**
 * This array is used to remember mark status of rows in browse mode
 */
var marked_row = new Array;

/**
 * Sets/unsets the pointer and marker in browse mode
 *
 * @param   object    the table row
 * @param   interger  the row number
 * @param   string    the action calling this script (over, out or click)
 * @param   string    the default background color
 * @param   string    the color to use for mouseover
 * @param   string    the color to use for marking a row
 *
 * @return  boolean  whether pointer is set or not
 */
function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 4. Defines the new color
    // 4.1 Current color is the default one
    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

///	координаты элемента
function getOffsetRect(elem) {
    // (1)
    var box = elem.getBoundingClientRect()

    // (2)
    var body = document.body
    var docElem = document.documentElement

    // (3)
    var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
    var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft

    // (4)
    var clientTop = docElem.clientTop || body.clientTop || 0
    var clientLeft = docElem.clientLeft || body.clientLeft || 0

    // (5)
    var top  = box.top +  scrollTop - clientTop
    var left = box.left + scrollLeft - clientLeft

    return { top: Math.round(top), left: Math.round(left) }
}

//	эффект от наведения на товар
var CatalogOnBorder_width = 0, CatalogOnBorder_height = 0;
function CatalogOnBorder(what, cell, cell_text) {
	if (what == 'onmouseout') {
		$('#'+cell).css('border', '1px solid #fff');
	}
	if (what == 'onmouseover') {
		$('#'+cell).css('border', '1px dashed #EA0000');
	}
}
