function fixPNG(element) {
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
	var src;		
	if ((element.tagName=='IMG') && (!(element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)))) {
	    if (/\.png$/.test(element.src)) {
		element.src = element.src+".gif";
	    }
	} else {
	    var src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
	    if (src) {
		src = src[1];
		element.runtimeStyle.backgroundImage="none";
		element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+
		    src + "',sizingMethod='no-scale')";
	    }
	}
    }
}

function emb(cur,embedbox) {
	var box = cur.parentNode.select('div')[0]; 
	
    if (box.style.display == "block") {
	box.style.display = "none";
	cur.style.background = "#54b135";
	cur.style.color = "#fff";
	cur.style.borderBottom = "1px solid #54b135";
	cur.style.fontWeight = "normal";
	cur.style.color = "#fff";
    } else {
	box.style.display = "block";
	cur.style.background = "#fff";
	cur.style.color = "#54b135";
	cur.style.borderBottom = "1px solid #fff";
	cur.style.fontWeight = "bold";
	cur.style.color = "#276c22";
	box.select('textarea')[0].select();
    }
}


function initindex() {
	//var $=document.body.clientWidth>830?Math.floor((document.body.clientWidth-297)/182):3;
	//if ($!=Tube.xcurent) {Tube.xcurent=$;formatdivs()}

    var h = (window.innerHeight ? 
	     window.innerHeight : 
	     (document.documentElement.clientHeight ?
	      document.documentElement.clientHeight : 
	      document.body.offsetHeight));
    var ua = navigator.userAgent.toLowerCase();
    if (h > 920) {
	document.getElementById("index-middle").style.marginTop = (h - 935)/2 + 30 + "px";
	if (ua.indexOf("msie") < 0)
	    document.getElementById("footer").style.paddingTop = ((h - 920) - (h - 935)/2) + "px";
	else
	    document.getElementById("footer").style.paddingTop = ((h - 904)- (h - 935)/2) + "px";
    } else {
	document.getElementById("index-middle").style.marginTop = "30px";
	document.getElementById("footer").style.paddingTop = "30px";
    }
}

var thumbs;
var alla;


function blogInteractive(cur,tag,childto) {
    var i = document.getElementById(childto);
	if (!i.style.display) {i.style.display=(CssClasses(cur).exists('op')||CssClasses(cur).exists('op2'))?"block":"none"}
    if (tag == "head") {
	if (i.style.display != "block") {
	    cur.style.background = "#42a800 url(/s/tags/About_Us/bg_blogs_opened.gif) top right no-repeat";
	    i.style.display = "block";
	} else {
	    cur.style.background = "#060 url(/s/tags/About_Us/bg_blogs_closed.gif) top right no-repeat";
	    i.style.display = "none";
	}
    } else {
	if (i.style.display != "block") {
	    cur.style.background = "#fff url(/s/tags/About_Us/bg_blogs_entry_opened.gif) top right no-repeat";
	    cur.style.border = "1px solid #42a800";
	    cur.style.color = "#060";
	    i.style.display = "block";
	} else {
	    cur.style.background = "#388f00 url(/s/tags/About_Us/bg_blogs_closed.gif) top right no-repeat";
	    cur.style.border = "1px solid #388f00";
	    cur.style.color = "#fff";
	    i.style.display = "none";
	}
    }	
}

function changeView(my,cur) {
    var curr = document.getElementById(cur);
    var tmp = my.innerHTML.substr(13);
    if (curr.style.display != "block") {
	curr.style.display = "block";
	my.innerHTML = "Hide comments"+tmp;
    } else {
	curr.style.display = "none";	
	my.innerHTML = "Show comments"+tmp;
    }
}

function forumInteractive(cur,my) {
    var curr = document.getElementById(cur);
    if (curr.style.display != "block") {
		curr.style.display = "block";
		my.style.background = "#42a800 url(/s/tags/About_Us/bg_blogs_opened.gif) top right no-repeat";	
    } else {
		curr.style.display = "none";
		my.style.background = "#060 url(/s/tags/About_Us/bg_blogs_closed.gif) top right no-repeat";
    }
    return false;
}


