/**
  *
  * @param mixed $config
  * @param array $replacement
  * @param array $attachment
  * @param bool $log
  * @param integer $vsprintfTimes
  * @param callback $filter
  * @return bool
  */
 public function send($config = null, $replacement = array(), $attachment = array(), $log = false, $vsprintfTimes = 1, $filter = null)
 {
     if (is_scalar($config)) {
         $config = $this->getConfig($config);
     }
     if (isset($config['mail'])) {
         $config = $config['mail'];
     }
     //TODO
     if (count($config) > 0 && count($attachment) > 0) {
         foreach ($attachment as $att) {
             if ($att->filename) {
                 $extension = strtolower(pathinfo(strval($att->filename), PATHINFO_EXTENSION));
                 if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) {
                     $att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension];
                 }
             }
         }
     }
     if (!is_null($filter)) {
         if ($config[0]['zfversion'] == 1) {
             $tmp = Zend_Json::encode($replacement);
         } elseif ($config[0]['zfversion'] == 2) {
             $callback = array('Zend\\Json\\Json', 'encode');
             $param_arr = array($tmp);
             $tmp = call_user_func_array($callback, $param_arr);
         }
         $tmp = base64_encode($tmp);
         $tmp = ' replacement=\'' . $tmp . '\'';
     }
     $send = true;
     foreach ($config as $conf) {
         $fromEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['email'], $replacement, $vsprintfTimes);
         $fromName = null;
         $replytoEmail = null;
         $replytoName = null;
         $toEmail = array();
         $toName = array();
         $ccEmail = array();
         $ccName = array();
         $bccEmail = array();
         $bccName = array();
         $header = array();
         $subject = null;
         $bodyHtml = null;
         $bodyText = null;
         if (isset($conf['from']['name'])) {
             $fromName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['from']['name'], $replacement, $vsprintfTimes);
         }
         if (isset($conf['replyto']['email'])) {
             $replytoEmail = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['email'], $replacement, $vsprintfTimes);
         }
         if (isset($conf['replyto']['name'])) {
             $replytoName = EhrlichAndreas_Util_Vsprintf::vsprintf($conf['replyto']['name'], $replacement, $vsprintfTimes);
         }
         if (count($conf['to']) > 0) {
             foreach ($conf['to'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 //TODO
                 /*
                 					if (isset($value['name']) && $value['name'] === $name)
                 					{
                 						$name = null;
                 					}
                 */
                 $toEmail[$key] = $email;
                 $toName[$key] = $name;
             }
         }
         if (count($conf['cc']) > 0) {
             foreach ($conf['cc'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 $ccEmail[$key] = $email;
                 $ccName[$key] = $name;
             }
         }
         if (count($conf['bcc']) > 0) {
             foreach ($conf['bcc'] as $key => $value) {
                 $email = EhrlichAndreas_Util_Vsprintf::vsprintf($value['email'], $replacement, $vsprintfTimes);
                 $name = '';
                 if (isset($value['name'])) {
                     $name = EhrlichAndreas_Util_Vsprintf::vsprintf($value['name'], $replacement, $vsprintfTimes);
                 }
                 $bccEmail[$key] = $email;
                 $bccName[$key] = $name;
             }
         }
         if (count($conf['header']) > 0) {
             foreach ($conf['header'] as $key => $value) {
                 if (!isset($value['append'])) {
                     $value['append'] = false;
                 }
                 $header[] = $value;
             }
         }
         /*
         			if (isset($conf['subject']) && strlen($conf['subject']) > 0)
         			{
            $subject = $conf['subject'];
            
            if (!is_null($filter))
            {
                $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
            }
            else
            {
                $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject);
            }
            
            if (!is_null($filter))
            {
                $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
                
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes);
            }
            else
            {
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, 1);
                
                $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $subject);
                
                $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes - 1);
            }
         			}
         * 
         */
         if (isset($conf['subject']) && strlen($conf['subject']) > 0) {
             $subject = $conf['subject'];
             if (!is_null($filter)) {
                 $subject = str_replace(' replacement=\'%replacement%\'', $tmp, $subject);
                 $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $subject = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $subject);
                     $subject = str_replace(' replacement=\'%replacement%\'', '', $subject);
                     $subject = str_replace(' replacement=\'\'', '', $subject);
                     $subject = EhrlichAndreas_Util_Vsprintf::vsprintf($subject, $replacement);
                 }
             }
         }
         if (!is_null($subject) && !is_null($filter)) {
             $subject = call_user_func_array($filter, array($subject));
         }
         /*
         			if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0)
         			{
            $bodyHtml = $conf['body']['html'];
            
            if (!is_null($filter))
            {
                $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml);
                
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes);
            }
            else
            {
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, 1);
                
                $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyHtml);
                
                $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes - 1);
            }
         			}
         * 
         */
         if (isset($conf['body']['html']) && strlen($conf['body']['html']) > 0) {
             $bodyHtml = $conf['body']['html'];
             if (!is_null($filter)) {
                 $bodyHtml = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyHtml);
                 $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $bodyHtml = preg_replace('#\\[base64.*\\[\\/base64\\]#si', '', $bodyHtml);
                     $bodyHtml = str_replace(' replacement=\'%replacement%\'', '', $bodyHtml);
                     $bodyHtml = str_replace(' replacement=\'\'', '', $bodyHtml);
                     $bodyHtml = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyHtml, $replacement);
                 }
             }
         }
         if (!is_null($bodyHtml) && !is_null($filter)) {
             $bodyHtml = call_user_func_array($filter, array($bodyHtml));
         }
         if (!is_null($bodyHtml)) {
             $bodyHtml = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyHtml);
         }
         /*
         			if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0)
         			{
            $bodyText = $conf['body']['text'];
            
            if (!is_null($filter))
            {
                $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText);
                
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
            }
            else
            {
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, 1);
                
                $bodyText = preg_replace('#\\[base64.*\\[\\/base64\\]#ui', '', $bodyText);
                
                $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes - 1);
            }
            
         				$bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
         			}
         * 
         */
         if (isset($conf['body']['text']) && strlen($conf['body']['text']) > 0) {
             $bodyText = $conf['body']['text'];
             if (!is_null($filter)) {
                 $bodyText = str_replace(' replacement=\'%replacement%\'', $tmp, $bodyText);
                 $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement, $vsprintfTimes);
             } else {
                 for ($vsprintfTime = 0; $vsprintfTime < $vsprintfTimes; $vsprintfTime++) {
                     $bodyText = preg_replace('#\\[base64.*\\[/base64\\]#si', '', $bodyText);
                     $bodyText = str_replace(' replacement=\'%replacement%\'', '', $bodyText);
                     $bodyText = str_replace(' replacement=\'\'', '', $bodyText);
                     $bodyText = EhrlichAndreas_Util_Vsprintf::vsprintf($bodyText, $replacement);
                 }
             }
         }
         if (!is_null($bodyText) && !is_null($filter)) {
             $bodyText = call_user_func_array($filter, array($bodyText));
         }
         if (!is_null($bodyText)) {
             $bodyText = preg_replace('#\\r?\\n|\\r\\n?#', $conf['eol'], $bodyText);
         }
         if ($conf['zfversion'] == 1) {
             //require_once 'Zend/Mail.php';
             $message = new Zend_Mail($conf['charset']);
             $message->setHeaderEncoding($conf['encoding']);
         } elseif ($conf['zfversion'] == 2) {
             $classMailMessage = 'Zend\\Mail\\Message';
             $message = new $classMailMessage();
             $message->setEncoding($conf['charset']);
             $classMimeMessage = 'Zend\\Mime\\Message';
             $mimeBody = new $classMimeMessage();
             $message->setBody($mimeBody);
             $headers = $message->getHeaders();
             $headers->setEncoding('ASCII');
         }
         $message->setFrom($fromEmail, $fromName);
         if (!is_null($replytoEmail)) {
             $message->setReplyTo($replytoEmail, $replytoName);
         }
         foreach ($toEmail as $key => $email) {
             $name = $toName[$key];
             $message->addTo($email, $name);
         }
         foreach ($ccEmail as $key => $email) {
             $name = $ccName[$key];
             $message->addCc($email, $name);
         }
         foreach ($bccEmail as $key => $email) {
             $name = $bccName[$key];
             $message->addBcc($email, $name);
         }
         if ($conf['zfversion'] == 1) {
             foreach ($header as $key => $value) {
                 $message->addHeader($value['name'], $value['value'], $value['append']);
             }
         } elseif ($conf['zfversion'] == 2) {
             $headers = $message->getHeaders();
             //$headers->setEncoding($conf['charset']);
             foreach ($header as $key => $value) {
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader($value['name'], $value['value']);
                 $headerTmp->setEncoding($conf['charset']);
                 $headers->addHeader($headerTmp);
             }
         }
         if (!is_null($subject)) {
             $message->setSubject($subject);
         }
         if ($conf['zfversion'] == 1) {
             if (!is_null($bodyHtml)) {
                 $message->setBodyHtml($bodyHtml, $conf['charset'], $conf['encoding']);
             }
             if (!is_null($bodyText)) {
                 $message->setBodyText($bodyText, $conf['charset'], $conf['encoding']);
             }
         } elseif ($conf['zfversion'] == 2) {
             $htmlPart = null;
             $textPart = null;
             //$mimeMessage = null;
             if (!is_null($bodyText)) {
                 $classMimePart = 'Zend\\Mime\\Part';
                 $textPart = new $classMimePart($bodyText);
                 $textPart->type = 'text/plain';
                 $textPart->charset = $conf['charset'];
                 $textPart->encoding = $conf['encoding'];
                 $message->getBody()->addPart($textPart);
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'text/plain; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->removeHeader('content-type');
                 $headers->addHeader($headerTmp);
             }
             if (!is_null($bodyHtml)) {
                 $classMimePart = 'Zend\\Mime\\Part';
                 $htmlPart = new $classMimePart($bodyHtml);
                 $htmlPart->type = 'text/html';
                 $htmlPart->charset = $conf['charset'];
                 $htmlPart->encoding = $conf['encoding'];
                 $message->getBody()->addPart($htmlPart);
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'text/html; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->removeHeader('content-type');
                 $headers->addHeader($headerTmp);
             }
             /*
             				if (!is_null($htmlPart) || !is_null($textPart))
             				{
             					$mimeMessage = new Zend\Mime\Message();
             				}
             				
             				if (!is_null($htmlPart))
             				{
             					$mimeMessage->addPart($htmlPart);
             				}
             				
             				if (!is_null($textPart))
             				{
             					$mimeMessage->addPart($textPart);
             				}
             				
             				if (!is_null($mimeMessage))
             				{
             					$alternativePart = new Zend\Mime\Part($mimeMessage->generateMessage());
             					
             					$alternativePart->type = 'multipart/alternative';
             					
             					$alternativePart->boundary = $mimeMessage->getMime()->boundary();
             					
             					$alternativePart->charset = $conf['charset'];
             					
             					//$alternativePart->encoding = $conf['encoding'];
             					
             					
             					$message->getBody()->addPart($alternativePart);
             				}
             * 
             */
         }
         if ($conf['zfversion'] == 1) {
             if (isset($conf['attachment']) && strlen($conf['attachment']) > 0 && $conf['attachment']) {
                 foreach ($attachment as $att) {
                     $message->addAttachment($att);
                 }
             }
         } elseif ($conf['zfversion'] == 2) {
             //TODO add attachements
         }
         /*
         * 
         * TODO add attachements
         * 
         			if (count($config)>0&&count($attachment)>0) {
         				foreach ($attachment as $att) {
         					if ($att->filename) {
         						$extension = strtolower(pathinfo(strval($att->filename),PATHINFO_EXTENSION));
         						if (isset(EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension])) {
         							$att->type = EhrlichAndreas_Util_Mime::$MIME_TYPE[$extension];
         						}
         					}
         				}
         			}
         			
         			if (isset($conf['attachment'])&&strlen($conf['attachment'])>0&&$conf['attachment']) {
         				foreach ($attachment as $att) {
         					$mail->addAttachment($att);
         				}
         			}
         * 
         */
         if ($conf['zfversion'] == 1) {
         } elseif ($conf['zfversion'] == 2) {
             $headers = $message->getHeaders();
             //$headers->setEncoding('ASCII');
             $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
             $headerTmp = new $classGenericMultiHeader('Content-Transfer-Encoding', $conf['encoding']);
             $headerTmp->setEncoding('ASCII');
             $headers->addHeader($headerTmp);
             if (!is_null($bodyText) && !is_null($bodyHtml)) {
                 $headers->removeHeader('Content-Transfer-Encoding');
                 $headers->removeHeader('content-type');
                 $boundary = $message->getBody()->getMime()->boundary();
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; boundary="' . $boundary . '"');
                 $headerTmp->setEncoding('ASCII');
                 $headers->addHeader($headerTmp);
             }
             if (false && $message->getBody()->isMultiPart()) {
                 $classGenericMultiHeader = 'Zend\\Mail\\Header\\GenericMultiHeader';
                 $headerTmp = new $classGenericMultiHeader('content-type', 'multipart/alternative; charset=' . $conf['charset']);
                 $headerTmp->setEncoding('ASCII');
                 $headers->addHeader($headerTmp);
             }
         }
         /* *
            echo '<pre>';
            var_dump
            (
                $fromEmail,
                $fromName,
                $replytoEmail,
                $replytoName,
                $toEmail,
                $toName,
                $ccEmail,
                $ccName,
                $bccEmail,
                $bccName,
                $header,
                $subject,
                $bodyHtml,
                $bodyText
            );
            //print_r($replacement);
            //die();
            /* */
         if ($conf['zfversion'] == 1) {
             $defaultTranslator = Zend_Validate_Abstract::getDefaultTranslator();
             if (is_object($defaultTranslator)) {
                 Zend_Validate_Abstract::setDefaultTranslator(null);
                 $defaultTranslatorOptions = $defaultTranslator->getOptions();
                 $defaultTranslator->setOptions(array('logUntranslated' => false));
             }
         } else {
         }
         $messageTransport = $conf['transport'];
         try {
             $messageTransport->send($message);
             $sendTmp = true;
         } catch (Exception $e) {
             $sendTmp = false;
         }
         $send = $send && $sendTmp;
         if ($conf['zfversion'] == 1) {
             if (is_object($defaultTranslator)) {
                 $defaultTranslator->setOptions($defaultTranslatorOptions);
                 Zend_Validate_Abstract::setDefaultTranslator($defaultTranslator);
             }
         } else {
         }
     }
     return $send;
 }
 /**
  * Assembles a URL path defined by this route
  *
  * @param  array $data An array of name (or index) and value pairs used as parameters
  * @return string Route path with user submitted parameters
  */
 public function assemble($data = array(), $reset = false, $encode = false, $partial = false)
 {
     if ($this->_reverse === null) {
         throw new EhrlichAndreas_Mvc_Exception('Cannot assemble. Reversed route is not specified.');
     }
     $callbacks = $this->_callbacks;
     $defaultValuesMapped = $this->_defaults;
     $matchedValuesMapped = $this->_values;
     $dataValuesMapped = $data;
     $defaultValuesMapped = $this->_getMappedValues($defaultValuesMapped, true, false);
     $matchedValuesMapped = $this->_getMappedValues($matchedValuesMapped, true, false);
     $dataValuesMapped = $this->_getMappedValues($dataValuesMapped, true, false);
     $resetKeys = array_search(null, $dataValuesMapped, true);
     // handle resets, if so requested (By null value) to do so
     if ($resetKeys !== false) {
         foreach ((array) $resetKeys as $resetKey) {
             if (isset($matchedValuesMapped[$resetKey])) {
                 unset($matchedValuesMapped[$resetKey]);
                 unset($dataValuesMapped[$resetKey]);
             }
         }
     }
     // merge all the data together, first defaults, then values matched, then supplied
     $mergedData = $defaultValuesMapped;
     $mergedData = $this->_arrayMergeNumericKeys($mergedData, $matchedValuesMapped);
     $mergedData = $this->_arrayMergeNumericKeys($mergedData, $dataValuesMapped);
     $mergedData = $this->_getMappedValues($mergedData, false, true);
     foreach ($mergedData as $k => $d) {
         if (isset($callbacks[$k]) && is_array($callbacks[$k]) && count($callbacks[$k]) > 0) {
             foreach ($callbacks[$k] as $callback) {
                 if (is_array($callback)) {
                     //$callbacks [$k] = implode('::', $callbacks [$k]);
                     $d = call_user_func_array($callback, array($d, $mergedData));
                 } else {
                     $d = call_user_func($callback, $d);
                 }
             }
             $mergedData[$k] = $d;
         }
     }
     $mergedData = $this->_getMappedValues($mergedData, true, false);
     if ($encode) {
         foreach ($mergedData as $key => $value) {
             $value = urlencode($value);
             $mergedData[$key] = $value;
         }
     }
     ksort($mergedData);
     $return = EhrlichAndreas_Util_Vsprintf::vsprintf($this->_reverse, $mergedData);
     if ($return === false) {
         $mergedData = print_r($mergedData, true);
         $mergedData = '$mergedData = ' . $mergedData . "\n<br>";
         $reverse = print_r($this->_reverse, true);
         $reverse = '$reverse = ' . $reverse . "\n<br>";
         throw new EhrlichAndreas_Mvc_Exception('Cannot assemble. Too few arguments?');
     }
     return $return;
 }
 public function parse($limitDrawList = 5)
 {
     $parser = new EhrlichAndreas_LotteryCms_Parser_LottoDe();
     $provider = $parser->getProvider();
     $provider_id = 0;
     $lottery_name = array('spiel77' => 'spiel77', 'super6' => 'super6', 'lotto' => 'lotto');
     $provider_lottery_name = array('spiel77' => 'Spiel 77', 'super6' => 'Super 6', 'lotto' => 'Lotto');
     $provider_lottery_id = array('spiel77' => 'spiel77', 'super6' => 'super6', 'lotto' => 'lotto');
     $lottery_text = array('lottery_draw_title_digits' => '%provider_territory_name% :: %provider_lottery_name% :: digits', 'lottery_draw_title_digits_additional' => '%provider_territory_name% :: %provider_lottery_name% :: digits_additional', 'lottery_draw_title_digits_bonus' => '%provider_territory_name% :: %provider_lottery_name% :: digits_bonus', 'lottery_info_text_information' => '%provider_territory_name% :: %provider_lottery_name% :: information', 'lottery_info_text_rules' => '%provider_territory_name% :: %provider_lottery_name% :: rules');
     $locales = array('de', 'en');
     $lotteryList = array();
     $lotteryTextList = array();
     $provider_ids = $this->addReturnProvider($provider);
     $provider_id = array_shift($provider_ids);
     $lotteryIds = $this->addReturnLottery($provider, $lottery_name);
     foreach ($lottery_name as $value) {
         $param = array('provider_id' => $provider_id, 'lottery_name' => $value, 'provider_lottery_id' => $provider_lottery_id[$value], 'provider_lottery_name' => $provider_lottery_name[$value], 'provider_territory_name' => 'Deutschland', 'iso_3166_1_alpha_2' => 'DE', 'iso_3166_1_alpha_3' => 'DEU', 'iso_3166_1_numeric' => '276', 'provider_hosted_in' => 'Deutschland', 'where' => array('provider_id' => $provider_id, 'lottery_name' => $value));
         $lottery_id = $this->editLottery($param);
     }
     $param = array('provider_id' => $provider_id, 'lottery_name' => $lottery_name);
     $rowset = $this->getLotteryList($param);
     foreach ($rowset as $row) {
         $lotteryList[$row['lottery_name']] = $row;
     }
     $param = array('provider_id' => $provider_id, 'lottery_id' => $lotteryIds, 'locale' => $locales, 'field_name' => array_keys($lottery_text));
     $rowset = $this->getLotteryTextList($param);
     foreach ($rowset as $row) {
         $key = '';
         $key .= $row['provider_id'];
         $key .= '::';
         $key .= $row['lottery_id'];
         $key .= '::';
         $key .= $row['locale'];
         $key .= '::';
         $key .= $row['field_name'];
         $lotteryTextList[$key] = $row;
     }
     foreach ($lotteryList as $lottery) {
         foreach ($lottery_text as $field_name => $comment) {
             foreach ($locales as $locale) {
                 $key = '';
                 $key .= $provider_id;
                 $key .= '::';
                 $key .= $lottery['lottery_id'];
                 $key .= '::';
                 $key .= $locale;
                 $key .= '::';
                 $key .= $field_name;
                 if (!isset($lotteryTextList[$key])) {
                     $comment = EhrlichAndreas_Util_Vsprintf::vsprintf($comment, $lottery);
                     $param = array('lottery_id' => $lottery['lottery_id'], 'provider_id' => $provider_id, 'provider' => $provider, 'provider_lottery_id' => $lottery['provider_lottery_id'], 'locale' => $locale, 'field_name' => $field_name, 'comment ' => $comment);
                     $lottery_text_id = $this->addLotteryText($param);
                     $lotteryTextList[$key] = $param;
                     $lotteryTextList[$value]['lottery_text_id'] = $lottery_text_id;
                 }
             }
         }
     }
     $link = array();
     $drawResults = $parser->getLotteryResults($link);
     $years = $drawResults['additional']['years'];
     $days = $drawResults['additional']['drawdays'];
     $viewstate = $drawResults['additional']['viewstate'];
     $drawsCount = 0;
     foreach ($years as $year) {
         if ($limitDrawList > 0 && $drawsCount >= $limitDrawList) {
             break;
         }
         $day = '0001-01-01';
         if (count($days) > 0) {
             $day = array_values($days);
             $day = $day[0];
         }
         $year = strval($year);
         if (stripos($day, $year) !== 0) {
             $link = array('query' => array('year' => $year));
             $drawResults = $parser->getLotteryResults($link);
             $days = $drawResults['additional']['drawdays'];
             #$viewstate = $drawResults['additional']['viewstate'];
         }
         foreach ($days as $day) {
             $link = array('query' => array('year' => $year, 'drawday' => $day));
             $drawResults = $parser->getLotteryResults($link);
             #$viewstate = $drawResults['additional']['viewstate'];
             $lotteryDraws = $drawResults['lottery'];
             foreach ($lotteryDraws as $lotteryDraw) {
                 if (strlen($lotteryDraw['digits']) <= 0) {
                     continue;
                 }
                 $lottery_id = $lotteryList[$lotteryDraw['lottery_name']]['lottery_id'];
                 $provider_lottery_id = $lotteryList[$lotteryDraw['lottery_name']]['provider_lottery_id'];
                 $where = array('lottery_id' => $lottery_id, 'provider_draw_id' => $day);
                 $param = array('lottery_id' => $lottery_id, 'provider_id' => $provider_id, 'provider' => $provider, 'provider_lottery_id' => $provider_lottery_id, 'provider_draw_id' => $day, 'date_draw' => $day, 'year_8601' => $year, 'digits' => $lotteryDraw['digits'], 'digits_additional' => $lotteryDraw['digits_additional'], 'digits_bonus' => $lotteryDraw['digits_bonus'], 'currency' => $lotteryDraw['currency'], 'amount' => $lotteryDraw['amount']);
                 $rowset = $this->getDrawList($where);
                 if (count($rowset) <= 0) {
                     $paramInsert = $param;
                     $this->addDraw($paramInsert);
                 } else {
                     $paramEdit = $param;
                     $paramEdit['where'] = $where;
                     $this->editDraw($paramEdit);
                 }
                 $rowset = $this->getDrawList($where);
                 $param['draw_id'] = $rowset[0]['draw_id'];
                 $param['provider_game_id'] = $rowset[0]['provider_game_id'];
                 foreach ($lotteryDraw['payout'] as $payout) {
                     $paramSelect = array('lottery_id' => $lottery_id, 'draw_id' => $param['draw_id'], 'rank' => $payout['rank']);
                     $rowset = $this->getPayoutList($paramSelect);
                     $param = array_merge($param, $payout);
                     if (count($rowset) <= 0) {
                         $paramInsert = $param;
                         $this->addPayout($paramInsert);
                     } else {
                         $paramEdit = $param;
                         $paramEdit['where'] = $paramSelect;
                         unset($paramEdit['where']['cols']);
                         $this->editPayout($paramEdit);
                     }
                 }
             }
             $drawsCount++;
             if ($limitDrawList > 0 && $drawsCount >= $limitDrawList) {
                 break;
             }
         }
     }
 }