////////////////////////////////////////////////////////////////////////////////////////////////////
//shortcuts

function $(id)
{
	return document.getElementById(id) || false;
}

function $$(tag)
{
	return document.getElementsByTagName(tag) || false;
}

////////////////////////////////////////////////////////////////////////////////////////////////////
//xross browser

/*opacity*/

function setOpacity(elm,num)
{
	elm.style.filter = 'alpha(opacity='+num+')';
	elm.style.MozOpacity = num/100;
	elm.style.opacity = num/100;
}


/*addEvent*/

function addEvent(elm, type, func)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(type, func, false);
	}
	else
	{
		elm.attachEvent('on' + type, function(){func(window.event);});
	}
}

function removeEvent(elm, type, func)
{
	if (elm.removeEventListener)
	{
		elm.removeEventListener(type, func);
	}
	else
	{
		elm.detachEvent('on' + type, function(){func(window.event);});
	}
}


////////////////////////////////////////////////////////////////////////////////////////////////////
//functions

/*cookie*/

function setCookie(name,value,date)
{
	var expires = new Date();
	expires.setTime(expires.getTime() + (date * 24*60*60*1000));
	document.cookie = name+'='+escape(value)+';expires='+expires.toGMTString()+';path=/';
	
}

function getCookie(name)
{
	var contents = document.cookie+';';
	var start = contents.indexOf(name);
	
	if (start >= 0)
	{
		end = contents.indexOf(';',start);
		value = unescape(contents.substring(start+name.length+1,end));
	}
	else
	{
		value = false;
	}
	return value;
}

function clearCookie(name)
{
	expires = new Date();
	expires.setYear(expires.getYear() - 1);
	document.cookie = name+'='+';expires='+expires.toGMTString();
}


/*bookmark*/

function addBookmark(title,url)
{ 
    if (window.sidebar)
	{ 
        window.sidebar.addPanel(title, url,''); 
    }
	else if( document.all )
	{ 
        window.external.AddFavorite( url, title); 
    }
	else if( window.opera && window.print )
	{
        return true; 
    } 
} 

/*equalHeight*/
function equalHeight()
{
	var maxHeight=0;
	var len=arguments.length;
	for(i=0;i<len;i++)
	{
		if( !arguments[i] ) break;
		arguments[i].style.height = 'auto';
		if( maxHeight < arguments[i].offsetHeight ) maxHeight = arguments[i].offsetHeight;
	}
	
	for(i=0;i<len;i++)
	{
		if( !arguments[i] ) break;
		arguments[i].style.height = maxHeight + 'px';
	}
}

/*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;
}

/*Google Viewer*/

function gViewer(url)
{
//	url = "http://www.rtc-jp.com/pdf/rtc_catalog.pdf";
//	url = "http%3A%2F%2Fwww.rtc-jp.com%2Fpdf%2Frtc_catalog.pdf";
	
	if(url.match(/^http%3A%2F%2F/))
	{
		path = url;
	}
	else
	{
		path = encodeURIComponent(url);
	}
//	alert(path);
	
	document.write('<iframe src="http://docs.google.com/viewer?url=' + path + '&embedded=true" class="gDocs"></iframe>')
}