/*
 Show current foods for Russian Cuisine
*/
function foodShowCurr(curr)
{
	var cursf, iii;
	for (var i=1;i<7;i++)
	{
		cursf = $$('.food'+i);
		if (i==curr)
		{			
			for (iii=0;iii<cursf.length;iii++)
			{	
				cursf[iii].show();								
			}
		}
		else
		{
			for (iii=0;iii<cursf.length;iii++)
			{	
				cursf[iii].hide();								
			}
		}
	}	
}

/*
 Hide current foods for Russian Cuisine
*/
function foodHideCurr(curr)
{
	var cursf, iii;
	for (var i=1;i<7;i++)
	{
		cursf = $$('.food'+i);
		for (iii=0;iii<cursf.length;iii++)
		{	
			cursf[iii].show();								
		}		
	}	
}

/*
 Filter for Russian Cuisine
*/
function foodFilter(num)
{	
	var tmp;	
	for (var i=1;i<7;i++)
	{
		tmp = $$('.f'+i);	
		if (i==num)
		{
			if (tmp[0].hasClassName('foff'))
			{
				tmp[0].removeClassName('foff');
				foodShowCurr(num);
			}
			else
			{
				tmp[0].addClassName('foff');
				foodHideCurr(num);
			}
		}
		else 
		{
			tmp[0].addClassName('foff');
		}
	}
}

var save_inner;

/*
Show comments for Where2go2
*/
function showComments(id)
{
	if ($('comments'+id).style.display!="none")
	{
		$('a_comments'+id).innerHTML=save_inner;
		$('comments'+id).style.display = "none";
	}
	else
	{
		save_inner=$('a_comments'+id).innerHTML;
		$('a_comments'+id).innerHTML='Hide comments';
		$('comments'+id).style.display = "block";
	}
	return false;
}

/*
Show Post-form for Where2Go2
*/
function showPostForm(id, cur)
{
	$('forum_post'+id).style.display = "block";
	cur.style.display = "none";
	return false;
}

/*
Hide it
*/
function hidePostForm(id)
{
	$('forum_post'+id).style.display = "none";
	return false;
}

function rateArticle(doc_id,rate,curr){
	var url = '/A/RateArticle';
	var pars = 'doc_id='+doc_id+'&rate='+rate;
	new Ajax.Request(url, {
		method:       'post', 
		parameters:   pars, 
		asynchronous: true,
		onSuccess:   function(response) {
			res = response.responseText.evalJSON();
			$('rcurr_text'+res.json_doc_id).innerHTML = res.json_rate+'/5 ('+res.json_votes+' votes)';
			$('rcurr_stars'+res.json_doc_id).innerHTML = '';
			$('ratehere'+res.json_doc_id).innerHTML = '';
			res.json_rate = Number(res.json_rate);
			for (var i=1; i<=5; i++){
				var img;
				if (i <= res.json_rate){
					img = '01';
				}else if(i > res.json_rate && i < res.json_rate+1){
					img = '02';
				}else{
					img = '03';
				}
				
				var star = '<img src="/s/img/i_r'+img+'.gif" alt="'+i+'" title="'+i+'">';
				$('rcurr_stars'+res.json_doc_id).innerHTML = $('rcurr_stars'+res.json_doc_id).innerHTML + star;
				
				if (i <= rate){
					img = '07';
				}else{
					img = '05';
				}
				star = '<img src="/s/img/i_r'+img+'.gif" alt="'+i+'" title="'+i+'">';
				$('ratehere'+res.json_doc_id).innerHTML = $('ratehere'+res.json_doc_id).innerHTML + star;
			}
		}
	});
	return false;
}

