var flag = 1;
function setElementOpacity(oElem, nOpacity)
{
	var p = getOpacityProperty();
	(setElementOpacity = p=="filter"?new Function('oElem', 'nOpacity', 'nOpacity *= 100;	var oAlpha = oElem.filters["DXImageTransform.Microsoft.alpha"] || oElem.filters.alpha;	if (oAlpha) oAlpha.opacity = nOpacity; else oElem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")";'):p?new Function('oElem', 'nOpacity', 'oElem.style.'+p+' = nOpacity;'):new Function)(oElem, nOpacity);
}
function getOpacityProperty(){
	var p = '';
	if (typeof document.body.style.opacity == 'string') {
		p = 'opacity';
	}else{
		if (typeof document.body.style.MozOpacity == 'string') {
			p =  'MozOpacity';
		}else{
			if (typeof document.body.style.KhtmlOpacity == 'string') {
				p =  'KhtmlOpacity';
			}else{
				if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) {
					p =  'filter';
				}	
			}
		}
	}	                                                        
	return (getOpacityProperty = new Function("return '"+p+"';"))();
}
function fadeOpacity(sElemId, sRuleName, bBackward, flagger, param){
	var elem = document.getElementById(sElemId);
	if(typeof flagger != 'undefined'){
		var callback = flagger;
	}
	if ((!elem) || (!getOpacityProperty()) || (!fadeOpacity.aRules[sRuleName])) {
		return false;
	}	
	
	var rule = fadeOpacity.aRules[sRuleName];
	var nOpacity = rule.nStartOpacity;
	
	if (fadeOpacity.aProc[sElemId]) {
		clearInterval(fadeOpacity.aProc[sElemId].tId); nOpacity = fadeOpacity.aProc[sElemId].nOpacity;
	}
	if ((nOpacity==rule.nStartOpacity && bBackward) || (nOpacity==rule.nFinishOpacity && !bBackward)){ 
		return false;
	}	
	if(typeof callback != 'undefined'){
		fadeOpacity.aProc[sElemId] = {'param':param, 'callback':callback, 'nOpacity':nOpacity, 'tId':setInterval('fadeOpacity.run("'+sElemId+'")', fadeOpacity.aRules[sRuleName].nDalay), 'sRuleName':sRuleName, 'bBackward':Boolean(bBackward)};
	}else{
		fadeOpacity.aProc[sElemId] = {'nOpacity':nOpacity, 'tId':setInterval('fadeOpacity.run("'+sElemId+'")', fadeOpacity.aRules[sRuleName].nDalay), 'sRuleName':sRuleName, 'bBackward':Boolean(bBackward)};
	}
}

fadeOpacity.addRule = function(sRuleName, nStartOpacity, nFinishOpacity, nDalay){fadeOpacity.aRules[sRuleName]={'nStartOpacity':nStartOpacity, 'nFinishOpacity':nFinishOpacity, 'nDalay':(nDalay || 30),'nDSign':(nFinishOpacity-nStartOpacity > 0?1:-1)};};

fadeOpacity.back = function(sElemId){fadeOpacity(sElemId,fadeOpacity.aProc[sElemId].sRuleName,true);};

fadeOpacity.run = function(sElemId){
	var proc = fadeOpacity.aProc[sElemId];
	var rule = fadeOpacity.aRules[proc.sRuleName];
	
	proc.nOpacity = Math.round(( proc.nOpacity + .02*rule.nDSign*(proc.bBackward?-1:1) )*50)/50;
	setElementOpacity(document.getElementById(sElemId), proc.nOpacity);
	
	if (proc.nOpacity==rule.nStartOpacity || proc.nOpacity==rule.nFinishOpacity) {
		clearInterval(fadeOpacity.aProc[sElemId].tId);
		if(typeof proc.callback != 'undefined'){
			proc.callback(proc.param);
		}
	}
};
fadeOpacity.aProc = {};
fadeOpacity.aRules = {};
fadeOpacity.addRule('oR1', .6, 1, 5);
fadeOpacity.addRule('oR2', 1, .6, 5);
fadeOpacity.addRule('oR1long', .6, 1, 10);
fadeOpacity.addRule('oR2long', 1, .6, 10);


fadeOpacity.addRule('oR130', .3, 1, 5);
fadeOpacity.addRule('oR230', 1, .3, 5);
fadeOpacity.addRule('oR130long', .3, 1, 5);
fadeOpacity.addRule('oR230long', 1, .3, 5);

