/*
-----------------------------------------------------------
	rollover.js
-----------------------------------------------------------
*/

//=========================================================
/* Public functions */

function vGetObj(id) {
	var d = document;
	if( d.getElementById ) return d.getElementById( id );
	if( d.all ) return 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 );
}