function onRateOver(curr,doc_id)
{	
	$(curr).style.backgroundImage = 'url(/s/img/i_r07.gif)';
	for (var i = 1; i<=5; i++){
		if ('r'+doc_id+'_'+i != $(curr).id){
			$('r'+doc_id+'_'+i).style.backgroundImage = 'url(/s/img/i_r07.gif)';
		}else{
			break;
		}
	}


}
function onRateOut(doc_id){
	for (var i = 1; i<=5; i++){
		$('r'+doc_id+'_'+i).style.backgroundImage = 'url(/s/img/i_r05.gif)';
	}
}
/*
 Letter-Filter for russian literature
*/

var letter_selected=false;//will store currently selected letter

function literatureFilter(letter)
{
	var cursf, iii;
	var current=$('letters_div').innerHTML;
	var reg1=new RegExp("<a[^>]+>"+letter+"<[^>]+>","i");
	var reg2=new RegExp('<span>'+letter_selected+'</span>',"i");
	current=current.replace(reg1,'<span>'+letter+'</span>');
	if (letter_selected){
		current=current.replace(reg2,'<a href="#" OnClick="literatureFilter('+"'"+letter_selected+"'"+'); return false;">'+letter_selected+'</a>');	
	}
	letter_selected=letter;
	var curr=letter.charCodeAt(0);
	cursf = $$('a.letters');
	for (iii=0;iii<cursf.length;iii++)
	{
		if (cursf[iii].hasClassName('letter'+letter))
		{
			cursf[iii].show();
		}
		else
		{
			cursf[iii].hide();
		}
	}
	$('letters_div').innerHTML=current;
}

/*
 Letter-Filter for russiapedia
*/

function russiapediaFilter(letter)
{
	var cursf, iii;
	var current=$('letters_div').innerHTML;
	var reg1=new RegExp("<a[^>]+>"+letter+"<[^>]+>","i");
	var reg2=new RegExp('<span>'+letter_selected+'</span>',"i");
	current=current.replace(reg1,'<span>'+letter+'</span>');
	if (letter_selected){
		current=current.replace(reg2,'<a href="#" OnClick="return russiapediaFilter('+"'"+letter_selected+"'"+');">'+letter_selected+'</a>');	
	}
	letter_selected=letter;
	var curr=letter.charCodeAt(0);
	cursf = $$('div.russiapedia');
	for (iii=0;iii<cursf.length;iii++)
	{
		if (cursf[iii].hasClassName('letter'+letter))
		{
			cursf[iii].show();
		}
		else
		{
			cursf[iii].hide();
		}
	}
	$('letters_div').innerHTML=current;
	return false;
}

/*
 For Russian Literature Books parts list
*/
function unfold_parts(id)
{
	$('parts_'+id).toggle();
	return false;
}

