var cell_positions = $H({ C1: 0, C2: 159, C3: 318, R1: 0, R2: 159, R3: 318 });
var window_size = null;
var fixed_width_fields = new Array();
var scroll_offset = [0,0];
var header_height = 68 + 39;

function dynamic_positioning_footer() {
	if (window_size == null) {
		calculate_window_size();
	}
	footer_margin_top = Position.page($("footer"))[1];
	footer_height = 47;
	footer_margin_top = (-1 * footer_margin_top) + (window_size[1] - footer_height);
	if(footer_margin_top > 0) {
		$("footer").style.marginTop = footer_margin_top + "px";
	}
	$("footer").style.opacity = "1.0";
}

function footer_margin() {
	alert($("footer").style.marginTop);
	footer_top = Position.page($("footer"))[1];
	footer_height = 47;
	alert(window_size[1] - (footer_top + footer_height));
}

function dynamic_positioning_content() {
	Position.absolutize($("content"));
	$("content").style.left = $("middle_left").style.width;
}

function dynamic_width_middle_left() {
	$("middle_left").style.width = "200px";
}



function fixed_width(field) {
	fixed_width_fields[fixed_width_fields.length] = field;
}

function reposition_fixed_items() {
	for(i=0;i<fixed_width_fields.length;i++) {
		fixed_width_fields[i].style.top = Position.page(fixed_width_fields[i])[1] + scroll_offset[1] + "px";
	}
}

function dynamic_positioning_raster_contents_if_necessary() {
	
}

function dynamic_positioning_raster_contents(reset) {
	var cells = document.getElementsByClassName("cell");
	for(i=0;i<cells.length;i++) {
		//dynamic_reset_raster_cell(cells[i]);
		dynamic_position_raster_cell(cells[i]);
	}
}

function relativize_raster_contents() {
	var cells = document.getElementsByClassName("cell");
	for(i=0;i<cells.length;i++) {
		Position.relativize(cells[i]);
	}
}

function dynamic_position_raster_cell(field) {
	column = field.id.charAt(0) + field.id.charAt(1);
	row = field.id.charAt(3) + field.id.charAt(4);
	menu_width = 200;
	Position.absolutize(field);
	field.style.left = cell_positions[column] + menu_width + 'px';
	field.style.top = cell_positions[row] + header_height + 'px';
	//alert(column + " :::: " + cell_positions[column]);
	//Position.relativize(field);
}

function dynamic_reset_raster_cell(field) {
	field.style.position = "";
	field.style.top = "";
	field.style.left = "";
}

function calculate_scroll_offset() {
	scroll_offset = Position.page($("container"));
	scroll_offset[0] = Math.abs(scroll_offset[0]);
	scroll_offset[1] = Math.abs(scroll_offset[1]);
}

function calculate_window_size() {
	window_size = Position.getWindowSize();
}

var resize_or_scroll_observer = function(e) {
	//calculate_scroll_offset();
	dynamic_positioning_footer();
	//dynamic_width_middle_left();
	//dynamic_positioning_content();
	dynamic_positioning_raster_contents();
	//reposition_fixed_items();
};

var scroll_observer = function(e) {
	calculate_scroll_offset();
	if($("menu")) {
		$("menu").style.marginTop = scroll_offset[1] + "px";
	}
	if($("project_viewer")) {
		$("project_viewer").style.top = header_height + scroll_offset[1] + "px";
	}
};
