IE7 = null;
IEB = false;
IE7_PNG_SUFFIX = '-t.png';
tr_font = null;
tr_size = null;
tr_color = null;
tr_type = null;
tr_width = null;
tr_height = null;
kk = 0;

loaded = new Array();
loaded_imgs = 0;
all_imgs = 0;
sizes = new Array();

window.onload = function() {
	$(document.body).trigger('xmtr_started');
	xmtr();
};

function image_xmtr(elem, all) {
	if(!all)  all = true;
	//var elem = $(id);
	var raw_txt = $(elem).html();
	var txt = escape(raw_txt);
	
	var ff = $(elem).css('font-family');
	ff = ff.toLowerCase().replace(/'/g, '').replace(/ /g, '_');
	var font = ff;

	var ss = $(elem).css('font-size');
	ss = parseInt(ss);
	ss = parseInt(ss * 0.75);
	var size = ss;
	
	var cc = $(elem).css('color');
	if(cc.charAt(0) != '#') { 
		cc = cc.substring(4);
		cc = cc.substring(0, cc.indexOf(')'));
		cc = cc.split(', ');
		cc = d2h(parseInt(cc[0])).toString()+d2h(parseInt(cc[1])).toString()+d2h(parseInt(cc[2])).toString();
	} else {
		cc = cc.substring(1);
	}
	//var color = (tr_color != null)?tr_color:'000000';
	var color = cc;
	
	var type = (tr_type != null)?tr_type:'png';
	
	var align = $(elem).css('text-align');
	align = align.replace('start', 'left').replace('auto', 'left');
	
	var ww = (elem.style.width)?elem.style.width:$(elem).width();
	var width = parseInt(ww);
	
	var height = (tr_height != null)?tr_height:0;
	var src = 'xmtr/image_create.php?text='+txt+'&font='+font+'&color='+color+'&size='+size+'&align='+align+'&type='+type+'&img_width='+width+'&img_height='+height+"&ext=-t.png";
	//var img_html = '<img id="rep_'+kk+'" class="image_replaced" src="'+src+'" alt="'+(raw_txt.replace(/"/g, ' '))+'" />';
	
	//var p = $("<div>"+src+"</div>");
	//$(document.body).append(p);
	
	var span_open_tag
	var span_close_tag;
	var img_html;
	
	if(IEB) {
		src = src.replace(/%23/g, '');
		/*
		var p = $("<div>"+src+"</div>");
		$(document.body).append(p);
		*/
		
		span_open_tag = '<span style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+src+'\'); display: inline-block">';
		img_html = '<img id="rep_'+kk+'" class="image_replaced" src="'+src+'" style="filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" />';
		span_close_tag = '</span>';
		span = $(span_open_tag+span_close_tag);
		img = $(img_html);
		span.append(img);
		/* DEBUG
		var tmpd1 = $("<div></div>");
		tmpd1.append(span);
		var tmpd2 = $("<div></div>");
		tmpd2.text(tmpd1.html());
		$(document.body).append(tmpd2);
		*/
	} else {
		img_html = '<img id="rep_'+kk+'" class="image_replaced" src="'+src+'" alt="'+(raw_txt.replace(/"/g, ' '))+'" />';
		img = $(img_html);
	}
	elem.innerHTML = '';
	img.css('visibility', 'hidden');
	//alert(img[0]);
	img.load(function() {
		//Image Loaded
		$(document.body).trigger('xmtr_image_loaded', [loaded_imgs, all_imgs]);
		var h = $(this).height();
		if(loaded[this.id] != null) return;
		if(all) {
			iefix(this.id, h);
		}
		$(this).unbind('load');
	});
	if(IEB) {
		$(elem).append(span);
		span.width(img.width());
		span.height(img.height());
	} else {
		$(elem).append(img);
	}
	kk++;
}

function xmtr(parentNode) {
	if(parentNode != null && parentNode.find) {
		xmtr_images = parentNode.find(".text_replace");
	} else {
		xmtr_images = $(".text_replace");
	}
	all_imgs = xmtr_images.length;
	loaded_imgs = 0;
	loaded = new Array();
	kk = 0;
	xmtr_images.each(function() {
		image_xmtr(this);
	});
	if(kk <= 0) {
		$(document.body).trigger('xmtr_loaded');
		pngFix();
	}
}

function iefix(id, h) {
	//alert(id);
	if(loaded[id] != null) return;
	loaded[id] = h;
	loaded_imgs++;
	if(loaded_imgs >= all_imgs) {
		//http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js
		$('.image_replaced').each(function() {
			var img = $(this);
			img.css('visibility', 'visible');
		});
		$(document.body).trigger('xmtr_loaded');
		pngFix();
	}
}

function d2h(d) {
	d = d.toString(16);
	if(d.length < 2) d = '0'+d;
	return d;
}
function h2d(h) {return parseInt(h,16);} 

function debug(t) {
	if(!document.getElementById('debug_box')) {
		var dbg = "<div id=\"debug_box\"></div>";
		$(document.body).append($(dbg));
	}
	var dbg = $("#debug_box");
	dbg.text(t);
}

function pngFix() {
	$(".pngfix").pngFix();
}
