/*
    Copyright (C) 2008  Ivo Toby, Internet Voor Ondernemers, http://www.i-v-o.nl / http://syntacticsugar.nl 

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

	Crudder Version : 0.50b
 */


	crudderField.date = Class.create(crudderField, {
		initialize:function($super, field, data, pob){
			$super(field, data, pob)
			this.instID = 'crudderField_datetime.' + parseInt(Math.random()*1000000);
		},
		
		drawEditor : function(container,record){
			var value = '';
			this.currRecord = record;
			if (record[this.field.name]){
				value = new Date(Date.parse(record[this.field.name]));
			}
			var div = new Element('div', {id:this.instID+"_dateTimeContainer"});
			container.insert(div);
			
			Calendar.setup(
				{
					flat: this.instID + "_dateTimeContainer" , 
					flatCallback : this.setDateTimeValue.bindAsEventListener(this),
					date : value
				}
			);
			var anotherDiv = new Element('div', {id:this.instID + "_dateTimeDisplay"}).update(this.controller.lang.get('currentDate') + value.toString());
			container.insert(anotherDiv);
			this.input = new Element('input');
		},
		
		setDateTimeValue : function(obj){
			$(this.instID + "_dateTimeDisplay").update(this.controller.lang.get('currentDate') + obj.date.toString());
			this.value = obj.date.getFullYear() + '/' + (obj.date.getMonth() + 1) + '/' +  obj.date.getDate();
			this.input.value = this.value;
		},
		
		getRPCValue : function(){
			if (this.value){
				return '<![CDATA[' + encodeURIComponent(this.value) + "]]>";
			}else{
				// return unchanged date, formatted for database;
				var tmpDate = new Date(Date.parse(this.currRecord[this.field.name]));
				return '<![CDATA[' + encodeURIComponent(  tmpDate.getFullYear() + '/' + (tmpDate.getMonth() + 1) + '/' +  tmpDate.getDate() ) + "]]>";
			}
		}
	})