/*
 *		Ligaturistic
 *
 *		A technique by Anders Grimsrud
 *		http://agrimsrud.com
 */

jQuery.fn.replaceattr = function($n,$a) {

	// Let's replace the c,f,i,q and s
	// This is done to avoid the script interfering with our HTML attributes

	if($n==="1"){
		$(this).attr($a,$(this).attr($a).replace(/c/g,"%63")),
		$(this).attr($a,$(this).attr($a).replace(/f/g,"%66")),
		$(this).attr($a,$(this).attr($a).replace(/i/g,"%69")),
		$(this).attr($a,$(this).attr($a).replace(/q/g,"%70")),
		$(this).attr($a,$(this).attr($a).replace(/s/g,"%73"));
	}

	// And we'll turn this back to normal later

	if($n==="2"){
		$(this).attr($a,$(this).attr($a).replace(/%63/g,"c")),
		$(this).attr($a,$(this).attr($a).replace(/%66/g,"f")),
		$(this).attr($a,$(this).attr($a).replace(/%69/g,"i")),
		$(this).attr($a,$(this).attr($a).replace(/%70/g,"q")),
		$(this).attr($a,$(this).attr($a).replace(/%73/g,"s"));
	}

};

jQuery(function($){

	// Replace attribute contents

	$('h1,h2,h3,h4,h5,h6,div,p,span,a,img').each(function(){

		if($(this).attr("id")){$(this).replaceattr("1","id");}
		if($(this).attr("alt")){$(this).replaceattr("1","alt");}
		if($(this).attr("src")){$(this).replaceattr("1","src");}
		if($(this).attr("href")){$(this).replaceattr("1","href");}
		if($(this).attr("title")){$(this).replaceattr("1","title");}
		if($(this).attr("class")){$(this).replaceattr("1","class");}

	});

	// Ligature replacement

	$('h1,h2,h3,h4,h5,h6,p,td+td').each(function(){

		// First set of ligatures, c
		// cb, ch, ck, cp, ct

		$(this).html($(this).html().replace(/cb/g,'<span class="lig1">cb<\/span>')),
		$(this).html($(this).html().replace(/ch/g,'<span class="lig1">ch<\/span>')),
		$(this).html($(this).html().replace(/ck/g,'<span class="lig1">ck<\/span>')),
		$(this).html($(this).html().replace(/cp/g,'<span class="lig1">cp<\/span>')),
		$(this).html($(this).html().replace(/ct/g,'<span class="lig1">ct<\/span>')),

		// Second set of ligatures, single f
		// fb, fh, fi, fj, fk, fl

		$(this).html($(this).html().replace(/fb/g,'<span class="lig2">fb<\/span>')),
		$(this).html($(this).html().replace(/fh/g,'<span class="lig2">fh<\/span>')),
		$(this).html($(this).html().replace(/fi/g,'<span class="lig2">fi<\/span>')),
		$(this).html($(this).html().replace(/fj/g,'<span class="lig2">fj<\/span>')),
		$(this).html($(this).html().replace(/fk/g,'<span class="lig2">fk<\/span>')),
		$(this).html($(this).html().replace(/fl/g,'<span class="lig2">fl<\/span>')),

		// Third set of ligatures, double f
		// ffb, ffh, ffi, ffj, ffk, ffl

		$(this).html($(this).html().replace(/ffb/g,'<span class="lig3">ffb<\/span>')),
		$(this).html($(this).html().replace(/ffh/g,'<span class="lig3">ffh<\/span>')),
		$(this).html($(this).html().replace(/ffi/g,'<span class="lig3">ffi<\/span>')),
		$(this).html($(this).html().replace(/ffj/g,'<span class="lig3">ffj<\/span>')),
		$(this).html($(this).html().replace(/ffk/g,'<span class="lig3">ffk<\/span>')),
		$(this).html($(this).html().replace(/ffl/g,'<span class="lig3">ffl<\/span>')),

		// Fourth set of ligatures, g, i and q
		// gi, ij, ip, it, qu

		$(this).html($(this).html().replace(/gi/g,'<span class="lig4">gi<\/span>')),
		$(this).html($(this).html().replace(/ij/g,'<span class="lig4">ij<\/span>')),
		$(this).html($(this).html().replace(/ip/g,'<span class="lig4">ip<\/span>')),
		$(this).html($(this).html().replace(/title/g,'ti_tle')),			// Fix title collision
		$(this).html($(this).html().replace(/it/g,'<span class="lig4">it<\/span>')),
		$(this).html($(this).html().replace(/ti_tle/g,'title')),			// Fix title collision
		$(this).html($(this).html().replace(/qu/g,'<span class="lig4">qu<\/span>')),

		// Fifth set of ligatures, s
		// sb, sh, sk, sp, st

		$(this).html($(this).html().replace(/sb/g,'<span class="lig5">sb<\/span>')),
		$(this).html($(this).html().replace(/sh/g,'<span class="lig5">sh<\/span>')),
		$(this).html($(this).html().replace(/sk/g,'<span class="lig5">sk<\/span>')),
		$(this).html($(this).html().replace(/span/g,'s_pan')),				// Fix span collision
		$(this).html($(this).html().replace(/sp/g,'<span class="lig5">sp<\/span>')),
		$(this).html($(this).html().replace(/s_pan/g,'span')),				// Fix span collision
		$(this).html($(this).html().replace(/st/g,'<span class="lig5">st<\/span>'));

	});

	// Turn attributes back to normal

	$('h1,h2,h3,h4,h5,h6,div,p,span,a,img').each(function(){

		if($(this).attr("id")){$(this).replaceattr("2","id");}
		if($(this).attr("alt")){$(this).replaceattr("2","alt");}
		if($(this).attr("src")){$(this).replaceattr("2","src");}
		if($(this).attr("href")){$(this).replaceattr("2","href");}
		if($(this).attr("title")){$(this).replaceattr("2","title");}
		if($(this).attr("class")){$(this).replaceattr("2","class");}

	});

});