// JavaScript Document

/*
 *
 * Source to Create New Font's:
 *	Font.fla (Flash CS4 +)
 *
 * Font's Files Nomenclature:
 *	[Family][Style].swf
 *
 * Credits:
 *	http://www.gbaptista.com/
 *
*/

// =========================================

Path = "../includes/Fonts/";

// S Fonts

// Corbel Regular
var FuturaMdCnBT_Medium 			= 	new Object();
	FuturaMdCnBT_Medium.CssClass	=	"FuturaMdCnBT_Medium";
	FuturaMdCnBT_Medium.File 		=	"[FuturaMdCnBT][Medium].swf";
	FuturaMdCnBT_Medium.Dimensions	=	[58,131]; //Dimensions: At 100px - [Width: 'W', Height: FlashBox]
	
var FuturaBdCnBT_Bold 				= 	new Object();
	FuturaBdCnBT_Bold.CssClass		=	"FuturaBdCnBT_Bold";
	FuturaBdCnBT_Bold.File 			=	"[FuturaBdCnBT][Bold].swf";
	FuturaBdCnBT_Bold.Dimensions	=	[74,131]; //Dimensions: At 100px - [Width: 'W', Height: FlashBox]
	
var Fujiyama2_Regular				= 	new Object();
	Fujiyama2_Regular.CssClass		=	"Fujiyama2_Regular";
	Fujiyama2_Regular.File 			=	"[Fujiyama2][Regular].swf";
	Fujiyama2_Regular.Dimensions	=	[106,131]; //Dimensions: At 100px - [Width: 'W', Height: FlashBox]

var FolioBdCnBT_Bold				= 	new Object();
	FolioBdCnBT_Bold.CssClass	=	"FuturaMdCnBT_Medium";
	FolioBdCnBT_Bold.File 		=	"[FolioBdCnBT][Bold].swf";
	FolioBdCnBT_Bold.Dimensions	=	[106,131]; //Dimensions: At 100px - [Width: 'W', Height: FlashBox]
	
// E Fonts

function getFont(font) {
	switch (font) {
		case "FuturaMdCnBT_Medium":		return FuturaMdCnBT_Medium;		break;
		case "FuturaBdCnBT_Bold":		return FuturaBdCnBT_Bold;		break;
		case "Fujiyama2_Regular":		return Fujiyama2_Regular;		break;
		case "FolioBdCnBT_Bold":		return FolioBdCnBT_Bold;		break;
	}
}

Params = new Object();
// S Default Params
function restartParams() {
	Params.color			=	0x000000;
	Params.colorHover		=	null;
	Params.blockIndent		=	0;
	Params.align			=	"left";
	Params.href				=	"";
	Params.target			=	"";
	Params.bullet			=	false;
	Params.indent			=	0;
	Params.leftMargin		=	0;
	Params.letterSpacing	=	0;
	Params.rightMargin		=	0;
	Params.size				=	20;
	Params.selectable		=	true;
	Params.customWidth		=	null;
	Params.customHeight		=	null;
}
restartParams();

function setParam(param, value) {
	switch (param) {
		case "color": 			Params.color = value;			break;
		case "colorHover": 		Params.colorHover = value; 		break;
		case "blockIndent": 	Params.blockIndent = value; 	break;
		case "align": 			Params.align = value; 			break;
		case "href": 			Params.href = value; 			break;
		case "target": 			Params.target = value; 			break;
		case "bullet": 			Params.bullet = value; 			break;
		case "indent": 			Params.indent = value; 			break;
		case "leftMargin": 		Params.leftMargin = value; 		break;
		case "letterSpacing":	Params.letterSpacing = value;	break;
		case "rightMargin": 	Params.rightMargin = value; 	break;
		case "size": 			Params.size = value; 			break;
		case "selectable": 		Params.selectable = value; 		break;
		case "width": 			Params.customWidth = value; 	break;
		case "height": 			Params.customHeight = value; 	break;
	}
}
// E Default Params

function innerFontSWF(Text, Font, Params) {
	
	Font = getFont(Font);
	
	if(Font.Dimensions[0] > 0) { Font.Dimensions[0] = 84;	}
	if(Font.Dimensions[1] > 0) { Font.Dimensions[1] = 125;	}

	Font.Width	= Text.length*Font.Dimensions[0];
	Font.Height = (Font.Dimensions[1]*1.2);
	
	Font.Width = Font.Width*(Params.size/100);
	Font.Height = Font.Height*(Params.size/100);
	
	if(Params.customWidth) 	{ Font.Width 		= Params.customWidth;	}
	if(Params.customHeight) { Font.customHeight = Params.customHeight;	}
	
	//Font.Width  = parseInt(Font.Width);
	//Font.Height  = parseInt(Font.Width);
	
	SwfObj = '' + 
		'<object data="' + Path + Font.File + '" width="' + Font.Width + '" height="' + Font.Height + '" type="application/x-shockwave-flash">'+
			'<param name="movie" value="' + Path + Font.File + '" />'+
			'<param name="menu" value="false" />'+
			'<param name="wmode" value="transparent" />'+
			'<param name="FlashVars"	value="'+
				'texto'				+'='+		Text+
		'&amp;'+'color'				+'='+		Params.color+
		'&amp;'+'colorHover'		+'='+		Params.colorHover+
		'&amp;'+'blockIndent'		+'='+		Params.blockIndent+
		'&amp;'+'align'				+'='+		Params.align+
		'&amp;'+'href'				+'='+		Params.href+
		'&amp;'+'target'			+'='+		Params.target+
		'&amp;'+'bullet'			+'='+		Params.bullet+
		'&amp;'+'indent'			+'='+		Params.indent+
		'&amp;'+'leftMargin'		+'='+		Params.leftMargin+
		'&amp;'+'letterSpacing'		+'='+		Params.letterSpacing+
		'&amp;'+'rightMargin'		+'='+		Params.rightMargin+
		'&amp;'+'size'				+'='+		Params.size+
		'&amp;'+'selectable'		+'='+		Params.selectable+
		'&amp;'+'width'				+'='+		Font.Width+
		'&amp;'+'height'			+'='+		Font.Height+
			'" />'+
	  '</object>'+
	'';
	restartParams();
	return SwfObj;
}

function StartSetFonts() {
	var Elements = getElementsByClassName("CustomFont");
	if(Elements) {
		for(a=0; a<Elements.length; a++) {
			Element = Elements[a];
			if(Element) {
				var ElementParams = Element.className.substring(Element.className.indexOf("[")+1,Element.className.lastIndexOf("]")).split(',');
				for(i=0; i<ElementParams.length; i++) {
					var pr = ElementParams[i].split(":")[0];
					var vl = ElementParams[i].split(":")[1];
					if(pr == "Font") { var objFont = vl; } else { setParam(pr,vl); }
				}
				
				Element.innerHTML = innerFontSWF(Element.innerHTML.replace(/[\r\n]+/g, ""), objFont, Params);
				
			}
		}
	}
}

StartSetFonts();
