;(function($){

/**

 * jqGrid extension

 * Paul Tiseo ptiseo@wasteconsultants.com

 * 

 * Dual licensed under the MIT and GPL licenses:

 * http://www.opensource.org/licenses/mit-license.php

 * http://www.gnu.org/licenses/gpl-2.0.html

**/ 

$.jgrid.extend({

	getPostData : function(){

		var $t = this[0];

		if(!$t.grid) { return; }

		return $t.p.postData;

	},

	setPostData : function( newdata ) {

		var $t = this[0];

		if(!$t.grid) { return; }

		// check if newdata is correct type

		if ( typeof(newdata) === 'object' ) {

			$t.p.postData = newdata;

		}

		else {

			alert("Error: cannot add a non-object postData value. postData unchanged.");

		}

	},

	appendPostData : function( newdata ) { 

		var $t = this[0];

		if(!$t.grid) { return; }

		// check if newdata is correct type

		if ( typeof(newdata) === 'object' ) {

			$.extend($t.p.postData, newdata);

		}

		else {

			alert("Error: cannot append a non-object postData value. postData unchanged.");

		}

	},

	setPostDataItem : function( key, val ) {

		var $t = this[0];

		if(!$t.grid) { return; }

		$t.p.postData[key] = val;

	},

	getPostDataItem : function( key ) {

		var $t = this[0];

		if(!$t.grid) { return; }

		return $t.p.postData[key];

	},

	removePostDataItem : function( key ) {

		var $t = this[0];

		if(!$t.grid) { return; }

		delete $t.p.postData[key];

	},

	getUserData : function(){

		var $t = this[0];

		if(!$t.grid) { return; }

		return $t.p.userData;

	},

	getUserDataItem : function( key ) {

		var $t = this[0];

		if(!$t.grid) { return; }

		return $t.p.userData[key];

	}

});

})(jQuery);