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 == '')) {
		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 == '')) {
			var basename;
			re = /^(.*_)[\w-]*(.{0,5})$/;
			re.exec(orgAtr);
			(RegExp.$1!='')?basename=RegExp.$1:basename=orgAtr+'_';
			var ext = RegExp.$2;
		}
		if (howto == 'serial') {
			var number;
			if ((typeof max == 'undefined') || (max == '')) {
				var max = 2;
			}
			re = /^(.*_)([\d]+)(.{0,5})$/;
			re.exec(orgAtr);
			(whatto=='-')?number=(((RegExp.$2*1)-1)%max):number=(((RegExp.$2*1)+1)%max);
			(number == -1)?number=max*1-1 :number=number;
			var ext = RegExp.$3;
			eval("h_who." + whichAtr + " = basename + number + ext;");
		} else {
			eval("h_who." + whichAtr + " = basename + whatto + ext;");
		}
	}
}
