function itemShow(e) {
	Event.stop(e);
    var currElem = Event.element(e);
	var tooltipName = 'footnote' + currElem.getAttribute('id');
	var posX = Event.pointerX(e);
	var posY = Event.pointerY(e);
	var moveX = posX + 8;
	var moveY = posY + 8;
	var pageSize = getPageSize();
	var shift = $(tooltipName).getWidth();
	
	if (posX + shift > pageSize.pageWidth) moveX = pageSize.pageWidth - shift;
	if (posY + shift > pageSize.pageHeight) moveY = pageSize.pageHeight - shift;
	
	Element.setStyle(tooltipName, { position:'absolute',
		top: moveY + "px",
		left: moveX + "px",
		zIndex: 10000,
		display: 'block'
	});
	
	return false;
}


function itemHide(e) {
	Event.stop(e);
    var currElem = Event.element(e);
	var tooltipName = 'footnote' + currElem.getAttribute('id');
	Element.hide(tooltipName);
	return false;   
}

function selectTabs(e){
	Event.stop(e);
    var currElem = Event.element(e);
    if(!Element.hasClassName(currElem, 'tabSelected')) currElem.className = 'tabSelected';
}

function deselectTabs(e){
	Event.stop(e);
    var currElem = Event.element(e);
    if(!Element.hasClassName(currElem, 'tabItem')) currElem.className = 'tabItem';
}

function goTo(e){
	Event.stop(e);
    var currElem = Event.element(e);
    initTabs(currElem.getAttribute('id'));
}


function initTabs(activeMenu){
	var someNodeList = document.getElementsByTagName('TD');
	var nodes = $A(someNodeList);
	
	Event.unloadCache();
	nodes.each(function(node){
		if(Element.hasClassName(node, 'tabItem') || 
			Element.hasClassName(node, 'tabItemActive') || 
			Element.hasClassName(node, 'tabSelected')
		){
			if(node.getAttribute('id') == activeMenu){
				node.className = 'tabItemActive';
				Event.stopObserving(node, 'mouseover', selectTabs);
				Event.stopObserving(node, 'mouseout', deselectTabs);
				Event.stopObserving(node, 'click', goTo);
				manageBlock(node.getAttribute('id') + '-block', 1);
			} else {
				node.className = 'tabItem';
				Event.observe(node, 'mouseover', selectTabs);
				Event.observe(node, 'mouseout', deselectTabs);
				Event.observe(node, 'click', goTo);
				manageBlock(node.getAttribute('id') + '-block', 0);
			}
		}
	});
}


// attaching events to sort items
function initEvents() {
    $$('A.toolTip').each(function(node){
		Event.observe(node, 'click', itemShow);
    });
    $$('A.toolTipClose').each(function(node){
		Event.observe(node, 'click', itemHide);
    });
    $$('A.advPopUpLink').each(function(node){
		var ImageObj = new Image();
		ImageObj.src = node.getAttribute('href');
		ImageObj.style.display = 'none';
		node.appendChild(ImageObj);
		Event.observe(node, 'click', showAdvImg);
    });

    return false;
}


function init() {
    initEvents();
    checkBookmarkStatus();
    onLoadCountry();
    onLoadRegion();
    selectPersonStatus();
}

window.onload = init;


function manageBlock(which, status) {
	$(which).setStyle({ display: (status == 1) ? 'block' : 'none'});
}

function hideField(which){
	var f = which.form;
	var name = which.name;
	
	for(var i=0; i<f.elements[name].length; i++){
		if(f.elements[name][i] != which){
			f.elements[name][i].disabled = (which.checked) ? true : false;	
		}
	}
}


function hideManyBlock(str) {
	var arr = str.split(",");
	
	for(var i=0;i<arr.length;i++) {
		manageBlock(arr[i], 0);
	}
}


function manageFieldByClassName(formID, elementName) {
	$A($(formID).getInputs('radio', elementName)).each(function(item){
		$$('div[class~=' + item.name + '' + item.value + '] >').each(function(element) {
			if(item.checked){
				element.show();
				manageFieldElementsState(element, 'INPUT', 'enable'); 
				manageFieldElementsState(element, 'SELECT', 'enable'); 
				manageFieldElementsState(element, 'TEXTAREA', 'enable');
			} else {
				element.hide();
				manageFieldElementsState(element, 'INPUT', 'disable'); 
				manageFieldElementsState(element, 'SELECT', 'disable'); 
				manageFieldElementsState(element, 'TEXTAREA', 'disable');
			}
		});
		$$('div[class~=' + item.name + '' + item.value + ']').each(function(element) {
		    if(item.checked){
		        element.show();
		    } else {
		        element.hide();
		    }
		 });
	});
}

