/** carrega a imagem de troca **/
function IH_imageLoad(obj) {
	if (typeof(obj) == "string") {
		args = IH_imageLoad.arguments;
		for(i = 0; i < args.length; i++) {
			image = new Image;
			image.src = changeName(args[i])
		}
	} else {
		image = new Image;
		image.src = changeName(obj.src)
	}
}

function IMG_isNameWithSufix(imgname, sufix){
	if(imgname.length >= 4 && imgname.charAt(imgname.length - 4) == '.'){
		var oneSufix = (imgname.length >= 6 && imgname.charAt(imgname.length - 6) == '-');
		var twoSufix = (imgname.length >= 8 && imgname.charAt(imgname.length - 8) == '-');
		if(oneSufix){
			var firstSufix = imgname.charAt(imgname.length - 5);
			if(twoSufix){
				var secondSufix = imgname.charAt(imgname.length - 7);
				return (firstSufix == sufix || secondSufix == sufix);
			}else{
				return (firstSufix == sufix);
			}
		}
	}
	return false;
}

function IMG_isEnabled(img){
  return !IMG_isNameWithSufix(img.src, 'd');
}

function IMG_enable(img, newEnabled){
	if(newEnabled){
		img.src = IMG_getOriginalName(img.src)
		if(navigator.appName == "Netscape"){
			img.style.cursor = "pointer";
		}else{
			img.style.cursor = "hand";
		}
	}else{
		img.src = IMG_getDisabledName(img.src)
		img.style.cursor = "";
	}
}

function IMG_getOriginalName(imgname){
	if(IMG_isNameWithSufix(imgname, 'o') || IMG_isNameWithSufix(imgname, 'd')){
		var tipo = imgname.substr(imgname.length  - 3);
		imgname = imgname.substr(0, imgname.length - 6) + '.' + tipo;
		return IMG_getOriginalName(imgname);
	}else{
		return imgname;
	}
}

function IMG_assembleName(imgname, sufix){
	var tipo = imgname.substr(imgname.length  - 3);
	return imgname.substr(0, imgname.length - 4) + sufix + '.' + tipo;
}

function IMG_getDisabledName(imgname){
	return IMG_assembleName(IMG_getOriginalName(imgname), '-d');
}

function IMG_getOverName(imgname){
	return IMG_assembleName(IMG_getOriginalName(imgname), '-o');
}

/** Se a imagem tiver '-o' tira se nao coloca **/
function changeName(name) {
	var tipo = name.substr(name.length  - 3);
	var posMenos = name.lastIndexOf("-");
	var sufixo = "-o.";
	if ((posMenos > 0) && (name.substr(posMenos, String(sufixo).length) == sufixo)) {
		return name.substr(0, name.length - 6) + "." + tipo;
	} else {
		return name.substr(0, name.length - 4) + sufixo + tipo;
	}
}

/** troca a imagem e o cursor **/
function imageChange(obj) {
	if(navigator.appName == "Netscape"){
		cursor = "pointer";
	}else{
		cursor = "hand";
	}
	obj.style.cursor = cursor;
	obj.src = changeName(obj.src)
}

/** Se a imagem tiver '-o' tira se nao coloca, os atributos podem ser o objeto ou um conjunto de ids **/
function IH_mOver(obj){
	if (typeof(obj) == "string") {
		args = IH_mOver.arguments;
		for(i = 0; i < args.length; i++) {
			objImg = document.getElementById(args[i]);			
			if (objImg != null) {
				if(IMG_isEnabled(obj)){
					imageChange(objImg);
				}
			}
		}
	} else {
		if(IMG_isEnabled(obj)){
			imageChange(obj);
		}
	}
}

function IH_mOut(obj){
	IH_mOver(obj)
}

function IH_toggleOver(obj){
	IH_mOver(obj);
}

function IH_toggle(obj){
	var div = document.getElementById(obj.getAttribute('divId'));
	IH_toogleDiv(div);
}

function IH_toogleDiv(div){
	var divId = div.id;
	var obj = document.getElementById("toggleImg_" + divId);
	if(obj != null){
		if(div.style.display == 'none'){
			div.style.display = "";
			IH_mOver(obj);
			obj.src = obj.src.substring(0, obj.src.indexOf('-c')) + obj.src.substring(obj.src.indexOf('-c') + 2, obj.src.length);
			IH_mOver(obj);
		} else {
			div.style.display = 'none';
			IH_mOver(obj);
			obj.src = obj.src.substring(0,obj.src.length - 4) + '-c' + obj.src.substring(obj.src.length - 4, obj.src.length);
			IH_mOver(obj);
		}
	}
}

function IH_toggleOut(obj){
	IH_mOver(obj);
}
