package se.dahlberg.transliteration;

import java.awt.image.*;
import java.util.Vector;
import java.util.Enumeration;
import java.awt.Image;
import java.util.Hashtable;
import java.util.Observable;

public class CheckBox extends Transliteration {

	public CheckBox(Image i1, Image i2, int nSteps, int width, int height,
			int pause) {
		super(i1, i2, nSteps, width, height, pause);
	}

	public int[] setPixels(float fac1, float fac2) {
		int [] rgn = new int [width * height];
		int cbPixels = 30;
		int cbCutPixels = (int)((float)cbPixels * fac1);
		int cbCutPixels2 = (int)((float)cbPixels * fac2);
		int row, col;
		for (row = 0; row < height; row += cbPixels) {
			row = Math.min(height-cbPixels, row);
			boolean top = false;
			for (col = 0; col < (width); col += cbPixels) {
				col = Math.min(width, col);
				int drawWidth = Math.min(cbPixels, width-col);
				int drawHeigth = Math.min(cbPixels, height-row);
				if (top) {
					for (int i=0; i < cbCutPixels; i++) {
						System.arraycopy((Object)(pixelsI1), 
							(row+i)*width+col, 
							(Object)rgn, (row+i)*width+col, drawWidth);
					}
					for (int i=cbCutPixels; i < cbPixels; i++) {
						System.arraycopy((Object)(pixelsI2), 
							(row+i)*width+col, 
							(Object)rgn, (row+i)*width+col, drawWidth);
					}
				} else {
					for (int i=cbPixels-1; i > cbCutPixels2; i--) {
						System.arraycopy((Object)(pixelsI1), 
							(row+i)*width+col, 
							(Object)rgn, (row+i)*width+col, drawWidth);
					}
					for (int i=cbCutPixels2; i >= 0; i--) {
						System.arraycopy((Object)(pixelsI2), 
							(row+i)*width+col, 
							(Object)rgn, (row+i)*width+col, drawWidth);
					}
				}
				top = !top;
			}
		}
		
		return rgn;		
		
	}

}
