var fields = Array();

function showHideArrows() {
	
	for(var y in fields) {
		for(var i = 0; i < fields[y].length; i++) {
			getById('arrows_' + fields[y][i]).style.display = (getById('arrows_' + fields[y][i]).style.display == "" ? "none" : "");
		}
		fixClasses(y);
	}
}


function move(_id, _direction, _tableId) {
	var pos = findPosition(_id, _tableId);

	if(_direction == "up" && pos < 1)
		return;
	else if(_direction == "down" && pos > fields[_tableId].length - 2)
		return;
		
	if(_direction == "up")
		var pos2 = pos - 1;
	else
		var pos2 = pos + 1;
		
	var request = new AjaxRequest(pathPrefix + "/Ajax/brdMoveBoard" + firstSeperator + "&brdId=" + _id + "&direction=" + _direction  + "&catId=" + _tableId, true);
	request.doRequest();

	if(request.getResponseText() != "OK") {
		getById("savingError").style.display = "";
		return;
	}
		
	switchFields(pos, pos2, _tableId);
	
}

function switchFields(_pos1, _pos2, _table) {
	var table = getById("table_" + _table);
	
	var id = fields[_table][_pos1];
	var row1 = table.tBodies[0].rows[_pos1];
	var row1copy = row1.cloneNode(true);
	
	var id2 = fields[_table][_pos2];
	var row2 = table.tBodies[0].rows[_pos2];
	var row2copy = row2.cloneNode(true);
	
	
	// switch rows
	table.tBodies[0].replaceChild(row2copy, row1);
	table.tBodies[0].replaceChild(row1copy, row2);
	
	row1copy.style.backgroundColor = "lightblue";
	
	// switch array
	fields[_table][_pos1] = id2;
	fields[_table][_pos2] = id;
	
	fixFieldsArrows(_table);
	fixClasses(_table);
	
}

function findPosition(_id, _tableId) {
	
	for(var i = 0; i < fields[_tableId].length; i++) {
		if(fields[_tableId][i] == _id)
			return i;		
	}
	
}

function fixFieldsArrows(_table) {
	
	for(var i = 0; i < fields[_table].length; i++) {
	
		var id = fields[_table][i];
		var upArrow = true;
		var downArrow = true;
	
		if(i == 0)
			upArrow = false;
		else if(i == fields[_table].length -1)
			downArrow = false;
			
		getById("field_" + id + "_up").style.display = (upArrow ? "" : "none");
		getById("field_" + id + "_up_blank").style.display = (!upArrow ? "" : "none");
		getById("field_" + id + "_down").style.display = (downArrow ? "" : "none");
		getById("field_" + id + "_down_blank").style.display = (!downArrow ? "" : "none");
		
	}
	
}

function fixClasses(_table) {
	
	var _class = 1;
	
	_table = getById("table_" + _table)
	
	for(var i = 0; i < _table.tBodies[0].rows.length; i++) {
		 _table.tBodies[0].rows[i].className = "_" + _class;
		_class = (_class == 1 ? 2 : 1);
	}	

}
	