function manageFieldElementsState2(which, tagName, status){
	$A(which.getElementsByTagName(tagName)).each(function(el){
		if(el){
		    if(el.tagName == 'INPUT' && $$('input[name=' + el.name.substring(1) + ']').length > 0) {
		        status = 'disable';
		        $$('input[name=' + el.name.substring(1) + ']').each(function(item) {
		            if (item.hasClassName('withTextInput') && item.checked == true) {
		                status = 'enable';
		            }
		            if (status == 'disable') {
			            el.addClassName('disabled');
			        } else {
			            el.removeClassName('disabled');
			        }
		        });
		    }
			el.disabled = (status == 'enable') ? false : true;
			
		}
	});
}

function toggleForm(sFormID, status) {
    var status = parseInt(status, 10);
    $$('#' + sFormID + ' .toggled').each(function(element) {
        if (element.hasClassName('toggle' + status)) {
            element.show();
            manageFieldElementsState2(element, 'INPUT', 'enable'); 
			manageFieldElementsState2(element, 'SELECT', 'enable'); 
			manageFieldElementsState2(element, 'TEXTAREA', 'enable');
        } else {
            element.hide();
            manageFieldElementsState2(element, 'INPUT', 'disable'); 
			manageFieldElementsState2(element, 'SELECT', 'disable'); 
			manageFieldElementsState2(element, 'TEXTAREA', 'disable');
        }
    });
    $(sFormID + 'ToggleLink').innerHTML = (status == 1) ? 'короткий вариант' : 'расширенный вариант';
    status = (status == 0) ? 1 : 0;
    $(sFormID)['toggle-status'].value = status;
}


function manageFieldElementsState(which, tagName, status){
	$A(which.getElementsByTagName(tagName)).each(function(el){
		if(el){
			el.disabled = (status == 'enable') ? false : true;
		}
	});
}

function checkPeriodicalStatus(start, period){
	var f = $('subscriptionForm');
	if(f){
		var startDateSelect = f[start];
		var periodSelect = f[period];
		
		if(startDateSelect.options){
			var startDate = startDateSelect.options[startDateSelect.selectedIndex].value;
			var periodIndex = periodSelect.options[periodSelect.selectedIndex].value;
			var realPeriod = [3, 6, 12];
			
			var priceList = globalPriceList.length > 0 ? globalPriceList : [
				{id: 0, data: [2520, 5040, 9240]},
				{id: 1, data: [2880, 5760, 10560]},
				{id: 2, data: [2880, 5760, 10560]},
				{id: 3, data: [3870, 7740, 14190]},
				{id: 4, data: [18000, 18000, 18000]},
				{id: 5, data: [0, 20160, 24960]},
				{id: 6, data: [0, 20160, 24960]},
				{id: 7, data: [0, 22140, 28590]},
				{id: 268435456, data: [18000, 18000, 18000]},
				{id: 268435457, data: [0, 20160, 24960]},
				{id: 268435458, data: [0, 20160, 24960]},
				{id: 268435459, data: [0, 22140, 28590]},
				{id: 268435460, data: [28800, 28800, 28800]},
				{id: 268435461, data: [0, 34560, 39360]},
				{id: 268435462, data: [0, 34560, 39360]},
				{id: 268435463, data: [0, 36540, 42990]}
			];
			var booksID = globalBooksID.length > 0 ? globalBooksID : [4, 268435456];

			var d = convertToDate(startDate);		
			var total = 0;
			var item16_checked = false;
			
            
            $A(f['periodical']).each(function(item){ 
				if (item.value == 16 && item.checked){
				    item16_checked = true;
				}
			});
						
			$A(f['periodical']).each(function(item){ 
				if (item16_checked && item.value != 16) {
				  item.checked = false;
				}
				
			});
			
			$A(f['periodical']).each(function(item){ 
				/*if(item.value == 2){
					item.disabled = (d.getFullYear() < 2008) ? true : false;
					if (item.disabled){
						item.checked = false;
					}
				}
				*/
				
				/*if (item.value == 16 && item.checked){
				    $A(['periodical']).findAll(function(item){return (item.disable = true);});
				    item.disable = false;
				}*/
				if(booksID.include(item.value) && item.checked){
					//item.disabled = (d.getFullYear() < 2008 || realPeriod[periodIndex] < 6) ? true : false;
					//if (item.disabled){
					//	item.checked = false;
					//}
					periodSelect.options[2].selected = true;
					periodSelect.options[0].selected = false;
				}
				if (booksID.include(item.value)) {
				//    var hasPeriodical = ($A(f['periodical']).findAll(function(item) { return (item.checked && !booksID.include(item.value))}).length > 0) ? true : false;
				//    item.disabled = (realPeriod[periodIndex] == 3 || (realPeriod[periodIndex] == 6 && !hasPeriodical)) ? true : false;
				//    if (item.disabled){
				//		item.checked = false;
				//	}
				}
				if(item.checked && !item.disabled){ total += parseInt(item.value, 10); } 
			});
			
			var delta = (d.getFullYear() < 2009) ? 1 : 0;
			var price = priceList.find(function(o) {return o.id == total - delta;}).data;
			
			f['sum'].value = total == 0 ? 0 : price[periodIndex];
			f['sum'].readOnly = true;
		}
	}
}

