<?php

include 'php/converter.class.php';
$str = "Pxl-Test(TOTO,10)\n";
echo 'Avant: ' . $str . '<br />';
preg_match_all("#Pxl-Test\\([^,]+\\,[^,:\\)\\s→]+#i", $str, $matches);
/*echo $matches[0][0];
echo '<pre>'; 
print_r($matches); 
echo '</pre>';
*/
echo '<br />What we must convert: <br /><ul>';
for ($i = 0; $i < count($matches[0]); $i++) {
    $TestString = new Converter($matches[0][$i] . "\n");
    //echo '<li><b>'.$matches[0][$i].'</b> -->Taille =  '.strlen($matches[0][$i]).' --> '.$TestString->ColorToMono().'</li><br />';
    //echo 'Portion du code à modifier: '.substr($str,stripos($str, $matches[0][$i]),1+strlen($matches[0][$i]));
    $str = str_replace($matches[0][$i], $TestString->ColorToMono(), $str);
    //echo '<br />FINAL='.preg_replace("#Pxl-Test\([^,]+\,[^,:\)\s→]+#i", $TestString->ColorToMono(),$str,1);
}
echo '' . $str;
?>

 public function conv_coord($code, $mode, $typeOfWindows)
 {
     $ratio_x_px = "2.81";
     $ratio_y_px = "2.66";
     $ratio_x_txt = "2.8";
     $ratio_y_txt = "2.63";
     if ($mode == "CTM") {
         //Color to Mono
         $sign = "/";
     } elseif ($mode == "MTC") {
         //Mono to color
         $sign = "*";
     }
     include 'php/regex.php';
     //saving preg match
     preg_match($linesimple2, $code, $linenocolor);
     preg_match($ptsimple2, $code, $ptnocolor);
     preg_match($ptsimpleno, $code, $ptoffnocolor);
     preg_match($horiznocolor, $code, $horiznocolortab);
     preg_match($vertinocolor, $code, $vertinocolortab);
     preg_match($ptchangenocolor, $code, $ptchangenocolortab);
     preg_match($pxonnocolor, $code, $pxonnocolortab);
     preg_match($pxoffnocolor, $code, $pxoffnocolortab);
     preg_match($pxlchangenocolor, $code, $pxlchangenocolortab);
     preg_match($textnocolor, $code, $textnocolortab);
     preg_match($cerclenocolor, $code, $cerclenocolortab);
     preg_match("#(Pxl-Test)\\(([^,]+)\\,([^,]+)#i", $code, $pxtesttab);
     if (count($linenocolor) > 0 and $typeOfWindows == "delta") {
         //there is a line here
         $temp = "";
         $global = $linenocolor[1] . '(';
         for ($i = 2; $i < count($linenocolor); $i++) {
             if ($i == 2 or $i == 4) {
                 $temp = '(' . $linenocolor[$i] . ')' . $sign . $ratio_x_px;
                 $global = $global . $temp . ',';
             }
             if ($i == 3) {
                 $temp = '(' . $linenocolor[$i] . ')' . $sign . $ratio_y_px;
                 $global = $global . $temp . ',';
             }
             if ($i == 5 and $mode == "CTM") {
                 $temp = '(1/' . $ratio_y_px . ')(' . $linenocolor[5];
                 $global = $global . $temp;
             }
             if ($i == 5 and $mode == "MTC") {
                 $temp = '(' . $ratio_y_px . ')(' . $linenocolor[5];
                 $global = $global . $temp;
             }
         }
         if (count($linenocolor) == 7) {
             $global = $global . '),0' . "\n";
         }
         return $global;
     } elseif (count($ptnocolor) > 0 and $typeOfWindows == "delta") {
         //there is a pton here
         $temp = "";
         $global = $ptnocolor[1] . '(';
         for ($i = 3; $i <= count($ptnocolor); $i++) {
             if ($i == 3) {
                 $global = $global . '(' . $ptnocolor[3] . ')' . $sign . $ratio_x_px;
             }
             if ($i == 4 and count($ptnocolor) <= 5) {
                 $global = $global . ',(' . substr($ptnocolor[4], 0, strlen($ptnocolor[4]) - 1) . $sign . $ratio_y_px;
             }
             if ($i == 4 and count($ptnocolor) > 5) {
                 $global = $global . ',(' . $ptnocolor[4] . ')' . $sign . $ratio_y_px;
             }
             if ($i == 6) {
                 $global = $global . ',' . $ptnocolor[6];
             }
         }
         return $global . "\n";
     } elseif (count($ptoffnocolor) > 0 and $typeOfWindows == "delta") {
         $temp = "";
         $global = $ptoffnocolor[1] . '(';
         for ($i = 3; $i <= count($ptoffnocolor); $i++) {
             if ($i == 3) {
                 $global = $global . '(' . $ptoffnocolor[3] . ')' . $sign . $ratio_x_px;
             }
             if ($i == 4 and count($ptoffnocolor) <= 5) {
                 $global = $global . ',(' . substr($ptoffnocolor[4], 0, strlen($ptoffnocolor[4]) - 1) . $sign . $ratio_y_px;
             }
             if ($i == 4 and count($ptoffnocolor) > 5) {
                 $global = $global . ',(' . $ptoffnocolor[4] . ')' . $sign . $ratio_y_px;
             }
             if ($i == 6) {
                 $global = $global . ',' . $ptoffnocolor[6];
             }
         }
         return $global . "\n";
     } elseif (count($horiznocolortab) > 0 and $typeOfWindows == "delta") {
         $global = $horiznocolortab[1] . ' (' . rtrim($horiznocolortab[2]) . $sign . $ratio_y_px . ')';
         return $global . "\n";
     } elseif (count($vertinocolortab) > 0 and $typeOfWindows == "delta") {
         $global = $vertinocolortab[1] . ' (' . rtrim($vertinocolortab[2]) . $sign . $ratio_x_px . ')';
         return $global . "\n";
     } elseif (count($ptchangenocolortab) > 0 and $typeOfWindows == "delta") {
         $global = $ptchangenocolortab[1] . '((' . $ptchangenocolortab[2] . ')' . $sign . $ratio_x_px . ',(' . rtrim($ptchangenocolortab[3]) . $sign . $ratio_y_px;
         return $global . "\n";
     } elseif (count($pxonnocolortab) > 0) {
         $global = $pxonnocolortab[1] . '(int((' . $pxonnocolortab[3] . ')' . $sign . $ratio_x_px . '),int((' . rtrim($pxonnocolortab[4]) . ')' . $sign . $ratio_y_px . '';
         return $global . "\n";
     } elseif (count($pxoffnocolortab) > 0) {
         $global = $pxoffnocolortab[1] . '((' . $pxoffnocolortab[3] . ')' . $sign . $ratio_x_px . ',(' . rtrim($pxoffnocolortab[4]) . $sign . $ratio_y_px;
         return $global . "\n";
     } elseif (count($pxlchangenocolortab) > 0) {
         $global = $pxlchangenocolortab[1] . '((' . $pxlchangenocolortab[2] . ')' . $sign . $ratio_x_px . ',(' . rtrim($pxlchangenocolortab[3]) . $sign . $ratio_y_px;
         return $global . "\n";
     } elseif (count($textnocolortab) > 0) {
         //need fix
         if (strrpos($code, "Text(-1,") === FALSE and strrpos($code, "Texte(-1,") === FALSE) {
             //classic: no -1 argument
             $global = $textnocolortab[1] . '(int((' . $textnocolortab[count($textnocolortab) - 3] . ')' . $sign . $ratio_y_txt . '),int((' . $textnocolortab[count($textnocolortab) - 2] . ')' . $sign . $ratio_x_txt . '),' . $textnocolortab[count($textnocolortab) - 1];
         } else {
             //maj size: -1 argument
             if ($textnocolortab[1] == "Text") {
                 $pos = 8;
             } else {
                 $pos = 9;
             }
             $newstring = $textnocolortab[1] . "(" . substr($code, $pos);
             preg_match($textnocolor, $newstring, $textwt1);
             $global = $textnocolortab[1] . '(-1,(int((' . $textwt1[3] . ')' . $sign . $ratio_y_txt . '),int((' . $textwt1[4] . ')' . $sign . $ratio_y_txt . '),' . $textwt1[5];
         }
         //$global = $textnocolortab[1].'(int(('.$textnocolortab[count($textnocolortab)-3].')'.$sign.$ratio_y_txt.'),int(('.$textnocolortab[count($textnocolortab)-2].')'.$sign.$ratio_x_txt.'),'.$textnocolortab[count($textnocolortab)-1];
         return $global . "\n";
     } elseif (count($cerclenocolortab) > 0 and $typeOfWindows == "delta") {
         $global = $cerclenocolortab[1] . '((' . $cerclenocolortab[3] . ')' . $sign . $ratio_x_px . ',(' . $cerclenocolortab[4] . ')' . $sign . $ratio_y_px . ',(' . rtrim($cerclenocolortab[5]) . $sign . '2.8';
         return $global;
     } elseif (count($pxtesttab) > 0) {
         if (preg_match($pxtest, $code)) {
             //que du pixel test
             if (preg_match("#[\\)]#i", $pxtesttab[3])) {
                 $global = 'pxl-Test((' . $pxtesttab[2] . ')' . $sign . $ratio_y_txt . ',(' . rtrim($pxtesttab[3]) . $sign . $ratio_x_txt;
             } else {
                 $global = 'pxl-Test((' . $pxtesttab[2] . ')' . $sign . $ratio_y_txt . ',(' . rtrim($pxtesttab[3]) . ')' . $sign . $ratio_x_txt;
             }
             return $global . "\n";
             //
         } else {
             //start
             preg_match_all("#Pxl-Test\\([^,]+\\,[^,:\\)\\s→]+#i", $code, $matches);
             for ($i = 0; $i < count($matches[0]); $i++) {
                 $TestString = new Converter($matches[0][$i] . "\n");
                 if ($mode == "CTM") {
                     //Color to Mono
                     $code = str_replace($matches[0][$i], rtrim($TestString->ColorToMono()), $code);
                 } elseif ($mode == "MTC") {
                     //Mono to color
                     $code = str_replace($matches[0][$i], rtrim($TestString->MonoToColor()), $code);
                 }
             }
             return $code;
             //end
         }
     } else {
         return $code;
     }
 }