function Controller() {	this.name="Controller"	this.model=new Model(this)	this.view1= new View1(this)	// Functions	this.addOnClick=addOnClick_fnct	this.addCallback=addCallback_fnct	this.addAllCallbacks=addAllCallbacks_fnct}function addOnClick_fnct(elem, func) {	elem.onclick=func;	if (elem.captureEvents) elem.captureEvents(Event.click);}function addCallback_fnct(name, obs, func) {	var obj=this; 	obs.addCallback(name, func, obj)}function addAllCallbacks_fnct() {	this.addCallback('changed', this.model.category.category, obsCategoryChanged)	this.addCallback('switched', this.model.font.font, obsFontSwitched)}// Callback Functions// t=top, obs=observable, d=datafunction obsCategoryChanged(t, obs, d) {	with(t) {		var data=model.category.name		if (data=="desc") {			view1.toggleFontList('none')			view1.toggleDescription('')		} else if (data=="products") {			var fullset=model.category.getFonts()[0]			view1.showFullSet(fullset)		} else {			var fonts=model.category.getFonts()			view1.showCategory(data, fonts)		}	};}function obsFontSwitched(t, obs, d) {	with(t) {		var data=this.d		view1.displayFontInfo()	}}// Eventsfunction evtTabClicked(e) {	if (!e) var e = window.event;	var s=''	try { // Safari thinks this is a text object... 		var name=this.firstChild.lastChild.nodeValue	} catch(er) {		var name=this.nodeValue	};	switch(name) {		case "Full Set":			s='products'		break;		case "Sets":			s='sets'		break;		case "Pro":			s='pro'		break;		case "Singles":			s='singles'		break;		case "Desc.":			s='desc'		break;	}	c.model.setCategory(s)}function evtFontClicked(e) {	if (!e) var e = window.event;	try { // Safari thinks this is a text object... 		var name=this.firstChild.nodeValue	} catch(er) {		var name=this.nodeValue	};	var currentFontInfo=c.model.getFont()[1]	var info=c.model.category.category.get()[name]	if(!currentFontInfo || currentFontInfo[0]!=info[0]) {		try {			c.model.setFont(name, c.model.category.category.get()[name])		} catch(er) {			c.model.settings.displayErrorAlert(er)		};		c.view1.addMoreInfo(this.lastChild)	};}
