//--------------------------------// Browsers
opera = (window.opera) ? true : false;
ie = (document.all && !opera) ? true : false;

var version = 6;
var flash = false;
if (navigator.plugins) {
	if (navigator.plugins["Shockwave Flash"]) {
		plugin = navigator.plugins["Shockwave Flash"].description;
		flash = parseInt(plugin.charAt(plugin.indexOf('.') - 1)) >= version;
	} else {
		if ((navigator.userAgent.indexOf('MSIE') != -1)&&(navigator.userAgent.indexOf('Win') != -1)) {
			var vb = '<script language="vbscript">\n'
			+ ' on error resume next\n'
			+ ' flash = IsObject(CreateObject('
			+ ' "ShockwaveFlash.ShockwaveFlash.' + version + '"))\n'
			+ '<' + '/script>';
			document.write(vb);
		}
	}
}

/**
 * Функция возвращает список нод, класс которых содержит указанный.
 */
function getElementsByClassName (classname, node)  {
	if (!node) {
		node = document.getElementsByTagName('body')[0];
	}

	var arResult = [];
	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)) {
			arResult.push(els[i]);
		}
	}

	return arResult;
}

function mainTopMenu () {
	var aa = document.getElementById('larga_menu').getElementsByTagName('DT');

	for (i = 0; i < aa.length; i++) {
		var objA = aa[i].getElementsByTagName('A');

		var iLen = String(objA[0].href).length;
		var strLink = String(objA[0].href).substring(iLen, iLen - 1);

		if (objA[0].getElementsByTagName('SPAN')[0].className == 'not_active') {
			aa[i].onclick = function () {
				sublist = nextObject(this);
				hideAll();
				this.className = 'clicked';
				if (sublist && sublist.nodeName != 'DT' ) {
					sublist.style.display = (sublist.style.display == 'block') ? 'none' : 'block';
				}
				return false;
			}
		}
	}
}

function hideAll(){
	var aa = document.getElementById('larga_menu').getElementsByTagName('DD');
	for (i =0; i < aa.length; i++) {
		aa[i].style.display = 'none';
		var objPrev = previousObject(aa[i]);
		if ( objPrev && objPrev.nodeName == 'DT'){
			objPrev.className = '';
		}
	}
	var dt = document.getElementById('larga_menu').getElementsByTagName('DT');
	var dt_quant = dt.length;
	for ( j = 0 ; j < dt_quant ; j++ ) {
		dt[i].className = '';
	}
}
/*
function startList() {
		var nodes = document.getElementById('larga_menu').getElementsByTagName("TD");
		for (var i=0; i<nodes.length; i++) {
				nodes[i].onmouseover = function() {
				this.className += " over";
			}
				nodes[i].onmouseout = function() {
				this.className = this.className.replace(new RegExp("over\\b"), "");
			}
		}
}

/***************************/
var id_current_menu = '';
var menu_timer;
var menu_timeout = 1200; //ms

function startlist() {
	var main_ul = document.getElementById('larga_menu');
	if (main_ul == null) {
		return;
	}
	var li = main_ul.getElementsByTagName('TD');
	for (var i = 0; i < li.length; i++) {
		li[i].setAttribute('id', 'mainmenu_' + i);
		li[i].onmouseover = open_sub_menu;
	}
}

function open_sub_menu() {
	if (id_current_menu.length) {
		clearInterval(menu_timer);
		close_sub_menu(id_current_menu);
	}
	this.className += ' over';
	id_current_menu = this.id;
	this.onmouseout = close_sub_menu_main;
	//return false;
}

function close_sub_menu_main() {
	menu_timer = setTimeout(function(){close_sub_menu(); return false;}, menu_timeout);
	document.getElementById(id_current_menu).onmouseout = '';
	//return false;
}

function close_sub_menu () {
	if (id_current_menu.length) {
		var el = document.getElementById(id_current_menu);
		el.className = el.className.replace(new RegExp("over\\b"), "");;
		id_current_menu = "";
	}
}
/***************************/
/*****************************/
function startListLI() {
	var nodes = document.getElementById('larga_menu').getElementsByTagName("LI");

	for (var i = 0; i < nodes.length; i++) {
		nodes[i].onmouseover = lioverli;
		nodes[i].onmouseout = lioutli;//function () {
		}
	}

var lioverli = function() {
	this.className += " liover";
}

var lioutli = function() {
	this.className = this.className.replace(new RegExp("liover\\b"), "");
}

function init () {
	//if (!W3CDOM) return;
	mainTopMenu();
	startlist();
	three_news();
	startListLI();
	like_yandex();
	collapse_production_filter();
	preform_selects();
	add_collapse_characteristics_click();
	new_cart();
}

