function_javascript.php

Go to the documentation of this file.
00001 <?
00002 /*
00003 PHP URL encoding/decoding functions for Javascript interaction V3.0
00004 (C) 2006 www.captain.at - all rights reserved
00005 License: GPL
00006 */
00007 /*!
00008  *\brief create the HTML for including of a javascript file
00009  * if a file is included twice, the second time it will be discarded
00010  * there is an alert if the file doesn't exist
00011  *\param $p_string name of the file
00012  *\return the HTML script
00013  */
00014 function js_include($p_string)
00015 {
00016     static $ajs=array();                /* avoid to add twice the same script */
00017     static $seq=0;
00018     if ( in_array($p_string,$ajs)) return '';
00019     $ajs[$seq]=$p_string;
00020     $seq++;
00021 
00022     if ( !  file_exists('js/'.$p_string))
00023         alert("Erreur js/$p_string n existe pas");
00024     $script='<script type="text/javascript" charset="utf8" language="javascript" src="js/'.$p_string.'"></script>';
00025     // debug
00026 
00027     return $script;
00028 
00029 }
00030 /*!
00031  *\brief create the HTML for adding the script tags around of the script
00032  *\param $p_string source codename of the file
00033  *\return the HTML script
00034  */
00035 function create_script($p_string)
00036 {
00037     $script='<script type="text/javascript" charset="utf8" language="javascript">'.$p_string.' </script>';
00038     return $script;
00039 
00040 }
00041 function encodeURIComponent($string)
00042 {
00043     $result = "";
00044     for ($i = 0; $i < strlen($string); $i++)
00045     {
00046         $result .= encodeURIComponentbycharacter(urlencode($string[$i]));
00047     }
00048     return $result;
00049 }
00050 
00051 function encodeURIComponentbycharacter($char)
00052 {
00053     if ($char == "+")
00054     {
00055         return "%20";
00056     }
00057     if ($char == "%21")
00058     {
00059         return "!";
00060     }
00061     if ($char == "%27")
00062     {
00063         return '"';
00064     }
00065     if ($char == "%28")
00066     {
00067         return "(";
00068     }
00069     if ($char == "%29")
00070     {
00071         return ")";
00072     }
00073     if ($char == "%2A")
00074     {
00075         return "*";
00076     }
00077     if ($char == "%7E")
00078     {
00079         return "~";
00080     }
00081     if ($char == "%80")
00082     {
00083         return "%E2%82%AC";
00084     }
00085     if ($char == "%81")
00086     {
00087         return "%C2%81";
00088     }
00089     if ($char == "%82")
00090     {
00091         return "%E2%80%9A";
00092     }
00093     if ($char == "%83")
00094     {
00095         return "%C6%92";
00096     }
00097     if ($char == "%84")
00098     {
00099         return "%E2%80%9E";
00100     }
00101     if ($char == "%85")
00102     {
00103         return "%E2%80%A6";
00104     }
00105     if ($char == "%86")
00106     {
00107         return "%E2%80%A0";
00108     }
00109     if ($char == "%87")
00110     {
00111         return "%E2%80%A1";
00112     }
00113     if ($char == "%88")
00114     {
00115         return "%CB%86";
00116     }
00117     if ($char == "%89")
00118     {
00119         return "%E2%80%B0";
00120     }
00121     if ($char == "%8A")
00122     {
00123         return "%C5%A0";
00124     }
00125     if ($char == "%8B")
00126     {
00127         return "%E2%80%B9";
00128     }
00129     if ($char == "%8C")
00130     {
00131         return "%C5%92";
00132     }
00133     if ($char == "%8D")
00134     {
00135         return "%C2%8D";
00136     }
00137     if ($char == "%8E")
00138     {
00139         return "%C5%BD";
00140     }
00141     if ($char == "%8F")
00142     {
00143         return "%C2%8F";
00144     }
00145     if ($char == "%90")
00146     {
00147         return "%C2%90";
00148     }
00149     if ($char == "%91")
00150     {
00151         return "%E2%80%98";
00152     }
00153     if ($char == "%92")
00154     {
00155         return "%E2%80%99";
00156     }
00157     if ($char == "%93")
00158     {
00159         return "%E2%80%9C";
00160     }
00161     if ($char == "%94")
00162     {
00163         return "%E2%80%9D";
00164     }
00165     if ($char == "%95")
00166     {
00167         return "%E2%80%A2";
00168     }
00169     if ($char == "%96")
00170     {
00171         return "%E2%80%93";
00172     }
00173     if ($char == "%97")
00174     {
00175         return "%E2%80%94";
00176     }
00177     if ($char == "%98")
00178     {
00179         return "%CB%9C";
00180     }
00181     if ($char == "%99")
00182     {
00183         return "%E2%84%A2";
00184     }
00185     if ($char == "%9A")
00186     {
00187         return "%C5%A1";
00188     }
00189     if ($char == "%9B")
00190     {
00191         return "%E2%80%BA";
00192     }
00193     if ($char == "%9C")
00194     {
00195         return "%C5%93";
00196     }
00197     if ($char == "%9D")
00198     {
00199         return "%C2%9D";
00200     }
00201     if ($char == "%9E")
00202     {
00203         return "%C5%BE";
00204     }
00205     if ($char == "%9F")
00206     {
00207         return "%C5%B8";
00208     }
00209     if ($char == "%A0")
00210     {
00211         return "%C2%A0";
00212     }
00213     if ($char == "%A1")
00214     {
00215         return "%C2%A1";
00216     }
00217     if ($char == "%A2")
00218     {
00219         return "%C2%A2";
00220     }
00221     if ($char == "%A3")
00222     {
00223         return "%C2%A3";
00224     }
00225     if ($char == "%A4")
00226     {
00227         return "%C2%A4";
00228     }
00229     if ($char == "%A5")
00230     {
00231         return "%C2%A5";
00232     }
00233     if ($char == "%A6")
00234     {
00235         return "%C2%A6";
00236     }
00237     if ($char == "%A7")
00238     {
00239         return "%C2%A7";
00240     }
00241     if ($char == "%A8")
00242     {
00243         return "%C2%A8";
00244     }
00245     if ($char == "%A9")
00246     {
00247         return "%C2%A9";
00248     }
00249     if ($char == "%AA")
00250     {
00251         return "%C2%AA";
00252     }
00253     if ($char == "%AB")
00254     {
00255         return "%C2%AB";
00256     }
00257     if ($char == "%AC")
00258     {
00259         return "%C2%AC";
00260     }
00261     if ($char == "%AD")
00262     {
00263         return "%C2%AD";
00264     }
00265     if ($char == "%AE")
00266     {
00267         return "%C2%AE";
00268     }
00269     if ($char == "%AF")
00270     {
00271         return "%C2%AF";
00272     }
00273     if ($char == "%B0")
00274     {
00275         return "%C2%B0";
00276     }
00277     if ($char == "%B1")
00278     {
00279         return "%C2%B1";
00280     }
00281     if ($char == "%B2")
00282     {
00283         return "%C2%B2";
00284     }
00285     if ($char == "%B3")
00286     {
00287         return "%C2%B3";
00288     }
00289     if ($char == "%B4")
00290     {
00291         return "%C2%B4";
00292     }
00293     if ($char == "%B5")
00294     {
00295         return "%C2%B5";
00296     }
00297     if ($char == "%B6")
00298     {
00299         return "%C2%B6";
00300     }
00301     if ($char == "%B7")
00302     {
00303         return "%C2%B7";
00304     }
00305     if ($char == "%B8")
00306     {
00307         return "%C2%B8";
00308     }
00309     if ($char == "%B9")
00310     {
00311         return "%C2%B9";
00312     }
00313     if ($char == "%BA")
00314     {
00315         return "%C2%BA";
00316     }
00317     if ($char == "%BB")
00318     {
00319         return "%C2%BB";
00320     }
00321     if ($char == "%BC")
00322     {
00323         return "%C2%BC";
00324     }
00325     if ($char == "%BD")
00326     {
00327         return "%C2%BD";
00328     }
00329     if ($char == "%BE")
00330     {
00331         return "%C2%BE";
00332     }
00333     if ($char == "%BF")
00334     {
00335         return "%C2%BF";
00336     }
00337     if ($char == "%C0")
00338     {
00339         return "%C3%80";
00340     }
00341     if ($char == "%C1")
00342     {
00343         return "%C3%81";
00344     }
00345     if ($char == "%C2")
00346     {
00347         return "%C3%82";
00348     }
00349     if ($char == "%C3")
00350     {
00351         return "%C3%83";
00352     }
00353     if ($char == "%C4")
00354     {
00355         return "%C3%84";
00356     }
00357     if ($char == "%C5")
00358     {
00359         return "%C3%85";
00360     }
00361     if ($char == "%C6")
00362     {
00363         return "%C3%86";
00364     }
00365     if ($char == "%C7")
00366     {
00367         return "%C3%87";
00368     }
00369     if ($char == "%C8")
00370     {
00371         return "%C3%88";
00372     }
00373     if ($char == "%C9")
00374     {
00375         return "%C3%89";
00376     }
00377     if ($char == "%CA")
00378     {
00379         return "%C3%8A";
00380     }
00381     if ($char == "%CB")
00382     {
00383         return "%C3%8B";
00384     }
00385     if ($char == "%CC")
00386     {
00387         return "%C3%8C";
00388     }
00389     if ($char == "%CD")
00390     {
00391         return "%C3%8D";
00392     }
00393     if ($char == "%CE")
00394     {
00395         return "%C3%8E";
00396     }
00397     if ($char == "%CF")
00398     {
00399         return "%C3%8F";
00400     }
00401     if ($char == "%D0")
00402     {
00403         return "%C3%90";
00404     }
00405     if ($char == "%D1")
00406     {
00407         return "%C3%91";
00408     }
00409     if ($char == "%D2")
00410     {
00411         return "%C3%92";
00412     }
00413     if ($char == "%D3")
00414     {
00415         return "%C3%93";
00416     }
00417     if ($char == "%D4")
00418     {
00419         return "%C3%94";
00420     }
00421     if ($char == "%D5")
00422     {
00423         return "%C3%95";
00424     }
00425     if ($char == "%D6")
00426     {
00427         return "%C3%96";
00428     }
00429     if ($char == "%D7")
00430     {
00431         return "%C3%97";
00432     }
00433     if ($char == "%D8")
00434     {
00435         return "%C3%98";
00436     }
00437     if ($char == "%D9")
00438     {
00439         return "%C3%99";
00440     }
00441     if ($char == "%DA")
00442     {
00443         return "%C3%9A";
00444     }
00445     if ($char == "%DB")
00446     {
00447         return "%C3%9B";
00448     }
00449     if ($char == "%DC")
00450     {
00451         return "%C3%9C";
00452     }
00453     if ($char == "%DD")
00454     {
00455         return "%C3%9D";
00456     }
00457     if ($char == "%DE")
00458     {
00459         return "%C3%9E";
00460     }
00461     if ($char == "%DF")
00462     {
00463         return "%C3%9F";
00464     }
00465     if ($char == "%E0")
00466     {
00467         return "%C3%A0";
00468     }
00469     if ($char == "%E1")
00470     {
00471         return "%C3%A1";
00472     }
00473     if ($char == "%E2")
00474     {
00475         return "%C3%A2";
00476     }
00477     if ($char == "%E3")
00478     {
00479         return "%C3%A3";
00480     }
00481     if ($char == "%E4")
00482     {
00483         return "%C3%A4";
00484     }
00485     if ($char == "%E5")
00486     {
00487         return "%C3%A5";
00488     }
00489     if ($char == "%E6")
00490     {
00491         return "%C3%A6";
00492     }
00493     if ($char == "%E7")
00494     {
00495         return "%C3%A7";
00496     }
00497     if ($char == "%E8")
00498     {
00499         return "%C3%A8";
00500     }
00501     if ($char == "%E9")
00502     {
00503         return "%C3%A9";
00504     }
00505     if ($char == "%EA")
00506     {
00507         return "%C3%AA";
00508     }
00509     if ($char == "%EB")
00510     {
00511         return "%C3%AB";
00512     }
00513     if ($char == "%EC")
00514     {
00515         return "%C3%AC";
00516     }
00517     if ($char == "%ED")
00518     {
00519         return "%C3%AD";
00520     }
00521     if ($char == "%EE")
00522     {
00523         return "%C3%AE";
00524     }
00525     if ($char == "%EF")
00526     {
00527         return "%C3%AF";
00528     }
00529     if ($char == "%F0")
00530     {
00531         return "%C3%B0";
00532     }
00533     if ($char == "%F1")
00534     {
00535         return "%C3%B1";
00536     }
00537     if ($char == "%F2")
00538     {
00539         return "%C3%B2";
00540     }
00541     if ($char == "%F3")
00542     {
00543         return "%C3%B3";
00544     }
00545     if ($char == "%F4")
00546     {
00547         return "%C3%B4";
00548     }
00549     if ($char == "%F5")
00550     {
00551         return "%C3%B5";
00552     }
00553     if ($char == "%F6")
00554     {
00555         return "%C3%B6";
00556     }
00557     if ($char == "%F7")
00558     {
00559         return "%C3%B7";
00560     }
00561     if ($char == "%F8")
00562     {
00563         return "%C3%B8";
00564     }
00565     if ($char == "%F9")
00566     {
00567         return "%C3%B9";
00568     }
00569     if ($char == "%FA")
00570     {
00571         return "%C3%BA";
00572     }
00573     if ($char == "%FB")
00574     {
00575         return "%C3%BB";
00576     }
00577     if ($char == "%FC")
00578     {
00579         return "%C3%BC";
00580     }
00581     if ($char == "%FD")
00582     {
00583         return "%C3%BD";
00584     }
00585     if ($char == "%FE")
00586     {
00587         return "%C3%BE";
00588     }
00589     if ($char == "%FF")
00590     {
00591         return "%C3%BF";
00592     }
00593     return $char;
00594 }
00595 
00596 function decodeURIComponent($string)
00597 {
00598     $result = "";
00599     for ($i = 0; $i < strlen($string); $i++)
00600     {
00601         $decstr = "";
00602         for ($p = 0; $p <= 8; $p++)
00603         {
00604             $decstr .= $string[$i+$p];
00605         }
00606         list($decodedstr, $num) = decodeURIComponentbycharacter($decstr);
00607         $result .= urldecode($decodedstr);
00608         $i += $num ;
00609     }
00610     return $result;
00611 }
00612 
00613 function decodeURIComponentbycharacter($str)
00614 {
00615 
00616     $char = $str;
00617 
00618     if ($char == "%E2%82%AC")
00619     {
00620         return array("%80", 8);
00621     }
00622     if ($char == "%E2%80%9A")
00623     {
00624         return array("%82", 8);
00625     }
00626     if ($char == "%E2%80%9E")
00627     {
00628         return array("%84", 8);
00629     }
00630     if ($char == "%E2%80%A6")
00631     {
00632         return array("%85", 8);
00633     }
00634     if ($char == "%E2%80%A0")
00635     {
00636         return array("%86", 8);
00637     }
00638     if ($char == "%E2%80%A1")
00639     {
00640         return array("%87", 8);
00641     }
00642     if ($char == "%E2%80%B0")
00643     {
00644         return array("%89", 8);
00645     }
00646     if ($char == "%E2%80%B9")
00647     {
00648         return array("%8B", 8);
00649     }
00650     if ($char == "%E2%80%98")
00651     {
00652         return array("%91", 8);
00653     }
00654     if ($char == "%E2%80%99")
00655     {
00656         return array("%92", 8);
00657     }
00658     if ($char == "%E2%80%9C")
00659     {
00660         return array("%93", 8);
00661     }
00662     if ($char == "%E2%80%9D")
00663     {
00664         return array("%94", 8);
00665     }
00666     if ($char == "%E2%80%A2")
00667     {
00668         return array("%95", 8);
00669     }
00670     if ($char == "%E2%80%93")
00671     {
00672         return array("%96", 8);
00673     }
00674     if ($char == "%E2%80%94")
00675     {
00676         return array("%97", 8);
00677     }
00678     if ($char == "%E2%84%A2")
00679     {
00680         return array("%99", 8);
00681     }
00682     if ($char == "%E2%80%BA")
00683     {
00684         return array("%9B", 8);
00685     }
00686 
00687     $char = substr($str, 0, 6);
00688 
00689     if ($char == "%C2%81")
00690     {
00691         return array("%81", 5);
00692     }
00693     if ($char == "%C6%92")
00694     {
00695         return array("%83", 5);
00696     }
00697     if ($char == "%CB%86")
00698     {
00699         return array("%88", 5);
00700     }
00701     if ($char == "%C5%A0")
00702     {
00703         return array("%8A", 5);
00704     }
00705     if ($char == "%C5%92")
00706     {
00707         return array("%8C", 5);
00708     }
00709     if ($char == "%C2%8D")
00710     {
00711         return array("%8D", 5);
00712     }
00713     if ($char == "%C5%BD")
00714     {
00715         return array("%8E", 5);
00716     }
00717     if ($char == "%C2%8F")
00718     {
00719         return array("%8F", 5);
00720     }
00721     if ($char == "%C2%90")
00722     {
00723         return array("%90", 5);
00724     }
00725     if ($char == "%CB%9C")
00726     {
00727         return array("%98", 5);
00728     }
00729     if ($char == "%C5%A1")
00730     {
00731         return array("%9A", 5);
00732     }
00733     if ($char == "%C5%93")
00734     {
00735         return array("%9C", 5);
00736     }
00737     if ($char == "%C2%9D")
00738     {
00739         return array("%9D", 5);
00740     }
00741     if ($char == "%C5%BE")
00742     {
00743         return array("%9E", 5);
00744     }
00745     if ($char == "%C5%B8")
00746     {
00747         return array("%9F", 5);
00748     }
00749     if ($char == "%C2%A0")
00750     {
00751         return array("%A0", 5);
00752     }
00753     if ($char == "%C2%A1")
00754     {
00755         return array("%A1", 5);
00756     }
00757     if ($char == "%C2%A2")
00758     {
00759         return array("%A2", 5);
00760     }
00761     if ($char == "%C2%A3")
00762     {
00763         return array("%A3", 5);
00764     }
00765     if ($char == "%C2%A4")
00766     {
00767         return array("%A4", 5);
00768     }
00769     if ($char == "%C2%A5")
00770     {
00771         return array("%A5", 5);
00772     }
00773     if ($char == "%C2%A6")
00774     {
00775         return array("%A6", 5);
00776     }
00777     if ($char == "%C2%A7")
00778     {
00779         return array("%A7", 5);
00780     }
00781     if ($char == "%C2%A8")
00782     {
00783         return array("%A8", 5);
00784     }
00785     if ($char == "%C2%A9")
00786     {
00787         return array("%A9", 5);
00788     }
00789     if ($char == "%C2%AA")
00790     {
00791         return array("%AA", 5);
00792     }
00793     if ($char == "%C2%AB")
00794     {
00795         return array("%AB", 5);
00796     }
00797     if ($char == "%C2%AC")
00798     {
00799         return array("%AC", 5);
00800     }
00801     if ($char == "%C2%AD")
00802     {
00803         return array("%AD", 5);
00804     }
00805     if ($char == "%C2%AE")
00806     {
00807         return array("%AE", 5);
00808     }
00809     if ($char == "%C2%AF")
00810     {
00811         return array("%AF", 5);
00812     }
00813     if ($char == "%C2%B0")
00814     {
00815         return array("%B0", 5);
00816     }
00817     if ($char == "%C2%B1")
00818     {
00819         return array("%B1", 5);
00820     }
00821     if ($char == "%C2%B2")
00822     {
00823         return array("%B2", 5);
00824     }
00825     if ($char == "%C2%B3")
00826     {
00827         return array("%B3", 5);
00828     }
00829     if ($char == "%C2%B4")
00830     {
00831         return array("%B4", 5);
00832     }
00833     if ($char == "%C2%B5")
00834     {
00835         return array("%B5", 5);
00836     }
00837     if ($char == "%C2%B6")
00838     {
00839         return array("%B6", 5);
00840     }
00841     if ($char == "%C2%B7")
00842     {
00843         return array("%B7", 5);
00844     }
00845     if ($char == "%C2%B8")
00846     {
00847         return array("%B8", 5);
00848     }
00849     if ($char == "%C2%B9")
00850     {
00851         return array("%B9", 5);
00852     }
00853     if ($char == "%C2%BA")
00854     {
00855         return array("%BA", 5);
00856     }
00857     if ($char == "%C2%BB")
00858     {
00859         return array("%BB", 5);
00860     }
00861     if ($char == "%C2%BC")
00862     {
00863         return array("%BC", 5);
00864     }
00865     if ($char == "%C2%BD")
00866     {
00867         return array("%BD", 5);
00868     }
00869     if ($char == "%C2%BE")
00870     {
00871         return array("%BE", 5);
00872     }
00873     if ($char == "%C2%BF")
00874     {
00875         return array("%BF", 5);
00876     }
00877     if ($char == "%C3%80")
00878     {
00879         return array("%C0", 5);
00880     }
00881     if ($char == "%C3%81")
00882     {
00883         return array("%C1", 5);
00884     }
00885     if ($char == "%C3%82")
00886     {
00887         return array("%C2", 5);
00888     }
00889     if ($char == "%C3%83")
00890     {
00891         return array("%C3", 5);
00892     }
00893     if ($char == "%C3%84")
00894     {
00895         return array("%C4", 5);
00896     }
00897     if ($char == "%C3%85")
00898     {
00899         return array("%C5", 5);
00900     }
00901     if ($char == "%C3%86")
00902     {
00903         return array("%C6", 5);
00904     }
00905     if ($char == "%C3%87")
00906     {
00907         return array("%C7", 5);
00908     }
00909     if ($char == "%C3%88")
00910     {
00911         return array("%C8", 5);
00912     }
00913     if ($char == "%C3%89")
00914     {
00915         return array("%C9", 5);
00916     }
00917     if ($char == "%C3%8A")
00918     {
00919         return array("%CA", 5);
00920     }
00921     if ($char == "%C3%8B")
00922     {
00923         return array("%CB", 5);
00924     }
00925     if ($char == "%C3%8C")
00926     {
00927         return array("%CC", 5);
00928     }
00929     if ($char == "%C3%8D")
00930     {
00931         return array("%CD", 5);
00932     }
00933     if ($char == "%C3%8E")
00934     {
00935         return array("%CE", 5);
00936     }
00937     if ($char == "%C3%8F")
00938     {
00939         return array("%CF", 5);
00940     }
00941     if ($char == "%C3%90")
00942     {
00943         return array("%D0", 5);
00944     }
00945     if ($char == "%C3%91")
00946     {
00947         return array("%D1", 5);
00948     }
00949     if ($char == "%C3%92")
00950     {
00951         return array("%D2", 5);
00952     }
00953     if ($char == "%C3%93")
00954     {
00955         return array("%D3", 5);
00956     }
00957     if ($char == "%C3%94")
00958     {
00959         return array("%D4", 5);
00960     }
00961     if ($char == "%C3%95")
00962     {
00963         return array("%D5", 5);
00964     }
00965     if ($char == "%C3%96")
00966     {
00967         return array("%D6", 5);
00968     }
00969     if ($char == "%C3%97")
00970     {
00971         return array("%D7", 5);
00972     }
00973     if ($char == "%C3%98")
00974     {
00975         return array("%D8", 5);
00976     }
00977     if ($char == "%C3%99")
00978     {
00979         return array("%D9", 5);
00980     }
00981     if ($char == "%C3%9A")
00982     {
00983         return array("%DA", 5);
00984     }
00985     if ($char == "%C3%9B")
00986     {
00987         return array("%DB", 5);
00988     }
00989     if ($char == "%C3%9C")
00990     {
00991         return array("%DC", 5);
00992     }
00993     if ($char == "%C3%9D")
00994     {
00995         return array("%DD", 5);
00996     }
00997     if ($char == "%C3%9E")
00998     {
00999         return array("%DE", 5);
01000     }
01001     if ($char == "%C3%9F")
01002     {
01003         return array("%DF", 5);
01004     }
01005     if ($char == "%C3%A0")
01006     {
01007         return array("%E0", 5);
01008     }
01009     if ($char == "%C3%A1")
01010     {
01011         return array("%E1", 5);
01012     }
01013     if ($char == "%C3%A2")
01014     {
01015         return array("%E2", 5);
01016     }
01017     if ($char == "%C3%A3")
01018     {
01019         return array("%E3", 5);
01020     }
01021     if ($char == "%C3%A4")
01022     {
01023         return array("%E4", 5);
01024     }
01025     if ($char == "%C3%A5")
01026     {
01027         return array("%E5", 5);
01028     }
01029     if ($char == "%C3%A6")
01030     {
01031         return array("%E6", 5);
01032     }
01033     if ($char == "%C3%A7")
01034     {
01035         return array("%E7", 5);
01036     }
01037     if ($char == "%C3%A8")
01038     {
01039         return array("%E8", 5);
01040     }
01041     if ($char == "%C3%A9")
01042     {
01043         return array("%E9", 5);
01044     }
01045     if ($char == "%C3%AA")
01046     {
01047         return array("%EA", 5);
01048     }
01049     if ($char == "%C3%AB")
01050     {
01051         return array("%EB", 5);
01052     }
01053     if ($char == "%C3%AC")
01054     {
01055         return array("%EC", 5);
01056     }
01057     if ($char == "%C3%AD")
01058     {
01059         return array("%ED", 5);
01060     }
01061     if ($char == "%C3%AE")
01062     {
01063         return array("%EE", 5);
01064     }
01065     if ($char == "%C3%AF")
01066     {
01067         return array("%EF", 5);
01068     }
01069     if ($char == "%C3%B0")
01070     {
01071         return array("%F0", 5);
01072     }
01073     if ($char == "%C3%B1")
01074     {
01075         return array("%F1", 5);
01076     }
01077     if ($char == "%C3%B2")
01078     {
01079         return array("%F2", 5);
01080     }
01081     if ($char == "%C3%B3")
01082     {
01083         return array("%F3", 5);
01084     }
01085     if ($char == "%C3%B4")
01086     {
01087         return array("%F4", 5);
01088     }
01089     if ($char == "%C3%B5")
01090     {
01091         return array("%F5", 5);
01092     }
01093     if ($char == "%C3%B6")
01094     {
01095         return array("%F6", 5);
01096     }
01097     if ($char == "%C3%B7")
01098     {
01099         return array("%F7", 5);
01100     }
01101     if ($char == "%C3%B8")
01102     {
01103         return array("%F8", 5);
01104     }
01105     if ($char == "%C3%B9")
01106     {
01107         return array("%F9", 5);
01108     }
01109     if ($char == "%C3%BA")
01110     {
01111         return array("%FA", 5);
01112     }
01113     if ($char == "%C3%BB")
01114     {
01115         return array("%FB", 5);
01116     }
01117     if ($char == "%C3%BC")
01118     {
01119         return array("%FC", 5);
01120     }
01121     if ($char == "%C3%BD")
01122     {
01123         return array("%FD", 5);
01124     }
01125     if ($char == "%C3%BE")
01126     {
01127         return array("%FE", 5);
01128     }
01129     if ($char == "%C3%BF")
01130     {
01131         return array("%FF", 5);
01132     }
01133 
01134     $char = substr($str, 0, 3);
01135     if ($char == "%20")
01136     {
01137         return array("+", 2);
01138     }
01139 
01140     $char = substr($str, 0, 1);
01141 
01142     if ($char == "!")
01143     {
01144         return array("%21", 0);
01145     }
01146     if ($char == "\"")
01147     {
01148         return array("%27", 0);
01149     }
01150     if ($char == "(")
01151     {
01152         return array("%28", 0);
01153     }
01154     if ($char == ")")
01155     {
01156         return array("%29", 0);
01157     }
01158     if ($char == "*")
01159     {
01160         return array("%2A", 0);
01161     }
01162     if ($char == "~")
01163     {
01164         return array("%7E", 0);
01165     }
01166 
01167     if ($char == "%")
01168     {
01169         return array(substr($str, 0, 3), 2);
01170     }
01171     else
01172     {
01173         return array($char, 0);
01174     }
01175 }
01176 
01177 function encodeURI($string)
01178 {
01179     $result = "";
01180     for ($i = 0; $i < strlen($string); $i++)
01181     {
01182         $result .= encodeURIbycharacter(urlencode($string[$i]));
01183     }
01184     return $result;
01185 }
01186 
01187 function encodeURIbycharacter($char)
01188 {
01189     if ($char == "+")
01190     {
01191         return "%20";
01192     }
01193     if ($char == "%21")
01194     {
01195         return "!";
01196     }
01197     if ($char == "%23")
01198     {
01199         return "#";
01200     }
01201     if ($char == "%24")
01202     {
01203         return "$";
01204     }
01205     if ($char == "%26")
01206     {
01207         return "&";
01208     }
01209     if ($char == "%27")
01210     {
01211         return "\"";
01212     }
01213     if ($char == "%28")
01214     {
01215         return "(";
01216     }
01217     if ($char == "%29")
01218     {
01219         return ")";
01220     }
01221     if ($char == "%2A")
01222     {
01223         return "*";
01224     }
01225     if ($char == "%2B")
01226     {
01227         return "+";
01228     }
01229     if ($char == "%2C")
01230     {
01231         return ",";
01232     }
01233     if ($char == "%2F")
01234     {
01235         return "/";
01236     }
01237     if ($char == "%3A")
01238     {
01239         return ":";
01240     }
01241     if ($char == "%3B")
01242     {
01243         return ";";
01244     }
01245     if ($char == "%3D")
01246     {
01247         return "=";
01248     }
01249     if ($char == "%3F")
01250     {
01251         return "?";
01252     }
01253     if ($char == "%40")
01254     {
01255         return "@";
01256     }
01257     if ($char == "%7E")
01258     {
01259         return "~";
01260     }
01261     if ($char == "%80")
01262     {
01263         return "%E2%82%AC";
01264     }
01265     if ($char == "%81")
01266     {
01267         return "%C2%81";
01268     }
01269     if ($char == "%82")
01270     {
01271         return "%E2%80%9A";
01272     }
01273     if ($char == "%83")
01274     {
01275         return "%C6%92";
01276     }
01277     if ($char == "%84")
01278     {
01279         return "%E2%80%9E";
01280     }
01281     if ($char == "%85")
01282     {
01283         return "%E2%80%A6";
01284     }
01285     if ($char == "%86")
01286     {
01287         return "%E2%80%A0";
01288     }
01289     if ($char == "%87")
01290     {
01291         return "%E2%80%A1";
01292     }
01293     if ($char == "%88")
01294     {
01295         return "%CB%86";
01296     }
01297     if ($char == "%89")
01298     {
01299         return "%E2%80%B0";
01300     }
01301     if ($char == "%8A")
01302     {
01303         return "%C5%A0";
01304     }
01305     if ($char == "%8B")
01306     {
01307         return "%E2%80%B9";
01308     }
01309     if ($char == "%8C")
01310     {
01311         return "%C5%92";
01312     }
01313     if ($char == "%8D")
01314     {
01315         return "%C2%8D";
01316     }
01317     if ($char == "%8E")
01318     {
01319         return "%C5%BD";
01320     }
01321     if ($char == "%8F")
01322     {
01323         return "%C2%8F";
01324     }
01325     if ($char == "%90")
01326     {
01327         return "%C2%90";
01328     }
01329     if ($char == "%91")
01330     {
01331         return "%E2%80%98";
01332     }
01333     if ($char == "%92")
01334     {
01335         return "%E2%80%99";
01336     }
01337     if ($char == "%93")
01338     {
01339         return "%E2%80%9C";
01340     }
01341     if ($char == "%94")
01342     {
01343         return "%E2%80%9D";
01344     }
01345     if ($char == "%95")
01346     {
01347         return "%E2%80%A2";
01348     }
01349     if ($char == "%96")
01350     {
01351         return "%E2%80%93";
01352     }
01353     if ($char == "%97")
01354     {
01355         return "%E2%80%94";
01356     }
01357     if ($char == "%98")
01358     {
01359         return "%CB%9C";
01360     }
01361     if ($char == "%99")
01362     {
01363         return "%E2%84%A2";
01364     }
01365     if ($char == "%9A")
01366     {
01367         return "%C5%A1";
01368     }
01369     if ($char == "%9B")
01370     {
01371         return "%E2%80%BA";
01372     }
01373     if ($char == "%9C")
01374     {
01375         return "%C5%93";
01376     }
01377     if ($char == "%9D")
01378     {
01379         return "%C2%9D";
01380     }
01381     if ($char == "%9E")
01382     {
01383         return "%C5%BE";
01384     }
01385     if ($char == "%9F")
01386     {
01387         return "%C5%B8";
01388     }
01389     if ($char == "%A0")
01390     {
01391         return "%C2%A0";
01392     }
01393     if ($char == "%A1")
01394     {
01395         return "%C2%A1";
01396     }
01397     if ($char == "%A2")
01398     {
01399         return "%C2%A2";
01400     }
01401     if ($char == "%A3")
01402     {
01403         return "%C2%A3";
01404     }
01405     if ($char == "%A4")
01406     {
01407         return "%C2%A4";
01408     }
01409     if ($char == "%A5")
01410     {
01411         return "%C2%A5";
01412     }
01413     if ($char == "%A6")
01414     {
01415         return "%C2%A6";
01416     }
01417     if ($char == "%A7")
01418     {
01419         return "%C2%A7";
01420     }
01421     if ($char == "%A8")
01422     {
01423         return "%C2%A8";
01424     }
01425     if ($char == "%A9")
01426     {
01427         return "%C2%A9";
01428     }
01429     if ($char == "%AA")
01430     {
01431         return "%C2%AA";
01432     }
01433     if ($char == "%AB")
01434     {
01435         return "%C2%AB";
01436     }
01437     if ($char == "%AC")
01438     {
01439         return "%C2%AC";
01440     }
01441     if ($char == "%AD")
01442     {
01443         return "%C2%AD";
01444     }
01445     if ($char == "%AE")
01446     {
01447         return "%C2%AE";
01448     }
01449     if ($char == "%AF")
01450     {
01451         return "%C2%AF";
01452     }
01453     if ($char == "%B0")
01454     {
01455         return "%C2%B0";
01456     }
01457     if ($char == "%B1")
01458     {
01459         return "%C2%B1";
01460     }
01461     if ($char == "%B2")
01462     {
01463         return "%C2%B2";
01464     }
01465     if ($char == "%B3")
01466     {
01467         return "%C2%B3";
01468     }
01469     if ($char == "%B4")
01470     {
01471         return "%C2%B4";
01472     }
01473     if ($char == "%B5")
01474     {
01475         return "%C2%B5";
01476     }
01477     if ($char == "%B6")
01478     {
01479         return "%C2%B6";
01480     }
01481     if ($char == "%B7")
01482     {
01483         return "%C2%B7";
01484     }
01485     if ($char == "%B8")
01486     {
01487         return "%C2%B8";
01488     }
01489     if ($char == "%B9")
01490     {
01491         return "%C2%B9";
01492     }
01493     if ($char == "%BA")
01494     {
01495         return "%C2%BA";
01496     }
01497     if ($char == "%BB")
01498     {
01499         return "%C2%BB";
01500     }
01501     if ($char == "%BC")
01502     {
01503         return "%C2%BC";
01504     }
01505     if ($char == "%BD")
01506     {
01507         return "%C2%BD";
01508     }
01509     if ($char == "%BE")
01510     {
01511         return "%C2%BE";
01512     }
01513     if ($char == "%BF")
01514     {
01515         return "%C2%BF";
01516     }
01517     if ($char == "%C0")
01518     {
01519         return "%C3%80";
01520     }
01521     if ($char == "%C1")
01522     {
01523         return "%C3%81";
01524     }
01525     if ($char == "%C2")
01526     {
01527         return "%C3%82";
01528     }
01529     if ($char == "%C3")
01530     {
01531         return "%C3%83";
01532     }
01533     if ($char == "%C4")
01534     {
01535         return "%C3%84";
01536     }
01537     if ($char == "%C5")
01538     {
01539         return "%C3%85";
01540     }
01541     if ($char == "%C6")
01542     {
01543         return "%C3%86";
01544     }
01545     if ($char == "%C7")
01546     {
01547         return "%C3%87";
01548     }
01549     if ($char == "%C8")
01550     {
01551         return "%C3%88";
01552     }
01553     if ($char == "%C9")
01554     {
01555         return "%C3%89";
01556     }
01557     if ($char == "%CA")
01558     {
01559         return "%C3%8A";
01560     }
01561     if ($char == "%CB")
01562     {
01563         return "%C3%8B";
01564     }
01565     if ($char == "%CC")
01566     {
01567         return "%C3%8C";
01568     }
01569     if ($char == "%CD")
01570     {
01571         return "%C3%8D";
01572     }
01573     if ($char == "%CE")
01574     {
01575         return "%C3%8E";
01576     }
01577     if ($char == "%CF")
01578     {
01579         return "%C3%8F";
01580     }
01581     if ($char == "%D0")
01582     {
01583         return "%C3%90";
01584     }
01585     if ($char == "%D1")
01586     {
01587         return "%C3%91";
01588     }
01589     if ($char == "%D2")
01590     {
01591         return "%C3%92";
01592     }
01593     if ($char == "%D3")
01594     {
01595         return "%C3%93";
01596     }
01597     if ($char == "%D4")
01598     {
01599         return "%C3%94";
01600     }
01601     if ($char == "%D5")
01602     {
01603         return "%C3%95";
01604     }
01605     if ($char == "%D6")
01606     {
01607         return "%C3%96";
01608     }
01609     if ($char == "%D7")
01610     {
01611         return "%C3%97";
01612     }
01613     if ($char == "%D8")
01614     {
01615         return "%C3%98";
01616     }
01617     if ($char == "%D9")
01618     {
01619         return "%C3%99";
01620     }
01621     if ($char == "%DA")
01622     {
01623         return "%C3%9A";
01624     }
01625     if ($char == "%DB")
01626     {
01627         return "%C3%9B";
01628     }
01629     if ($char == "%DC")
01630     {
01631         return "%C3%9C";
01632     }
01633     if ($char == "%DD")
01634     {
01635         return "%C3%9D";
01636     }
01637     if ($char == "%DE")
01638     {
01639         return "%C3%9E";
01640     }
01641     if ($char == "%DF")
01642     {
01643         return "%C3%9F";
01644     }
01645     if ($char == "%E0")
01646     {
01647         return "%C3%A0";
01648     }
01649     if ($char == "%E1")
01650     {
01651         return "%C3%A1";
01652     }
01653     if ($char == "%E2")
01654     {
01655         return "%C3%A2";
01656     }
01657     if ($char == "%E3")
01658     {
01659         return "%C3%A3";
01660     }
01661     if ($char == "%E4")
01662     {
01663         return "%C3%A4";
01664     }
01665     if ($char == "%E5")
01666     {
01667         return "%C3%A5";
01668     }
01669     if ($char == "%E6")
01670     {
01671         return "%C3%A6";
01672     }
01673     if ($char == "%E7")
01674     {
01675         return "%C3%A7";
01676     }
01677     if ($char == "%E8")
01678     {
01679         return "%C3%A8";
01680     }
01681     if ($char == "%E9")
01682     {
01683         return "%C3%A9";
01684     }
01685     if ($char == "%EA")
01686     {
01687         return "%C3%AA";
01688     }
01689     if ($char == "%EB")
01690     {
01691         return "%C3%AB";
01692     }
01693     if ($char == "%EC")
01694     {
01695         return "%C3%AC";
01696     }
01697     if ($char == "%ED")
01698     {
01699         return "%C3%AD";
01700     }
01701     if ($char == "%EE")
01702     {
01703         return "%C3%AE";
01704     }
01705     if ($char == "%EF")
01706     {
01707         return "%C3%AF";
01708     }
01709     if ($char == "%F0")
01710     {
01711         return "%C3%B0";
01712     }
01713     if ($char == "%F1")
01714     {
01715         return "%C3%B1";
01716     }
01717     if ($char == "%F2")
01718     {
01719         return "%C3%B2";
01720     }
01721     if ($char == "%F3")
01722     {
01723         return "%C3%B3";
01724     }
01725     if ($char == "%F4")
01726     {
01727         return "%C3%B4";
01728     }
01729     if ($char == "%F5")
01730     {
01731         return "%C3%B5";
01732     }
01733     if ($char == "%F6")
01734     {
01735         return "%C3%B6";
01736     }
01737     if ($char == "%F7")
01738     {
01739         return "%C3%B7";
01740     }
01741     if ($char == "%F8")
01742     {
01743         return "%C3%B8";
01744     }
01745     if ($char == "%F9")
01746     {
01747         return "%C3%B9";
01748     }
01749     if ($char == "%FA")
01750     {
01751         return "%C3%BA";
01752     }
01753     if ($char == "%FB")
01754     {
01755         return "%C3%BB";
01756     }
01757     if ($char == "%FC")
01758     {
01759         return "%C3%BC";
01760     }
01761     if ($char == "%FD")
01762     {
01763         return "%C3%BD";
01764     }
01765     if ($char == "%FE")
01766     {
01767         return "%C3%BE";
01768     }
01769     if ($char == "%FF")
01770     {
01771         return "%C3%BF";
01772     }
01773     return $char;
01774 }
01775 
01776 function decodeURI($string)
01777 {
01778     $result = "";
01779     for ($i = 0; $i < strlen($string); $i++)
01780     {
01781         $decstr = "";
01782         for ($p = 0; $p <= 8; $p++)
01783         {
01784             $decstr .= $string[$i+$p];
01785         }
01786         list($decodedstr, $num) = decodeURIbycharacter($decstr);
01787         $result .= urldecode($decodedstr);
01788         $i += $num ;
01789     }
01790     return $result;
01791 }
01792 
01793 function decodeURIbycharacter($str)
01794 {
01795 
01796     $char = $str;
01797 
01798     if ($char == "%E2%82%AC")
01799     {
01800         return array("%80", 8);
01801     }
01802     if ($char == "%E2%80%9A")
01803     {
01804         return array("%82", 8);
01805     }
01806     if ($char == "%E2%80%9E")
01807     {
01808         return array("%84", 8);
01809     }
01810     if ($char == "%E2%80%A6")
01811     {
01812         return array("%85", 8);
01813     }
01814     if ($char == "%E2%80%A0")
01815     {
01816         return array("%86", 8);
01817     }
01818     if ($char == "%E2%80%A1")
01819     {
01820         return array("%87", 8);
01821     }
01822     if ($char == "%E2%80%B0")
01823     {
01824         return array("%89", 8);
01825     }
01826     if ($char == "%E2%80%B9")
01827     {
01828         return array("%8B", 8);
01829     }
01830     if ($char == "%E2%80%98")
01831     {
01832         return array("%91", 8);
01833     }
01834     if ($char == "%E2%80%99")
01835     {
01836         return array("%92", 8);
01837     }
01838     if ($char == "%E2%80%9C")
01839     {
01840         return array("%93", 8);
01841     }
01842     if ($char == "%E2%80%9D")
01843     {
01844         return array("%94", 8);
01845     }
01846     if ($char == "%E2%80%A2")
01847     {
01848         return array("%95", 8);
01849     }
01850     if ($char == "%E2%80%93")
01851     {
01852         return array("%96", 8);
01853     }
01854     if ($char == "%E2%80%94")
01855     {
01856         return array("%97", 8);
01857     }
01858     if ($char == "%E2%84%A2")
01859     {
01860         return array("%99", 8);
01861     }
01862     if ($char == "%E2%80%BA")
01863     {
01864         return array("%9B", 8);
01865     }
01866 
01867     $char = substr($str, 0, 6);
01868 
01869     if ($char == "%C2%81")
01870     {
01871         return array("%81", 5);
01872     }
01873     if ($char == "%C6%92")
01874     {
01875         return array("%83", 5);
01876     }
01877     if ($char == "%CB%86")
01878     {
01879         return array("%88", 5);
01880     }
01881     if ($char == "%C5%A0")
01882     {
01883         return array("%8A", 5);
01884     }
01885     if ($char == "%C5%92")
01886     {
01887         return array("%8C", 5);
01888     }
01889     if ($char == "%C2%8D")
01890     {
01891         return array("%8D", 5);
01892     }
01893     if ($char == "%C5%BD")
01894     {
01895         return array("%8E", 5);
01896     }
01897     if ($char == "%C2%8F")
01898     {
01899         return array("%8F", 5);
01900     }
01901     if ($char == "%C2%90")
01902     {
01903         return array("%90", 5);
01904     }
01905     if ($char == "%CB%9C")
01906     {
01907         return array("%98", 5);
01908     }
01909     if ($char == "%C5%A1")
01910     {
01911         return array("%9A", 5);
01912     }
01913     if ($char == "%C5%93")
01914     {
01915         return array("%9C", 5);
01916     }
01917     if ($char == "%C2%9D")
01918     {
01919         return array("%9D", 5);
01920     }
01921     if ($char == "%C5%BE")
01922     {
01923         return array("%9E", 5);
01924     }
01925     if ($char == "%C5%B8")
01926     {
01927         return array("%9F", 5);
01928     }
01929     if ($char == "%C2%A0")
01930     {
01931         return array("%A0", 5);
01932     }
01933     if ($char == "%C2%A1")
01934     {
01935         return array("%A1", 5);
01936     }
01937     if ($char == "%C2%A2")
01938     {
01939         return array("%A2", 5);
01940     }
01941     if ($char == "%C2%A3")
01942     {
01943         return array("%A3", 5);
01944     }
01945     if ($char == "%C2%A4")
01946     {
01947         return array("%A4", 5);
01948     }
01949     if ($char == "%C2%A5")
01950     {
01951         return array("%A5", 5);
01952     }
01953     if ($char == "%C2%A6")
01954     {
01955         return array("%A6", 5);
01956     }
01957     if ($char == "%C2%A7")
01958     {
01959         return array("%A7", 5);
01960     }
01961     if ($char == "%C2%A8")
01962     {
01963         return array("%A8", 5);
01964     }
01965     if ($char == "%C2%A9")
01966     {
01967         return array("%A9", 5);
01968     }
01969     if ($char == "%C2%AA")
01970     {
01971         return array("%AA", 5);
01972     }
01973     if ($char == "%C2%AB")
01974     {
01975         return array("%AB", 5);
01976     }
01977     if ($char == "%C2%AC")
01978     {
01979         return array("%AC", 5);
01980     }
01981     if ($char == "%C2%AD")
01982     {
01983         return array("%AD", 5);
01984     }
01985     if ($char == "%C2%AE")
01986     {
01987         return array("%AE", 5);
01988     }
01989     if ($char == "%C2%AF")
01990     {
01991         return array("%AF", 5);
01992     }
01993     if ($char == "%C2%B0")
01994     {
01995         return array("%B0", 5);
01996     }
01997     if ($char == "%C2%B1")
01998     {
01999         return array("%B1", 5);
02000     }
02001     if ($char == "%C2%B2")
02002     {
02003         return array("%B2", 5);
02004     }
02005     if ($char == "%C2%B3")
02006     {
02007         return array("%B3", 5);
02008     }
02009     if ($char == "%C2%B4")
02010     {
02011         return array("%B4", 5);
02012     }
02013     if ($char == "%C2%B5")
02014     {
02015         return array("%B5", 5);
02016     }
02017     if ($char == "%C2%B6")
02018     {
02019         return array("%B6", 5);
02020     }
02021     if ($char == "%C2%B7")
02022     {
02023         return array("%B7", 5);
02024     }
02025     if ($char == "%C2%B8")
02026     {
02027         return array("%B8", 5);
02028     }
02029     if ($char == "%C2%B9")
02030     {
02031         return array("%B9", 5);
02032     }
02033     if ($char == "%C2%BA")
02034     {
02035         return array("%BA", 5);
02036     }
02037     if ($char == "%C2%BB")
02038     {
02039         return array("%BB", 5);
02040     }
02041     if ($char == "%C2%BC")
02042     {
02043         return array("%BC", 5);
02044     }
02045     if ($char == "%C2%BD")
02046     {
02047         return array("%BD", 5);
02048     }
02049     if ($char == "%C2%BE")
02050     {
02051         return array("%BE", 5);
02052     }
02053     if ($char == "%C2%BF")
02054     {
02055         return array("%BF", 5);
02056     }
02057     if ($char == "%C3%80")
02058     {
02059         return array("%C0", 5);
02060     }
02061     if ($char == "%C3%81")
02062     {
02063         return array("%C1", 5);
02064     }
02065     if ($char == "%C3%82")
02066     {
02067         return array("%C2", 5);
02068     }
02069     if ($char == "%C3%83")
02070     {
02071         return array("%C3", 5);
02072     }
02073     if ($char == "%C3%84")
02074     {
02075         return array("%C4", 5);
02076     }
02077     if ($char == "%C3%85")
02078     {
02079         return array("%C5", 5);
02080     }
02081     if ($char == "%C3%86")
02082     {
02083         return array("%C6", 5);
02084     }
02085     if ($char == "%C3%87")
02086     {
02087         return array("%C7", 5);
02088     }
02089     if ($char == "%C3%88")
02090     {
02091         return array("%C8", 5);
02092     }
02093     if ($char == "%C3%89")
02094     {
02095         return array("%C9", 5);
02096     }
02097     if ($char == "%C3%8A")
02098     {
02099         return array("%CA", 5);
02100     }
02101     if ($char == "%C3%8B")
02102     {
02103         return array("%CB", 5);
02104     }
02105     if ($char == "%C3%8C")
02106     {
02107         return array("%CC", 5);
02108     }
02109     if ($char == "%C3%8D")
02110     {
02111         return array("%CD", 5);
02112     }
02113     if ($char == "%C3%8E")
02114     {
02115         return array("%CE", 5);
02116     }
02117     if ($char == "%C3%8F")
02118     {
02119         return array("%CF", 5);
02120     }
02121     if ($char == "%C3%90")
02122     {
02123         return array("%D0", 5);
02124     }
02125     if ($char == "%C3%91")
02126     {
02127         return array("%D1", 5);
02128     }
02129     if ($char == "%C3%92")
02130     {
02131         return array("%D2", 5);
02132     }
02133     if ($char == "%C3%93")
02134     {
02135         return array("%D3", 5);
02136     }
02137     if ($char == "%C3%94")
02138     {
02139         return array("%D4", 5);
02140     }
02141     if ($char == "%C3%95")
02142     {
02143         return array("%D5", 5);
02144     }
02145     if ($char == "%C3%96")
02146     {
02147         return array("%D6", 5);
02148     }
02149     if ($char == "%C3%97")
02150     {
02151         return array("%D7", 5);
02152     }
02153     if ($char == "%C3%98")
02154     {
02155         return array("%D8", 5);
02156     }
02157     if ($char == "%C3%99")
02158     {
02159         return array("%D9", 5);
02160     }
02161     if ($char == "%C3%9A")
02162     {
02163         return array("%DA", 5);
02164     }
02165     if ($char == "%C3%9B")
02166     {
02167         return array("%DB", 5);
02168     }
02169     if ($char == "%C3%9C")
02170     {
02171         return array("%DC", 5);
02172     }
02173     if ($char == "%C3%9D")
02174     {
02175         return array("%DD", 5);
02176     }
02177     if ($char == "%C3%9E")
02178     {
02179         return array("%DE", 5);
02180     }
02181     if ($char == "%C3%9F")
02182     {
02183         return array("%DF", 5);
02184     }
02185     if ($char == "%C3%A0")
02186     {
02187         return array("%E0", 5);
02188     }
02189     if ($char == "%C3%A1")
02190     {
02191         return array("%E1", 5);
02192     }
02193     if ($char == "%C3%A2")
02194     {
02195         return array("%E2", 5);
02196     }
02197     if ($char == "%C3%A3")
02198     {
02199         return array("%E3", 5);
02200     }
02201     if ($char == "%C3%A4")
02202     {
02203         return array("%E4", 5);
02204     }
02205     if ($char == "%C3%A5")
02206     {
02207         return array("%E5", 5);
02208     }
02209     if ($char == "%C3%A6")
02210     {
02211         return array("%E6", 5);
02212     }
02213     if ($char == "%C3%A7")
02214     {
02215         return array("%E7", 5);
02216     }
02217     if ($char == "%C3%A8")
02218     {
02219         return array("%E8", 5);
02220     }
02221     if ($char == "%C3%A9")
02222     {
02223         return array("%E9", 5);
02224     }
02225     if ($char == "%C3%AA")
02226     {
02227         return array("%EA", 5);
02228     }
02229     if ($char == "%C3%AB")
02230     {
02231         return array("%EB", 5);
02232     }
02233     if ($char == "%C3%AC")
02234     {
02235         return array("%EC", 5);
02236     }
02237     if ($char == "%C3%AD")
02238     {
02239         return array("%ED", 5);
02240     }
02241     if ($char == "%C3%AE")
02242     {
02243         return array("%EE", 5);
02244     }
02245     if ($char == "%C3%AF")
02246     {
02247         return array("%EF", 5);
02248     }
02249     if ($char == "%C3%B0")
02250     {
02251         return array("%F0", 5);
02252     }
02253     if ($char == "%C3%B1")
02254     {
02255         return array("%F1", 5);
02256     }
02257     if ($char == "%C3%B2")
02258     {
02259         return array("%F2", 5);
02260     }
02261     if ($char == "%C3%B3")
02262     {
02263         return array("%F3", 5);
02264     }
02265     if ($char == "%C3%B4")
02266     {
02267         return array("%F4", 5);
02268     }
02269     if ($char == "%C3%B5")
02270     {
02271         return array("%F5", 5);
02272     }
02273     if ($char == "%C3%B6")
02274     {
02275         return array("%F6", 5);
02276     }
02277     if ($char == "%C3%B7")
02278     {
02279         return array("%F7", 5);
02280     }
02281     if ($char == "%C3%B8")
02282     {
02283         return array("%F8", 5);
02284     }
02285     if ($char == "%C3%B9")
02286     {
02287         return array("%F9", 5);
02288     }
02289     if ($char == "%C3%BA")
02290     {
02291         return array("%FA", 5);
02292     }
02293     if ($char == "%C3%BB")
02294     {
02295         return array("%FB", 5);
02296     }
02297     if ($char == "%C3%BC")
02298     {
02299         return array("%FC", 5);
02300     }
02301     if ($char == "%C3%BD")
02302     {
02303         return array("%FD", 5);
02304     }
02305     if ($char == "%C3%BE")
02306     {
02307         return array("%FE", 5);
02308     }
02309     if ($char == "%C3%BF")
02310     {
02311         return array("%FF", 5);
02312     }
02313 
02314     $char = substr($str, 0, 3);
02315     if ($char == "%20")
02316     {
02317         return array("+", 2);
02318     }
02319 
02320     $char = substr($str, 0, 1);
02321 
02322     if ($char == "!")
02323     {
02324         return array("%21", 0);
02325     }
02326     if ($char == "#")
02327     {
02328         return array("%23", 0);
02329     }
02330     if ($char == "$")
02331     {
02332         return array("%24", 0);
02333     }
02334     if ($char == "&")
02335     {
02336         return array("%26", 0);
02337     }
02338     if ($char == "\"")
02339     {
02340         return array("%27", 0);
02341     }
02342     if ($char == "(")
02343     {
02344         return array("%28", 0);
02345     }
02346     if ($char == ")")
02347     {
02348         return array("%29", 0);
02349     }
02350     if ($char == "*")
02351     {
02352         return array("%2A", 0);
02353     }
02354     if ($char == "+")
02355     {
02356         return array("%2B", 0);
02357     }
02358     if ($char == ",")
02359     {
02360         return array("%2C", 0);
02361     }
02362     if ($char == "/")
02363     {
02364         return array("%2F", 0);
02365     }
02366     if ($char == ":")
02367     {
02368         return array("%3A", 0);
02369     }
02370     if ($char == ";")
02371     {
02372         return array("%3B", 0);
02373     }
02374     if ($char == "=")
02375     {
02376         return array("%3D", 0);
02377     }
02378     if ($char == "?")
02379     {
02380         return array("%3F", 0);
02381     }
02382     if ($char == "@")
02383     {
02384         return array("%40", 0);
02385     }
02386     if ($char == "~")
02387     {
02388         return array("%7E", 0);
02389     }
02390 
02391     if ($char == "%")
02392     {
02393         return array(substr($str, 0, 3), 2);
02394     }
02395     else
02396     {
02397         return array($char, 0);
02398     }
02399 }
02400 
02401 function escape($string)
02402 {
02403     $result = "";
02404     for ($i = 0; $i < strlen($string); $i++)
02405     {
02406         $result .= escapebycharacter(urlencode($string[$i]));
02407     }
02408     return $result;
02409 }
02410 
02411 function escapebycharacter($char)
02412 {
02413     if ($char == '+')
02414     {
02415         return '%20';
02416     }
02417     if ($char == '%2A')
02418     {
02419         return '*';
02420     }
02421     if ($char == '%2B')
02422     {
02423         return '+';
02424     }
02425     if ($char == '%2F')
02426     {
02427         return '/';
02428     }
02429     if ($char == '%40')
02430     {
02431         return '@';
02432     }
02433     if ($char == '%80')
02434     {
02435         return '%u20AC';
02436     }
02437     if ($char == '%82')
02438     {
02439         return '%u201A';
02440     }
02441     if ($char == '%83')
02442     {
02443         return '%u0192';
02444     }
02445     if ($char == '%84')
02446     {
02447         return '%u201E';
02448     }
02449     if ($char == '%85')
02450     {
02451         return '%u2026';
02452     }
02453     if ($char == '%86')
02454     {
02455         return '%u2020';
02456     }
02457     if ($char == '%87')
02458     {
02459         return '%u2021';
02460     }
02461     if ($char == '%88')
02462     {
02463         return '%u02C6';
02464     }
02465     if ($char == '%89')
02466     {
02467         return '%u2030';
02468     }
02469     if ($char == '%8A')
02470     {
02471         return '%u0160';
02472     }
02473     if ($char == '%8B')
02474     {
02475         return '%u2039';
02476     }
02477     if ($char == '%8C')
02478     {
02479         return '%u0152';
02480     }
02481     if ($char == '%8E')
02482     {
02483         return '%u017D';
02484     }
02485     if ($char == '%91')
02486     {
02487         return '%u2018';
02488     }
02489     if ($char == '%92')
02490     {
02491         return '%u2019';
02492     }
02493     if ($char == '%93')
02494     {
02495         return '%u201C';
02496     }
02497     if ($char == '%94')
02498     {
02499         return '%u201D';
02500     }
02501     if ($char == '%95')
02502     {
02503         return '%u2022';
02504     }
02505     if ($char == '%96')
02506     {
02507         return '%u2013';
02508     }
02509     if ($char == '%97')
02510     {
02511         return '%u2014';
02512     }
02513     if ($char == '%98')
02514     {
02515         return '%u02DC';
02516     }
02517     if ($char == '%99')
02518     {
02519         return '%u2122';
02520     }
02521     if ($char == '%9A')
02522     {
02523         return '%u0161';
02524     }
02525     if ($char == '%9B')
02526     {
02527         return '%u203A';
02528     }
02529     if ($char == '%9C')
02530     {
02531         return '%u0153';
02532     }
02533     if ($char == '%9E')
02534     {
02535         return '%u017E';
02536     }
02537     if ($char == '%9F')
02538     {
02539         return '%u0178';
02540     }
02541     return $char;
02542 }
02543 
02544 function unescape($string)
02545 {
02546     $result = "";
02547     for ($i = 0; $i < strlen($string); $i++)
02548     {
02549         $decstr = "";
02550         for ($p = 0; $p <= 5; $p++)
02551         {
02552             $decstr .= $string[$i+$p];
02553         }
02554         list($decodedstr, $num) = unescapebycharacter($decstr);
02555         $result .= urldecode($decodedstr);
02556         $i += $num ;
02557     }
02558     return $result;
02559 }
02560 
02561 function unescapebycharacter($str)
02562 {
02563 
02564     $char = $str;
02565 
02566     if ($char == '%u20AC')
02567     {
02568         return array("%80", 5);
02569     }
02570     if ($char == '%u201A')
02571     {
02572         return array("%82", 5);
02573     }
02574     if ($char == '%u0192')
02575     {
02576         return array("%83", 5);
02577     }
02578     if ($char == '%u201E')
02579     {
02580         return array("%84", 5);
02581     }
02582     if ($char == '%u2026')
02583     {
02584         return array("%85", 5);
02585     }
02586     if ($char == '%u2020')
02587     {
02588         return array("%86", 5);
02589     }
02590     if ($char == '%u2021')
02591     {
02592         return array("%87", 5);
02593     }
02594     if ($char == '%u02C6')
02595     {
02596         return array("%88", 5);
02597     }
02598     if ($char == '%u2030')
02599     {
02600         return array("%89", 5);
02601     }
02602     if ($char == '%u0160')
02603     {
02604         return array("%8A", 5);
02605     }
02606     if ($char == '%u2039')
02607     {
02608         return array("%8B", 5);
02609     }
02610     if ($char == '%u0152')
02611     {
02612         return array("%8C", 5);
02613     }
02614     if ($char == '%u017D')
02615     {
02616         return array("%8E", 5);
02617     }
02618     if ($char == '%u2018')
02619     {
02620         return array("%91", 5);
02621     }
02622     if ($char == '%u2019')
02623     {
02624         return array("%92", 5);
02625     }
02626     if ($char == '%u201C')
02627     {
02628         return array("%93", 5);
02629     }
02630     if ($char == '%u201D')
02631     {
02632         return array("%94", 5);
02633     }
02634     if ($char == '%u2022')
02635     {
02636         return array("%95", 5);
02637     }
02638     if ($char == '%u2013')
02639     {
02640         return array("%96", 5);
02641     }
02642     if ($char == '%u2014')
02643     {
02644         return array("%97", 5);
02645     }
02646     if ($char == '%u02DC')
02647     {
02648         return array("%98", 5);
02649     }
02650     if ($char == '%u2122')
02651     {
02652         return array("%99", 5);
02653     }
02654     if ($char == '%u0161')
02655     {
02656         return array("%9A", 5);
02657     }
02658     if ($char == '%u203A')
02659     {
02660         return array("%9B", 5);
02661     }
02662     if ($char == '%u0153')
02663     {
02664         return array("%9C", 5);
02665     }
02666     if ($char == '%u017E')
02667     {
02668         return array("%9E", 5);
02669     }
02670     if ($char == '%u0178')
02671     {
02672         return array("%9F", 5);
02673     }
02674 
02675     $char = substr($str, 0, 3);
02676     if ($char == "%20")
02677     {
02678         return array("+", 2);
02679     }
02680 
02681     $char = substr($str, 0, 1);
02682 
02683     if ($char == '*')
02684     {
02685         return array("%2A", 0);
02686     }
02687     if ($char == '+')
02688     {
02689         return array("%2B", 0);
02690     }
02691     if ($char == '/')
02692     {
02693         return array("%2F", 0);
02694     }
02695     if ($char == '@')
02696     {
02697         return array("%40", 0);
02698     }
02699 
02700     if ($char == "%")
02701     {
02702         return array(substr($str, 0, 3), 2);
02703     }
02704     else
02705     {
02706         return array($char, 0);
02707     }
02708 }
02709 /*!\brief When data are transfered thanks ajax in a xml document, the xml
02710  * can not contains some character, to escape those characters, we must use this
02711  * function
02712  *\param $p_xml the xml to escape
02713  *\return the xml string with the forbidden char escaped
02714  *\see ajax_card.js ajaxFid
02715  */
02716 function escape_xml($p_xml)
02717 {
02718     $xml=$p_xml;
02719     $xml=str_replace('&','&amp;',$xml);
02720     $xml=str_replace('<','&lt;',$xml);
02721     $xml=str_replace('>','&gt;',$xml);
02722     $xml=str_replace("'",'&apos;',$xml);
02723     $xml=str_replace('"','&quot;',$xml);
02724     return $xml;
02725 }
02726 /**
02727  *load all the javascript in once
02728  */
02729 function load_all_script()
02730 {
02731     // check not called twiced
02732     static  $already_call=0;
02733     if ( $already_call==1)return;
02734     $already_call=1;
02735 
02736     echo JS_INFOBULLE;
02737     echo js_include('prototype.js');
02738     echo js_include('scriptaculous.js');
02739     echo js_include('scripts.js');
02740     echo js_include('effects.js');
02741     echo js_include('dragdrop.js');
02742     echo js_include('controls.js');
02743     echo js_include('slider.js');
02744     echo js_include('acc_ledger.js');
02745     echo js_include('accounting_item.js');
02746     echo js_include('ajax_fiche.js');
02747     echo js_include('anc_script.js');
02748     echo js_include('builder.js');
02749     echo js_include('calc.js');
02750     echo js_include('card.js');
02751     echo js_include('compute_direct.js');
02752     echo js_include('compute.js');
02753     echo js_include('confirm.js');
02754     echo js_include('forecast.js');
02755     echo js_include('gestion.js');
02756     echo js_include('todo_list.js');
02757     echo js_include('anc_script.js');
02758     echo js_include('sorttable.js');
02759 
02760 
02761 }
02762 ?>