window.onload = function() {
	var input = document.getElementById('input');
	input.innerHTML = '<div id="status">HTML/XHTML/SVG/EPUBをPDFに変換します。</div><div id="form">'+
		'<label>URL: <input id="uri" type="text" style="width: 26em;" value="http://www.w3.org/TR/xslt20/" /></label>'+
		'<button type="button" onclick="window.my_transcode(null)">サイトを変換</button></div>';
		//'<div><iframe id="frame" src="static/js/upload.html" frameborder="0" style="width: 30em; height: 4em;"></iframe></div>';
}
var copper = new Copper('/cti', 'html2pdf');

window.my_transcode = function(multipart) {
	if (multipart) {
		if(!multipart.elements['rest.main'].value) {
			alert('アップロードするファイルを指定してください。');
			return;
		}
		window.multipart = multipart;
	}
	else {
		window.multipart = null;
	}
	document.getElementById('form').style.display = 'none';
	//document.getElementById('frame').style.visibility = 'hidden';
	var uri = document.getElementById('uri').value;
	var progressBar = document.getElementById('progress-bar');
	var status = document.getElementById('status');
	var read = '';
	var page = '';
	status.innerHTML = '変換を開始しています...';
	copper.messageFunc = function(code, message, args) {
		if (code == '1801') {
			page = args[0]+'ページ / ';
			status.innerHTML = page + read;
		}
	};
	copper.progressFunc = function(srcLen, srcPos) {
		if (srcPos <= 0) {
			return;
		}
		var per = (srcLen == 0 ? 100 : Math.round(100 * srcPos / srcLen)) + '%';
		progressBar.style.width = per;
		read = Math.round(srcPos / 1024 * 10) / 10 + 'KB'
		if (srcLen != 0) {
			read += '('+per+')';
		}
		status.innerHTML = page + read;
	};
	copper.finishFunc = function(errorCode, errorMessage) {
		// 処理終了
		var action = 'save.pl?id='+copper.sessionId+'&uri='+m_encodeURI(uri);
		if (errorCode) {
			action += '&error='+m_encodeURI(errorMessage);
		}
		copper.conn.httpAsyncText(action, function(text) {
			if (errorCode) {
				window.my_continue();
				return;
			}
			progressBar.style.width = '100%';
			var uri = 'data/pdf/'+text+'.pdf';
			var docs = 'http://docs.google.com/viewer?url=http%3A%2F%2Fcopper.cssj.jp%2Fdata%2Fpdf%2F'+text+'.pdf';
			status.innerHTML = '変換は終了しました。<br/>'+
			'<a href="'+uri+'" target="_blank">PDFを表示 </a><br/>'+
			'<a href="'+docs+'" target="_blank">Google Docs で見る</a><br/>'+
				'<button type="button" onclick="window.my_continue()">再入力</button>';
		});
	};
	copper.resource('file:///default.css', '* {page-break-inside: auto ! important;}');
	if (multipart) {
		copper.transcode(multipart, 1);
	}
	else {
		copper.transcode(uri, 0);
	}
}

window.my_continue = function() {
	var progressBar = document.getElementById('progress-bar');
	progressBar.style.width = '0%';
	document.getElementById('form').style.display = 'block';
//	var frame = document.getElementById('frame');
//	frame.style.visibility = 'visible';
//	if (window.multipart) {
//		frame.src = "static/js/upload.html";
//	}
	document.getElementById('status').innerHTML = 'HTML/XHTML/SVG/EPUBをPDFに変換します。';
}

window.my_uploaded = function() {
	copper.trackMessages();
}
