/*____________________________________________

  Copyright (C) 2004 Business Architects Inc.
______________________________________________*/

// require /shared/js/common.js

function preloadImg(src){
	if(document.images && src){
		(new Image()).src = src;
	}
}

function preloadImgs(srcs){
	if(!document.images) return;
	for (i=0;i<srcs.length;i++){
		preloadImg(srcs[i]);
	}
}

RollOverImages.pli = new Array();

function RollOverImages(targetClass,ois,ais){
	if(!document.kkROI) document.kkROI = this;
	this.targetClass = targetClass;
	this.ois = ois;//over image saffix
	this.ais = ais;//down image saffix
	if(targetClass && (ois || ais)) this.define();
}

RollOverImages.prototype.swap = function(names,status){
	for(var i=0;i<names.length;i++){
		var tempobj = (document.all)? document.all[names[i]] : document.getElementById(names[i]);
		if(tempobj[status]) tempobj.src = tempobj[status];
	}
}

RollOverImages.prototype.define = function(){
	if(!document.getElementById && document.all) return;
	if(!document.images) return;
	var pli = RollOverImages.pli;
	var ois = this.ois;
	var ais = this.ais;
	var idprefix = 'kkROIti_';
	var objs = BA.getElementsByClassName(this.targetClass);
	if(objs.length == 0){
		objs = BA.getElementsByClassName(this.targetClass,'img');
	}
	for(var i=0;i<objs.length;i++){
		var tempimg = objs[i];
		
		tempimg.id = (tempimg.id)? tempimg.id : (idprefix + this.targetClass + '_' + i);
		
		var basesrc = tempimg.src;
		var imgtype = basesrc.substring(basesrc.lastIndexOf('.'));
		var basename = basesrc.substring(0,basesrc.length - imgtype.length);
		var temppli = new Object;
		tempimg.u = basesrc;
		if(ois){
			tempimg.o = temppli.o = basename + ois + imgtype;
			if(pli.indexOf(temppli.o) == -1) pli.push(temppli.o);
		}
		if(ais){
			tempimg.a = temppli.a = basename + ais + imgtype;
			if(pli.indexOf(temppli.a) == -1) pli.push(temppli.a);
		}
		
		if(tempimg.tagName == 'IMG'){
			var pa = tempimg.parentNode;
			for(var j=0;j<10;j++){
				if(pa && pa.tagName == 'A'){
					if(!pa.kkROIti) pa.kkROIti = new Array();
					pa.kkROIti.push(tempimg.id);
					if(!pa.onmouseover) pa.onmouseover = function(){this._onfocus = this.onfocus; this.onfocus = ''; document.kkROI.swap(this.kkROIti,'o');};
					if(ois && !pa.onmouseout) pa.onmouseout = function(){this.onfocus = this._onfocus; document.kkROI.swap(this.kkROIti,'u');};
					if(ais && !pa.onmousedown) pa.onmousedown = function(){document.kkROI.swap(this.kkROIti,'a');};
					if(ois && ais && !pa.onmouseup) pa.onmouseup = function(){document.kkROI.swap(this.kkROIti,'o');};
					if(ois && !pa.onfocus) pa.onfocus = function(){document.kkROI.swap(this.kkROIti,'o');};
					if(!pa.onblur) pa.onblur = function(){document.kkROI.swap(this.kkROIti,'u');};
					if(ais && !pa.onkeypress) pa.onkeypress = function(){document.kkROI.swap(this.kkROIti,'a');};
					if(ois && ais && !pa.onkeyup) pa.onkeyup = function(){document.kkROI.swap(this.kkROIti,'o');};
					break;
				}else if(pa.parentNode){
					pa = pa.parentNode;
				}else{
					break;
				}
			}
		}else if(tempimg.tagName == 'INPUT'){
			tempimg.kkROIti = [tempimg.id];
			if(!tempimg.onmouseover) tempimg.onmouseover = function(){this._onfocus = this.onfocus; this.onfocus = ''; document.kkROI.swap(this.kkROIti,'o');};
			if(ois && !tempimg.onmouseout) tempimg.onmouseout = function(){this.onfocus = this._onfocus; document.kkROI.swap(this.kkROIti,'u');};
			if(ais && !tempimg.onmousedown) tempimg.onmousedown = function(){document.kkROI.swap(this.kkROIti,'a');};
			if(ois && ais && !tempimg.onmouseup) tempimg.onmouseup = function(){document.kkROI.swap(this.kkROIti,'o');};
			if(ois && !tempimg.onfocus) tempimg.onfocus = function(){document.kkROI.swap(this.kkROIti,'o');};
			if(!tempimg.onblur) tempimg.onblur = function(){document.kkROI.swap(this.kkROIti,'u');};
			if(ais && !tempimg.onkeypress) tempimg.onkeypress = function(){document.kkROI.swap(this.kkROIti,'a');};
			if(ois && ais && !tempimg.onkeyup) tempimg.onkeyup = function(){document.kkROI.swap(this.kkROIti,'o');};
		}
	}
	preloadImgs(pli);
}

if (typeof BA == 'object' && BA.env.DOMok) {
	BA.addOnload(function(){new RollOverImages('rollover','o')});
	BA.addOnload(function(){new RollOverImages('button','o','a')});
}
