
// Datatable
(function() {
	YAHOO.widget.DataTable.MSG_ERROR = TEXTS.ERROR;
	YAHOO.widget.DataTable.MSG_EMPTY = TEXTS.EMPTY;
	YAHOO.widget.DataTable.MSG_LOADING = TEXTS.LOADING;
	YAHOO.namespace("FHG");
	YAHOO.FHG.dataTable = null;
    YAHOO.FHG.dataSource = null;
	var Dom = YAHOO.util.Dom;
	var Event = YAHOO.util.Event;
		
	var oCallback = {
	    success: function(oRequest,oResponse,oPayload) { 
        	YAHOO.FHG.dataTable.onDataReturnInitializeTable( oRequest , oResponse , oPayload );
	    }, 
	    failure: function(oRequest,oResponse,oPayload) { 
	    }, 
	    scope: this
	};

	
	var formatDate = function(elCell, oRecord, oColumn, sData){
		elCell.innerHTML = oRecord.getData('DAY') + " - " + sData ;	
	}
	
	// when document-tree has been loaded
    Event.onDOMReady(function() {
        // define columns to use
	    var myColumnDefs = [
	      	{ key: "ID", label: TEXTS['ID']},
	      	{ key: "DATE", label: TEXTS['DATE'], sortable:true, formatter:formatDate},
	      	{ key: "LOCATION", label: TEXTS['LOCATION'], sortable:true},
	      	{ key: "OBJECTS", label: TEXTS['OBJECTS'], sortable:true}
	    ];
	    
	    // handle request event
	    var requestEventHandler = function ( oRequest , fCallback , oCaller){
	    	// code that's executed when the request is sent
	    };
	    
	    var responseEventHandler = function( oRequest , oResponse , oCallback , oCaller ){
	    	// code that's executed when the response is handled
	    }
	    
	    // handle data error event
	    var dataErrorEventHandler = function( oRequest , oCallback , oCaller , oMessage ){
	    	// code that's executed when an error occures
	    }
	
		// initialize data source for Table
	    YAHOO.FHG.dataSource = new YAHOO.util.DataSource("http://" + window.location.host + "/dynamic/lostproperty_list.php?");
	    YAHOO.FHG.dataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
		
		// response schema
		YAHOO.FHG.dataSource.responseSchema = {
		    resultsList: "results",
			    fields: [
			    	{ key: "ID" },
			    	{ key: "DATE" },
			    	{ key: "LOCATION" },
			    	{ key: "OBJECTS" },
			    	{ key: "DAY" }
		        ]
		    };
	
        YAHOO.FHG.dataSource.subscribe("dataErrorEvent", dataErrorEventHandler);
        YAHOO.FHG.dataSource.subscribe("requestEvent", requestEventHandler);
        YAHOO.FHG.dataSource.subscribe("responseEvent", responseEventHandler); 
		        
		// instantiate data table
    	YAHOO.FHG.dataTable = new YAHOO.widget.DataTable(
    		"lostpropertylist", 
    		myColumnDefs,   
    		YAHOO.FHG.dataSource, 
    		{
    			initialRequest: "",
    			sortedBy:{key:'DATE', dir:YAHOO.widget.DataTable.CLASS_ASC}
    		}
    	);
		// set sort direction for table headers
		var initEventHandler = function(){
			// first th
			th0 = Dom.getElementsBy(
				function(el){
					return el.id == 'yui-dt0-th0';
				},
				'th',
				'yui-dt0-hdrow0'
			)[0];

			sortAnchors = Dom.getElementsByClassName(
				'yui-dt-sortable',
				'a',
				'yui-dt0-hdrow0',
				function(el){
					// delete tooltip
					el.setAttribute('title',"");
				}
			);
		}
		
		var columnSortEventHandler = function(column, dir){
			sortAnchors = Dom.getElementsByClassName(
				'yui-dt-sortable',
				'a',
				'yui-dt0-hdrow0',
				function(el){
					// delete tooltip
					el.setAttribute('title',"");
				}
			);
		}
		
		YAHOO.FHG.dataTable.subscribe('initEvent', initEventHandler);
		YAHOO.FHG.dataTable.subscribe('columnSortEvent', columnSortEventHandler);
    });
})();
