/*
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $Date: 2007-12-06
 * $Version: 0.2
* $Autor: Pomazan Maxim 
* $Site: maxazan.com
* $E-mail: maxazan@mail.ru
 */

(function($) {
	
var deligate={

	//Key - Value array
	keyValueArray:Array(),
	
	/*Get value by key in store. If not exists - return null
	*
	*@example $.deligate.get("myKey")
	*@type Object
	*/
	get:function(key){
			for(var i=0;i<this.keyValueArray.length;i++){
				if(this.keyValueArray[i].key==key)
					return this.keyValueArray[i].value;
			}
			return null;
	},
	
	
	/*Set the value for key. If not exist create new, else relpace old
	*
	*@example $.deligate.set("myKeyStr","myValue")
	*@example $.deligate.set("myKeyint",496)
	*@example $.deligate.set("myKeyObj",{name:"name",age:22}}
	*/
	set:function(key,value){
		exist=false;
		for(var i=0;i<this.keyValueArray.length;i++){
			if(this.keyValueArray[i].key==key){
				this.keyValueArray[i].value=value;
				exist=true;
				}
		}
		if (exist==false)
			this.keyValueArray.push({key:key,value:value});
	},
	
	/*Check for existing key in store
	*
	*@example $.deligate.isExists("myKey")
	*@type boolean
	*/
	isExists:function(key){
		for(var i=0;i<this.keyValueArray.length;i++){
			if(this.keyValueArray[i].key==key)
				return true;
		}
		return false;
	},

	/*Remove key and value from store
	*
	*@example $.deligate.remove("myKey")
	*/
	remove:function(key){
		var newKeyValueArray=Array();
		for(var i=0;i<this.keyValueArray.length;i++){
			if(this.keyValueArray[i].key!=key){
				newKeyValueArray.push({key:this.keyValueArray[i].key,value:this.keyValueArray[i].value})
			}
		}
		this.keyValueArray=newKeyValueArray;
	}

}

//If have parent get parent deligate to this
/*if(window.parent && window.parent.$.deligate){
		$.deligate=window.parent.$.deligate;
}else if(window.opener && window.opener.$.deligate){
		$.deligate=window.opener.$.deligate;
}else{*/
	$.deligate=deligate;
//}

})(jQuery);
