﻿/*extern $, YAHOO */
/*global JobList */

"use strict";

JobList = {
	data: {
		pag: 'JobList_pag',
		dt:  'JobList_dt',
		ds:  'JobList_ds'
	},

	init: function () {

		this.data.dt = new YAHOO.widget.DataTable(this.data.dt, [
			{
				key:       'Title',
				sortable:  true,
				label:     'Job Title',
				formatter: this.formatLink
			},
			{ key: 'Type',     sortable: true  },
			{ key: 'Status',   sortable: true  },
			{ key: 'Schedule', sortable: false }
		], new YAHOO.util.LocalDataSource($(this.data.ds), {
			responseType:   YAHOO.util.LocalDataSource.TYPE_HTMLTABLE,
			responseSchema: { fields: [
				{ key: 'Title', parser: this.parseLink },
				{ key: 'Type'     },
				{ key: 'Status'   },
				{ key: 'Schedule' }
			] }
		}), {
			caption: 'Job Opportunities',
			paginator: new YAHOO.widget.Paginator({
				containers:  this.data.pag,
				rowsPerPage: 10,
				rowsPerPageOptions: [ 10, 25, 50 ],
				template: YAHOO.widget.Paginator.TEMPLATE_ROWS_PER_PAGE
			})
		});

	},

	parseLink: function (markup) {
		var href  = markup.match(/ href=\"([^\"]*)\"/i)[1],
		text      = markup.match(/<a[^>]*>([^<]*)<\/a>/i)[1],
		link      = new String(text); // Need actual object
		link.href = href;
		return link;
	},

	formatLink: function (cell, record, column, value) {
		cell.innerHTML =
		(value.length > 0 && value.href && value.href.length > 0) ? value.link(value.href) :
		(value.length > 0) ? value : '';
	}
};