if (window.attachEvent) {
	window.attachEvent('onload', init);
} else if (window.addEventListener) {
	window.addEventListener('load', init, false);
}

function ShowPhoto(url, width, height) {
	var scroll = (screen.width < 1000) ? "yes" : "no";
	var left = (self.screen.width >> 1) - (width >> 1);
	var top = (self.screen.height >> 1) - (height >> 1);
	var param = 'left='+left+',top='+top+',width='+width+',height='+height+',';
	window.open(url, '_blank', param+'menubar=no,scrollbars=' + scroll + ',status=no');
}

function GetObj(objId) {
	return document.getElementById(objId);
}

function GetAbsoluteTop(obj_id) {
	var obj;
	var result = 0;
	obj = GetObj(obj_id);
	while( obj.tagName != 'BODY' ) {
		result += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return result;
}

function GetAbsoluteLeft(obj_id) {
	var obj;
	var result = 0;
	obj = GetObj(obj_id);
	while( obj.tagName != 'BODY' ) {
		result += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return result;
}

function SetFavorites(url, title) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url, '');
	}
	else if (window.opera && window.print) { // Opera Hotlist
		/*var mbm = document.createElement('a');
		mbm.setAttribute('rel', 'sidebar');
		mbm.setAttribute('href', url);
		mbm.setAttribute('title', title);
		mbm.click();*/
		document.getElementById('favor').rel = "sidebar";
 		document.getElementById('favor').title = title;
		document.getElementById('favor').href = url;
	}
	else if (document.all) { // IE Favorite
		window.external.AddFavorite(url, title);
	}
}

function like_yandex(){
	//frm = document.getElementById('forma2');
	frm = document.getElementsByTagName('FORM');
	txt=[],inp=[];
	for (var i = 0; i < frm.length ; i++) {
		if (frm[i].className == 'common') {
		txt[i] = frm[i].getElementsByTagName('LABEL')[0];
		inp[i] = frm[i].getElementsByTagName('INPUT')[0];
		txt[i].number = i;
		inp[i].number = i;
		txt[i].style.position = 'absolute';
		txt[i].style.top = '5px';
		txt[i].style.left = '5px';
		txt[i].style.cursor = 'text';
		txt[i].onclick = getLabel;
		inp[i].onblur = backToLabel;
		}
	}
}

function hidelabel(elm)
{
	var idlabel = "" + elm.id + "_label";
	var label = document.getElementById(idlabel);
	if(label)
	{
		label.innerHTML="";
	}
}
function getLabel(){
		this.style.display = 'none';
		nextObject(this).focus();
	}
function backToLabel(){
	if ( !inp[this.number].value ) {
	 txt[this.number].style.display = 'block';
	}
}




//--------------------------------//

// Return next sibling exclude text nodes.
function nextObject (object) {
	do {
		object = object.nextSibling;
	} while (object && object.nodeType != 1);

	return object;
}
// Return previous sibling exclude text nodes.
function previousObject (object) {
	do {
		object = object.previousSibling;
	} while (object && object.nodeType != 1);

	return object;
}

//--------------------------------// Menu Functions
function hide_menu(id) {
	if(id_menu!='' ) {
		timer=window.setTimeout("GetObj('div"+id+"').style.visibility='hidden';id_menu='';",1000);
	}
}

var id_menu = 0;
var id_div = 0;
var id_submenu = 0;
var timer = '';

function menu_on (id,is_parent) {
	var div;
	if(id_menu!=0){
		id_menu = 0;
	}
	if(id_div!=0){
		if(id_div != id) {
			GetObj("div"+id_div).style.display="none";
			id_div = 0;
		}
	}
	if(id_submenu!=0){
		id_submenu = 0;
	}
	id_menu = id;
	if(is_parent == 1){
		div = GetObj("div"+id);
		div.style.left = GetAbsoluteLeft("menu"+id) + 102 + 'px';
		div.style.top = GetAbsoluteTop("menu"+id) + 'px';
		div.style.display="block";
		id_div=id;
	}
	clearTimeout(timer);
}

function menu_off(id,is_parent) {
	if(is_parent == 1){
		timer = window.setTimeout(" GetObj('div"+id+"').style.display='none'; id_div = 0; id_menu = 0",1000);
	}
}

function submenu_off (id,id_parent) {
	timer = window.setTimeout("GetObj('div"+id_div+"').style.display='none';id_div=0;id_menu = 0;",1000);
}

function submenu_on (id,id_parent) {
	if(id_menu!=0){
	}
	if(id_div!=0){
		GetObj("div"+id_div).style.display = 'block';
	}
	if(id_submenu!=0){
		id_submenu = 0;
	}
	id_submenu = id;
	clearTimeout(timer);
}

