/**************************************************************************
 * jvAmin Object Library
 * (c) Copyright 2005 Johnvey Hwang.
 * http://johnvey.com
 *
 * Portions of this file are subject to the following copyrights:
 * ---
 * Browser Detect Lite  v2.1
 * http://www.dithered.com/javascript/browser_detect/index.html
 * modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)
 * modified by Michael Lovitt to include OmniWeb and Dreamcast
 * ---
 * Opacity Displayer, Version 1.0
 * Copyright Michael Lovitt, 6/2002.
 * Distribute freely, but please leave this notice intact.
 * ---
 *
 *************************************************************************/

function BrowserDetectLite() {
	var ua = navigator.userAgent.toLowerCase(); 
	this.ua = ua;

	// browser name
	this.isGecko     = (ua.indexOf('gecko') != -1);
	this.isMozilla   = (this.isGecko && ua.indexOf("gecko/") + 14 == ua.length);
	this.isNS        = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
	this.isIE        = ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) ); 
	this.isOpera     = (ua.indexOf("opera") != -1); 
	this.isKonqueror = (ua.indexOf("konqueror") != -1); 
	this.isIcab      = (ua.indexOf("icab") != -1); 
	this.isAol       = (ua.indexOf("aol") != -1); 
	this.isWebtv     = (ua.indexOf("webtv") != -1); 
	this.isOmniweb   = (ua.indexOf("omniweb") != -1);
	this.isDreamcast   = (ua.indexOf("dreamcast") != -1);
	
	// spoofing and compatible browsers
	this.isIECompatible = ( (ua.indexOf("msie") != -1) && !this.isIE);
	this.isNSCompatible = ( (ua.indexOf("mozilla") != -1) && !this.isNS && !this.isMozilla);
	
	// browser version
	this.versionMinor = parseFloat(navigator.appVersion); 
	
	// correct version number for NS6+ 
	if (this.isNS && this.isGecko) {
		this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
	}
	
	// correct version number for IE4+ 
	else if (this.isIE && this.versionMinor >= 4) {
		this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
	}
	
	// correct version number for Opera 
	else if (this.isOpera) {
		if (ua.indexOf('opera/') != -1) {
			this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
		}
		else {
			this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
		}
	}
	
	// correct version number for Konqueror
	else if (this.isKonqueror) {
		this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
	}
	
	// correct version number for iCab 
	else if (this.isIcab) {
		if (ua.indexOf('icab/') != -1) {
			this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
		}
		else {
			this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
		}
	}
	
	// correct version number for WebTV
	else if (this.isWebtv) {
		this.versionMinor = parseFloat( ua.substring( ua.indexOf('webtv/') + 6 ) );
	}
	
	this.versionMajor = parseInt(this.versionMinor); 
	this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
	
	// platform
	this.isWin   = (ua.indexOf('win') != -1);
	this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1) );
	this.isMac   = (ua.indexOf('mac') != -1);
	this.isUnix  = (ua.indexOf('unix') != -1 || ua.indexOf('linux') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
	
	// specific browser shortcuts
	this.isNS4x = (this.isNS && this.versionMajor == 4);
	this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
	this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
	this.isNS4up = (this.isNS && this.versionMinor >= 4);
	this.isNS6x = (this.isNS && this.versionMajor == 6);
	this.isNS6up = (this.isNS && this.versionMajor >= 6);
	
	this.isIE4x = (this.isIE && this.versionMajor == 4);
	this.isIE4up = (this.isIE && this.versionMajor >= 4);
	this.isIE5x = (this.isIE && this.versionMajor == 5);
	this.isIE55 = (this.isIE && this.versionMinor == 5.5);
	this.isIE5up = (this.isIE && this.versionMajor >= 5);
	this.isIE6x = (this.isIE && this.versionMajor == 6);
	this.isIE6up = (this.isIE && this.versionMajor >= 6);
	
	this.isIE4xMac = (this.isIE4x && this.isMac);
}
var browser = new BrowserDetectLite();
/********************************************************************************/
function od_displayImage(strId, strPath, intWidth, intHeight, strClass, strAlt) {	
	if (pngAlpha) {
		document.write('<img src="/images/clear.gif" style="px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+strPath+'.png\', sizingMethod=\'scale\')" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" id="' + strId + '" border="0" class="'+strClass+'" alt="'+strAlt+'" />');
	} else if (pngNormal) {
		document.write('<img src="'+strPath+'.png" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />');
	} else {
		document.write('<img src="'+strPath+'.gif" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />');
	}
}

