

	var Model = new Class({

						objProperties : {},

						objStdXhrOptions : {
											method: 'get',
											headers: {'X-Requested-With': 'XMLHttpRequest'}
											},

						initialize: function( strId ) {
							
							if( strId ) {
								var objXhrOptions = this.objStdXhrOptions;
	
								var fncSuccess = function (strJsonDataSource) {
	
									var objDataSource = Json.evaluate(strJsonDataSource);
	
									$each(
										objDataSource,
										function(mixValue, intIndex) { this.set(intIndex, mixValue); },
										this
									);
	
								};
	
								objXhrOptions.onSuccess = fncSuccess.bind(this);
	
								var objJsonRemote = new Json.Remote(this.urlView + "id/" + strId, objXhrOptions);
	
								objJsonRemote.send({});
							}

						},

						set : function (strProperty, mixNewValue) {

							this.objProperties[strProperty] = mixNewValue;

						},

						get : function (strProperty) {
							return this.objProperties[strProperty];
						},

						save: function(fncComplete) {

							var objXhrOptions = this.objStdXhrOptions;
							var urlSaveTarget = '';

							if (fncComplete) {
								objXhrOptions.onComplete = fncComplete.bind(this);
							}
							
							if (this.get('id') == null) {
								urlSaveTarget = this.urlAdd;
							} else {
								urlSaveTarget = this.urlEdit + "id/" + this.get("id");
							}
							
							var objJsonRemote = new Json.Remote(urlSaveTarget, objXhrOptions);

							objJsonRemote.send(this.objProperties);

						}

	});