/*
 Enlarge small pictures
 cur - element
 shift - shift in Pixels from right edge of screen (if shift==-1 detect automatically and span large image to the left, if it's too big and too close to the screen edge);
 width - width of pic in pixels. Required, if shift is defined;
 alt_text - text for big image (overrides image.alt if any);
 
 
*/
function showBigPic(cur,shift,pic_width,alt_text)
{
	var d = document;
        var w=document.width || document.body.offsetWidth;
        var child = $(cur).childElements();
        var curnav = navigator.userAgent.toLowerCase();
        var pic_border=31;//white border of popup win
		var pic_width_save=pic_width;
	if (child.length==0){
		child=new Array($(cur));
	}
        if (shift==-1){
            var xy_orig = $(cur).cumulativeOffset();
			var pic_width2 = pic_width;
			if (pic_width2 == 'center') {
				pic_width2 = 700;
			}
            if ((xy_orig[0]+pic_width+2*pic_border<w) || (xy_orig[0]+parseInt($(cur).style.width)-pic_width2-2*pic_border-20<0)){
                shift=undefined;
                pic_width=undefined;
            }
            else
            {
                shift=w-(xy_orig[0]+parseInt($(cur).style.width))+2*pic_border+20;
                if (curnav.indexOf('msie') > -1)
		{
			shift -= 1;
		}
            }
        }
	if (($(cur).hasClassName('popupdiv')) || ($(cur).hasClassName('popupdivtext')))
	{
		d.body.removeChild(cur);
	}
	else
	{
		var popupdiv = d.createElement('div');
		var src=cur.href;
		var is_pic=src.match(/\.jpeg/i) || src.match(/\.jpg/i) || src.match(/\.gif/i) || src.match(/\.png/i) || src.match(/\.bmp/i);
		var txtpopup=0;
		if (is_pic){
			popupdiv.innerHTML = '<img src="'+src+'" alt="" title="">';			
		}else{
			txtpopup=1;				
		}
		
		if (src.match(/\.swf/i)) {
			popupdiv.innerHTML="<object width='300' height='250'><param name='movie' value='"+src+"'></param><param name='wmode' value='transparent'></param><embed src='"+src+"'  width='300' height='250' wmode='transparent' /></object><img src='/s/img/emp.gif' style='position:absolute; width:300px; height:250px; top:30px; left:30px;'>";
			is_pic=1;
		} else{
			txtpopup=1;				
		}
		
		if (txtpopup) {popupdiv.id='text_popup';}
		
		if (is_pic){
			$(popupdiv).addClassName('popupdiv');
		}else{
			$(popupdiv).addClassName('popupdivtext');
		}
		popupdiv.onclick = function()
		{
			showBigPic(this);
		}
		var xy=new Array();
		if (is_pic)
		{
			xy = $(child[0]).cumulativeOffset();
                        if (alt_text!=undefined){
                            popupdiv.innerHTML +='<p>'+alt_text+'</p>';
                        }else{
                            if (child[0].alt)
                            {
				popupdiv.innerHTML +='<p>'+child[0].alt+'</p>';
                            }
                        }
		}
		else
		{		    
		    xy = $(cur).cumulativeOffset();
		}
		d.body.appendChild(popupdiv);		
		var realX = xy[0];
		if (!(is_pic)){ //only for Sidebar
			var popup_width=420;
			popupdiv.style.width=popup_width+'px';			
			realX = w-234-popup_width+148;			
		}
		if (pic_width!=undefined) {
			if (pic_width == 'center') {
				realX = w-shift-700;
				pic_width_save = undefined;
			}else{
				realX = w-shift-pic_width;
			}
		}		
		if ((curnav.indexOf('msie') > -1) && (is_pic))
		{
			realX -= 20;
		}
		if (shift!=undefined){
		    realX += 20;
		}
		popupdiv.style.left = realX+'px';		
		popupdiv.style.top = xy[1]+'px';
		if (is_pic && pic_width_save){
			var popup_width=pic_width_save;
			popupdiv.style.width=popup_width+'px';
		}
		if (!(is_pic)){
			ajax_load(src,'text_popup');
		}
	}
	return false;
}

/*
 Opens administrative editpage from the News section
*/
function openEdit(url){
	var newwindow = open(url, "Edit story", "width=1180,height=820,status=no,toolbar=no,menubar=no,scrollbars=yes");
	if (window.focus) {newwindow.focus()}
	return false;
}

var drag_start_x;
var drag_start_y;
var save_link;
var save_onclick;

function startdrag(elem,mouse_event)
{
	drag_start_x=mouse_event.pageX;
	drag_start_y=mouse_event.pageY;
}


/*
 Add Element to Sidebar
*/