function convertToDate(str){
    var re = /^([0-9]{2}).([0-9]{2}).([0-9]{4})$/;
    var dt=re.exec(str);

	return new Date(dt[3], dt[2]-1, dt[1]);
}


/*function manageField(which, name, status) {
	var f = which.form;
	
	f.elements[name].disabled = (status == 1) ? true : false;
	if(status != 1){
		f.elements[name].style.backgroundColor = '#ffffff';
		f.elements[name].focus();
	} else {
		f.elements[name].style.backgroundColor = '#f5f5f5';
	}
}*/

function manageField(which, name, status) {
	var f = which.form;
	
	f.elements[name].disabled = (status == 1) ? true : false;
	if(status != 1){
	    f.elements[name].removeClassName('disabled');
		f.elements[name].focus();
	} else {
	    f.elements[name].addClassName('disabled');
	}
}

function manageRadioField(which) {
    var f = which.form;
	$A(f.getInputs('radio', which.name)).each(function(item){
		$$('input[class~=textInput]').each(function(element) {
			if(item.checked && element.name == 's' + item.name){
				element.disabled = false;
				element.removeClassName('disabled');
			} else {
				element.disabled = true;
				element.addClassName('disabled');
			}
		});
	});
}

function addFormField(which, name, value, type)
{
	var f = which.form;
	var field = document.createElement('input');
	field.name = name;
	field.type = type;
	field.value = value;
	f.appendChild(field);
}


function manageCountCheckbox(w, c)
{
	var form = w.form;
	var elC = 0;
	var checkEl = document.getElementsByName(w.name);
	for(var i=0;i<checkEl.length;i++) {
		if(checkEl[i].type == "checkbox" && checkEl[i].checked) {
			elC++;
		}
	}
	for (var y = 0; y < checkEl.length; y++)
	{
		if (elC == c)
		{
			checkEl[y].disabled = (checkEl[y].checked == false) ? true : false;
		}
		else
		{
			checkEl[y].disabled = false;
		}
	}
}


function manageCheckbox(name, id) {
	var aChk = document.getElementsByName(name);
	for(var i=0;i<aChk.length;i++) {
		if(document.getElementById(id).checked == true) {
			if(aChk[i].type == "checkbox") {
				if(aChk[i].id != id) {
					aChk[i].checked=false;
					aChk[i].disabled=true;
				}
			}
		} else {
			if(aChk[i].disabled == true) {
				aChk[i].disabled = false;
			}
		}		
	}
}


function deliveryCard2()
{
		var index = document.getElementsByName("subsIndex");
		var sIndex;
		for(var i = 0; i < index.length; i++)
		{
			if (index[i].checked)
			{
				sIndex = index[i].value;
			}
		}
		var period = document.getElementsByName("subsPeriod");
		var sPeriod;
		for(var i = 0; i < period.length; i++)
		{
			if (period[i].checked)
			{
				sPeriod = period[i].value;
			}
		}
		var date = document.getElementsByName("subsDate");
		var sdate;
		for(var i = 0; i < date.length; i++)
		{
			if (date[i].checked)
			{
				sDate = date[i].value;
			}
		}
		
		if (sIndex == '60001' || sIndex == '60110')
		{
			manageRadio('subsPeriod', ['3', '6'], 1, '12');
			manageRadio('subsPeriod', ['12'], 0, '12');
			manageRadio('subsDate', ['01.10.2006', '01.04.2007'], 1, '01.01.2007');
		}
		else if (sIndex= '60100' || sIndex == '60111')
		{
			manageRadio('subsPeriod', ['12'], 1, sPeriod);
			//manageRadio('subsDate', ['01.01.2007'], 0, '01.01.2007');
		}
		if (sDate == '01.10.2006' || sDate == '01.04.2007')
		{
			manageRadio('subsPeriod', ['6', '12'], 1, '3');
			manageRadio('subsPeriod', ['3'], 0, '3');
		}
}

function manageRadio(name, v, s, d) {
	var aChk = document.getElementsByName(name);
	for(var i=0;i<aChk.length;i++) {
	
		if(getParInArray(v, aChk[i].value))
		{
			aChk[i].disabled = (s == 1) ? true : false;
		}
		aChk[i].checked = (d == aChk[i].value) ? true : false;
	}
}
function getParInArray(a, p)
{
	var r = false;
	for ( var i =0; i < a.length; i++)
	{
		if (a[i] == p)
		{
			r = true;
		}
	}
	return r;
}

function checkingField(name, status, disabled) {
	var checkEl = document.getElementsByName(name);
	for(var i=0;i<checkEl.length;i++) {
		if(checkEl[i].type == "checkbox") {
			checkEl[i].checked = (status == 1) ? true : false;
			checkEl[i].disabled = (status == 1 && disabled == 1) ? true : false;
		}
	}
}


