var groups = new Object();
 
function imageRollOverSetup(rollClassName) {
	
	var img_arr = getElementsByClass(rollClassName);
	groups[rollClassName] = img_arr;
	
	var preload_arr = new Array();
	for (var i=0;i<img_arr.length;i++) {
		var img_src = img_arr[i].src;
		var img_src_split_arr = img_src.split("/");
		var img_file_name = img_src_split_arr[img_src_split_arr.length-1];
		var img_file_name_split_arr = img_file_name.split(".");
		var img_name_off = img_file_name_split_arr[0];
		var img_extension = img_file_name_split_arr[1];
		var img_name = img_name_off.slice(0,img_name_off.length-1);
		preload_arr[i] = new Image(img_arr[i].width,img_arr[i].height);
		preload_arr[i].src = "images/"+img_name+"1."+img_extension;
		img_arr[i].img_name = img_name;
		img_arr[i].group = rollClassName;
		img_arr[i].img_extension = img_extension;
		img_arr[i].img_folder = "images";
		img_arr[i].isSelected = false;
		if (typeof(img_arr[i].onmouseover) != "undefined") {
			img_arr[i].on_mouse_over = img_arr[i].onmouseover;
		}
		if (typeof(img_arr[i].onmouseout) != "undefined") {
			img_arr[i].on_mouse_out = img_arr[i].onmouseout;
		}
		if (typeof(img_arr[i].onclick) != "undefined") {
			img_arr[i].on_click = img_arr[i].onclick;
		}
		img_arr[i].onmouseover = function() {
			if (typeof(this.on_mouse_over) != "undefined") {
				this.on_mouse_over();
			}
			imageOn(this);
		}
		img_arr[i].onmouseout = function() {
			if (typeof(this.on_mouse_out) != "undefined") {
				this.on_mouse_out();
			}
			if (this.isSelected != true) {
				setImageOff(this);
			}
		}
		img_arr[i].onclick = function() {
			if (typeof(this.on_click) != "undefined") {
				this.on_click();
			}
			if (typeof(this.noClick) == "undefined") {
				setClicked(this);
			}
		}
		
	}
}

function setImageOn(img_obj) {
	img_obj.src = img_obj.img_folder+"/"+img_obj.img_name+"1."+img_obj.img_extension;
}

function setImageOff(img_obj) {
	if (img_obj.isSelected != true) {
		img_obj.src = img_obj.img_folder+"/"+img_obj.img_name+"0."+img_obj.img_extension;
	}
}

function setImageStateCheck(state) {
	if (typeof(tt_parent_obj) != "undefined") {
		if (state == "on") {
			setImageOn(tt_parent_obj);
		} else {
			setImageOff(tt_parent_obj);
		}
	}
}

function setClicked(img_obj) {
	var startEmptying = false;
	var dummy_obj = new Object();
	for (var group in groups) {
		if (startEmptying) {
			setSelected(dummy_obj,group);
			imageGroupOn(dummy_obj,group);
		}
		for (var i=0;i<groups[group].length;i++) {
			if (groups[group][i] == img_obj) {
				setSelected(groups[group][i],group);
				imageGroupOn(groups[group][i],group);
				startEmptying = true;
				break;
			}
		}
	}
}

function setAsIfClicked(img_obj,group) {
	setSelected(img_obj,group);
	imageGroupOn(img_obj,group);
}

function imageGroupOn(obj,group) {
	for (var i=0;i<groups[group].length;i++) {
		var img_obj = groups[group][i];
		if (img_obj == obj) {
			setImageOn(img_obj);
		} else {
			if (img_obj.isSelected != true) {
				setImageOff(img_obj);
			}
		}
	}
}

function imageOn(obj) {
	for (var group in groups) {
		for (var i=0;i<groups[group].length;i++) {
			var img_obj = groups[group][i];
			if (img_obj == obj) {
				setImageOn(img_obj);
			} else {
				if (img_obj.isSelected != true) {
					setImageOff(img_obj);
				}
			}
		}
	}
}

function setSelected(img_obj,group) {
	for (var i=0;i<groups[group].length;i++) {
		if (groups[group][i] == img_obj) {
			groups[group][i].isSelected = true;
		} else {
			groups[group][i].isSelected = false;
		}
	}
}

function getElementsByClass(searchClass){
	var return_arr = new Array();
	var incr=0;
	var img_tags=document.getElementsByTagName("img");
	for (var i=0;i<img_tags.length;i++) {
		if (img_tags[i].className == searchClass) {
			return_arr[incr]=img_tags[i];
			incr++;
		}
	}
	return return_arr;
}

function triggerImageOnClick(imageID) {
	var trigger_image = document.getElementById(imageID);
	trigger_image.onclick();
}

function triggerImageOn(imageID) {
	var trigger_image = document.getElementById(imageID);
	setClicked(trigger_image);
}
