var openBlock=false;
function openCloseTypeDescription() {
	if (document.getElementById('typeDescription')) var typeDescription = document.getElementById('typeDescription');
	if (document.getElementById('readMore')) var readMore = document.getElementById('readMore');
	if (!openBlock) {
 		typeDescription.style.height='auto';
		openBlock=true;
		readMore.firstChild.nodeValue='Закрыть';
	}	
	else {
		typeDescription.style.height='30px';
		openBlock=false;
		readMore.firstChild.nodeValue='Читать еще >>>';
	}
}

var itemPanelsFormName = 'itemPanelsForm';
var comparePanelName = 'itemsToCompareForm';
function Cookie(document, name, path, domain) {
    this.$document = document;
    this.$name = name;
	this.compareItems = new Array();
	this.compareItemsNames = new Array();
	this.itemsChecked = new Array();
	this.compareType = false;
    if (path) this.$path = path; else this.$path = null;
    if (domain) this.$domain = domain; else this.$domain = null;
}

Cookie.prototype.store = function () {
    var cookieval = "";
    for(var prop in this) {
        if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function'))
            continue;
		if ((typeof this[prop]) == 'object') {
			if (prop.length !=null) {
				for (var element in this[prop]) {
					if (this[prop][element] !=null) {
						if (cookieval != "") cookieval += '&';
        				cookieval += element + ':' + encodeURI(this[prop][element]);
					}
				}
			}

			continue;
		}
        if (cookieval != "") cookieval += '&';
        cookieval += prop + ':' + encodeURI(this[prop]);
    }

    var cookie = this.$name + '=' + cookieval;
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
	this.$document.cookie = cookie;
}

Cookie.prototype.loadForCompare = function() {
    var allcookies = this.$document.cookie;
    if (allcookies == "") return false;
    var start = allcookies.indexOf(this.$name + '=');
    if (start == -1) return false;
    start += this.$name.length + 1;
    var end = allcookies.indexOf(';', start);
    if (end == -1) end = allcookies.length;
    var cookieval = allcookies.substring(start, end);
    var a = cookieval.split('&');
    for(var i=0; i < a.length; i++)
        a[i] = a[i].split(':');
    for(var i = 0; i < a.length; i++) {
		if (a[i][0].indexOf('compareItemName')!=-1) {
			this.compareItemsNames[a[i][0]] = unescape(decodeURI(a[i][1]));
			this.compareItemsNames.length++;
		}
		else if (a[i][0].indexOf('compareItem')!=-1) {
			this.compareItems[a[i][0]] = unescape(decodeURI(a[i][1]));
			this.compareItems.length++;
		} else if (a[i][0].indexOf('compareType')!=-1) {
			this.compareType = unescape(a[i][1]);
		} else if (a[i][0].indexOf('itemChecked')!=-1) {
			this.itemsChecked[a[i][0]] = unescape(decodeURI(a[i][1]));
			this.itemsChecked.length++;
		}
    }
    return true;
}

Cookie.prototype.remove = function() {
    var cookie;
    cookie = this.$name + '=';
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
    cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';
    this.$document.cookie = cookie;
	this.compareItems.length=null;
	this.compareItemsNames.length=null;
	this.itemsChecked.length=null;
	this.compareType = false;
}

function addToCompareCookie (itemId,name,type) {
	if (compareCookie.compareItems ) {
		var countCompareCookies = compareCookie.compareItems.length;
		
		if (countCompareCookies==0) {
			compareCookie.compareType=type;
		}
		compareCookie.compareItems['compareItem'+(countCompareCookies+1)] = itemId;
		compareCookie.compareItems.length++;
		compareCookie.store();
	}
	if (compareCookie.compareItemsNames ) {
		compareCookie.compareItemsNames['compareItemName' + (countCompareCookies+1)] = name;
		compareCookie.compareItemsNames.length++;
		compareCookie.store();
	}
	if (compareCookie.itemsChecked ) {
		compareCookie.itemsChecked['itemChecked' + (countCompareCookies+1)] = 'true';
		compareCookie.itemsChecked.length++;
		compareCookie.store();
	}
}