function popUpForm(code, invoice, type) {
	var uri = "/subscription/SWizard_" + type + ".aspx?code=" + code + "&invoice=" + invoice + "&u" + (new Date()).getTime();
	var height = (type == 'SP1') ? 620 : 600;
	var width = (type == 'SP1') ? 520 : 700;
	aWindow = window.open(uri,null,"height=" + height + ",width=" + width + ",status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes");
	/*if (aWindow) 
		aWindow.print();*/
}
function popUpRating(id) {
	var uri = "/magazine/article/Rating.aspx?id=" + id + "&u" + (new Date()).getTime();
	var wdth=200;
	var hght=200;
	var wc=parseInt((screen.availWidth-wdth)/2);
	var hc=parseInt((screen.availHeight-hght)/2);
	aWindow = window.open(uri,'rating','top='+hc+',left='+wc+',width='+wdth+',height='+hght+',screenY='+hc+',screenX='+wc+',status=yes,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no');
	aWindow.focus();
	return false;
}

function popUpImg(img) {
	var tmp=new Image;
	tmp.src=img;
	tmp.onload = function (evt) {
	    var wdth=tmp.width+36;
	    var hght=tmp.height+36;
	    var wc=parseInt((screen.availWidth-tmp.width)/2);
	    var hc=parseInt((screen.availHeight-tmp.height)/2);
	    if (typeof(aWindow) != "undefined")
		    aWindow.close();
	    aWindow = window.open(img,'popup','top='+hc+',left='+wc+',width='+wdth+',height='+hght+',screenY='+hc+',screenX='+wc);
	    aWindow.focus();
	}
}

function submitViaEnter(which, evt, name)
{
	evt = (evt) ? evt : event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var form = which.form;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
	if (charCode == 13) {
		form.elements[name].click();
	}
}

function selectRemoveOption(el, value) {
	for(var i=0; i<el.options.length; i++) {
		if(el.options[i].value == value)
			el.remove(i);
	}
}

function selectAddOption(el, value, text, selected) {
	var myO = new Option(text,value);
	el.options.add(myO);
	if (selected) {
		myO.selected = true;
	}
}

function selectAddOptionToGroup(el, value, text, selected) {
	var myO = new Option(text,value);
	el.add(myO);
	if (selected) {
		myO.selected = true;
	}
}
function selectAddOptionG(el, value, text, name) {
	var optGroup = document.createElement('optgroup');
	optGroup.label = text;
	optGroup.id = name + "group" + value;
	el.options.add(optGroup);
}


function changeRegion(which, dest) {
	var f = which.form;
	var cityEl = $A(f.elements[dest]).find(function(n){ return n.disabled == false; });
	if(!cityEl){
		cityEl = f[dest];
	}
	
	switch(which.options[which.selectedIndex].text){
		case 'Москва':
		case 'Санкт-Петербург':
			cityEl.value = which.options[which.selectedIndex].text;
			break;
		default:
		    if(cityEl.value.indexOf('Москва') > -1 || cityEl.value.indexOf('Санкт-Петербург') > -1){
				cityEl.value = '';	
			}
			break;	
	}
}


function changeZipCodePattern(which, suffix){
	var f = which.form;
	var cityEl = $A(f.elements['cityName' + suffix]).find(function(n){ return n.disabled == false; });
	if(!cityEl){
		cityEl = f['cityName' + suffix];
	}
	var regEl = $A(f.elements['region' + suffix]).find(function(n){ return n.disabled == false; });
	if(!regEl && $('subscriptionForm')){
		var suff = $A($('subscriptionForm').getInputs('radio', 'subscriberType')).find(function(item){ return item.checked });
		regEl = $$('TR[class="subscriberType' + suff.value + '"] > TD > SELECT[name="' + 'region' + suffix + '"]')[0];
	} else {
		regEl = f['region' + suffix];
	}
	var zipEl = $A(f.elements['postIndex' + suffix]).find(function(n){ return n.disabled == false; });
	if(!zipEl){
		zipEl = f['postIndex' + suffix];
	}
	var asterixEl = document.getElementById('requiredMarkregion' + suffix);
	
	if(which.value != 10){
		regEl.disabled = true;
		zipEl.maxLength = 15;
		if(cityEl.value.indexOf('Москва') > -1 || cityEl.value.indexOf('Санкт-Петербург') > -1){
			cityEl.value = '';	
		}
		asterixEl.style.display = 'none';
	} else {
		regEl.disabled = false;
		zipEl.maxLength = 6;
		zipEl.value = zipEl.value.substring(0,6);
		asterixEl.style.display = '';
		
		switch(regEl.value){
			case '77':
				if(cityEl.value.indexOf('Москва') == -1){ cityEl.value = 'Москва';}
				break;
			case '78':
				if(cityEl.value.indexOf('Санкт-Петербург') == -1){ cityEl.value = 'Санкт-Петербург';}
				break;
		}
	}
}


