//查看原始题卡模块
var sheet_view = function(option, success) {
	var object = new SheetView(option);
	success();
	return object;
}

function SheetView(option) {
	this.markControl = option.markControl;
	this.server = option.server;
    if (option.sheetConfig) {
        this.sheetConfig = JSON.parse(option.sheetConfig);
    } else {
        this.sheetConfig = [];
    }
	this.list = [];
	this.markControl.on('task.get.success', this, function(event, context, eventObject) {
		this.render(context.task.sheetUrls);
	});
	this.markControl.on('task.get.none', this, function(event, context, eventObject) {
		this.render();
	});
	this.markControl.on('task.get.before', this, function(event, context, eventObject) {
		this.render();
	});
}

SheetView.prototype.render = function(urls) {
	if(urls != undefined && urls.length > 0) {
		for(var i = 0; i < urls.length; i++) {
			var url = urls[i];
			if(this.list.length > i) {
				var item = this.list[i];
				item.nav.show();
				this.renderContent(item.content, url,i);
			} else {
				var content = $(this.container_dom).appendTo(this.markControl.container.centerContent);
				this.renderContent(content, url,i);
				this.list.push({
				    nav: this.markControl.addNavGroup(getMessage("mark.sheet") + (i + 1), content),
				    content: content
				});
			} 
		}
	} else {
		for(var i = 0; i < this.list.length; i++) {
			var item = this.list[i];
			item.nav.hide();
			item.content.empty();
		}
	}
}

SheetView.prototype.renderContent = function(content, url,i) {
	content.width(this.markControl.container.centerContent.width());
	content.height(this.markControl.container.centerContent.height());
	content.empty();
	content.append($('<canvas id="sheet-canvas'+i+'"></canvas>'));
    var image = new Image();
    image.crossOrigin = '';
    image.src = this.server + url;
    image.canvas = document.getElementById('sheet-canvas'+i);
    image.content = content;
    var self = this;
    image.onload = function() {
        var ctx = image.canvas.getContext("2d");
        image.canvas.width = Math.min(image.width, image.content.width());
        var scale = image.canvas.width / image.width;
        image.canvas.height = image.height * scale;
        ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, image.canvas.width, image.canvas.height);
        ctx.fillStyle = "#FFFFFF";
        if(self.sheetConfig.length!=0){
        	for (var j = 0; j < self.sheetConfig.length; j++) {
        		var config = self.sheetConfig[j];
        		var index = parseNumber(i) + 1;
        		if (config.i == index) {
        			//兼容简单模式1:0:0:0:0
        			if(config.x==0 && config.y==0 && config.w==0 && config.h==0){
        				ctx.fillRect(0, 0, image.width * scale, image.height * scale);
        			}else{
        				ctx.fillRect(config.x * scale, config.y * scale, config.w * scale, config.h * scale);
        			}
        		}
        	}
        }else{
        	ctx.fillRect(0, 0, this.canvas.width/2, this.canvas.height*3.7/10);
        }
    	this.canvas.toDataURL("image/jpeg");
    }
}

SheetView.prototype.container_dom = '<div style="display:none; overflow: scroll"></div>';