if ((browser.isIE55 || browser.isIE6up) && browser.isWin32) {
	var pngAlpha = true;
	var strExt = ".png";
} else if ((browser.isGecko) || (browser.isIE5up && browser.isMac) || (browser.isOpera && browser.isWin && browser.versionMajor >= 6) || (browser.isOpera && browser.isUnix && browser.versionMajor >= 6) || (browser.isOpera && browser.isMac && browser.versionMajor >= 5) || (browser.isOmniweb && browser.versionMinor >= 3.1) || (browser.isIcab && browser.versionMinor >= 1.9) || (browser.isWebtv) || (browser.isDreamcast)) {
	var pngNormal = true;
	var strExt = ".png";
} else {
	var strExt = ".gif";
}

var ns = (document.all)?false:true;
var browserVersion = parseFloat(navigator.appVersion );
/********************************************************************************/
function jvAnim(oid, mObjs, fObjs) {
	var _sTm, _dTm, _output;
	this._self = oid;
	this.lastTime = 0;
	this.isCrap = false;
	this.isOpen = false;
	this.mObj = new Array();
	this.fObj = new Array();
	for(var i=mObjs.length-1; i >= 0; i--)
		this.mObj.push(document.getElementById(mObjs[i]));
	for(var i=fObjs.length-1; i >= 0; i--)
		this.fObj.push(document.getElementById(fObjs[i]));
}

jvAnim.prototype.scale = function(endWidth, duration) {
	clearInterval(this._t);
	this._sTm = (new Date()).getTime();
	this._dTm = duration;
	var distance = endWidth - this.mObj[0].offsetWidth;
	if(distance != 0)
		this._t = setInterval(this._self + ".m_scale(" + this.mObj[0].offsetWidth + "," + distance + ")", 25);
}

jvAnim.prototype.m_scale = function(startWidth, distance) {
	var eTm = (new Date()).getTime() - this._sTm;
	if(eTm > this._dTm) { 
		this.lastTime = eTm;
		eTm = this._dTm; 
		clearInterval(this._t); 
	}
	for(var i=this.mObj.length-1; i >= 0; i--)
		this.mObj[i].style.width = (startWidth + Math.round(distance * Math.atan((eTm*3)/this._dTm) / 1.25)) + "px";
}

jvAnim.prototype.fade = function(sOp, eOp, duration) {
	clearInterval(this._t1);
	if(this.isCrap || sOp == eOp) return true;
	this._fm = 0;
	this._sTm = (new Date()).getTime();
	this.dr = duration;
	this.dOp = eOp - sOp;
	isIn = sOp < eOp ? false : true;
	this._t1 = setInterval(this._self + ".m_fade(" + isIn + "," + sOp + "," + eOp + ")",25);
}	

jvAnim.prototype.m_fade = function(isIn, sOp, eOp) {
	var eTm = (new Date()).getTime() - this._sTm;
	if(eTm >= this.dr) {
		eTm = this.dr;
		clearInterval(this._t1);
	}
  	for(var i=this.fObj.length-1; i >= 0; i--) {
		if(browser.isIE)	this.fObj[i].style.filter = "alpha(opacity:"+(sOp + Math.round(eTm/this.dr * this.dOp))+")";
		else				this.fObj[i].style.opacity = (sOp + Math.round(eTm/this.dr * this.dOp))/100;
	}

}

jvAnim.prototype.fadeOff = function() {
	if(!this.isCrap) {
		this.isCrap = true;
		for(var i=this.fObj.length-1; i >= 0; i--) {
			if(browser.isIE)	this.fObj[i].style.filter = "alpha(opacity:100)";
			else				this.fObj[i].style.opacity = 1;
		}
	}
}
