var wnd = 0;
function showLayer(id)
{
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).style.display='block';
}

function hideLayer(id)
{
	document.getElementById(id).style.visibility='hidden';
	document.getElementById(id).style.display='none';
}

function toggleLayer(id)
{
	try {
//		if(document.getElementById(id).style.visibility == 'visible')	hideLayer(id);
//		else showLayer(id);
		if(document.getElementById(id).style.visibility == 'visible')	currentOpac(id, 0, 200);
		else currentOpac(id, 100, 200);
	}
	catch(err) {}
}


function showLayer_inline(id)
{
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).style.display='inline';
}

function toggleLayer_inline(id)
{
	if(document.getElementById(id).style.visibility == 'visible')	hideLayer(id);
	else showLayer_inline(id);
}

function toggleMenu(menu_id)
{
	toggleLayer(menu_id);
	img_id = menu_id+'_arr';
	imgsrc = document.getElementById(img_id).src;
	if(imgsrc == 'http://www.photoshare.ru/images/tr_u.gif')
	{
		document.getElementById(img_id).src = 'http://www.photoshare.ru/images/tr_d.gif';
	}
	else
	{
		document.getElementById(img_id).src = 'http://www.photoshare.ru/images/tr_u.gif';
	}	
}

function Hash()
{
	this.length = 0;
	this.items = new Array();
	for (var i = 0; i < arguments.length; i += 2) {
		if (typeof(arguments[i + 1]) != 'undefined') {
			this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}
   
	this.removeItem = function(in_key)
	{
		var tmp_value;
		if (typeof(this.items[in_key]) != 'undefined') {
			this.length--;
			var tmp_value = this.items[in_key];
			delete this.items[in_key];
		}
	   
		return tmp_value;
	}

	this.getItem = function(in_key) {
		return this.items[in_key];
	}

	this.setItem = function(in_key, in_value)
	{
		if (typeof(in_value) != 'undefined') {
			if (typeof(this.items[in_key]) == 'undefined') {
				this.length++;
			}

			this.items[in_key] = in_value;
		}
	   
		return in_value;
	}

	this.hasItem = function(in_key)
	{
		return typeof(this.items[in_key]) != 'undefined';
	}
}

var toggleMenuLoad_on = new Hash();
var toggleMenuLoad_cache = new Hash();
function toggleMenuLoad(source_url, menu_id)
{
	if(!toggleMenuLoad_on.hasItem(menu_id))
	{
		toggleMenuLoad_on.setItem(menu_id, true);
		if(!toggleMenuLoad_cache.hasItem(source_url))
		{
			document.getElementById(menu_id).innerHTML = 'загрузка...';
		
			var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
		  req.onreadystatechange = function() {
				if (req.readyState == 4)
				{
					document.getElementById(menu_id).innerHTML = req.responseText;
					toggleMenuLoad_cache.setItem(source_url, req.responseText);
				}	
		  }
		  req.open("GET", source_url, true);
		  req.send(null);
		}
		else
		{
			document.getElementById(menu_id).innerHTML = toggleMenuLoad_cache.getItem(source_url);
		}
	}
	else
	{
		toggleMenuLoad_on.removeItem(menu_id);
	}

	toggleMenu(menu_id);
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

		if(opacEnd == 100)
		{
			changeOpac(0, id);
			showLayer(id);
		}

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";

		if(opacity == 100) showLayer(id);
		else if(opacity == 0)	hideLayer(id);
} 

function currentOpac(id, opacEnd, millisec)
{
	//standard opacity is 100
	var currentOpac = 100;
    
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100)
	{
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	if(currentOpac == 0) currentOpac = 1;
	if(currentOpac == 100) currentOpac = 99;

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}



