//--this class will be similar to assoc array in php, so we can store keys and values	
	function assocArr(name){
		//-------------------[PRIVATE VARS]---
		var key=new Array();
		var vals=new Array();
		var klength=0;
		var vlength=0;
		var selfname=name;
		//-------------------[PUBLIC METHODS]---
		this.addKey=function(name){//-(add new key)
			key[klength++]=new assocArr(name);
			return key[klength-1];
		}
		this.addValue=function(name){//-(add new value)
			vals[vlength++]=name;
		}
	  this.getKey=function(name){//-(get key by name)
	  	for(var i=0;i<klength;i++){	  		
	  		if(key[i].getName()==name)
	  			return  key[i];
	  	}
	  	return empty_obj;//we will return empty object so we'll be able to use methods in long constructions w/o an error
	  	//otherwise we'll have to check whether object exists or not on each step, but right now it will exists but empty
		}
		this.getKeyByNum=function(n){//-(get key by number)
			return key[n];
		}
		this.getAllKeysNames=function(){//-(return array of all key names)
			var keys=Array();
			for(var i=0;i<klength;i++){				
				keys[i]=key[i].getName();
			}
			return keys; 
		}
		this.getVals=function(){//-(return array of all values)
			return vals;
		}
		this.getName=function(){//-(get name of this element)
			return selfname;
		}
		this.getKeyQty=function(){
			return klength;
		}
	}
	var empty_obj=new assocArr(null);	
//-----------------------------------------------------------------------------------
	function setOptions(selecttagid,values,alltext){//this will create option tags with values and returns qty of values
		var selectelem=document.getElementById(selecttagid);
		selectelem.options.length=0;
		var opt=document.createElement("OPTION");
		selectelem.options.add(opt);
		opt.innerHTML="All "+alltext;			
		opt.value="ALL";
		for(var i=0;i<values.length;i++){			
			opt=document.createElement("OPTION");
			selectelem.options.add(opt);
			opt.innerHTML=values[i];			
			opt.value=values[i];
		}
		return values.length;		
	}
//-----------------------[check whether object exists in array or not
	function in_array(what,where){
		for(var i=0;i<where.length;i++){
			if(where[i]==what) 
			  return true;
		}
		return false;
	}
	//------[this will combine two arrays and check that second arr doesn't have same elem, but first can have duplicates
  function combineDistinctArray(arr1,arr2){
  	var result=arr1;//new Array();
  	var j=arr1.length;
  	for(var i=0;i<arr2.length;i++){
  		if(!in_array(arr2[i],result)){
  			result[j++]=arr2[i];
  		}
  	}
  	result.sort();
  	return result;
  }
//------------------------------------