/* for Direct link */
var _url = ""+top.location;
if( _url.indexOf( "_body.html", 0 ) != -1 ) {
	top.location = _url.slice( 0,-10 ) + ".html";
}

//=========================================================
/* Brouser Check */
var _Ver = navigator.appVersion.charAt(0);
var _Ie = ( navigator.userAgent.indexOf("MSIE") != -1 );
var _Mac = ( navigator.appVersion.indexOf("Mac") != -1 );

//=========================================================
/* Public functions */

function vGetObj(id) {
	var d = document;
	if( d.getElementById ) return d.getElementById( id );
	if( d.all ) d.all( id );
	return d[id];
}

//---------------------------------------------------------
/* Swap image */

function vSwapImg() {
	for( var i=0; i<arguments.length; i+=2 )
		vGetObj(arguments[i]).src = arguments[i+1];
}

function vPreload() {
	for( var i=0; i<arguments.length; i++ )
		_v_NewImg(arguments[i]);
}

//---------------------------------------------------------
/* Roll over */

//Preload
function vPreloadOvOt() {
	_v_PreloadImg( vPreloadOvOt.arguments, "_ov" );
	_v_PreloadImg( vPreloadOvOt.arguments, "_ot" );
}

function vPreloadOv() {
	_v_PreloadImg( vPreloadOv.arguments, "_ov" );
}

function vObjPreloadOvOt(obj) {
	if( obj._preloaded ) return;
	obj._preloaded = true;
	_v_PreloadImgObj( obj, "_ov" );
	_v_PreloadImgObj( obj, "_ot" );
}

function vObjPreloadOv(obj) {
	if( obj._preloaded ) return;
	obj._preloaded = true;
	_v_PreloadImgObj( obj, "_ov" );
}

//Swap
function vImgOv() {
	_v_SwapImg( vImgOv.arguments, "_ov" );
}

function vImgOt() {
	_v_SwapImg( vImgOt.arguments, "_ot" );
}

function vImgOf() {
	_v_SwapImg( vImgOf.arguments, "" );
}


function vObjOv( obj ) {
	_v_SwapImgObj( obj, "_ov" );
}

function vObjOt( obj ) {
	_v_SwapImgObj( obj, "_ot" );
}

function vObjOf( obj ) {
	_v_SwapImgObj( obj, "" );
}

//---------------------------------------------------------
/* Random Image */

function vRandomImage( id, ary )
{
	var i = 1, c = 0, m = 0, k, o;
	while( ary[i] ) {
		m += ary[i+4];
		i += 5;
	}
	k = Math.random() * m;
	m = 0; i = 1;
	while( ary[i] ) {
		m += ary[i+4];
		if( m > k ) break;
		i += 5;
	}
	ary[i+4] = 0;
	o = vGetObj( id );
	o.src = ary[0]+ary[i];
	o.alt = ary[i+2];
	o.title = ary[i+3];
	o = vGetObj( id+"_a" );
	if( o ) {
		o.href = ary[i+1];
	}
}

//=========================================================
/* Private functions */

function _v_SwapImg( arg, ext ) {
	for( var i=0; i<arg.length; i++ ) {
		_v_SwapImgObj( vGetObj(arg[i]), ext );
	}
}

function _v_SwapImgObj( obj, ext ) {
	var file = obj.src.match(/(.+)_o[nvt](\..{3})$/);
	if( !file ) file = obj.src.match(/(.+)(\..{3})$/);
	obj.src = file[1] + ext + file[2];
}

function _v_PreloadImg( arg, ext ) {
	for( var i=0; i<arg.length; i++ ) {
		var obj = vGetObj( arg[i] );
		_v_PreloadImgObj( obj, ext );
	}
}

function _v_PreloadImgObj( obj, ext ) {
	var file = obj.src.match(/(.+)_o[nvt](\..{3})$/);
	if( !file ) file = obj.src.match(/(.+)(\..{3})$/);
	_v_NewImg( file[1] + ext + file[2] );
}

function _v_NewImg(src) {
	var d = document;
	if( !d._v_preImg ) d._v_preImg = new Array();
	return ( ( d._v_preImg[ d._v_preImg.length ] = new Image() ).src = src );
}









//windows.js

//=========================================================
/* Public Functions */

//---------------------------------------------------------
// Window Operation

function v_open_popup(url,w,h,scr,opt,name) {
	if( !scr ) scr = "no";
	return v_open_window(url,name,opt+",scrollbars="+scr+",width="+w+",height="+h);
}

