/* $Id: packets.js 23 2008-07-31 11:14:35Z edin.coralic $ */

var Packets = {

	run: function () {
		if (/msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent)) {
			return;
		}

		table = $$('.packets table.packets_info').first();

		if (table) {
			Packets.tableCache(table);
			Packets.tableForm();
			debug = table;
			table.observe('mouseover', Packets.tableMouseOver.bindAsEventListener(table));
			table.observe('mouseout', Packets.tableMouseOut.bindAsEventListener(table));
		}
	},

	tableMouseOver: function (event) {
		var tag = Event.element(event);
		if (tag.tagName.toUpperCase() == 'TABLE') {
			return;
		}
		if (tag.tagName.toUpperCase() != 'TD' && tag.tagName.toUpperCase() != 'TH') {
			var td_tag = tag.up('td');
			if (!td_tag) {
				td_tag = tag.up('th');
			}
			if (td_tag) {
				tag = td_tag;
			}
		}
		tag.related_cells.each(function(cell) {
			cell.addClassName('selected');
		});
	},

	tableMouseOut: function (event) {
		var tag = Event.element(event);
		if (tag.tagName.toUpperCase() == 'TABLE') {
			return;
		}
		if (tag.tagName.toUpperCase() != 'TD' && tag.tagName.toUpperCase() != 'TH') {
			var td_tag = tag.up('td');
			if (!td_tag) {
				td_tag = tag.up('th');
			}
			if (td_tag) {
				tag = td_tag;
			}
		}

		tag.related_cells.each(function(cell) {
			cell.removeClassName('selected');
		});
	},

	tableCache: function (table) {
		for (i=0; i < table.rows.length; i++) {
			var row = table.rows[i];
			for (j=0; j < row.cells.length; j++) {
				var cell = row.cells[j];
				cell.related_cells = new Array();
				for (k=0; k < table.rows.length; k++) {
					cell.related_cells[cell.related_cells.length] = table.rows[k].cells[j];
				}
			}
		}
	},

	tableForm: function () {
		$$('.packets table.packets_info a.packet_form').each(function(link) {
			link.observe('click', function(event) {
				event.stop();
				if ($('packet_form_title')) {
					Effect.ScrollTo('packet_form_title');
				}
				packet_select = $('packet_form_packet_id');
				var packet_id = link.getAttribute("rel");
				if (packet_select && packet_id) {
					packet_select.value = packet_id;
				}
			});
		});
	}

}
new StartUp(Packets);