//--------------------------------// Check Mail Form
function CheckMail(form) {
	return (CheckField(form, "email", "Вы не ввели 'e-mail'", 3, 3, 200));
}

//--------------------------------// Print Flash
function PrintFlash(path, wid, heg, pic, lnk, paramz) {
	if(flash && path){
		document.open();
		document.write ('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="6,0,0,0" width="' + wid + '" height="' + heg + '">');
		document.write ('<param name=movie value="' + path + '"/>');
		document.write ('<param name="quality" value="high"/>');
		document.write ('<param name="menu" value="false"/>');
		document.write ('<param name="FlashVars" value="' + paramz + '"/>');
		document.write ('<embed src="' + path + '" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + wid + '" height="' + heg +'" FlashVars="' + paramz + '" menu="false"></embed>');
		document.write ('</object>');
		document.close();
	} else {
		document.open();
		if(lnk != '') document.write ('<a href="'+ lnk +'">');
		document.write('<img src="'+ pic +'" width="'+ wid +'" height="'+ heg +'"/>')
		if(lnk != '') document.write ('</a>');
		document.close();
	}
}

//--------------------------------// Get Splitted Link
function GetLink (splited_link, target) {
	newlink = unescape(splited_link).replace(/\|/g, '');

	if (target == 1 && newlink.substr(0, 6) != 'mailto') {
		newwin = window.open(newlink, '_blank', 'toolbar=1,scrollbars=1,status=1,location=1,menubar=1,resizable=1,personalbar=1');
		if (newwin) {
			newwin.focus();
		}
	} else {
		window.location = newlink;
	}
}

//--------------------------------// Slide
function Slide (id) {
	if (!(objb = document.getElementById(id+'_block')) || !(objl = document.getElementById(id+'_link'))) {
		return;
	}

	if (!objb.style.display || objb.style.display == 'none') {
		objb.style.display = 'block';
		objl.className = 'slideopen';
	} else {
		objb.style.display = 'none';
		objl.className = 'slideclose';
	}
}

// Hide production filter form if it need
function collapse_production_filter () {
    var objDiv = $('sl_2_block');

    if (!objDiv) {
        return;
    }

    if (!objDiv.hasClassName('dontclose')) {
        objDiv.style.display = 'none';
    } else {
        objDiv.style.display = 'block';
    }
}

// Preform selects form elements for filter form
function preform_selects () {
	var objSelect, objSubElements, arElements;

	$$('div.select_window').each(function (objDiv) {
		objSelect = objDiv.previous('select');

		// Hide html-select
		if (objSelect) {
			objSelect.hide();
		}

		// Show designed select.
		objDiv.style.display = 'block';

		// Add click event on designed select.
		objDiv.observe('click',
			function (event) {
				var objDiv = Event.findElement(event, 'div.select_window');
				objDiv.down('div.select_list').toggle();
				objDiv.style.zIndex = (objDiv.style.zIndex == '12')?'1':'12';
			}
		);

		objSubElements = objDiv.down('div.select_list');

		// Add behaviour to designed select options (<a>).
		if (objSubElements) {
			objSubElements.hide();

			objSubElements.getElementsBySelector('a').each(function (objA) {
				objA.observe('click',
					function (event) {
						var objA = Event.element(event);

						var objDiv = objA.up('div.select_window');

						// Change select and designed select value.
						objDiv.previous('select').value = objA.name;
						objDiv.down('input.default').value = (objA.innerHTML == '' || objA.innerHTML == '&nbsp;') ? '' : htmlToText(objA.innerHTML);

						objDiv.down('div.select_list').hide();
						objDiv.style.zIndex = '1';

						Event.stop(event);
					}
				);
			});
		}
	});
}


function htmlToText (strText) {
    return strText.
        replace(/&gt;/g, '>').
        replace(/&lt;/g, '<').
        replace(/&nbsp;/g, ' ').
        replace(/&quot;/g, '"').
        replace(/&amp;/g, '&');
}


function add_collapse_characteristics_click() {
	// Add show/hide characteristics concatenation for collapsed category on product page.
	$$('td.collapse_block_characteristics').each(function (objTD) {
		var objA = objTD.previous().down('a');

		objA.observe('click',
			function (event) {
				var objA = Event.element(event);

				var objTD = objA.up('td').next();

				if (objA.className != 'slideopen') {
					objTD.hide();
				} else {
					objTD.show();
				}

				objA.blur();
			}
		);
	});
}
/*******new_mega_cart*******/
var new_cart = function () {
	var inputs = document.getElementsByTagName('INPUT');
	var inputs_q = inputs.length;
	for (var i = 0 ; i < inputs_q ; ++i){
		if (!(inputs[i].className == 'button_cart' && inputs[i].parentNode.parentNode.className=='add_to_cart')) {
			continue;
		}
		inputs[i].onclick = popInputer;
	}
}
var popInputer = function(){
	var thisId = this.id;
	var thisParent = this.parentNode;
	var popInput = document.getElementById('mega_'+thisId);
	if (popInput) {
		popInput.className = (popInput.className == 'popupInput popupInputThere')? 'popupInput popupInputHere':'popupInput popupInputThere';
		thisParent.style.zIndex = (thisParent.style.zIndex == '10')? '1':'10';
	}
}

// Cart scripts

function addProductToCart (iProductId, iCount) {
	
	iProductId = parseInt(iProductId);
	iCount = parseInt(iCount);
	if(! window.new_mega_cart_blocked || !window.new_mega_cart_blocked[iProductId] )
	{
		if( !window.new_mega_cart_blocked )
		{
			window.new_mega_cart_blocked = Array();
		}
		
		window.new_mega_cart_blocked[iProductId] = true;
		
		if (iProductId <= 0 || iCount <= 0) {
			return;
		}
		
		// сначала сымем фокус, а потом будем сабмитить
		var objInput = document.getElementById('cart[product]['+iProductId+']');
		if (objInput) {
			objInput.blur();
		}
		var objButton = document.getElementById('cart_button_'+iProductId);
		if (objButton) {
			objButton.blur();
		}
		
	
		try {
			strUrl = 'http://'+window.location.host+'/cart/add/'+iProductId+'/?ajax=1&count='+iCount;
	
			ajax_updater = new Ajax.Request(strUrl, {
				method: 'get',
				onSuccess: function(transport) {
					var response = transport.responseText || '';
					if (response.length == 0) {
						alert('Не удалось добавить товар в корзину из-за технической ошибки.');
					} else {
						alert(response);
						ajaxUpdateCartInfo();
					}
	
					document.getElementById('cart_button_'+iProductId).click();
					window.new_mega_cart_blocked[iProductId] = false;
				},
				onFailure: function() {
					alert('Не удалось добавить товар в корзину из-за технической ошибки.');
	
					document.getElementById('cart_button_'+iProductId).click();
					
					window.new_mega_cart_blocked[iProductId] = false;
				}
			});
	
		} catch (err) {}
	}
}


function addProductToCart_Response (response) {
	alert(response);
}


function ajaxPostForm (objForm) {
	var strErrorMsg = 'Не удалось добавить товар в корзину из-за технической ошибки.';

/*	var wnd = window.open('');

	for (var i in objForm) {
		wnd.document.write(i +'='+ objForm[i] +'<br/>');
	}

	return false;*/

	try {
		var arPostData = new Array();

		for (var i = 0; i < objForm.elements.length; i++) {
			if (typeof(objForm.elements[i].value) == 'undefined' || objForm.elements[i].value.length == 0) {
				continue;
			}

			arPostData.push(objForm.elements[i].name + '=' + encodeURI(objForm.elements[i].value));
		}

		strUrl = objForm.action + '?ajax=1';

		ajax_updater = new Ajax.Request(strUrl, {
			method: 'post',
			postBody: arPostData.join('&'),
			onSuccess: function(transport) {
				var response = transport.responseText || '';
				if (response.length == 0) {
					alert(strErrorMsg);
				} else {
					alert(response);
					ajaxUpdateCartInfo();
				}
			},
			onFailure: function() {
				alert(strErrorMsg);
			}
		});
	} catch (err) {
		alert(strErrorMsg);
	}

	return false;
}


var bUpdateCartInfoState = false;

function ajaxUpdateCartInfo () {
	if (bUpdateCartInfoState) {
		return;
	}

	var objCartDiv = $$('#hidden_o1').first().down('ul');

	if (! objCartDiv) {
		return;
	}

	bUpdateCartInfoState = true;

	try {
		strUrl = 'http://'+window.location.host+'/cart/info/';

		ajax_updater = new Ajax.Request(strUrl, {
			method: 'get',
			onSuccess: function(transport) {
				var response = transport.responseText || '';

				/*var arValues = response.split('#');

				if (arValues.length == 3) {
					objCartDiv.down('li', 0).down('em').innerHTML    = arValues[0];
					objCartDiv.down('li', 1).down('em', 0).innerHTML = arValues[1];
					objCartDiv.down('li', 1).down('em', 1).innerHTML = arValues[2];
				}*/

				objCartDiv.innerHTML = response;

				bUpdateCartInfoState = false;
			},
			onFailure: function() {
				bUpdateCartInfoState = false;
			}
		});
	} catch (err) {
	}
}