function v_open_window(url,name,opt) {
	if( !name ) {
		var d = new Date();
		name = "v_win"+d.getTime();
	}
	var win = window.open(url,name,opt);
	win.opener = top;
	win.focus();
	return win;
}

function v_open_main(url,cls){
	if( !top.opener || top.opener.closed ) {
		top.opener = v_open_window(url,"","directories=1,location=1,menubar=1,scrollbars=1,status=1,toolbar=1,resizable=1");
	} else {
		top.opener.top.location = url;
	}
	top.opener.focus();
	if( cls ) close();
}

function v_close(){
	if( top.opner ) top.opener.focus();
	top.close();
}

/* // use for frameset
//---------------------------------------------------------
// Document Scroll

function vScrollToTop() {
	vScrollTo(0);
}

function vScrollToObj( id ) {
	var y = _v_GetObjPosY(id);
	vScrollTo( y );
}

function vScrollTo( y ) {
	if( _v_scrollTimer ) clearInterval( _v_scrollTimer );
	_v_scrollToY = y;
	_v_scrollLastY = _v_GetScrollPosY();
	_v_scrollTimer = setInterval( '_v_ScrollDo();', 15 );
}


//=========================================================


//Document Scroll
var _v_scrollToY;
var _v_scrollLastY;
var _v_scrollTimer;

function _v_ScrollDo() {
	var d = _v_scrollLastY - _v_scrollToY;
	var done = false;
	if( Math.abs(d)<1 ) {
		done = true;
		_v_scrollLastY = _v_scrollToY;
	} else if( _v_GetScrollPosY() != Math.floor(_v_scrollLastY) ) done = true;
	else _v_scrollLastY -= d / 6;
	self.scrollTo( 0, Math.floor(_v_scrollLastY) );
	if( done ) {
		clearInterval( _v_scrollTimer );
		_v_scrollTimer = null;
	}
}

function _v_GetScrollPosY() {
	if( _Ie ) return document.body.scrollTop;
	return self.pageYOffset;
}

function _v_GetObjPosY( id ) {
	var o = vGetObj(id);
	if( document.getElementById ) return o.offsetTop;
	if( _Ie ) return o.style.pixelTop;
	return o.top;
}

//---------------------------------------------------------
// Select menu Jump

function vJumpMenuItem( obj ){
	if ( obj.value ){
		top.location.href = obj.value;
	} else {
		return true;
	}
}
*/


function vScrollToTop() {
    vScrollTo(0);
}

function vScrollToObj( id ) {
    var y = _v_GetObjPosY(id);

    vScrollTo( y );
}

function vScrollTo( y ) {

    var w = window;
    var d = document.documentElement;
    var b = document.body;
    var mac = _Mac && _Ie;

    var windowH = (w.innerHeight) ? w.innerHeight : (!mac) ? d.offsetHeight : b.scrollHeight;
    var pageH   = (!mac) ? b.scrollHeight : d.offsetHeight;
    var maxY    = (pageH > windowH) ? pageH - windowH : 0;

    if( _v_scrollTimer ) clearInterval( _v_scrollTimer );

    _v_scrollToY = y < maxY ? y : maxY;
    _v_scrollLastY = _v_GetScrollPosY();
    _v_scrollTimer = setInterval( '_v_ScrollDo();', 15 );
}


//=========================================================
/* Private Functions */

//Document Scroll
var _v_scrollToY;
var _v_scrollLastY;
var _v_scrollTimer;

function _v_ScrollDo() {
    var d = _v_scrollLastY - _v_scrollToY;
    var done = false;
    if( Math.abs(d)<1 ) {
        done = true;
        _v_scrollLastY = _v_scrollToY;
    } else if( _v_GetScrollPosY() != Math.floor(_v_scrollLastY) ) done = true;
    else _v_scrollLastY -= d / 6;
    self.scrollTo( 0, Math.floor(_v_scrollLastY) );
    if( done ) {
        clearInterval( _v_scrollTimer );
        _v_scrollTimer = null;
    }
}

function _v_GetScrollPosY() {

    var w = window;
    var d = document.documentElement;
    var b = document.body;
    return (w.scrollY) ? w.scrollY : (d.scrollTop) ? d.scrollTop  : b.scrollTop;
}

function _v_GetObjPosY( id ) {
    var o = vGetObj(id);
    if( document.getElementById ) return o.offsetTop;
    if( _Ie ) return o.style.pixelTop;
    return o.top;
}