function renewPanelsFromCompareForm (itemId, checkbox) {
	var check = checkbox.checked;
	if (!check) { 
		compareCookie.itemsChecked['itemChecked' + checkbox.name.slice(11)]='false';
	} else {
		compareCookie.itemsChecked['itemChecked' + checkbox.name.slice(11)]='true';
	}
	if ( document.forms[itemPanelsFormName] != null && typeof(document.forms[itemPanelsFormName]) != 'undefined' ) {
		var formElements = document.forms[itemPanelsFormName].elements;
	    for (var count = 0; count < formElements.length; count++) {
		    var formElement = formElements[count];
            if (formElement.type == "checkbox" && formElement.name.substring(0,7) == "compare") {
                if (formElement.value==itemId) {
					if (!check) { formElement.checked=false; }
					else { formElement.checked=true; }
		        } else { continue;  }
		    }
	    }	
	} 
	compareCookie.store();
}

function assignNames() {
	var items = new Array ();
	var i=1;
	for (el in compareCookie.compareItems) {
		var id = compareCookie.compareItems[el];
		items[eval(id)]=compareCookie.compareItemsNames['compareItemName'+i];
		i++;
	}
	return items;
}
var checkedItems = '';
function renewPanelByCookie() {
	if (document.getElementById('itemsToCompare')) {
		var compareList=document.getElementById('itemsToCompare');
		var compareFormElements = document.forms[comparePanelName].elements ;
		if (compareCookie.compareItems) {
			var items = assignNames();
			var i = 1;
			for (element in items) {
				var checked = eval(compareCookie.itemsChecked['itemChecked' + i]);
				compareList.appendChild(createCompareItemString(element, items[element], checked));
				if (checked) {
					checkedItems = checkedItems + element + ',';
					compareFormElements[compareFormElements.length-1].checked = 'checked';
				}
				i++;
			}
		}
	}
	
}
function renewItemPanelsByCookie() {
	if ( document.forms[itemPanelsFormName] != null && typeof(document.forms[itemPanelsFormName]) != 'undefined' ) {
        var compareFormElements = document.forms[comparePanelName].elements ;
		var formElements = document.forms[itemPanelsFormName].elements;
		for (var count = 0; count < formElements.length; count++) {
		    var formElement = formElements[count];
            if (formElement.type == "checkbox" && formElement.name.substring(0,7) == "compare") {
                if (document.getElementById(formElement.value+'Li') && checkedItems.indexOf(formElement.value) !=-1) {
					formElement.checked=true;
		        } else {
					formElement.checked=false;
		        }
		    }
	    }
    }
}

function createCompareItemString (itemId, name, checked, type) {
	if (document.forms[comparePanelName].elements) {
		countCheckboxes = document.forms[comparePanelName].elements.length;
	} else { 
		countCheckboxes=0;
	}
	itemLi=document.createElement('li');
	itemLabel=document.createElement('label');
	itemName=document.createTextNode(name);
	itemCheckboxDiv=document.createElement('div');
	itemCheckboxDiv.className = 'checkboxWrapper';
	itemCheckbox=document.createElement('input');
	
	clearDiv=document.createElement('div');
	clearDiv.className='clear';
	itemCheckbox.type='checkbox';
	if (checked) itemCheckbox.checked='checked';
	itemCheckbox.name='compareItem'+(countCheckboxes+1);
	itemCheckbox.value=itemId;
	itemCheckbox.onclick = function () {renewPanelsFromCompareForm (itemId, this)};
	
	itemLabel.appendChild(itemName);
	itemLi.appendChild(itemLabel);
	itemCheckboxDiv.appendChild(itemCheckbox);
	itemLi.appendChild(itemCheckboxDiv);
	itemLi.appendChild(clearDiv);
	itemLi.id=itemId+'Li';
	return itemLi;
}

function clearCompareList() {
	compareList=document.getElementById('itemsToCompare');
	if (compareList.hasChildNodes()) {
		do {
			compareList.removeChild(compareList.lastChild);
		} while (compareList.hasChildNodes());
		compareCookie.remove();	
		renewItemPanelsByCookie()
	}
}
function renameCompareCheckboxesCookies (type) {
	if (document.forms[comparePanelName]) compareForm = document.forms[comparePanelName];
	for (i=1; i<=compareForm.elements.length; i++) {
		compareForm.elements[i-1].name='compareItem'+i;
		compareForm.elements[i-1].checked='checked';
		compareCookie.compareItems['compareItem' + i] = compareForm.elements[i-1].value;
		checkedItems = checkedItems + compareForm.elements[i-1].value + ',';
		compareCookie.compareItemsNames['compareItemName' + i] = compareForm.elements[i-1].parentNode.previousSibling.firstChild.nodeValue;
		compareCookie.itemsChecked['itemChecked' + i] = 'true';
		