function strip_tags(str, allowed_tags) {
    // Strips HTML and PHP tags from a string
    //
    // version: 903.3016
    // discuss at: http://phpjs.org/functions/strip_tags
    var key = '', allowed = false;
    var matches = [];
    var allowed_array = [];
    var allowed_tag = '';
    var i = 0;
    var k = '';
    var html = '';

    var replacer = function(search, replace, str) {
        return str.split(search).join(replace);
    };

    // Build allowes tags associative array
    if (allowed_tags) {
        allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);
    }

    str += '';

    // Match tags
    matches = str.match(/(<\/?[\S][^>]*>)/gi);

    // Go through all HTML tags
    for (key in matches) {
        if (isNaN(key)) {
            // IE7 Hack
            continue;
        }

        // Save HTML tag
        html = matches[key].toString();

        // Is tag not in allowed list? Remove from str!
        allowed = false;

        // Go through all allowed tags
        for (k in allowed_array) {
            // Init
            allowed_tag = allowed_array[k];
            i = -1;

            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
            if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}

            // Determine
            if (i == 0) {
                allowed = true;
                break;
            }
        }

        if (!allowed) {
            str = replacer(html, "", str); // Custom replace. No regexing
        }
    }

    return str;
}

function cumulativeOffset(element)
{
var valueT = 0, valueL = 0;

do
{
  valueT += element.offsetTop  || 0;
  valueL += element.offsetLeft || 0;
  element = element.offsetParent;
}
while (element);

return [valueL, valueT];
}

function popup_tip(el,name)
{
	cont = document.getElementById('tipcont_'+name);
	if(!cont)
		return false;
	cont = cont.innerHTML;

	document.getElementById('tip_cnt').innerHTML = cont;
	document.getElementById('tip_ttl').innerHTML = strip_tags(el.innerHTML);

	t = document.getElementById('tip');
	elpos = cumulativeOffset(el);

	t.style.position = 'absolute';
	t.style.top = (elpos[1]-45) + 'px';
	t.style.left = (elpos[0]+el.offsetWidth+20) + 'px';
	t.style.display = 'block';
	return false;
}

function closetip()
{
	document.getElementById('tip').style.display='none';
	return false;
}

var curcover;
function showcover(obj)
{
	if(curcover)
	{
		curcover.style.border="none"
	}
	curcover=obj;
	if(curcover)
	{
		curcover.style.border="solid 2px #1ACAD4"

		num=obj.id.substring(obj.id.lastIndexOf("_")+1); // get pick number from id

		smpl = document.getElementById("picsample");
		if(smpl)
		{
			srcbase=smpl.src.substring( 0,smpl.src.lastIndexOf("_") );
			newsrc=srcbase + "_" + num + ".jpg";
			smpl.src=newsrc;
		}

		lnk = document.getElementById("link_exmpl");
		if(lnk)
		{
			if(t_no == 3)
			{
				switch(num)
				{
					case '1':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g09/h09';
					break;
					case '2':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g01/h01';
					break;
					case '3':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g02/h02';
					break;
					case '4':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g03/h03';
					break;
					case '5':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g04/h05';
					break;
					case '6':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g05/h04';
					break;
					case '7':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g06/h06';
					break;
					case '8':
						lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g08/h08';
					break;
				}
			}
			else
			{
				lnk.href = 'http://ivan.evart.ru/t'+t_no+'/g'+(num<10?('0'+num):num)+'/h00';
			}
		}
	}
}


function getElementPosition(offsetTrail)
{
	var offsetLeft = 0;
    var offsetTop = 0;

	//идем вверх по дереву родителей и считаем координаты
	while(offsetTrail)
	{
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	// координаты эл-та, где был клик
	return { left:offsetLeft, top:offsetTop }
}

function hidehelp() {
	var div = document.getElementById('current_footnote');
        div.className = 'footnote_new';
        div.style.display = 'none';
        return false;
}

function showhelp(evt, id) {

	//ширина окна
	var winWidth = document.body.clientWidth;

	// универсальность для Ие
	if (!evt) evt = window.event;

	// универсальность для Ие (элемент, в котором произошло событие)
	if (!evt.target) o = evt.srcElement;
		else o = evt.target;

	var div = document.getElementById('current_footnote');

	var coords = getElementPosition(o);
	div.innerHTML = '<div style="float: right; width: 17px; height: 17px"></div><div style="padding: 7px" onclick="return hidehelp()">' + document.getElementById(id).innerHTML + '</div>';
	div.className = 'footnote_new_active';
	div = document.getElementById('current_footnote');
	var w = 200; // размер всплывающего блока
	div.style.top = (coords.top + o.offsetHeight) + 'px';

	//проверка что бы записка за экран не залезла
	if((winWidth - coords.left) < w)
		div.style.left = (coords.left  - 10 - (w - (winWidth - coords.left)))+ 'px';
	else
	   div.style.left = coords.left + 'px';

//	div.style.display = 'none';
	div.style.display = 'block';

	//предотвращает перекрытие другим элементом
	evt.cancelBubble = true;
	return false;
}