/* -------------------------------------------------------------------------- */
/* JavaScript by Dr. Stefan Immel                              Copyright 2008 */
/* -------------------------------------------------------------------------- */

// definition of menu structure an items HTML code will be auto-generated using
// this data, empty folders (without molecular structures) will be skipped

var structure_path = "";		// directory prefix for structure files
var structure_grps = 0;			// number of folders (global variable calculated automatically)
var structure_list = new Array();	// automatic pointer list of folders
var structure_stat = "";		// automatic storage of folder status (opened/closed) as text string
var structure_data = new Array();	// menu data, for folders, a status variable (opened/closed) will be appended automatically as structure_data[..][3]
var structure_init = null;		// first structure to load on page entry
var structure_logf = new Image();
var structure_logt = "|";

/* -------------------------------------------------------------------------- */

function orbital_name(orbital) {
	var n = 0;
	n = int(orbital.replace(/^([0-9])(.*)$/, "$1"));
	switch (orbital.replace(/^([0-9])(.*)$/, "$2")) {
		case "sp1":        name = "sp";                                                    break;
		case "sp2":        name = "sp<sup>2</sup>";                                        break;
		case "sp3":        name = "sp<sup>3</sup>";                                        break;

                case "d1-3sp2":    name="sp<sup>2</sup>3d<sup> </sup>";                            break;
                case "d1-3sp3":    name="sp<sup>3</sup>3d<sup> </sup>";                            break;
                case "d1-4sp2":    name="sp<sup>2</sup>3d<sup> </sup>";                            break;
                case "d1-4sp2":    name="sp<sup>2</sup>4d<sup> </sup>";                            break;
                case "d1-4sp3":    name="sp<sup>3</sup>3d<sup> </sup>";                            break;
                case "d1-4sp3":    name="sp<sup>3</sup>4d<sup> </sup>";                            break;
                case "d2-3sp3":    name="sp<sup>3</sup>3d<sup>2</sup>";                            break;
                case "d2-4sp3":    name="sp<sup>3</sup>3d<sup>2</sup>";                            break;
                case "d2-4sp3":    name="sp<sup>3</sup>4d<sup>2</sup>";                            break;

		case "dx2-y2":     name = "d<sub>x<sup>2</sup>-y<sup>2</sup></sub>";               break;
		case "dxy":        name = "d<sub>xy</sub>";                                        break;
		case "dxz":        name = "d<sub>xz</sub>";                                        break;
		case "dyz":        name = "d<sub>yz</sub>";                                        break;
		case "dz2":        name = "d<sub>z<sup>2</sup></sub>";                             break;
		case "fcx3":       name = "f<sub>x<sup>3</sup></sub>";                             break;
		case "fcx_z2-y2_": name = "f<sub>x(z<sup>2</sup>-y<sup>2</sup>)</sub>";            break;
		case "fcxyz":      name = "f<sub>xyz</sub>";                                       break;
		case "fcy3":       name = "f<sub>y<sup>3</sup></sub>";                             break;
		case "fcy_z2-x2_": name = "f<sub>y(z<sup>2</sup>-x<sup>2</sup>)</sub>";            break;
		case "fcz3":       name = "f<sub>z<sup>3</sup></sub>";                             break;
		case "fcz_x2-y2_": name = "f<sub>z(x<sup>2</sup>-y<sup>2</sup>)</sub>";            break;
		case "fx_x2-3y2_": name = "f<sub>x(x<sup>2</sup>-3y<sup>2</sup>)</sub>";           break;
		case "fxyz":       name = "f<sub>xyz</sub>";                                       break;
		case "fxz2":       name = "f<sub>xz<sup>2</sup></sub>";                            break;
		case "fy_3x2-y2_": name = "f<sub>y(3x<sup>2</sup>-y<sup>2</sup>)</sub>";           break;
		case "fyz2":       name = "f<sub>yz<sup>2</sup></sub>";                            break;
		case "fz3":        name = "f<sub>z<sup>3</sup></sub>";                             break;
		case "fz_x2-y2_":  name = "f<sub>z(x<sup>2</sup>-y<sup>2</sup>)</sub>";            break;
		case "gx4_y4":     name = "g<sub>x<sup>4</sup>+y<sup>4</sup></sub>";               break;
		case "gxy_x2-y2_": name = "g<sub>xy(x<sup>2</sup>-y<sup>2</sup>)</sub>";           break;
		case "gz2_x2-y2_": name = "g<sub>z<sup>2</sup>(x<sup>2</sup>-y<sup>2</sup>)</sub>";break;
		case "gz2xy":      name = "g<sub>z<sup>2</sup>xy</sub>";                           break;
		case "gz3x":       name = "g<sub>z<sup>3</sup>x</sub>";                            break;
		case "gz3y":       name = "g<sub>z<sup>3</sup>y</sub>";                            break;
		case "gz4":        name = "g<sub>z<sup>4</sup></sub>";                             break;
		case "gzx3":       name = "g<sub>zx<sup>3</sup></sub>";                            break;
		case "gzy3":       name = "g<sub>zy<sup>3</sup></sub>";                            break;
		case "px":         name = "p<sub>x</sub>";                                         break;
		case "py":         name = "p<sub>y</sub>";                                         break;
		case "pz":         name = "p<sub>z</sub>";                                         break;
		case "s":          name = "s";                                                     break;

		default:           name = "unknown: " + orbital;
	}
	if ( name.indexOf("unknown") < 0 ) name = n + name;
	return name;
}

/* -------------------------------------------------------------------------- */