function onLoadCountry(state)
{
	if(document.getElementsByName('country')[0] != null)
	{
		if(document.getElementsByName('region')[0] != null)
		{
			if(document.getElementsByName('postIndex')[0] != null)
			{
				var countryElement = document.getElementsByName('country')[0];
				var regionElement = document.getElementsByName('region')[0];
				var postIndexAttribute = document.getElementsByName('postIndex')[0].attributes.getNamedItem("maxlength");

				if(countryElement.value != 0)
				{
					if(countryElement.value != 10)
					{
						postIndexAttribute.value = 15;
						regionElement.value = 0;

						var spanTags = document.getElementsByTagName('span');

						for(var i = 0; i < spanTags.length; i++)
						{
							if(spanTags[i].attributes.getNamedItem("class").value == 'requiredMark' && spanTags[i].parentNode.innerText.indexOf('Регион') > -1)
							{
								spanTags[i].style.display = 'none';
							}
						}
						regionElement.disabled = true;
					}
				}
			}
		}
	}
}

function onLoadRegion() {
	if(document.getElementsByName('region')[0] != null) {
		var el = document.getElementsByName('region')[0].options;
		
		if(el){
			if(document.getElementsByName('cityName')[0] != null) {
				var el2 = document.getElementsByName('cityName')[0];
			}
			
			if(el2) {
				for(var i=0; i<el.length; i++) {
					if((el[i].text == 'Москва' || el[i].text == 'Санкт-Петербург') && el[i].selected) {
						el2.value = el[i].text;
					}
				}
			}
		}
	}
}

function showWTB(type) {
	var hide = (type == 'wtbRegion') ? 'wtbName' : 'wtbRegion';
	changeWTB(type);
	document.getElementById(type).disabled = false;
	document.getElementById(hide).disabled = true;
}

function changeWTB(type) { 
	var sel = document.getElementById(type);
	var id = (type == 'wtbRegion') ? "wtbRegion" + sel.options[sel.selectedIndex].value : "wtbName" + sel.options[sel.selectedIndex].value;
	var allDiv = document.getElementsByTagName('div');
	
	for (var i = 0; i < allDiv.length; i++) {
		if (allDiv.item(i).className == 'wtb') {
			allDiv.item(i).style.display = (allDiv.item(i).id == type + sel.options[sel.selectedIndex].value) ? "block" : "none";
		}
	}
}

function showSCA(type)
{
	var hide;
	if (type == 'scaCountry')
	{
		var element = $(type);
		var iSelectedCountry = $F(type);
		
		if (iSelectedCountry == 1) //Если Россия
		{
			var id = 'scaCity' + '1'; //Москва
			
			$A($$('div[class="sca"]')).each(function(node){
			    node.style.display = (node.id == id) ? "block" : "none";
			});
		}
	}
}

function changeSCA(type) {
	var id = ((type == 'scaCountry') ? "scaCountry"  : "scaCity") + $F(type);
	var iSelectedCountry;
	var enable = 'cityHide';
	
	if (type == 'scaCountry')
	{
		var iSelectedCountry = $F(type);
		
		if (iSelectedCountry == 1) //Если Россия
		{
			$(enable).style.display = "";
			id = "scaCity" + $F('scaCity');
		}
		else //Все остальные города
		{
			$(enable).style.display = "none";
		}
	}

    $A($$('div[class="sca"]')).each(function(node){
	    node.style.display = (node.id == id) ? "block" : "none";
	});

}

function selectPersonStatus()
{
	var TR_ID = "buymagazines_corporate";

	if (document.getElementById(TR_ID) != null)
	{
		var allTR = document.getElementsByTagName('tr');
		
		var selectElem = document.getElementsByName('howToPay');
		
		var selectElemValue;
		
		for (var i = 0; i < selectElem.length; i++)
		{
			if (selectElem[i].checked)
			{
				selectElemValue = selectElem[i].value;
			}
		}
		
		for (var i = 0; i < allTR.length; i++)
		{
			if (allTR.item(i).id == TR_ID)
			{
				if (selectElemValue == 1)
				{
					allTR.item(i).disabled = true;
					allTR.item(i).style.display = "none";
				}
				if (selectElemValue == 2)
				{
					allTR.item(i).disabled = false;
					if (navigator.appVersion.indexOf('MSIE') != -1)
						allTR.item(i).style.display = "block";
					else
						allTR.item(i).style.display = "table-row";
				}
			}
		}
	}
}

function changePersonStatus(element, TR_ID)
{
	var allTR = document.getElementsByTagName('tr');
	
	for (var i = 0; i < allTR.length; i++)
	{
		if (allTR.item(i).id == TR_ID)
		{
			if (element.value == 1)
			{
				allTR.item(i).disabled = true;
				allTR.item(i).style.display = "none";
			}
			if (element.value == 2)
			{
				allTR.item(i).disabled = false;
				if (navigator.appVersion.indexOf('MSIE') != -1)
					allTR.item(i).style.display = "block";
				else
					allTR.item(i).style.display = "table-row";
			}
		}
	}
}

