
var CufonHandler = Class.create({
	log: function(str) {
		site.log('[CufonHandler] '+str);
	},
	initialize: function() {
		this.enabled = document.location.search.match(/nocufon/) === null;

		document.observe('custom:systemfontreplace', this.refreshEvent.bindAsEventListener(this));
		document.observe('custom:fontreplace', this.refreshEventObsolete.bindAsEventListener(this));
	},
	config: function() {
		// Bliss replacements
		Cufon.set('fontFamily','Bliss');
		Cufon.replace('H2');

		/*Cufon.replace('.bliss');*/
		/*sifr should be dead*/
		/*Cufon.replace('.sifr-bliss2-regular.sifr-25px');
		Cufon.replace('.sifr-bliss2-regular');
		Cufon.replace('.sifr-bliss2-bold');
		Cufon.replace('.sifr-bliss2-regular');
		Cufon.replace('.sifr-bliss2-italic');*/
		Cufon.replace('.sifr-bliss2-heavy'); /* Not included */
		//Cufon.replace('.fryd .title1');
		Cufon.replace('.faktaboks .title1');
		Cufon.replace('.faktaboks H3');
		//Cufon.replace('.insp_teaser_h1');
		Cufon.replace('.stilinfo H4');
		Cufon.replace('.404container H1');
		Cufon.replace('.404container H2');
		Cufon.replace('#frydbilleder .relatedproductstitle');
//		Cufon.replace('#pricetext');
		Cufon.replace('.productprice'); // Case 22932
		//Nye, skal erstatte ovenstående;
		Cufon.replace('.bliss');
		//Different sizes placed here instead of css to avoid ugly headlines when no cufon is present
		Cufon.replace('.bliss.cufon-10px', {
 			fontSize: '14px'
 		});
 		Cufon.replace('.bliss.cufon-11px', {
 			fontSize: '15px'
 		});
 		Cufon.replace('.bliss.cufon-12px', {
 			fontSize: '17px'
 		});
 		Cufon.replace('.bliss.cufon-13px', {
 			fontSize: '19px'
 		});
 		Cufon.replace('.bliss.cufon-19px', {
 			fontSize: '20px'
 		});
 		Cufon.replace('.bliss.cufon-20px', {
 			fontSize: '22px'
 		});
 		Cufon.replace('.bliss.cufon-24px', {
 			fontSize: '28px'
 		});
		Cufon.replace('.bliss.cufon-25px', {
 			fontSize: '30px'
 		});
 		Cufon.replace('.bliss.cufon-26px', {
 			fontSize: '31px'
 		});
 		Cufon.replace('.bliss.cufon-28px', {
 			fontSize: '34px'
 		});
		
		//----------
		// Checkout
		//----------
		
		//regular
		//generelle
		Cufon.replace('#tabtitle');
		Cufon.replace('#tabdescription');
		Cufon.replace('#kundeservice h5');
		
		//tab 4
		Cufon.replace('.summary span');
		
		// extrabold
		//generelle
		Cufon.replace('#check_tabs li span');
		Cufon.replace('#handel_btn span');
		Cufon.replace('#kundeservice h3');
		Cufon.replace('#kundeservice h4');

		// tab 1
		Cufon.replace('#handel_btn span');
		Cufon.replace('#shoppingcart_items_labels div');
		Cufon.replace('#shoppingcart_price_big_collection_checkout div');
		Cufon.replace('#shoppingcart_total_big');

		// tab 3
		Cufon.replace('#bs_heading');
		Cufon.replace('#bs_stats');
		Cufon.replace('.day');
		
		//bold
		//generelle
		Cufon.replace('#handelsdiv h2');
		//tab 1
		Cufon.replace('.shoppingcart_item_price');
		//tab 2
		Cufon.replace('#receiver h3');
		//tab 3
		Cufon.replace('#receiver h2');
		Cufon.replace('#delivery_time_receiver');
		//tab 4
		Cufon.replace('.resumetop h1');
		Cufon.replace('.summary td');
		Cufon.replace('.productsCol thead td');
		
		// medium
		Cufon.replace('.navBtn');
		Cufon.replace('.navBtn span');
		Cufon.replace('#loginBtn');

		// Cendia replacements
		Cufon.set('fontFamily','Cendia');
		Cufon.replace('.cendia');
		//Cufon.replace('.fryd .title2');
		Cufon.replace('.faktabox .title2');
		//Cufon.replace('.insp_teaser_h2');
		Cufon.replace('.cendia.cufon-26px');
		Cufon.replace('.besparelse .title1');
		Cufon.replace('.besparelse h3 span');
		Cufon.replace('.sifr-cendia-italic');

		//Size-specific:
		//Different sizes placed here instead of css to avoid ugly headlines when no cufon is present
		Cufon.replace('.cendia.cufon-10px', {
 			fontSize: '14px'
 		});
 		Cufon.replace('.cendia.cufon-11px', {
 			fontSize: '15px'
 		});
 		Cufon.replace('.cendia.cufon-12px', {
 			fontSize: '17px'
 		});
 		Cufon.replace('.cendia.cufon-13px', {
 			fontSize: '19px'
 		});
 		Cufon.replace('.cendia.cufon-19px', {
 			fontSize: '20px'
 		});
 		Cufon.replace('.cendia.cufon-20px', {
 			fontSize: '22px'
 		});
 		Cufon.replace('.cendia.cufon-24px', {
 			fontSize: '28px'
 		});
		Cufon.replace('.cendia.cufon-25px', {
 			fontSize: '30px'
 		});
 		Cufon.replace('.cendia.cufon-26px', {
 			fontSize: '31px'
 		});
 		Cufon.replace('.cendia.cufon-28px', {
 			fontSize: '34px'
 		});

		this.log('Configured');
    },
	refreshEventObsolete: function(evt) {
		this.log('WARNING: You really should fire custom:systemfontreplace instead of '+evt.eventName);
		this.refreshEvent(evt);
	},
	refreshEvent: function(evt) {
		if (this.enabled) {
			this.log('Refresh event received');
			this.config();
			this.refresh();
		} else {
			this.log('Refresh event received - and ignored on request');
		}
	},
	refresh: function() {
		Cufon.now();
		this.log('Refreshed');
	}
});

new CufonHandler();