function addToSidebar(elem,mouse_event){
	var n=elem.element.id;
	if (elem.element.onclick){
                save_onclick=elem.element.onclick;
		elem.element.onclick=null;                
	}
	var w=document.width || document.body.offsetWidth;
	if (n.indexOf('href_')==0)
	{//Drugging link itself		
		//must remove href_ from n before calling Ajax
		n=n.substr(5);
	}
	if (Math.sqrt(Math.pow(mouse_event.pageX-drag_start_x,2)+Math.pow(mouse_event.pageY-drag_start_y,2))>30) // if dragged far enough
	{		
		if ($('href_'+n)!=null){
			save_link=$('href_'+n).href;
			$('href_'+n).href='#';//change URL to '#'
		}
	}
	if (mouse_event.pageX>w-234)//!must detect SideBar width somehow - $('tright').style.width returns ''
	{
		var pos_in=false;
		/*
		 for(var j=0;j<dragable_items-1;j++){
			if ((mouse_event.pageY>getRealTop($('selected_'+dragable_items[j]))) and (mouse_event.pageY<getRealTop($('selected_'+dragable_items[j+1])))){
				pos_n=j+1;
			}
		 }
		*/
		if (!(pos_in)){
			pos_in='0';
		}
		ajax_load('/A/AddToSidebar/'+n+'_'+pos_in,'ajax_sidebar',sidebarLoaded);		
	}
	if ($('href_'+n)!=null)
	{
	    setTimeout("$('href_"+n+"').href='"+save_link+"'",1000);//Timeout to avoid actual clicking after leaving this handler
	}
        if (save_onclick){
            setTimeout("restoreOnClick('"+n+"')",1000);
        }
}

/*
 Restores OnClick and undefines save_onclick
*/
function restoreOnClick(n)
{
    if (($(n)!=null) && (save_onclick!=undefined)){
        $(n).onclick=save_onclick;
        save_onclick=undefined;
    }
}


/*
 Remove element from SideBar
*/

function removeFromSidebar(name)
{
	if (confirm('Remove item from sidebar?'))
	{
		ajax_load('/A/RemoveFromSidebar/'+name,'ajax_sidebar',sidebarLoaded);
	}
	return false;
}
/*

Checks if we have sidebar and fill it if we do
 
*/

function runSidebar()
{
	if ($('ajax_sidebar')!=null){ // Move this codition after for() loop if want the dragging be visible for unrigistered users (and message like 'Ypu must register' shown for them after drag&drop)
	//new logic to work under IE6
		for(var i=0;i<dragable_items.length;i++)
		{
			if ($(dragable_items[i])!=null){
				dragable_items_obj[i]=new Draggable(dragable_items[i],{onEnd:addToSidebar,revert:true,ghosting:true,onStart:startdrag});
			}
		}
	//
		ajax_load('/A/GetSidebar/','ajax_sidebar',sidebarLoaded);
	}
}

/*
 
Handler called when side bar is loaded

*/


function sidebarLoaded()
{
	if ($('ajax_sidebar')!=null){
		setTimeout("Sortable.create('ajax_sidebar',{tag:'div',onUpdate:showSaveOrder,onChange:draggingHandler,ghosting:true})",300);//timeout to give time for IE to render HTML (or 'Object is null' error will emerge)
	}
}


function draggingHandler(elem)
{
    if ($('href_selected_'+elem.id)){
	$('href_selected_'+elem.id).href='#';
    } else {
	if ($('href_'+elem.id)){
	    $('href_'+elem.id).href='#';
	}
    }
}

/*

Saves order changes
 
*/

function saveSidebarOrder()
{
	var order_string=Sortable.serialize('ajax_sidebar');//This string is too long and need clearing
	/*order_string.replace(/ajax_sidebar[]/g,'');
	order_string.replace(/&=/g,',');
	order_string.replace(/=/g,'ajax_sidebar=');*/
	ajax_load('/A/SaveSidebarOrder/','ajax_sidebar',sidebarLoaded,order_string);//url, id, callback, payload	
}

/*
 //Enable 'save' link to save order
*/

function showSaveOrder(cont)
{
	//$('save_link').style.display='block';
	saveSidebarOrder();
}

var dragable_items=new Array();

var dragable_items_obj=new Array();
