//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 ssGetObj(id,d) {
	if( !d ) var d = document;
	if( d.getElementById ) return d.getElementById( id );
	if( d.all ) d.all( id );
	return d[id];
}


// Document Scroll
function ssScrollToTop() {
	ssScrollTo(0);
}

function ssScrollToObj( id ) {
	ssScrollTo( _ss_GetObjPosY(id) );
}

function ssScrollTo( y ) {
	if( _ss_scrollTimer ) clearInterval( _ss_scrollTimer );
	_ss_scrollToY = y;
	_ss_scrollLastY = _ss_GetScrollPosY();
	_ss_scrollTimer = setInterval( '_ss_ScrollDo();', 15 );
}



//Private functions
var _ss_preImg = new Array();

function _ss_SwapImg( arg, ext ) {
	for( var i=0; i<arg.length; i++ ) {
		_ss_SwapImgObj( ssGetObj(arg[i]), ext );
	}
}

function _ss_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 _ss_PreloadImg( arg, ext ) {
	for( var i=0; i<arg.length; i++ ) {
		var obj = ssGetObj( arg[i] );
		_ss_PreloadImgObj( obj, ext );
	}
}

function _ss_PreloadImgObj( obj, ext ) {
	var file = obj.src.match(/(.+)_o[nvt](\..{3})$/);
	if( !file ) file = obj.src.match(/(.+)(\..{3})$/);
	_ss_NewImg( file[1] + ext + file[2] );
}

function _ss_NewImg(src) {
	var d = document;
	( _ss_preImg[ _ss_preImg.length ] = new Image() ).src = src;
}

//Document Scroll
var _ss_scrollToY;
var _ss_scrollLastY;
var _ss_scrollTimer;

function _ss_ScrollDo() {
	var d = _ss_scrollLastY - _ss_scrollToY;
	var done = false;
	if( Math.abs(d)<1 ) {
		done = true;
		_ss_scrollLastY = _ss_scrollToY;
	} else if( _ss_GetScrollPosY() != Math.floor(_ss_scrollLastY) ) done = true;
	else _ss_scrollLastY -= d / 6;
	self.scrollTo( 0, Math.floor(_ss_scrollLastY) );
	if( done ) {
		clearInterval( _ss_scrollTimer );
		_ss_scrollTimer = null;
	}
}

function _ss_GetScrollPosY() {
	if( _Ie ) return document.body.scrollTop;
	return self.pageYOffset;
}

function _ss_GetObjPosY( id ) {
	var o = ssGetObj(id);
	if( document.getElementById ) return o.offsetTop;
	if( _Ie ) return o.style.pixelTop;
	return o.top;
}