function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++){
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


//Выцепляет элемент по классу
function getElementsByClassName(classname, node) {
	if( !node )
	{
		node = document.getElementsByTagName("body")[0];
	}
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
	{
		if(re.test(els[i].className))
		{
			a.push(els[i]);
		}
	}
	return a;
}

function selectCOS( cos, dontSetProductCos )
{
	var elems = getElementsByClassName( cos );
	var selectListAcc = getElementsByClassName( 'select-cos' );
	
	//Селектим нужные значения во всех элементах
	if ( !dontSetProductCos === true ) {
		for(i=0; i<elems.length; i++) {
			elems[i].checked = true;
		}
	}
	
	if( selectListAcc.length )
	{	
		//Селектим нужные значения во всех аксессуарах
		for(i=0;i<selectListAcc.length;i++)
		{
			for(j=0;j<selectListAcc[i].options.length;j++)
			{
				if( selectListAcc[i].options[j].value == cos )
				{
					selectListAcc[i].selectedIndex = j;
					break;
				}
			}
		}
		
		//Отображаем цены аксессуаров, соотвующие выбранному классу
		var priceHolder = getElementsByClassName( 'accessory' );
		var cosId = 'price-'+selectListAcc[0].options[selectListAcc[0].selectedIndex].value;
		for(i=0;i<priceHolder.length;i++)
		{
			getElementsByClassName( 'product-price', priceHolder[i] )[0].innerHTML = getElementsByClassName( cosId, priceHolder[i] )[0].value;
		}
	}
	
	//Изменяем внешний вид выбранного блока с классом обслуживания
	currLi = getElementsByClassName('item-'+cos)[0];
	buttons = getElementsByClassName('button-big', getElementsByClassName('cos-list')[0]);
	// Для случая "остатков"нет кнопок с классом button-big, но есть ссылки с классом scraps-link
	if (buttons.length == 0) {
		buttons = getElementsByClassName('scraps-link', getElementsByClassName('cos-list')[0]);
		visibleElem = getElementsByClassName('scraps-link', currLi)[0];
	} 
	else {
		visibleElem = getElementsByClassName('button-big', currLi)[0];
	}
	for(i=0; i<buttons.length;i++)
	{
		buttons[i].style.visibility="hidden";
		getElementsByClassName('price', getElementsByClassName('cos-list')[0])[i].style.color="#323232";
		getElementsByClassName('cos-list')[0].getElementsByTagName('label')[i].style.color="#000";
	}
	visibleElem.style.visibility="visible";
	//getElementsByClassName('button-big', currLi)[0].style.visibility="visible";
	//getElementsByClassName('scraps-link', currLi)[0].style.visibility="visible";
	getElementsByClassName('price', currLi)[0].style.color="#e00";
	currLi.getElementsByTagName('label')[0].style.color="#1aa200";
	
	//Пересчитываем таблицу с товарами на странице товара
	jQuery('#pc_table span.table-price').css('display', 'none');
	jQuery('#pc_table span.cos-price-'+cos).css('display', 'inline');

}

//======================================================================
// add daily deal product to cart
function add_dailydeal_to_cart ( i_prod_id, credit_info ) {	
	add_prod_to_cart (i_prod_id, credit_info, null, true);
}

//======================================================================
//cos - class of service
function add_prod_to_cart( i_prod_id, credit_info, that, daily_deal_applied ){
	var currCos = document.getElementById('currentCos').value;
	var params = {
		product_id:	i_prod_id,
		cos_id:		0
	};
	
	if ( !!that ) {
		params.cos_id = that.previousSibling.value;
	} else {
		var cos_elems = document.getElementsByName('cos');
		for( i = 0; i < cos_elems.length; i++ )
		{
			if( cos_elems[i].checked == true )
			{
				params.cos_id = cos_elems[i].value;
				break;
			}
		}
	}

	if ( params.cos_id > 0 )
	{
		var currCosPriority =  currCos > 0? getElementsByClassName( 'cp-' + currCos, document.getElementById('cosPriorities') )[0].value: 0xFF;
		var newCosPriority =  getElementsByClassName( 'cp-'+ params.cos_id, document.getElementById('cosPriorities') )[0].value;
		selectCOS(params.cos_id);
		document.getElementById('currentCos').value = params.cos_id;
	}
	createMessage("Минуточку...", "#4f4f4f");
	
	if( credit_info )
	{
		params.credit_program_id = credit_info[0];
		params.first_payment = credit_info[1];
		params.credit_period = credit_info[2];
		if( credit_info == "del_cred" )
		{
			params.subaction = "del_cred";
		}
	}

	if ( daily_deal_applied )
	{
		params.daily_deal_applied = 1;
	}

	ajaxSend(AJAX.add_prod_to_cart, params);
}

function add_prod_to_compare(i_prod_id){
	createMessage("Минуточку...", "#4f4f4f");
	var params = new Object();
	params.product_id = i_prod_id;
	ajaxSend(AJAX.add_prod_to_compare, params);
}

function erase_compare(){
	createMessage("Минуточку...", "#4f4f4f");
	var params = new Object();
	ajaxSend(AJAX.erase_compare, params);
}

function erase_cart(){
	createMessage("Минуточку...", "#4f4f4f");
	
	var params = new Object();
	ajaxSend(AJAX.erase_cart, params);
	document.getElementById('currentCos').value = 0;
	if(document.getElementById('b_tab'))
  	{
		location.reload();
	}
	
}

/*-----------------РАСШИРЕНИЕ ОБРАБОТКИ ОТВЕТА СЕРВЕРА::КОРЗИНА------------------------*/

function restore_cart_count()
{
	display_cart_count( readCookie( 'crtc' ) );
}

function display_cart_count( b_kolvo )
{
	b_kolvo = parseInt( b_kolvo );
	b_kolvo = isNaN( b_kolvo ) ? 0 : b_kolvo;
	var d = document;
	if( 0 == b_kolvo ){
		if( d.getElementById('sum_span') && parseInt(d.getElementById('sum_span').innerHTML) == 0 ){
			window.location.reload(true);
		}
		if( d.getElementById('basket_cont') ) d.getElementById('basket_cont').style.color = '#4a4a4a';
		if( d.getElementById('basket_t') ){
			d.getElementById('basket_t').innerHTML = "Товаров <br>в&nbsp;корзине:";
		}
		if( d.getElementById('basket') ){
				d.getElementById('basket').innerHTML = b_kolvo;
				d.getElementById('basket').style.color = '#707070';
		}
	}
	else{
		if( d.getElementById('basket_cont') ) d.getElementById('basket_cont').style.color = "#313131";
		if( d.getElementById('basket_t') ){
			d.getElementById('basket_t').innerHTML = "Товаров <br>в&nbsp;корзине:";
		}
		if( d.getElementById('basket') ){
			d.getElementById('basket').innerHTML = b_kolvo;
			d.getElementById('basket').style.color = '#09c500';
		}
	}
}


// ответ по корзине
function cart_event_handler(result)
{
// кидаем месагу
	createMessage(result.message, ((result.common_code == 1) ? "#4f4f4f" : "red"), 2000);


	var b_kolvo = parseInt(result.cart_prod_count);
// рисуем товар в корзине
	display_cart_count( b_kolvo );

	var d = document;

// обрабатываем ответ на предмет галочки в корзине
	errCode = parseInt(result.extention_code);
	if(document.all.b_tab && (Math.floor(errCode/1000) == 3)){
		d.all["cr_chkbox_"+result.product_id].checked = ((errCode == 3010) ? true : false);
	}
}

handle_erase_cart = cart_event_handler;
handle_add_prod_to_cart = cart_event_handler;

/*-----------------РАСШИРЕНИЕ ОБРАБОТКИ ОТВЕТА СЕРВЕРА::СРАВНЕНИЕ------------------------*/
// ответ по папке сравнения

function restore_compare_count()
{
	display_compare_count( readCookie( 'cc' ) );
}

function display_compare_count( comp_kolvo )
{
	comp_kolvo = parseInt( comp_kolvo );
	comp_kolvo = isNaN( comp_kolvo ) ? 0 : comp_kolvo;
	var d = document;
	if(comp_kolvo == 0){
		if( d.getElementById('compare_cont') ) d.getElementById('compare_cont').style.color = '#4a4a4a';
		if( d.getElementById('compare_t') ){
			d.getElementById('compare_t').innerHTML = "Товаров в папке для сравнения:";
		}
		if( d.getElementById('compare') ){
			d.getElementById('compare').innerHTML = comp_kolvo;
			d.getElementById('compare').style.color = '#707070';
		}
	}
	else{
		if(d.getElementById('compare_cont')) d.getElementById('compare_cont').style.color = "#ff6600";
		if(d.getElementById('compare_t')){
			d.getElementById('compare_t').innerHTML = "Товаров в папке для сравнения:";
		}
		if( d.getElementById('compare') ){
			d.getElementById('compare').innerHTML = comp_kolvo;
			d.getElementById('compare').style.color = '#ff6600';
		}
	}
}

function compare_event_handler(result){
	errCode = parseInt(result.extention_code);
	var d = document;
	switch(errCode){
		case 9010:{
			createMessage("Товар добавлен в папку сравнения!", "#4f4f4f", 2000);
			break;
		}
		case 9020:{
			createMessage("Товар удален из папки сравнения!", "#4f4f4f", 2000);
			compare_empty();
			break;
		}
		case 9030:{
			createMessage("Папка сравнения очищена!", "#4f4f4f", 2000);
			if(window.visual_erase_compare != null){
				visual_erase_compare();
			}
			break;
		}
		case 9120:{
			createMessage("Товар уже есть в папке сравнения!", "red", 2000);
			break;
		}
	}

	var comp_kolvo = parseInt(result.compare_prod_count);
	display_compare_count( comp_kolvo );
}

handle_add_prod_to_compare = compare_event_handler;
handle_erase_compare = compare_event_handler;
