public static function save( $params )
    {
    	$result = array();
    	
    	$db = oseDB::instance();
    	
    	if(!oseMscPublic::isTable('#__oselic_cs_company'))
		{
			$result['success'] = true;
			$result['title'] = 'Error';
			$result['content'] = JText::_("Error");
			return $result;
		}
		
    	$post = JRequest::get('post');
    	
    	$msc_id = $params['msc_id'];
    	$member_id = $params['member_id'];
    	
    	JRequest::setVar('member_id',$member_id);
    	
    	$result = array();
    	
    	if(empty($member_id))
    	{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Error');
			
			return $result;
    	}
    	
    	
		
		$company = array();
		
		foreach($post as $key => $value)
		{
			if(strstr($key,'company_'))
			{
				$billKey = preg_replace('/company_/','',$key,1); 
				$company[$billKey] = $value;
			}
		}
		//oseExit($company);
   
    	
    	$query = " SELECT company_id FROM `#__oselic_cs_company` WHERE user_id='{$member_id}'";
    	$db->setQuery($query);
    	$num = $db->loadResult();
    	    	
    	if (empty ($num)) {
    		$keys = array_keys($company);
    		$keys = implode('`,`',$keys);
    		$fields = $db->getTableFields('#__oselic_cs_company');
    		
    		foreach($company as $key => $value)
    		{
				if(!isset($fields['#__oselic_cs_company'][$key]))
				{
					/*
					$query = "ALTER TABLE `#__osemsc_billinginfo` ADD `{$key}` TEXT NULL DEFAULT NULL";
					$db->setQuery($query);
					if (!$db->query())
					{
						return false;
					}
					*/
					unset($company[$key]);
				}
    		}  
    		
    		foreach($company as $key => $value)
    		{
    			$company[$key] = $db->Quote($value);
    		}
    		
    		$values = implode(',',$company);
    		
    		$queryKey = empty($keys)?'':",`{$keys}`";	
    		$queryValue = empty($values)?'':",{$values}";	
    		
			$query = "INSERT INTO `#__oselic_cs_company` (`user_id` {$queryKey}) VALUES ('{$member_id}' {$queryValue});";
		} 
		else 
		{
			
			foreach($company as $key => $value)
    		{
    			$company[$key] = "`{$key}`=".$db->Quote($value);
    		}
    		
    		$values = implode(',',$company);
    		
			$query = " UPDATE `#__oselic_cs_company` SET {$values}" 
					." WHERE `company_id` ={$company_id}"
					;
		}
		//echo $query;exit;
		$db->setQuery($query);
		
		if (!oseDB::query())
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Fail Saving Company Info.');
			
		} 
		else 
		{
			$licExtInfo =  oseRegistry::call('msc')->getExtInfo($msc_id,'lic','obj');
			$lic_id = $licExtInfo->lic_id;
			
			if(!empty($licExtInfo->enable_cs))
			{
				$lic = oseRegistry::call('lic')->getInstance($lic_id);
				
				$licInfo = $lic->getLicenseInfo($lic_id,'obj');
				
				if($licInfo->cs_mode == 'institution')
				{
					$query = " UPDATE `#__osemsc_billinginfo`"
							." SET company = ". $db->Quote($post['company_company'])
							." WHERE user_id = {$member_id}"
							;
					$db->setQuery($query);
				
					if(!oseDB::query())
					{
						$result['success'] = false;
						$result['title'] = 'Error';
						$result['content'] = JText::_('Fail Saving Company Info.');
						return $result;
					}
				}
			}
				
			$result['success'] = true;
			$result['title'] = 'Done';
			$result['content'] = JText::_('Saved Company Info.');
			
		}
    	return $result; 
    	
    }