/**********************************************
 * 
 * Common Array Javascript Functions
 * 
 * Author: NEKOM
 * 
 * Contains all common functions for all sites. 
 * 
 *  1. Array Functions
 *  
 *  1.1 filter2DArray
 *  1.2 getDistinctValuesFrom2DArray
 *  1.3 contains
 *  
 *  (c) 2010 NEKOM IT GMBH  
 *  
 **********************************************/

	 function filter2DArray(array, filterColumnIndex, filterValue)
	{
	      var returnArray = new Array();
	      
	      for(var i=0;i<array.length;i++)
		  {	         	 
	    	 if (array[i][filterColumnIndex] == filterValue)
		     {	      
		         returnArray.push(array[i]);	      	       
		     }	    
		  }

		  return returnArray;
	 }	
  	
	 

   function getDistinctValuesFrom2DArray(array, valueIndex)
   {
      var returnArray = new Array();
      
      for(var i=0;i<array.length;i++)
	  {	  
    	   
	       if (!contains(returnArray, array[i][valueIndex]))
	       {
	         returnArray.push(array[i][valueIndex]);
	       }   
	  }
	  return returnArray;
	  
   }
   
   
   
   function getDistinctValuesFrom2DArrayWithInventory(array, valueIndex, inventoryIndex, groupByValue, groupByIndex)
   {
      var returnArray = new Array();

      for(var i=0;i<array.length;i++)
	  {	      	 
    	  tmp = new Array();
    	  tmp.push(array[i][valueIndex]);
	      tmp.push(array[i][inventoryIndex]);
	      
	       if (!contains2D(returnArray, tmp))  
	       { 	    	 	    	 
	    	 if (array[i][groupByIndex] == groupByValue)
	    	 {
	           returnArray.push(tmp);	  
	    	 }
	       }else
	       {
	         returnArray = addValueToExistingElement(returnArray, tmp) 	   
	   	   }
	  }     
	  return returnArray;
   }
   
   function addValueToExistingElement(searcharray, _value)
   {
	     for(var i=0;i<searcharray.length;i++)
	     {            
	       if (searcharray[i][0] == _value[0])
	       {
	    	   searcharray[i][1] = parseInt(searcharray[i][1]) + parseInt(_value[1]);
	       }
	     }	  
	     return searcharray;
   }
   
   
   function getDistinctValuesFrom2DArrayWithInventoryAll(array, valueIndex, inventoryIndex)
   {
      var returnArray = new Array();
     
      for(var i=0;i<array.length;i++)
	  {	  
    	 
    	  tmp = new Array();
    	  tmp.push(array[i][valueIndex]);
	      tmp.push(array[i][inventoryIndex]);
	      
	      returnArray = addWithNewValue(returnArray, tmp);
	  
	  }
      
	  return returnArray;
   }
   
  	
   function contains(searcharray,_value)
   {    
    
     for(var i=0;i<searcharray.length;i++)
     {      
       if (searcharray[i] == _value)
       {
        return true;
       }
     }
     return false;
   }
   
   function contains2D(searcharray,_value)
   {    
    
     for(var i=0;i<searcharray.length;i++)
     {            
       if (searcharray[i][0] == _value[0])
       {
        return true;
       }
     }
     return false;
   }
   
   function addWithNewValue(searcharray, _value)
   {    
    
     for(var i=0;i<searcharray.length;i++)
     {            
       if (searcharray[i][0] == _value[0])
       {
        searcharray[i][1] = parseInt(parseInt(searcharray[i][1]) + parseInt(_value[1]));
        return searcharray;
       }       
     }
     searcharray.push(tmp);               
     return searcharray;
   }
  	
  