/* Flash detect */
var isIE  = (navigator.appVersion.indexOf('MSIE') != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf('win') != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf('Opera') != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.7');
		version = axo.GetVariable('$version');
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = 'WIN 6,0,21,0';

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = 'always';

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable('$version');

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.3');
			version = axo.GetVariable('$version');
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.3');
			version = 'WIN 3,0,18,0';
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
			version = 'WIN 2,0,0,11';
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']) {
			var swVer2 = navigator.plugins['Shockwave Flash 2.0'] ? ' 2.0' : '';
			var flashDescription = navigator.plugins['Shockwave Flash' + swVer2].description;			
			var descArray = flashDescription.split(' ');
			var tempArrayMajor = descArray[2].split('.');
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != '' ) {
				tempArrayMinor = descArray[3].split('r');
			} else {
				tempArrayMinor = descArray[4].split('r');
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			var flashVer = versionMajor + '.' + versionMinor + '.' + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf('webtv/2.6') != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf('webtv/2.5') != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf('webtv') != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
/* End Flash detect */


function workWithOtherField(fieldName, cond){
	if(cond){
		$(fieldName).disabled = '';
		Element.setStyle(fieldName, {'background-color': ''});
		Field.focus(fieldName);
	} else {
		$(fieldName).disabled = 'true';
		Element.setStyle(fieldName, {'background-color': '#f5f5f5'});
	}
}


function sendAnketaData(f){
	var data = Form.serialize(f);
	Form.Element.disable('doSave');
    var unique=(new Date()).getTime();
    var url = '/anketa/Manage.aspx?unique=' + unique;
    var myAjax = new Ajax.Request(
            url,
            {
                    asynchronous: true,
                    method: 'post',
                    postBody: data,
                    onComplete: commonResponse
            });
}


function commonResponse(originalRequest){
		Form.Element.enable('doSave');
		
		var output = originalRequest.responseText;
		var blockName = '';
		
		if(output.indexOf('error')!=-1){
			blockName = 'anketaError';
		}  else {
			blockName = 'anketaForma';
		}

        if($(blockName)){
                $(blockName).innerHTML = output.replace("warning", "p");
                if(blockName == 'anketaError'){
					removeAllErrorDisplayBlock();
					
					var attr = new RegExp("field=\"(\\w+)\"", "g")
					var match = attr.exec(output);
					var dim = [0, 0];
					if(match[1]!=""){
						Field.focus(match[1]);
						dim = Position.cumulativeOffset($(match[1]));
						
						if($(match[1])){							
							new Insertion.Bottom($(match[1]).parentNode, '<div class="error">' + output + '</div>');
						}
					}

					//Element.show(blockName);
				} else {
					Element.hide('regardBlock');
					Element.hide('anketaError');
					Element.scrollTo(blockName);
				}
        }
}

function removeAllErrorDisplayBlock(){
	var nodes = $A(Element.getElementsByClassName('div', 'error'));
	//alert(nodes);
	nodes.each(function(node){
				Element.remove(node);
	});
}


function displayRowsByName(elementName, cond){
	var nodes = $A(document.getElementsByTagName('tr'));
	nodes.each(function(node){
				if(node.id.match(new RegExp("^" + elementName))){
					$(node).descendants().each(function(el){
						if(['input', 'select', 'textarea'].include(el.tagName.toLowerCase())){
							el.disabled = !cond;
						}
					});
					if(cond){
						Element.show(node);
					} else {
						Element.hide(node);
					}
				}
	});
}


function showModalBlock(which){
	manageModalBlock(which, 1);
}


function hideModalBlock(which){
	manageModalBlock(which, 0);
}


var isIE = navigator.appVersion.match(/MSIE/) == "MSIE";
function manageModalBlock(which, cond){
	if(cond){
		var objBody = document.getElementsByTagName("body").item(0);
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id', 'initLightBox');
		objOverlay.className = 'overlay';
		objOverlay.style.display = 'none';
		objOverlay.style.position = 'absolute';
		objOverlay.style.top = '0';
		objOverlay.style.left = '0';
		objOverlay.style.zIndex = 1000;
		objOverlay.style.width = '100%';
		objBody.insertBefore(objOverlay, objBody.firstChild);
		
		var el = $('initLightBox');
		var pageSize = getPageSize();
		
		el.style.height = (pageSize.pageHeight + 'px');
		el.style.width = (pageSize.windowWidth + 'px');
		el.style.display = 'block';
		
		if($(which)){
			if (isIE) {
				hideSelect();
			}
		
			var dim = Element.getDimensions(which);
			var coord = getWindowCenter(dim.width, dim.height);
			$(which).style.top = coord.top + 'px';
			$(which).style.left = coord.left + 'px';
			Element.show(which);
		}
	} else {
		Element.remove('initLightBox');
		if (isIE) {
			showSelect();
		}
		Element.hide(which);
	}
}


function getPageSize(){
	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;

	if (self.innerHeight) {  // all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	var pageHeight, pageWidth;

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	return {pageWidth: pageWidth ,pageHeight: pageHeight , windowWidth: windowWidth, windowHeight: windowHeight};
}


function getWindowScroll(){
	var w = window;
	var T, L, W, H;
	with (w.document) {
		if (w.document.documentElement && documentElement.scrollTop) {
			T = documentElement.scrollTop;
			L = documentElement.scrollLeft;
		} else if (w.document.body) {
			T = body.scrollTop;
			L = body.scrollLeft;
		}
		if (w.innerWidth) {
			W = w.innerWidth;
			H = w.innerHeight;
		} else if (w.document.documentElement && documentElement.clientWidth) {
			W = documentElement.clientWidth;
			H = documentElement.clientHeight;
		} else {
			W = body.offsetWidth;
			H = body.offsetHeight
		}
	}
	return { top: T, left: L, width: W, height: H };
}


function getWindowCenter(width, height) {
	var pageSize = getPageSize();
	var windowScroll = getWindowScroll();

	return {top: ((pageSize.windowHeight - height)/2 + windowScroll.top), left: ((pageSize.windowWidth - width)/2 + windowScroll.left)};
}


function hideSelect(id) {
  if (isIE) {
    id = id ==  null ? "" : "#" + id + " ";
    $$(id + 'select').each(function(element) {
      if (! isDefined(element.oldVisibility)) {
        element.oldVisibility = element.style.visibility ? element.style.visibility : "visible";
        element.style.visibility = "hidden";
      }
    });
  }
}

function showSelect(id) {
  if (isIE) {
    id = id ==  null ? "" : "#" + id + " ";
    $$(id + 'select').each(function(element) {
      if (isDefined(element.oldVisibility)) {
        // Why?? Ask IE
        try {
          element.style.visibility = element.oldVisibility;
        } catch(e) {
          element.style.visibility = "visible";
        }
        element.oldVisibility = null;
      }
      else {
        if (element.style.visibility)
          element.style.visibility = "visible";
      }
    });
  }
}


function isDefined(object) {
	return typeof(object) != "undefined" && object != null;
}

function InputPH (input, value, cssEmpty)
{
	var thisCopy = this;
	this.Input = input;
	this.Value = value;
	this.SaveOriginal = (input.value == value);
	this.CssEmpty = cssEmpty;
	this.setupEvent(this.Input, 'focus', function() {return thisCopy.onFocus()});
	this.setupEvent(this.Input, 'blur', function() {return thisCopy.onBlur()});
	this.setupEvent(this.Input, 'beforeeditfocus', function() {return thisCopy.onBeforeEditFocus()});
	this.setupEvent(this.Input, 'keydown', function() {return thisCopy.onKeyDown()});
	if (input.value == '') this.onBlur();
	return this;
}
InputPH.prototype.setupEvent = function (elem, eventType, handler)
{
	if (elem.attachEvent)
	{
		elem.attachEvent ('on' + eventType, handler);
	}
	if (elem.addEventListener)
	{
		elem.addEventListener (eventType, handler, false);
	}
}

InputPH.prototype.onFocus = function()
{
	if (!this.SaveOriginal && this.Input.value == this.Value)
	{
		this.Input.value = '';
	}
	else
	{
		this.Input.removeClassName(this.CssEmpty);
	}
}

InputPH.prototype.onKeyDown = function()
{
	this.Input.removeClassName(this.CssEmpty);
}

InputPH.prototype.onBlur = function()
{
	if (this.Input.value == '' || this.Input.value == this.Value)
	{
		this.Input.addClassName(this.CssEmpty);
		this.Input.value = this.Value;
		
	}
	else
	{
		this.Input.removeClassName(this.CssEmpty);
	}
}
InputPH.prototype.onBeforeEditFocus = function()
{
	this.Input.removeClassName(this.CssEmpty);
}

function popUpAdvImg(e) {
	var curr = Event.element(e);
	popUpImg(curr.getAttribute('href'));
	return false;
}

function showAdvImg(e) {
	Event.stop(e);
	var currElem = Event.findElement(e, 'A');
	var elementID = currElem.getAttribute('id');
	var div;
	$$('.advPopUp').each(function (item) {
		if (item.getAttribute('id') != (currElem.getAttribute('id') + 'PopUp')) {
			item.hide();
		}
	});
	if ($(currElem.getAttribute('id') + 'PopUp') != null) {
		div = $(currElem.getAttribute('id') + 'PopUp');
		div.toggle();
		if (div.visible) { showModalBlock(div); }
	} else {
		div = document.createElement('div');
		div.setAttribute('id', currElem.getAttribute('id') + 'PopUp');
		document.body.appendChild(div);
		div = $(currElem.getAttribute('id') + 'PopUp');
		div.addClassName('advPopUp');
		
		var closeLink = document.createElement('a');
		closeLink.setAttribute('href', '#');
		closeLink.setAttribute('class', 'close');
		Event.observe(closeLink, 'click', function(){
	        manageModalBlock($(currElem.getAttribute('id') + 'PopUp'), 0);
        });
		closeLink.innerHTML = 'Закрыть';
		var closeDiv = document.createElement('div');
		closeDiv.appendChild(closeLink);
		div.appendChild(closeDiv);

		var img = new Image();
		var unique=(new Date()).getTime();
		img.src = currElem.getAttribute('href') + '?' + unique;
		img.setAttribute('class', 'close');
		
		Event.observe(img, 'click', function(){
	        manageModalBlock($(currElem.getAttribute('id') + 'PopUp'), 0);
        });
		div.appendChild(img);
		
		var closeLink = document.createElement('a');
		closeLink.setAttribute('href', '#');
		Event.observe(closeLink, 'click', function(){
	        manageModalBlock($(currElem.getAttribute('id') + 'PopUp'), 0);
        });
		closeLink.innerHTML = 'Закрыть';
		var closeDiv = document.createElement('div');
		closeDiv.appendChild(closeLink);
		div.appendChild(closeDiv);
		div.setStyle({ position:'absolute', display: 'none', 'z-index': 1001});
		document.body.appendChild(div);

		img.onload = function(){ showModalBlock(div); }
	}

	return false;
}

function hideAdvImg(e) {
	Event.stop(e);
	var currElem = Event.element(e);
	if (currElem.tagName == 'IMG') {
		currElem.parentNode.hide();
	} else if (currElem.tagName == 'A')  {
		currElem.parentNode.parentNode.hide();
	}
	return false;
}


var fontSizeShift = 0;
var elementsList = [];
function textSizeAdjuster(type) {
    if(elementsList.length == 0) {
        var a = $$('div[id~=articleBody] *');
        a.each(function(element) {
            var tagName = element.tagName.toUpperCase();
            if(['A', 'P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'B', 'I', 'LI', 'TD'].include(tagName)) {
                elementsList.push(element);
            }
        });
    }
    elementsList.each(function(element) {
        var fontSize = parseInt(element.getStyle('font-size'), 10);
        var lineHeight = parseInt(element.getStyle('line-height'), 10);
        if(type == "grow" && fontSizeShift < 3) {
            element.setStyle({
                'font-size': (fontSize + 1) + 'px',
                'line-height': (lineHeight + 1) + 'px'
            });
        }
        if(type == "shrink" && fontSizeShift > 0) {
             element.setStyle({
                'font-size': (fontSize - 1) + 'px',
                'line-height': (lineHeight - 1) + 'px'
            });
        }
    });
    
    if(type == "grow" && fontSizeShift < 3) {
        fontSizeShift++;
    }
    if(type == "shrink" && fontSizeShift > 0) {
        fontSizeShift--;
    }
    $('textSizePlus').className = (fontSizeShift == 3) ? 'plusInactive' : 'plus';
    $('textSizeMinus').className = (fontSizeShift == 0) ? 'minusInactive' : 'minus';
}

function ChangeArchiveCalendarYear(ButtonID, AlternateButtonID, Destination)
{
	var button = $(ButtonID);
	var iValue = parseInt(Destination);
	var iYear = parseInt($("archiveCalendar_year").innerHTML);
	var iPosition = parseInt($("archiveCalendar" + iYear).getAttribute("position"));
	var iTotal = parseInt($("archiveCalendar" + iYear).getAttribute("totalNum"));
	
	$("archiveCalendar_year").innerHTML = iYear + iValue;
	
	if (iValue < 0)
	{
		button.innerHTML = (parseInt(button.innerHTML.substring(0, 4)) + iValue) ;
		$(AlternateButtonID).innerHTML = iYear;
	}
	else
	{
		button.innerHTML = (parseInt(button.innerHTML.substring(3)) + iValue);
		$(AlternateButtonID).innerHTML = iYear;
	}
	
	$(AlternateButtonID).show();
	$("archiveCalendar_maxYear").hide();
	$("archiveCalendar_minYear").hide();

	$("archiveCalendar" + iYear).hide();
	$("archiveCalendar" + (iYear + iValue)).show();
	if ((iValue < 0 && iPosition + iValue == 1) || (iValue > 0 && iPosition + iValue == iTotal))
	{
		button.hide();
		if (iValue > 0)
			$("archiveCalendar_maxYear").show();
		if (iValue < 0)
			$("archiveCalendar_minYear").show();
	}
}

function toggleRubric(e, id)
{
    e.src = e.src.endsWith('/i/i-plus.gif') ? '/i/i-minus.gif' : '/i/i-plus.gif';
    $('rubric-childs-' + id).toggle();
}

function EffectBlindToggle(id, e, className, hide)
{
    if ($(id).visible()) {
        new Effect.BlindUp(id);
        if (e != 'undefined') {
            e.removeClassName(className);
        }
    } else {
        if (hide != 'undefined') {
            hide.each(function(node) {
                if (node.visible())
                    node.hide();
            });
        }
        new Effect.BlindDown(id);
        if (e != 'undefined') {
            
            e.addClassName(className);
            $$('.articleNav ul li a').each(function(node) {
                if (node != e) {
                    var sActiveClass = $w(node.className)[0] + 'Active';
                    if (node.hasClassName(sActiveClass))
                        node.removeClassName(sActiveClass);
                }
            });
        }
    }
}
 
