function change(h_who, whatto, options) {
	if ( (typeof options != 'undefined') && (options.indexOf('=') != -1) ) {
		OptionArray = options.split(',');
		re = /\s*(\w*)\s*=\s*(.*)\s*/;
		for (opt in OptionArray) {
			var thisone = OptionArray[opt];
			re.exec(thisone);
			eval("var " + RegExp.$1 + " = '" + RegExp.$2 + "';");
		}
	}
	if ((typeof whichAtr == 'undefined') || (whichAtr == '')) {
		re = /z\.gif$/;
		if ((h_who.tagName.toLowerCase() == "img") && (!(re.test(h_who.src)))) {
			var whichAtr = "src";
		} else {
			var whichAtr = "className";
		}
	}
	eval("var orgAtr = h_who." + whichAtr + ";");
	if ((typeof howto == 'undefined') || (howto == '')) {
		howto = 'regular';
	}
	if (howto == 'truechoice') {
		eval("h_who." + whichAtr + " = whatto;");
	} else {
		if ((typeof basename == 'undefined') || (basename == '')) {
			re = /^(.*_)([\w-]*)(.{0,5})$/;
			re.exec(orgAtr);
			var basename=(RegExp.$1!='')?RegExp.$1:orgAtr+'_';
			if (typeof whatto == 'undefined') {
				var whatto=(RegExp.$2!='on')?'on':'off';
			}
			var ext = RegExp.$3;
		}
		if (howto == 'serial') {
			if ((typeof max == 'undefined') || (max == '')) {
				var max = 2;
			}
			re = /^(.*_)([\d]+)(.{0,5})$/;
			re.exec(orgAtr);
			var number=(whatto=='-')?(((RegExp.$2*1)-1)%max):(((RegExp.$2*1)+1)%max);
			number=(number == -1)?max*1-1 :number;
			var ext = RegExp.$3;
			eval("h_who." + whichAtr + " = basename + number + ext;");
		} else {
			eval("h_who." + whichAtr + " = basename + whatto + ext;");
		}
	}
}
