-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathips.fontchooser.js
2 lines (2 loc) · 1.52 KB
/
ips.fontchooser.js
1
2
/* FontChooser CLass Author: mr.wosi(sijad) (c) http://skinod.com 2013 */
var stylepanel=Class.create({initialize:function(a,b){this.o=b=Object.extend({linktemp:new Template('<link id="#{id}" type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=#{font}" />'),styletemp:new Template("<style id='#{id}' type='text/css'>#{classes} { font-family: '#{font}', Arial, sans-serif, tahoma !important; }</style>")},b);this.e=a;this.runDefault();this.changeFont()},changeFont:function(){new ipb.Menu($("nav_sodfontchooser"),$("nav_sodfontchooser_menucontent")); $w(this.o.fontselect).each(function(a){this.addFontEvent($(a))}.bind(this))},runDefault:function(){$w(this.o.fontselect).each(function(a){var b=ipb.Cookie.get(a);(b=b?b:this.o[a+"def"])&&this.addFont(a,b)}.bind(this))},addFontEvent:function(a){a&&a.observe("change",function(){this.addFont(a.id,a.value,!0)}.bind(this))},addFont:function(a,b,c){var d=this.getFontVar(a,b);if(!b||0==b)return this.removefont(a,d.styleid);d.classes&&(this.addFontLink(d.linkid,b),this.addFontStyle(d.styleid,a,d.fontname), c&&ipb.Cookie.set(a,b,1))},addFontLink:function(a,b){if(a&&b&&!$(a)){var c=this.o.linktemp.evaluate({id:a,font:b});document.head.insert(c)}},addFontStyle:function(a,b,c){$(a)&&$(a).remove();a=this.o.styletemp.evaluate({id:a,classes:this.o[b],font:c});document.head.insert(a)},getFontVar:function(a,b){return{linkid:b.replace(/\+/g,"-"),fontname:b.replace(/\+/g," "),classes:this.o[a],styleid:"style-"+a}},removefont:function(a,b){ipb.Cookie.doDelete(a);$(b)&&$(b).remove()}});