if (Browser == null) var Browser = {};
if (Browser.isIE == undefined ) Browser.isIE = /(msie|internet explorer)/i.test(navigator.userAgent);

var CLPrintSupport = function() {}

CLPrintSupport .isIE = function() {

	return Browser.isIE;
}

CLPrintSupport .initIE = function(objId) {
	var obj = document.getElementById(objId);
	if (obj == null) return;
	if (obj.onBeforePrint == undefined || obj.onAfterPrint == undefined) return;
	
	window.attachEvent("onbeforeprint",function(e) {
		
		obj.setAttribute("tmpW",obj.width);
		obj.setAttribute("tmpH",obj.height);
		
		var size = ACPrintManager.getContentSize(obj);
		
		obj.width = size.width;
		obj.height = size.height;
		
		obj.onBeforePrint();
		
		if (obj.getAttribute("tmpW").indexOf("%") != -1 ||
		    obj.getAttribute("tmpH").indexOf("%") != -1) {
			//ie percent width or height hack
			obj.focus();
		}
	});
	window.attachEvent("onafterprint",function() {
		obj.onAfterPrint();
		obj.width = obj.getAttribute("tmpW");
		obj.height = obj.getAttribute("tmpH");
	});
} 

var ffInitialized = false;
var inUpdate = false;

var status = new Array();

CLPrintSupport .initFF = function(objId, imgData) {
	inUpdate = true;

	var obj = document.getElementById(objId);
	if (obj == null && document.embeds != null) obj = document.embeds[objId];
	if (obj == null) return;
	
	var parent = obj.parentNode.parentNode;
	if (parent == null) return;
	
	var statusObject = status[objId];
	if (!statusObject) {
		statusObject = new Object();
		statusObject.ffInitialized = false;
		statusObject.inUpdate = false;
		status[objId] = statusObject;
	}
if (!statusObject.ffInitialized) {
	var head = document.getElementsByTagName('head');
	head = ((head.length != 1) ? null : head[0]);
	
	var style = document.createElement('style');
	style.setAttribute('type','text/css');
	style.setAttribute('media','screen');
	
	var size = CLPrintSupport .getContentSize(obj);
	
	var imgDescriptor = 'img#'+objId+'_screen';
	var imgRule = "width: "+size.width+";\n"+
				  "height: "+size.height+";\n"+
				  "padding: 0;\n"+
				  "margin: 0;\n"+
				  "border: 0;\n"+
				  "display: none;";
	style.appendChild(document.createTextNode(imgDescriptor + '{' + imgRule + "}\n"));
	head.appendChild(style);

	style = document.createElement('style');
	style.setAttribute('type','text/css');
	style.setAttribute('media','print');
	
	imgDescriptor = 'img#'+objId+'_screen';
	imgRule = 'display: block;';
	
	style.appendChild(document.createTextNode(imgDescriptor + '{' + imgRule + '}'));
	
	var objDescriptor = 'embed#'+objId;
	var objRule = 'display: none;';
	style.appendChild(document.createTextNode(objDescriptor + '{' + objRule + '}'));
	
	var objDescriptor2 = 'div#'+objId + '_viewer';
	var objRule2 = 'display: none;';
	style.appendChild(document.createTextNode(objDescriptor2 + '{' + objRule2 + '}'));

	head.appendChild(style);
	statusObject.ffInitialized = true;
}

	var needAppend = false;
	var img = document.getElementById(objId+"_screen");
	if (img == null) {
		img = document.createElement('img');
		needAppend = true;
	}
	img.src = 'data:image/png;base64,'+imgData;
	img.setAttribute('id',objId+"_screen");
	if (needAppend)
		parent.appendChild(img);
	inUpdate = false;
}

CLPrintSupport .getContentSize = function(obj) {
	var size = {};
	size.width = obj.width;
	size.height = obj.height;
	if (obj.getWidth != undefined) size.width = obj.getWidth()+'px';
	if (obj.getHeight != undefined) size.height = obj.getHeight()+'px';
	return size;
}