// JavaScript Document

//ＩＤ・タグのショートカット
if(window.$) var _$ = window.$;
function $(e)
{
	try
	{
		return document.getElementById(e);
	}
	catch(e)
	{
		return false;
	}
}

// document.getElementsByTagNameショートカット
if(window.$$) var _$$ = window.$$; //escapeしとく
function $$(e)
{
	try
	{
		return document.getElementsByTagName(e);
	}
	catch(e)
	{
		return false;
	}
}


/*include*/
function include(elm,file)
{
	var xmlhttp = false;
	if(typeof ActiveXObject != 'undefined') //IE
	{
		try
		{
			xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	if(!xmlhttp && typeof XMLHttpRequest != 'undefined') //other
	{
		xmlhttp = new XMLHttpRequest();
	}
	xmlhttp.open('GET', file);
	xmlhttp.onreadystatechange = function()
	{
		if ( xmlhttp.readyState == 4 )
		{
			try
			{
				elm.innerHTML = xmlhttp.responseText;
			}
			catch(e)
			{
				elm = false;
			}
		}
	}
	xmlhttp.send(null);
	return elm;
}

//Add - Remove Event Cross Browser
addEvent = (function()
{
	if ( window.addEventListener )
	{
		return function(elem, type, func)
		{
			elem.addEventListener(type, func, false);
		};
	}
	else if ( window.attachEvent )
	{
		return function(elem, type, func)
		{
			if( ! func._bridge ) func._bridge = new Array(0);
			var i = func._bridge.length;
			func._bridge[i] = new Array(3);
			func._bridge[i][0] = elem;
			func._bridge[i][1] = type;
			func._bridge[i][2] = function()
			{
				func.apply(elem, arguments);
			};
			elem.attachEvent("on"+type, func._bridge[i][2]);
		};
	}
	else
	{
		return function(elem, type, func)
		{
			return false;
		}
	}
})();
removeEvent = (function()
{
	if ( window.removeEventListener )
	{
		return function(elem, type, func)
		{
			elem.removeEventListener(type, func, false);
		};
	}
	else if ( window.detachEvent )
	{
		return function(elem, type, func)
		{
			var i = 0; var f = null;
			while( i < func._bridge.length )
			{
				if( func._bridge[i][0] == elem && func._bridge[i][1] == type )
				{
					f = func._bridge[i][2];
					break;
				}
				i++;
			}
			elem.detachEvent("on"+type, f);
			func._bridge.splice(i,1);
		};
	}
	else
	{
		return function(elem, type, func)
		{
			return false;
		}
	}
})();

