CINXE.COM
Lufthansa Cargo Developer Portal - Prior Agreement APIs
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="P3Pv1" href="/w3c/p3p.xml" /> <link rel="stylesheet" href='https://cdn.jsdelivr.net/npm/@boomi/exosphere@3.0.0/dist/styles.css' /> <script type="text/javascript" > var csp = ''; var nonce = '9bd25a66e225d83b5fc1'; //<![CDATA[ var mashery_info = { }; // iframe'd detection, to pop out if in an iframe if (window.location !== parent.window.location && !(/(page|docs|blog)\/preview/.test(window.location.pathname))) { parent.window.location = window.location; } //]]> </script> <title>Lufthansa Cargo Developer Portal - Prior Agreement APIs</title> <link rel="alternate" type="application/rss+xml" href="https://developer.lufthansa-cargo.com/docs/feed-comments/prioragreementapis" /> <link rel="stylesheet" type="text/css" media="screen" href="/files/LufthansaCargo.CSS" /> <script src="/public/Mashery/scripts/themes/blackbeard/placeholders.js" type="text/javascript"></script> <script src="/public/Mashery/scripts/Mashery/source/ForumPreview.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ </script> <link rel="stylesheet" type="text/css" href="/files/font.css"> <script> //]]> </script> <!-- add syntax highlighter --> <script type="text/javascript" > if(window.SyntaxHighlighter != undefined) { // check for syntax highlighter load before using SyntaxHighlighter.all(); } </script> <!-- end syntax highlighter --> <!--[if lt IE 7.]> <link href="/public/Mashery/styles/IE6.css" type="text/css" media="screen" rel="stylesheet" /> <![endif]--> <!--[if IE 7]> <link href="/public/Mashery/styles/IE7.css" type="text/css" media="screen" rel="stylesheet" /> <![endif]--> <!--[if gte IE 8]> <link href="/public/Mashery/styles/IE8.css" type="text/css" media="screen" rel="stylesheet" /> <![endif]--> </head> <body id="page-docs" class="page-docs read en_US"> <!-- PAGE --> <div id="page" class="page read"> <!-- HEADER --> <div id="header" class="header"> <div id="branding" class="branding"> <div id="branding-logo" class="branding-logo"> Lufthansa Cargo Developer Portal </div><!-- /branding-logo --> <div id="branding-tagline"> </div><!-- /branding-tagline --> <!--div id="branding-mashery"></div --><!-- /branding-mashery --> </div><!-- /branding --> <div id="search" class="search"> <form id="search-input" class="search-input" method="get" action="/search"> <div> <input id="search-box" class="search-box" type="text" value="" name="q" /> <input id="search-button" class="search-button" type="submit" value="Search" /> </div> </form> </div> </div> <!-- /HEADER --> <div id="user" class="user"> <div id="user-auth" class="user-auth"> </div><!-- /user-auth --> <div id="user-main" class="user-main"> </div><!-- /user-main --> <div id="user-nav" class="user-nav"> <ul> <script > window. addEventListener('load', (event) => { var lastSignOut = document.getElementById("lastSignOut"); if(lastSignOut) { lastSignOut.addEventListener("click", function () { document.getElementById('mashery-logout-form').submit(); }); } }); </script> <li class="first sign-in"> <a href="https://developer.lufthansa-cargo.com/login/login?r=https%3A%2F%2Fdeveloper.lufthansa-cargo.com%2Fdocs%2Fread%2Fprioragreementapis&h=381f024ec83e23f34e6b2c9e70216386">Sign In</a> </li> <li class="register"> <a href="https://developer.lufthansa-cargo.com/member/register">Register</a> </li> </ul> </div><!-- /user-nav --> <div id="user-menu"> </div> </div><!-- /user --> <div id="info" class="info" style="display: none;"> </div><!-- /info --> <!-- CONTENT --> <div id="content" class="content"> <div id="main" class="main"> <ul class="pun-nav last"><li class="previous"><span class="label">Previous:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/apis/stationinformation">Station Information</a></li><li class="up"><span class="label">Up:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/Home">Lufthansa Cargo API Portfolio and its functionalities</a></li><li class="next"><span class="label">Next:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis/uldstatus">ULD Status</a></li></ul> <h1 class="first">Prior Agreement APIs</h1> <div class="section"> <div class="section-body"> <p>Here you can find our APis which requiere a prior agrrement before useage.</p> <p>Should you wish to use our APIs that require a Prior Agreement or have any questions regarding these APIs, please feel free to contact us. </p> <p>Please use our <a href="/contact">contact formular</a> to get in touch with us.</p> <svg width="960" height="567" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="hidden"><defs><clipPath id="clip0"><rect x="0" y="0" width="960" height="567"/></clipPath><clipPath id="clip1"><rect x="0" y="0" width="209550" height="209550"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGPUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v///+J9Q4YAAACEdFJOUwABAgMEBQYHCQsMDQ4PEBETFBUWFxgZGh4fICEkJykrLS4xNDY4Ozw+P0BCQ0RGSElNT1NUV1haXF1fYGNkbG5ydHV2eH6Cg4SHiouNkJOVmZqbnp+io6Wqq6yur7G3uLm7vL7Bx8jNzs/S19ja3N3f4OLk5+nq6+zt7u/w9ff5+vz9/gJ8sMkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAF3SURBVDhP3ZNVU8NAGEW3UNyd4u7S4tYixV2KuzvF3XN/OCm52wYJwyPDecnZu3dmk50v4t9T7Ef5kZZX1y969lfAoBecbAmlelpAF1c+TKVjRwqgnE7Z/GVrN5qbXkq2PZWtzWN1f9Ko5T+gYMce59GohokIg5Z5BreNJi6MTxyGO42qYtSy4TKVqmLUCnDDRlWRrapIBpJ6LNNUZKv8uYOJZAmVNN2JOdhjRAIf78xUYfO9l1tJ0DKSiTWaSApZly0xjYr3TFKOCZpYcKg9fmMfmt+fEitGaaYrxREywpvohl0Tko85WjrwWEYXI6imacTggJbnLAiiCrGBbBrZV1JoOiKebtV50tOLHpoOB1w0ieX5Pp7qJfRMyaV6GcKib4o0xjFL8xF2iEEqceIikaoj4xqT8l9RCRrCQwH9A1mnOGniZZhr9nFTpPlnYmeBm+m2utpW1zmwamH8lcL5J890AC8rVkbfE25t7x/orPoy3X8XId4AZcVwn4+ipxgAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img2"></image><clipPath id="clip3"><rect x="-0.0625" y="0" width="209550" height="209550"/></clipPath><clipPath id="clip4"><rect x="0" y="1.16415e-10" width="485775" height="466725"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAE+UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///wlNAo8AAABpdFJOUwABAgMEBQgJCgwNEBESFRYXGRobHB0eICEiJScoKSsuNTY4OTo8QEdJUVZaXF1eYGNucHFye3yAgYOFh4+TlpeYmpucrq+wsbS2ury/wMPFyMvN1dfZ2tve3+Dp6+3u7/T19vf4+vv9/jqJSG8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAHdSURBVFhH7dbnUgIxFAXgCNh7712wYu+994YdC1aUvP8LeJMcBqOLk6zOqON+PyC5NzljzK4j8/w5haHecFcVJl+ROXDwwoWz8UKU3Oo4kUFSbBBFdwbjyFFW/Ki7EE4gJGkZDXtNj4hIcX3MPQQoW3f0EXN5AUGVAZuB1iv6GkfT0pIKUSK5jNXGOD9F09IFYoSLEioMiZGrhzZHXeLOLn3cNFChWz60Xaprp1Ls5JG8rFX+GKR5+4Ms9KmunVKxM1rEmH+ph6Z11zKK96qubvQ0+pnygHjm42GsLjpXUTyEwlv16KXTyY7EV2JErs45lEXOXwrkXBdCM51pNqUGMxl0zHU15nwf2zUi6xbncbLNap7Vdnqj59SI9GO7RmRNYJzGotrO18Yw4Pw4gJ7GICv/UgWkxNvQ0hlksWZ6ad5KDKDxjkkWa9Z+snvHZ4sYZbH8BVwA2WlE8QOzLMaqJyNPdLqz+XYUHJhmEX9JRTaGziyymC9QHBR/dNKxyZqgtU7vYZKXpfOyvKz3vKzvz5qtNjNrkGXjv2e1YI2pFuxz4tvAIjMbPuxzVoYbN1GKPT8jeR+f/Z5N/cKsthAZRtawmDj/O2kiipiUKDr2vjNLnlHj/owej+ePYuwVP3idfzoPLAgAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img5"></image><clipPath id="clip6"><rect x="0" y="0" width="466725" height="466725"/></clipPath><clipPath id="clip7"><rect x="0" y="-2.32831e-10" width="495300" height="495300"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGSUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///wEAhukAAACFdFJOUwABAgMEBQYHCAoMDRESFBUXGBocHR4gISIjJScoKissMTQ1Njk6Ozw/QEFCR0hJUVNWWFlaXF1fYGFjZmlqa25wcXJzeHt8gISFh4+Sk5eam5ynrq+wsbK0tba3uLu8vr/AwcLExcjLzc7P0tbX2Nna293e3+Lp6uvt7u/w9Pb3+vv8/f4uKBAUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVRYR+3X61MSURgG8JO4GSaZZhdLDSJTsizByLQSzEuaRlR0t5DKW5mVdEMKDM7/3dlzHnYXbHf2bM0wzuzvA7573n2fWdgLSFx7ji80HB08io1/oYy8LVHVx2kflpzq3eBBXG4Ui86MFpEjJD1YdyBaRkjFPTTk9RQQoXP8NpcQIDz7yV5yDk9An8iAJ43Br+zPNJqSEiJEWGkm5ESO0k00JW0hRrV1mC2Mq5Wji9YrTuLLNHv50cUWLvGLdlB05XSok3Tl4IEHtNDHts/+4gtXRFdOuzqZbSXEkxhimye/8yg6LLpylB02WYxiq/WTiKIhLMhZV0fLcV57l3kQpaUWvi1rVkzP7WNvMyVqSt+gKanztxhnd/SCqJgRNGt4r89YCZAk5h9OoaB0Q8Fwjcfom1jz+L6g1BR7MVsLb8HUJPHnUULZ9DGBHUztXCD+qiMrVC6Q3Vh3PWTlDPveSOpHv9SDwb9g7TRKC52za+yiLX9OqPeRKXtZjNLe4UVpxnbWoabGNpRmbGepTx2UZoxZt/Pf+snp93mD7AB6slmvKZ0gd9mKwQv0ZLMeqXdauPrrcBI92ayW8+caCOkaMPCjJZ1lqY5Ztz68C5DjrzYNlgPoyWbx86g/8bin6MlmPad0jIzxCM0cerJZRyKX9xPSHzG4yE6sUMfP3pJk1rXMYjdpu58xSJ1CTzYrQ2mc3GErBin0ZLMWKb1JJniEZgE92azu2I1m0jAUN7jahF49P3tLeztrO23Htq0s+zBTK5YVsJcmfEwXwZoGMzFkVOi/pqrN67+tlHms1ZrCDhVB8c+lE6UgMjThVRyxrNUwElwul8v1XxHyB7sbOM4Uw6UFAAAAAElFTkSuQmCC" preserveAspectRatio="none" id="img8"></image><clipPath id="clip9"><rect x="0" y="0" width="495300" height="495300"/></clipPath><clipPath id="clip10"><rect x="0" y="0" width="209550" height="200025"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADqUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///35M+l0AAABNdFJOUwABAwULDQ4QERIaHCEjJCUpKisuNzg9PkJETk9QUVVaX2Zpa2xxc4CJioyRnqGjpLa7wsPExsvM0Nrb3+Di4+jp6u3u8PP09fj5/P3+MxAjRAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAPZJREFUOE/t0ttSwjAYBODgERUKoojiAUEBjUdQUEQRBQUh+/6vY5qsbelQbpjxiu8mTXbbv52p+D9xZ41XMxw/KYzr+9xFuYShytxPV7Ctb6hZz4u9mFZ/p6LqPJompTs9/ByIM4xXeWadP/qu94DbjYdTcTgCHBYsacZY7TRwt7wkdgf6I9ZZsII1tfUG3K8kP/R1kzlJ9Ioep6QLjZZ7yxFzkvg88SVu3Ip2wfhPcCjwul3q6KVVYOqR+LoK6FY307lUjKFP4j0T0IVkMGlyqBZVG9Zcz2xF1jpmzbMVPVQZbM37biGLWshctSz/b0+WwUKYEL8Y3HoEfBKAmgAAAABJRU5ErkJggg==" preserveAspectRatio="none" id="img11"></image><clipPath id="clip12"><rect x="0" y="0" width="200025" height="200025"/></clipPath><clipPath id="clip13"><rect x="0" y="0" width="485775" height="485775"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIHUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f////39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///9AhyvQAAACsdFJOUwABAgMEBQYHCQoLDA0ODxESFBUWFxkbHB0eICEiJCcpLC0vMDEyMzk6Oz5BQkRFR0hKTE1OUFFSVVhaW1xeX2BiY2RlaWprbG1ub3N3eHl7foCBgoWGiImMjY6PkJGSl5ianJ6foKGio6Wmp6mrrK2usbO1tre4uru9vr/AwcLDxMXGx8jKy83O0NPU2Nrc3d7f4OHi4+Tl5ufo6evu7/Hy8/T19vf4+vv8/f4oSG25AAAACXBIWXMAAAsTAAALEwEAmpwYAAACuklEQVRYR+2X51cTQRTFNxIhJEHFYEESFbtiDRorgg2xo9h7bwiKBSGEpijYMArGoGKLCjH7R/pmc00dZ3cTP+g5+/t077z3LpxhMhkkAwMDg38FR8W5nncj8vcB79HyfKxlhMl9LyzH+XJxDgr6WdSLkBiRW07U9GE5E4kGhP0PfY+DUS2HqlHWw5Q+ZXboeFl0mwo9V0LKyrU8xevA+ZrNBTbnwjPGH/jKFlss8BopesmmztphfzPNx5Zv58BqwtxBIyOVcAnknGZhh+E0UUsDox6YZI5Q6WcZjAZcP2igBiYF0w2qPU/cRjH11N4EnYb9FVW3wqjipMMemgqTzkrK8mvd/oPUfAyaRw/Vl0Gr8YJ2twSaxzrKOg+tQgm1dkNzyf8my4PQKqylrFpoPvepYzK0mDrqXAHN5xB1LIEWc4E6p0Pz2UQdnA8Fh0bqdEDz8VDHDmgxN6mzEJrPKurYCS3mEnW6oPlUUkcVtBi2s0uh+eynjuXQYjZS525oPk3UITrMcWZQZws0l7EfZfm9CUaM6Q1dXkUwPNz0w65Dq3GSekUHv5nqq6HVKKUvs+EJMOkspKghzZfhXer+40WQ+4Sqe2DUmc2++dfApHKCagErjAZOUX9oAUwy26kkr4fRguUpDXzmXQW7lIdBpw1WC64PNDG6N/VWH3eVJREdesLmDbORvqRfzVz1Vgli6AorHVBmemvwYRkzt25QWQHtesIm3sFU0Ft/ueHBJ7gYPh1/S8m0IYCxOI8Wt0HpDJMs255hTiHSWm6SrMpTR6FNVxgd233NQXYMwv0N1cXKirU9mkR49b+G8yYVO8zQhC0e1prV05phY6+zKH8hrBNRstyIpcxJCJuFpcyxdyFKrsBKFsTCtD6eRBR0K1H92l+bAgrYte+fCZct87e4df8PYmBg8B8iSb8AC8tkwhhdmFIAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img14"></image><clipPath id="clip15"><rect x="0" y="-0.25" width="485775" height="485775"/></clipPath><clipPath id="clip16"><rect x="0" y="2.32831e-10" width="352425" height="352425"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFWUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///8PJPLcAAABxdFJOUwABAgMEBQcICgsMDQ4PEBESExYaHSAjJCUmKSssLjA0Nzo9Pj9CREdOT1BRVFhaW1xeX2NmamtscXN4gIGEh4mKj5Kam6GkqKuwsbK2t7i+wMLDxcbKy8zR2Nrb4OHj5ujq7O7v8PHz9PX29/n6/P3+5kiRMAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAV1JREFUOE/lkldTwkAURm8CWLCjUu2KggUbqNhFsKOiiAXFXlAMuf//xd3sdQZhw6Mzjucl9/vumexsJvB7tLgaaarC2LmOxZSfkhnraKAvUJYTEtYb6tXep2QN67k7qqeokuFmziMWhmEOiw3USRhE3Go9mYGghuiiToKXaTYL9OXZJZqpk6DmEA/qnffs7AxVUiJMSF/xa4yKwrKyV8muL8EVxpqwAJqPqSnlxhdh52I2RBJYoHZHrH6Qn1W9A26FJADPhqrGaFdCxgGBKVI4HtyugUWdtt8k7RDWoqRwPIhHTTD9SXtBwqYsIZZpeNEOI69CMFhVrJvsUa7htRd67/jA0eahbp8PFRo+9INT/BX4MQ5taWOq1PA9CI4zPjwNQeelUck01MJgTyLmuqDnliqZhrgMtthhB/hfKJtoGLeyPFGgZKrh6WQgXvKhzbQy/opmD5jiJOXfAPAFvqfnXH2l9ucAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img17"></image><clipPath id="clip18"><rect x="-0.5" y="-0.125" width="352425" height="352425"/></clipPath><clipPath id="clip19"><rect x="-0.5" y="-0.5" width="276225" height="285750"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADVUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f////39/f39/f39/f////7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///1JA1aEAAABGdFJOUwABBAUGDQ4PEBITGBkaGyAjKSotMzs8QEFCREdLTFFSVV5oaWxtb3R2f4qVoKGlqaqrs7bAwsPFxs3O1NbX2drc3fT8/f566DDJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABEklEQVQ4T83TyVbCUBAE0CeDCE4IioqKqKhxABWIigMggfr/T7I71GGRpN9W7+Z1V9eBBQf3PxTr9SJH2+kwAqLhGddshS4wabUmQLfAKEsPwIFzDXl6jDK05Yw952r6thmmfei5X6n09R0xTNnRK7BYLJ9txklH8XnlkHFSk3dqMk6q8k5VxklrPyzEpkzTOmzEOgzTcq+siDDHMEP5nSW8lRllygczLc2CPAPLSGvmL7ASai3kYhtobcDF9qK1Jy62R2mNd7nYHqQWcPa4l1p0zMV2J7Vn3x9h6VZq15w9rvRLa1xsF8D8krPHuXzaDWePE6nN97nY9K+MBhfb+ifwVeLisfk93uLoVdrg8Lec+wUtTz7JaeVNIAAAAABJRU5ErkJggg==" preserveAspectRatio="none" id="img20"></image><clipPath id="clip21"><rect x="0" y="0" width="266700" height="266700"/></clipPath><clipPath id="clip22"><rect x="0" y="0" width="352425" height="352425"/></clipPath><clipPath id="clip23"><rect x="0" y="-0.25" width="352425" height="352425"/></clipPath><clipPath id="clip24"><rect x="0" y="0" width="276225" height="276225"/></clipPath><clipPath id="clip25"><rect x="-0.5" y="0.5" width="276225" height="276225"/></clipPath><clipPath id="clip26"><rect x="0" y="0" width="371475" height="371475"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFlUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///7ywW6oAAAB2dFJOUwABAgMEBQYICQsMDQ4PExQXGRodHh8gISQlJicoKSorMzg5PD9AQUNJTlBUVVpbXmhpbHFyc3h8f4WGh4qLjJGUl5udpaipq62ur7Cys7W2t7i5usLGyMnKy8/R0tbX2Nna293e4ePo6u3v8vT19vf4+fr8/f5GyS1GAAAACXBIWXMAAAsTAAALEwEAmpwYAAACjklEQVRYR+2X6V8SURSGj2gWSWmWFEKr0iq00SJNi5UVBpFSkEVhhSVtZMr8/c3yAndm7oY/P9U8XzjznvcMw8zh3jMUEhLyXxLPGIVao9moPTeyR6HtiGS+YbKs3TmOzKCkVzo4R59O5Syyg5Aoo9zPy2k4dInkfqE0SPtGBC4tYkXU8SkdgE+DyTqKRNQn4VRy6CNKxHzSPFlMdVU2da2fGZHfqy6lIfhl5GBWkYNfwnQbXhVtdZ+JWhR8xadFGRVC0jAKeDTGfFcaNSIq8PFZ3kMjDxGbZgU1AlLBvzPD2zHbc6vr6SSdGhF52Liso0Evb0LIu8cC1uDi8e0kTDQHpYFjLnGYeGz2Vq69ryCZcSg8svBw6GThocgTSKaZgcTDgIfDTViI7kKxMCDxWILHZePCOiLTXICD6BoUmwI0HjV4HL6fosPvEZeG4aCLW5BsqhB5sNvO73OWcLDqxKtRN090+qcjANmDbMJjsXXJUaLLVtyccGKLYxtuFnyGzIO5riuQRh+brV5/j/tWXNl19e/XIhSrBe7NIKJ9r5HtIrtf/ee4fRUSw3AByR6y58j2121ofe4j00fWX56+f+DbUjmLt6zvvf/HxVHIDnPbkBmmkOPinWsq+yFbzHD2Aek64V+/3oxDp1QLEss8knySvnX1wxFXn2C6uIdiXQ2s919O2Gp0FYceVpwKMYF9qHWGaKSEAy+zqBES2B9/nKcFhF6U+yMlAs/rz1MEXtoJVEjYxXlCd84p6sw5mvNXDG4FuzgXWid7hxIR+vOqco4uav5Al6Hrkvk+p3XbGRIvUOqnPOh7h80s931INcCJSM773tPyKWR2xFTGeFa13h+rS0ZWNtWEhIT8qxD9BZs04j0ithw6AAAAAElFTkSuQmCC" preserveAspectRatio="none" id="img27"></image><clipPath id="clip28"><rect x="0" y="-0.25" width="371475" height="371475"/></clipPath><clipPath id="clip29"><rect x="0" y="0" width="466725" height="466725"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF9UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///4+2SdAAAAB+dFJOUwABAgMGCQoLDA0OEBQVFhcYGRscHR8gIiMkJSYnKissOTw+P0JERUZKS0xNTlJYWltgYWprcHR1eH1+f4CBhIWJiouMjY6Wl5mcnaipq6yur7CxsrO0tbe4ubq7wsPExcbIydDU1dbX2Nne4OHk5ufo6ezt7u/y9vf4+/z9/nVuMHUAAAAJcEhZcwAACxMAAAsTAQCanBgAAAMQSURBVFhH7ZfpV9NAFMXTgsji0spmZQdZFFm1CoVSUFERECoCUhShrEWWokhZyvzt3kmv9hQmmeTwtb8PPffNe/OSTiYvb4w8efLoCZRQ3BTP48/pV9Q3pe5SiP1CGq6p7H09E0/sJtZmRrsrDGNKCNFPlztqIzuYm2Uj/ORCiE0P3S5oXsI/ukL6HD+dDHBMYD4zG5wd/Dw8o5Z8Y4hDPMGUOS29Emr1yf/k8bcPrabNMSEaM0HOKI2ac5Khcg5kqHhnDotZ2k7wrcsZJwNFtEn9xKmZSvwu44geX0JOiGEL5DJpJhKJF8Uc0FMi7+oy7KWZpVGOLz+97rDEI9fqoo9WDvHURAOlM4Ly6spURsNdCocE5GYYpmHDvemHVNYsIFVMvySdR2KO0pIWpDq59gSvUXyMuCYaViwhZoDajgHELVJbUIvXOXlliyqRN3ZZQ0NNBJcLUdvzFpEj1GpQr9K576AVDci1Ta2kCgEr1Dq2EFtJraIX/kFqHeOI7aFWMQZ/G7WOLsSOUauYhd9PraMasXaFLI6C7PTLUIDSH6dWgcd4SKkniVJGqWJXiD1KPXtC7FKqQEFNUuo5FGKHUgXW67yAWocHn7k1ahXyOVZT6/AjdoZahdxfXdQ62hBrt7964B+n1hFCrN2+r4R/i1rHD8TavY/GNgLqqe0pR0NgWyeMEeR6Q22P/IsRajU1qKvHTj7LRdj1mrpqLOJyTuv9V2ormhDzR39jFSeIa6ZhyZw4ekZpjXcZqeZpWFM9fZ/KhjBSpQI0HHJH3Yr0yUY2SMMZ9R9SymLXh2ZaRF10096OmLz69dbUG5bj66U09dx+zs5+kgP/qYjJ4YSPpp6yX2YicfrxyoLdGpCbQaw7T5UpZOB97sv7IITdDqKuzmqyNZWkV4fa/Zn+vnVwJdPfp4IuDzHfzWkZcO44yJ47FlzuK/R9mHX+75yR5XKphQEu8Gyime4Y3mCODDuRWrrd0Y+5Uyh53aOf1nB+jEfHeqvock3hPla+jsZNeZn+0urygVlS8ogiT548lhjGX612EY/00qNjAAAAAElFTkSuQmCC" preserveAspectRatio="none" id="img30"></image><clipPath id="clip31"><rect x="0" y="0" width="466725" height="466725"/></clipPath><clipPath id="clip32"><rect x="0" y="0" width="228600" height="228600"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADtUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///3cxBeAAAABOdFJOUwABAgMEBgkODxIeICIlKCorLi8wMTI5PElKS0xNTlJTVFVaXWVmdnt+f4KFhoeIiYqLl5iaoaOkpaaor73HydHS4Ovs7e7x8vP09vj6+yNL+HYAAAAJcEhZcwAACxMAAAsTAQCanBgAAAEISURBVDhP7ZJZTwIxFIWLoAIqKDIoqCDuK+CGijsz4gLe//9z7O09GJspJbzzPUyac75Mk+aoKZOwXsLBS7nf83iZw+fe12srW+kTXSOLsxGS4Vtb90mEcU7EYjyWUqeQiIpI3JzBog6CEZxD+0whiJNK6M/QW5TMZjPQVueKvYZoS1JYZD+iQLWJjNdkazAnjcUlUVSsDuC1tPYohUXyXRf/vAuiijQWC3wNhau1P+9GCptlo8Ez/3E+R0Y0CgvbP0fIXLzA6xbySJzsQ6PuChInW7D8Xlnva8ioNaZzdV7hccTS2x6/h4P0E9d6hbNruzvBDNIYd2y1fVs1zB883NZwnjIWpX4BfF5BahABsAAAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img33"></image><clipPath id="clip34"><rect x="-0.5" y="0" width="228600" height="228600"/></clipPath><clipPath id="clip35"><rect x="0" y="0" width="485775" height="485775"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD8UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f////7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////9BSK8AAABTdFJOUwABAgMEBgcICw4PEBEZGhscICEmKjAxOzxAQ0ROUFFSV1laYGZoaXJ0f4CChI2OkZKYmZ2en6anqqu3vL2/wM7P0NLh4ubn6ert7u/x9vf5/P3+QoI1DgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAWdJREFUWEft1dlSwjAUBuBDwYriLmhVEFRcqLjvaAUBFQUFzfu/i2ly2kKlmrRXSr6bpvnP+WcYhgEURVGUkZRvEVGtPO4EEa8i5Bl3guCYGNwJQifaloi2UJeFx59Z/6HLMIczeCzVlTij5+/OEzyW6orH9tnyoHIszmOprtMF2O6xfU9vB+ZPeCzVZT0tQe6NVTje1yHz6MT0nZ8C0Ql3uLMGyy+shHs1YLXjxVJdpLsJ6QarsTXTsNHtj6W6yOcezNbtHqo+B7sf9Bm2i5BDLcUP9yntgB3Cd5ErXb+mj5vxsUt+EaGL3E1qR+RYm7jF9yhd5GEGpmC6hm/RukijsFjwvs5oXYNUV7/B4WHCdP3ib3fVVkTYvwPcCUInxOGOX2aLwylX5cJTwTsX7mSww1HC2C+HuS2Hd34lzB1FvPdrlvEv1jTLTbzzK2KHI1nFQF41iR0uPYufXlZWxwZFURRlJAB8AfqcSW55XfzJAAAAAElFTkSuQmCC" preserveAspectRatio="none" id="img36"></image><clipPath id="clip37"><rect x="0" y="-0.25" width="485775" height="485775"/></clipPath><clipPath id="clip38"><rect x="0" y="-4.65661e-10" width="428625" height="428625"/></clipPath><image width="75" height="75" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGGUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f////39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///yUfQdsAAACBdFJOUwABAgMEBQYHCAkKCwwREhYXGBkcHR4hJigrLC8wMTM0Ozw9PkVHUVJTVFVWV1haW1xdXmFiZ2hpamxtbnFzdHZ3eXp7fH1/gISFh4uMjZGTlJWZm52foKGjpKe0tbi6u7y9v8DDxMXGys7P0NHV3+Lj5uvt7vDx9PX3+Pn6+/z9/rEZF30AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJpSURBVFhH7dTrUxJRGAbwgygqZaSoWGpFqWEXCctb2AUjDcsLKqmJoJiWVpaWd8Q9/3nn8uwCC7vDjB+aZs7vi+d533ffOePqEkVRFEW5tBvv02vTtxHKuzW9lvpwE8Ga412OMlq8GoVS1bMaH7mIOVCwMs7HuBkUCLkSjH+KP7mKRMgMJug4ChZas5ijWidK/fsi7/cjd4pbcdlWlMobwxgzJStRRErfysIUIhORFQvLmGJWRaHbuAXVukVlFZFZFgUri5hikqKwjcRti0oSiVkUBSujmGJiPPsQJB8vxRCYUZ4tNR5jjJ6LBwNIUoCXfOdI9LiRZ2uDmKNREYNIUlDUjLcxKKKNgSM+dvpapnviId1dWXx1ysPRgEx2POGFxEsvQt2BWCId1KHqfZFYCF9HqFzBb1q+jUtw72ARpTtu1CrhejifzhjWE6F6VvRsYtWWh6X60Md19Jn0/AOXeLJE1y6eMuzdZ2Xn060szX555mTnnj10DLtd4lmTkPjYFNPColVzrUb8fJ7/hzLkQqJVpOMMzbyTZLSP30bn7IsmT9DLO+tAOy+FluHwTQNahRrGDtE3pNAyNJuvv9lMXD1zG18LbcwFXMT7GRM6Tf9j1PWioVupJY9+4lzo12NSu4Kzrhc7dEOowze3w/gUm8w63N9xhCHs0I2gLuXaySSOpSZJe/ErH8EOXfGuJeIv8/pB85MlHCX7XXdIBqdyMsSPk2S763dVi/W12MVaqv7gKNjuypi+gWbB4mubdzX5C7SRCMbKi5A2TApN2GFhAk+VN4Gpyqhd/27X8A87w5hSFEVR/hOE/AWidmM1w6XrVwAAAABJRU5ErkJggg==" preserveAspectRatio="none" id="img39"></image><clipPath id="clip40"><rect x="0.5" y="0" width="428625" height="428625"/></clipPath><clipPath id="clip41"><rect x="0" y="0" width="190500" height="190500"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADSUExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f39/f////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///02GYpgAAABFdFJOUwABBQgJERIUFhcYJicoKSsxQEFKUlNVVl5oaW5veXp7fX5/kZKTl5qbqaqrrrS1v8bHy8zS09TV1tfZ29zj7u/09fb4/tBWEUkAAAAJcEhZcwAACxMAAAsTAQCanBgAAAE4SURBVDhP3dP5VoJAHIbhETXFzAULbbFwwUItlzaVLES/+7+lRD6JGbEL8PnrZc7vMAznjDhd2VuNlaxgmGZVFwM0uJBAb8+x89nHW4qLKs1aAa7T6ThuMFrjskKfYG1fhH3pAaMwFfoC03N2+gf+U5kPEm2C5wxbiOZDjqWwMP2bIuOGEdFX6/2Okazv5Zl7bdismB5arL05eMa4CmYsKsBlSZYbeVcDDksyhMEKmeiwJF2YrFAdXZako4wZGLIkjrJpAUuWxFWOIGaosGJK6g8RLfRYMfbB79U9P8uMFNeezoxcyx+7lXmFxVTk7pus7dQLxonXpvzo4zvNh+IUi4Mtd0aAdxVmyV5jnDwlasFF+eKVWVnHLmrqHf2PTTC7mbWPvCrQwEDkq2bd+GdmS7s7Y50cIX4Boa8l3AoTgbEAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img42"></image><clipPath id="clip43"><rect x="0" y="-0.25" width="190500" height="190500"/></clipPath><clipPath id="clip44"><rect x="0" y="0" width="95250" height="95250"/></clipPath><clipPath id="clip45"><rect x="0" y="-0.25" width="95250" height="95250"/></clipPath><clipPath id="clip46"><rect x="0" y="0" width="123825" height="123825"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAC0UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f////39/f39/f39/f7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////l/Ah8AAAA7dFJOUwABAgMFBgcICxETFhcYHyI0NUBBQ01VXGBpbHF6fn+BhoiOm6arrsDDx8jV1tfY2ubo8vT19vj5+/z+yDLBhQAAAAlwSFlzAAALEwAACxMBAJqcGAAAASlJREFUOE/lk9tWgzAQRVNFq7axrQj1RrxUrSC9WdQa/v+/nEwOWAgs+6z7IczMOSshk0T8X6Qfhr5E0oJUs5yZqXanF2XWZMgiD+UaMoEDJI0TygXkkkWD76A2lyFx140gVYgglsitvzc83Ggasz7kAmXVgqc9Mf6kr4JcgH6Bly6VrihIrVogrQzmJ1Q6XVKkq6v6Vn+//aBxNaDK8StXfKuDkGubQJy/5esRFQ6nXMlDqwO26QuKhsuAxs4jm+o2XnQzNuGRGe7ZQ1QXtVvQ10gvOSV0DxWAhtx1TBJ82cxpSNneyb4QozUSt73lYT13ByuEDYf1c/TTOQLCOXrhxZC2iBsu8G7Xkny1+eKWV7PbkyH6KjW3MdepcvZYpXdGz/kXz99FiG8x5F9EK5APmAAAAABJRU5ErkJggg==" preserveAspectRatio="none" id="img47"></image><clipPath id="clip48"><rect x="0" y="0" width="123825" height="123825"/></clipPath><clipPath id="clip49"><rect x="0" y="0" width="276225" height="276225"/></clipPath><clipPath id="clip50"><rect x="-0.0625" y="0" width="276225" height="276225"/></clipPath><clipPath id="clip51"><rect x="0" y="-1.16415e-10" width="190500" height="190500"/></clipPath><image width="38" height="38" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAMAAACf4xmcAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD5UExURQAAAP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f39/f39/f39/f39/f39/f////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v////7+/v7+/v7+/v///4xdG6UAAABSdFJOUwABAgMFBwgMDRARFBUWHB0eIycsLi81ODk6PT5HS0xOUFFcXWBjZGVmZ3BxdHl6e3yIj5ednqepqqytrrKzvr/Ex8jKy8zN0drf4OHk7PDz/f7p2wLHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABOklEQVQ4T9WS2VbCMBRFgyBgFRRQcEBxAAUFZFBAAS0o89j8/8fYe3Nc0hJ9lv2QnJx9u1YnsUF4T/OVSv7Mi6Me3/1UMtMHHyoN+59qiOgdoFwjPOYBy+JtEkbtwtthLft9tXf0N5hTVhaLCDkIB54hbDSKMPRArXIEORBigHgItUrG7nsxw9gWwm8YMXroDNQqJbp+llKH1IxOJXVwUCAhrUfKRfVOCiyc3LCRZcplla9ZOIkoFRfptIirHIFywF9qvFOXsm5MKH9AOLkiZY5oHZm0XkK4eCX3wwtqN8EuBphuEPUagRpGbGoBlDqSb0uaWb4nUWjxCxE6z2YvQhx/pVFN8E+2lag2uNDTlnJuNpvmXMo2Kh322DcbPLZ4Pjl+Wvw91ure8ZcM3nZaXOjZw26zi/2/I8QXvQlqkOePceUAAAAASUVORK5CYII=" preserveAspectRatio="none" id="img52"></image><clipPath id="clip53"><rect x="-0.5" y="0" width="190500" height="190500"/></clipPath></defs><g clip-path="url(#clip0)"><rect x="0" y="0" width="960" height="567" fill="#FFFFFF"/><path d="M122 124 122 214.5 85.5 251 49 214.5 49 124 85.5 160.5Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M123 36 123 125 86 162 49 125 49 36 86 73Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><g clip-path="url(#clip1)" transform="matrix(0.000104987 0 0 0.000104987 72 92)"><g clip-path="url(#clip3)"><use width="100%" height="100%" xlink:href="#img2" transform="matrix(5514.47 0 0 5514.47 -0.0625 0)"></use></g></g><g clip-path="url(#clip4)" transform="matrix(0.000104987 0 0 0.000104987 62 81)"><g clip-path="url(#clip6)" transform="matrix(1.04082 0 0 1 0 -0.0625)"><use width="100%" height="100%" xlink:href="#img5" transform="scale(6223 6223)"></use></g></g><g clip-path="url(#clip7)" transform="matrix(0.000104987 0 0 0.000104987 59 164)"><g clip-path="url(#clip9)"><use width="100%" height="100%" xlink:href="#img8" transform="scale(6604 6604)"></use></g></g><path d="M122 210 122 299.5 85.5 336 49.0001 299.5 49.0001 210 85.5 246.5Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M123 296 123 385.5 86.5 422 50.0001 385.5 50.0001 296 86.5 332.5Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M123 379 123 469.5 86.5 506 50 469.5 50 379 86.5 415.5Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><g clip-path="url(#clip10)" transform="matrix(0.000104987 0 0 0.000104987 72 263)"><g clip-path="url(#clip12)" transform="matrix(1.04762 0 0 1 -0.0625 0)"><use width="100%" height="100%" xlink:href="#img11" transform="scale(5263.82 5263.82)"></use></g></g><g clip-path="url(#clip13)" transform="matrix(0.000104987 0 0 0.000104987 61 250)"><g clip-path="url(#clip15)"><use width="100%" height="100%" xlink:href="#img14" transform="matrix(6477 0 0 6477 0 -0.25)"></use></g></g><path d="M588 124 588 214 551 251 514 214 514 124 551 161Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M588 35.9999 588 125.5 551.5 162 515 125.5 515 35.9999 551.5 72.5Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M588 210 588 299 551 336 514 299 514 210 551 247Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M588 296 588 385 551 422 514 385 514 296 551 333Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><path d="M588 379 588 469 551 506 514 469 514 379 551 416Z" stroke="#FFFFFF" stroke-width="4" stroke-miterlimit="8" fill="#44546A" fill-rule="evenodd"/><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 97)">Register for an Account</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 177)">Select the Partner APIs you are interested in</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.941 256)">Our responsible business department will</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.941 271)">review your request</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 333)">Our responsible business department</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 348)">will contact you to clarify any questions</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 362)">open questions.</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(146.48 437)">Approval is given</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 61)">Provision of the API key initially for our test</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 76)">environment. In exceptional cases directly for our</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 90)">production environment. The API key can be</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 104)">retrieved from the Developer Portal. The login is</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 119)">valid for both environments after your registration.</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 163)">You will be informed once the API key for our test</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 178)">environment is available by email.</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 192)">Begin of the Staging phase.</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 268)">Staging process</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 343)">At the end of the staging phase acceptance by the</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 358)">responsible department</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 429)">Provision of the API key for our production</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 444)">environment. You will be informed by email once</text><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="12" transform="translate(607.587 458)">the key is available.</text><g clip-path="url(#clip16)" transform="matrix(0.000104987 0 0 0.000104987 535 162)"><g clip-path="url(#clip18)"><use width="100%" height="100%" xlink:href="#img17" transform="matrix(9274.34 0 0 9274.34 -0.5 -0.125)"></use></g></g><g clip-path="url(#clip19)" transform="matrix(6.42859e-21 0.000104987 -0.000104987 6.42859e-21 564 186)"><g clip-path="url(#clip21)" transform="matrix(1 -8.19315e-26 -1.1865e-24 1.03571 -0.0639801 0.0813599)"><use width="100%" height="100%" xlink:href="#img20" transform="scale(7018.42 7018.42)"></use></g></g><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="9" transform="translate(543.904 192)">Test</text><g clip-path="url(#clip22)" transform="matrix(0.000104987 0 0 0.000104987 536 421)"><g clip-path="url(#clip23)"><use width="100%" height="100%" xlink:href="#img17" transform="matrix(9274.34 0 0 9274.34 0 -0.25)"></use></g></g><g clip-path="url(#clip24)" transform="matrix(6.42859e-21 0.000104987 -0.000104987 6.42859e-21 565 445)"><g clip-path="url(#clip25)"><use width="100%" height="100%" xlink:href="#img20" transform="matrix(7269.08 8.32737e-21 -8.32737e-21 7269.08 -0.5 0.5)"></use></g></g><text fill="#44546A" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="9" transform="translate(543.491 451)">Prod</text><g clip-path="url(#clip26)" transform="matrix(0.000104987 0 0 0.000104987 68 426)"><g clip-path="url(#clip28)"><use width="100%" height="100%" xlink:href="#img27" transform="matrix(4953 0 0 4953 0 -0.25)"></use></g></g><g clip-path="url(#clip29)" transform="matrix(0.000104987 0 0 0.000104987 527 251)"><g clip-path="url(#clip31)"><use width="100%" height="100%" xlink:href="#img30" transform="scale(6223 6223)"></use></g></g><g clip-path="url(#clip32)" transform="matrix(0.000104987 0 0 0.000104987 540 263)"><g clip-path="url(#clip34)"><use width="100%" height="100%" xlink:href="#img33" transform="matrix(6015.79 0 0 6015.79 -0.5 0)"></use></g></g><g clip-path="url(#clip35)" transform="matrix(0.000104987 0 0 0.000104987 61 330)"><g clip-path="url(#clip37)"><use width="100%" height="100%" xlink:href="#img36" transform="matrix(6477 0 0 6477 0 -0.25)"></use></g></g><g clip-path="url(#clip38)" transform="matrix(-0.000104987 0 0 0.000104987 575 343)"><g clip-path="url(#clip40)"><use width="100%" height="100%" xlink:href="#img39" transform="matrix(5715 0 0 5715 0.5 0)"></use></g></g><g clip-path="url(#clip41)" transform="matrix(0.000104987 0 0 0.000104987 557 335)"><g clip-path="url(#clip43)"><use width="100%" height="100%" xlink:href="#img42" transform="matrix(5013.16 0 0 5013.16 0 -0.25)"></use></g></g><g clip-path="url(#clip44)" transform="matrix(0.000104987 0 0 0.000104987 562 340)"><g clip-path="url(#clip45)"><use width="100%" height="100%" xlink:href="#img33" transform="matrix(2506.58 0 0 2506.58 0 -0.25)"></use></g></g><g clip-path="url(#clip46)" transform="matrix(0.000104987 0 0 0.000104987 569 331)"><g clip-path="url(#clip48)"><use width="100%" height="100%" xlink:href="#img47" transform="scale(3258.55 3258.55)"></use></g></g><g clip-path="url(#clip49)" transform="matrix(6.42859e-21 0.000104987 -0.000104987 6.42859e-21 564 84)"><g clip-path="url(#clip50)"><use width="100%" height="100%" xlink:href="#img20" transform="matrix(7269.08 8.32737e-21 -8.32737e-21 7269.08 -0.0625 0)"></use></g></g><text fill="#FFFFFF" font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" font-size="11" transform="translate(535.6 118)">API Key</text><g clip-path="url(#clip51)" transform="matrix(0.000104987 0 0 0.000104987 555 77)"><g clip-path="url(#clip53)"><use width="100%" height="100%" xlink:href="#img52" transform="matrix(5013.16 0 0 5013.16 -0.5 0)"></use></g></g></g></svg> </div> <div class="section-meta"> <p> <span class="revision">version 5</span> <span class="timestamp">as of <abbr title="6/15/23 8:03 am">1 year ago</abbr></span> <span class="moniker">by <span class="user-reference">Florian Goertz</span></span></p> </div> <ul class="pun-nav last"><li class="previous"><span class="label">Previous:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/apis/stationinformation">Station Information</a></li><li class="up"><span class="label">Up:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/Home">Lufthansa Cargo API Portfolio and its functionalities</a></li><li class="next"><span class="label">Next:</span> <a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis/uldstatus">ULD Status</a></li></ul> </div> <div class="comments"> <h3> 0 Comments </h3> <p><a href="https://developer.lufthansa-cargo.com/login/login?r=https%3A%2F%2Fdeveloper.lufthansa-cargo.com%2Fdocs%2Fread%2Fprioragreementapis&h=381f024ec83e23f34e6b2c9e70216386">Please sign in to post a comment.</a></p> </div> </div><!-- /main --> <!-- SUB --> <div id="sub" class="sub"> <h2>Docs Navigation</h2> <ul> <li class="active"><a href="https://developer.lufthansa-cargo.com/docs/read/Home">Lufthansa Cargo API Portfolio and its functionalities</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/howtoconnect">How to connect</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/apis">Public APIs</a><ul> <li><a href="https://developer.lufthansa-cargo.com/docs/read/apis/shipmenttracking">Shipment Tracking</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/apis/shipmenttrackingsubscribe">Shipment Tracking Subscribe</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/apis/routingoffer">Routing Offer</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/apis/stationinformation">Station Information</a></li> </ul> </li> <li class="active"><a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis" class="active">Prior Agreement APIs</a><ul> <li><a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis/uldstatus">ULD Status</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis/smartbooking">smartBooking</a></li> <li><a href="https://developer.lufthansa-cargo.com/docs/read/prioragreementapis/onerecord">ONE Record</a></li> </ul> </li> </ul> </div> <!-- /SUB --> <div id="breadcrumbs"> </div><!-- /breadcrumbs --> <div id="local" class="local"> <ul> <li class=" first"><a href="https://developer-test.lufthansa-cargo.com/">Developer Portal Test</a></li> <li class="active "><a href="https://developer.lufthansa-cargo.com/docs">Overview APIs</a></li> <li class=" "><a href="https://developer.lufthansa-cargo.com/docs/read/howtoconnect">How to connect</a></li> <li class=" "><a href="https://developer.lufthansa-cargo.com/io-docs">Interactive API</a></li> <li class=" "><a href="https://developer.lufthansa-cargo.com/news">News</a></li> <li class=" last"><a href="https://developer.lufthansa-cargo.com/contact">Contact</a></li> </ul> </div><!-- /local --> <div id="nav" class="nav"> </div><!-- /nav --> </div> <!-- /CONTENT --> <div id="footer" class="footer"> <ul> <li class=" first"><a href="https://developer.lufthansa-cargo.com/contact">Contact Us</a></li> <li class=" "><a href="https://developer.lufthansa-cargo.com/termsandconditions">Terms</a></li> <li class=" "><a href="https://lufthansa-cargo.com/footer/bottomnav/imprint">Imprint</a></li> <li class=" last"><a href="https://lufthansa-cargo.com/footer/bottomnav/privacy">Privacy</a></li> </ul> <!-- SITEINFO --> <div id="siteinfo" class="siteinfo"> </div> <!-- /SITEINFO --> </div><!-- /footer --> </div> <!-- /page --> <!-- Start Branding script tag --> <script type="text/javascript" > // get the branding logo to set the mouseover/out and onclick var brandingLogo = document.getElementById('branding-logo'); if(brandingLogo != undefined) { brandingLogo.addEventListener("click", function () { location.href = "https://developer.lufthansa-cargo.com/"; }); brandingLogo.addEventListener("mouseover", function () { this.style.cursor = 'pointer'; }); brandingLogo.addEventListener("mouseout", function () { this.style.cursor = 'auto'; }); } // get the mashery logo to set the mouseover/out and onclick var masheryLogo = document.getElementById('branding-mashery'); if(masheryLogo != undefined) { masheryLogo.addEventListener("click", function () { location.href = "http://www.mashery.com/"; }); masheryLogo.addEventListener("mouseover", function () { this.style.cursor = 'pointer'; }); masheryLogo.addEventListener("mouseout", function () { this.style.cursor = 'auto'; }); } </script> <!-- End Branding script tag --> <!-- <div id="extra1"> </div> <div id="extra2"> </div> --> <script type="text/javascript" > const enableBoomiTheme = 0; window.isOidcUser = 0; </script> <script type="text/javascript" src="/public/Mashery/scripts/themes/blackbeard/app.js"></script> <script type="text/javascript"> //<![CDATA[ /*! * Templates & Initializations * lufthansa-cargo v2.0.0 * Portal Theme Starter Kit v2.10.0 - Default Theme * http://github.com/mashery/portal-theme-starter-kit */ /** * Theme Templates */ // Enable full width layouts window.portalOptions.templates.page = function() { return '<div class="main container container-small content" id="main">' + (mashery.globals.noHeading ? '' : '<h1>{{content.heading}}</h1>') + '{{content.main}}' + '</div>'; }; // Add theme style hook document.documentElement.className += ' js-theme-default'; // Logo portalOptions.logo = '<img alt="Lufthansa Cargo Developer Program" height="36" width="300" src="/files/logoNeu.png">'; // Favicon portalOptions.favicon = true; portalOptions.faviconSizes = '16x16 24x24 32x32 64x64'; /** * Initialize plugins */ window.addEventListener('portalAfterRender', function() { // Expand-and-collapse nav on small viewports astro.init(); // Enhanced documentation if (mashery.globals.betterDocs) { new BetterDocs('.content', { langs: [{ selector: 'bash', title: 'Bash' }, { selector: 'javascript, js', title: 'JavaScript', }, { selector: 'ruby', title: 'Ruby' }, { selector: 'python', title: 'Python' } ], langDefault: 'js', wideLayout: !mashery.globals.betterDocsOneColumn, }); } // Responsive iFrame Videos fluidvids.init({ selector: ['iframe', 'object'], // runs querySelectorAll() players: ['www.youtube.com', 'player.vimeo.com'] // players to support }); // Get the latest blog posts latestBlogPosts(); }, false); // // Record customer terms accepted on user registration // function getRequiredRegistrationTextFields() { // List of required text fields var requiredRegistrationTextFields = ["members-handle", "members-moniker", "members-email", "email_again", "passwd_new", "passwd_again", "applications-name" ]; return requiredRegistrationTextFields; } // All custom fields complete function isFormComplete() { var requiredRegistrationTextFields = getRequiredRegistrationTextFields(); for (var field = 0; field < requiredRegistrationTextFields.length; field++) { var textField = document.getElementById(requiredRegistrationTextFields[field]); if (!textField.value) { return false; } } var customerTerms = document.getElementById("customerTerms").checked; var masheryTerms = document.getElementById("masheryTerms").checked; var shipmentTrackingSubscribe = document.getElementById("shipmentTrackingSubscribe").checked; //CS7608 // var oneRecordAPIIdentityProvider = document.getElementById("oneRecordAPIIdentityProvider").checked; // var oneRecordAPIURI = document.getElementById("oneRecordAPIURI").checked; var oneRecordAPI = document.getElementById("oneRecordAPI").checked; // if (customerTerms && masheryTerms && (!shipmentTrackingSubscribe || ( // shipmentTrackingSubscribe && document.getElementById("applications-shipment_tracking_sub_callback") // .value))) { // return true; // } else { // return false; // } //CS7608 // if (customerTerms && masheryTerms && // (!shipmentTrackingSubscribe || ( shipmentTrackingSubscribe && document.getElementById("applications-shipment_tracking_sub_callback").value)) && // (!oneRecordAPIIdentityProvider || (oneRecordAPIIdentityProvider && document.getElementById("applications-recordapi_idpissuer_sub_callback").value && document.getElementById("applications-recordapi_idppuburl_sub_callback").value)) && // (!oneRecordAPIURI || (oneRecordAPIURI && document.getElementById("applications-recordapi_recorduri_sub_callback").value)) // ) { // return true; // } else { // return false; // } // CS7608 Customers wants to make other fields (idppuburl,idpissuer ) of OneRecordAPI optional // (!oneRecordAPI || (oneRecordAPI && document.getElementById("applications-recordapi_idpissuer_sub_callback").value && document.getElementById("applications-recordapi_idppuburl_sub_callback").value) && document.getElementById("applications-recordapi_recorduri_sub_callback").value)) if (customerTerms && masheryTerms && (!shipmentTrackingSubscribe || ( shipmentTrackingSubscribe && document.getElementById("applications-shipment_tracking_sub_callback").value)) && (!oneRecordAPI || (oneRecordAPI && document.getElementById("applications-recordapi_recorduri_sub_callback").value))) { return true; } else { return false; } } // Update member form field when terms checked function setRequestedApisAndAcceptedTerms() { var acceptedTerms = ""; if (isFormComplete()) { var now = new Date(); var apis = document.getElementsByClassName("customerAPI"); var checkedApis = ""; for (let i = 0; i < apis.length; i++) { if (apis[i].checked == true) checkedApis = checkedApis + apis[i].nextSibling.data + ','; } document.getElementById("applications-requested_api_access").value = checkedApis; document.getElementById("applications-terms_and_conditions_accepted").value = now.toISOString(); document.getElementById("members-terms_accepted").value = now.toISOString(); document.getElementById("process-register").disabled = false; } else { document.getElementById("process-register").disabled = true; document.getElementById("members-terms_accepted").value = ""; } } // Update member form field when terms checked function setRequestedApisAndAcceptedTermsForEdit() { var acceptedTerms = ""; if (document.getElementById("customerTerms").checked) { var now = new Date(); var apis = document.getElementsByClassName("customerAPI"); var checkedApis = ""; for (let i = 0; i < apis.length; i++) { if (apis[i].checked == true) checkedApis = checkedApis + apis[i].nextSibling.data + ','; } document.getElementById("applications-requested_api_access").value = checkedApis; document.getElementById("applications-terms_and_conditions_accepted").value = now.toISOString(); document.getElementById("process-save").disabled = false; } else { document.getElementById("process-save").disabled = true; } } // Show shipment tracking callback url field function showShipmentTrackingSubscribeCallbackField() { var required = document.getElementById("shipmentTrackingSubscribe").checked; var fieldId = "applications-shipment_tracking_sub_callback"; if (required) { document.getElementById(fieldId).parentElement.classList.add("require"); document.getElementById(fieldId).classList.add("require"); document.getElementById(fieldId).hidden = false; if (!document.getElementById(fieldId).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } } else { document.getElementById(fieldId).parentElement.classList.remove("require"); document.getElementById(fieldId).classList.remove("require"); document.getElementById(fieldId).hidden = true; } // Same of the field's label var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } } // CS7608 Show oneRecordAPI callback url field function showoneRecordAPICallbackField() { var required = document.getElementById("oneRecordAPI").checked; var fieldId = "applications-recordapi_idpissuer_sub_callback"; var fieldId2 = "applications-recordapi_idppuburl_sub_callback"; var fieldID3 = "applications-recordapi_recorduri_sub_callback"; if (required) { //CS7608 Customer wants to make this field optional // document.getElementById(fieldId2).parentElement.classList.add("require"); // document.getElementById(fieldId2).classList.add("require"); document.getElementById(fieldId2).hidden = false; //CS7608 Customer wants to make this field optional // document.getElementById(fieldId).parentElement.classList.add("require"); // document.getElementById(fieldId).classList.add("require"); document.getElementById(fieldId).hidden = false; document.getElementById(fieldID3).parentElement.classList.add("require"); document.getElementById(fieldID3).classList.add("require"); document.getElementById(fieldID3).hidden = false; if (!document.getElementById(fieldID3).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } if (!document.getElementById(fieldId2).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } if (!document.getElementById(fieldId).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } } else { document.getElementById(fieldID3).parentElement.classList.remove("require"); document.getElementById(fieldID3).classList.remove("require"); document.getElementById(fieldID3).hidden = true; document.getElementById(fieldId2).parentElement.classList.remove("require"); document.getElementById(fieldId2).classList.remove("require"); document.getElementById(fieldId2).hidden = true; document.getElementById(fieldId).parentElement.classList.remove("require"); document.getElementById(fieldId).classList.remove("require"); document.getElementById(fieldId).hidden = true; } // Same of the field's label var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) { if (required) { //CS7608 Customer wants to make this field optional // elem.classList.add("require"); // elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } // Same of the field's label Need to repeat as 2 sub-field labelss are controled by 1 checkbox els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId2.toLowerCase()) { if (required) { //CS7608 Customer wants to make this field optional // elem.classList.add("require"); // elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } // Same of the field's label els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldID3.toLowerCase() ) { if (required) { // CS7608 Customer wants to make this field optional elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } } // CS7608 Show oneRecordAPIIdentityProvider callback url field // CS7608 Should be removed if showoneRecordAPICallbackField function is used function showoneRecordAPIIdentityProviderCallbackField() { var required = document.getElementById("oneRecordAPIIdentityProvider").checked; var fieldId = "applications-recordapi_idpissuer_sub_callback"; var fieldId2 = "applications-recordapi_idppuburl_sub_callback"; if (required) { document.getElementById(fieldId2).parentElement.classList.add("require"); document.getElementById(fieldId2).classList.add("require"); document.getElementById(fieldId2).hidden = false; document.getElementById(fieldId).parentElement.classList.add("require"); document.getElementById(fieldId).classList.add("require"); document.getElementById(fieldId).hidden = false; if (!document.getElementById(fieldId2).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } if (!document.getElementById(fieldId).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } } else { document.getElementById(fieldId2).parentElement.classList.remove("require"); document.getElementById(fieldId2).classList.remove("require"); document.getElementById(fieldId2).hidden = true; document.getElementById(fieldId).parentElement.classList.remove("require"); document.getElementById(fieldId).classList.remove("require"); document.getElementById(fieldId).hidden = true; } // Same of the field's label var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } // Same of the field's label Need to repeat as 2 sub-field labelss are controled by 1 checkbox els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId2.toLowerCase()) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } // Same of the field's label descr CS7608 Kamlesh trying out var eld = document.getElementsByTagName("descr"); for (var i = 0; i < eld.length; i++) { var elem = eld[i]; if ((elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) || (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId2.toLowerCase())){ if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } } // CS7608 Show oneRecordAPIURI callback url field // CS7608 Should be removed if showoneRecordAPICallbackField function is used function showoneRecordAPIURICallbackField() { var required = document.getElementById("oneRecordAPIURI").checked; var fieldID3 = "applications-recordapi_recorduri_sub_callback"; if (required) { document.getElementById(fieldID3).parentElement.classList.add("require"); document.getElementById(fieldID3).classList.add("require"); document.getElementById(fieldID3).hidden = false; if (!document.getElementById(fieldID3).value) { if (document.getElementById("process-register")) { document.getElementById("process-register").disabled = true; } else { document.getElementById("process-save").disabled = true; } } } else { document.getElementById(fieldID3).parentElement.classList.remove("require"); document.getElementById(fieldID3).classList.remove("require"); document.getElementById(fieldID3).hidden = true; } // Same of the field's label var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldID3.toLowerCase() ) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } // Same of the field's label descr CS7608 Kamlesh trying out var eld = document.getElementsByTagName("descr"); for (var i = 0; i < eld.length; i++) { var elem = eld[i]; if ((elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldID3.toLowerCase())) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); elem.hidden = false; } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); elem.hidden = true; } break; } } } // Check custom required fields and set submit disabled/enabled function updateSubmit() { // updated requested apis and accepted terms fields setRequestedApisAndAcceptedTerms(); if (isFormComplete()) { document.getElementById("process-register").disabled = false; } else { document.getElementById("process-register").disabled = true; } } // Check custom required fields and set submit disabled/enabled function updateSubmitForEdit() { // updated requested apis and accepted terms fields setRequestedApisAndAcceptedTermsForEdit(); if (document.getElementById("customerTerms").checked) { document.getElementById("process-save").disabled = false; } else { document.getElementById("process-save").disabled = true; } } // Display custom terms to user and add hidden field to store accepted terms window.addEventListener('portalAfterRender', function() { // Only run on member registration page if (!document.getElementById("page-member")) return; // Disable registration button until terms accepted const submit = document.getElementById("process-register"); submit.disabled = true; // Hide field storing accepted terms and its label document.getElementById("members-terms_accepted").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'members-terms_accepted') { elem.remove(); break; } } // Hide field storing oAuth callback url and its label document.getElementById("applications-oauth_redirect_uri").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-oauth_redirect_uri') { elem.remove(); break; } } // Hide field storing requested API access and its label document.getElementById("applications-requested_api_access").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-requested_api_access') { // remove descr elem.parentElement.getElementsByClassName("descr").forEach(elem => elem.remove()); elem.remove(); break; } } // Hide field storing requested API access and its label document.getElementById("applications-terms_and_conditions_accepted").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-terms_and_conditions_accepted') { elem.remove(); break; } } // Hide field storing shipment tracking subscribe callback document.getElementById("applications-shipment_tracking_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-shipment_tracking_sub_callback') { elem.hidden = true; break; } } //CS 7608 // Hide field storing recordapi identity provider issuer callback document.getElementById("applications-recordapi_idpissuer_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_idpissuer_sub_callback') { // elem.parentElement.getElementsByClassName("descr").forEach(elem => elem.remove()); // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } //CS 7608 // Hide field storing recordapi identity provider publickey url callback document.getElementById("applications-recordapi_idppuburl_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_idppuburl_sub_callback') { // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } //CS 7608 // Hide field storing recordapi one record uri callback document.getElementById("applications-recordapi_recorduri_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_recorduri_sub_callback') { // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } // Hide first para (it is duplicated) var paras = document.getElementsByTagName('p'); paras[0].hidden = true; paras[0].fontSize = "0%"; // Display customer terms //CS7608 added onclick actions for RoutingOffer // <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPIIdentityProvider" onclick="showoneRecordAPIIdentityProviderCallbackField()" onchange="updateSubmit()">ONE Record API - Use own Identity Provider</label> \ // <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPIURI" onclick="showoneRecordAPIURICallbackField()" onchange="updateSubmit()">ONE Record API - Use own ONE Record API</label> \ var apisRequested = '<p> \ <h3>Required API access</h3> \ <b>Select open API you would like to use:<br></b> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="shipmentTracking" onchange="updateSubmit()">Shipment Tracking API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="shipmentTrackingSubscribe" onclick="showShipmentTrackingSubscribeCallbackField()" onchange="updateSubmit()">Shipment Tracking Subscribe API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="routingOffer" onchange="updateSubmit()">Routing Offer API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="stationInformation" onchange="updateSubmit()">Station Information API</label><br> \ <b>Select partner API (access will only be given upon prior approval and agreement by LH):</b><br> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="smartBooking" onchange="updateSubmit()">smartBooking API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="airmail" onchange="updateSubmit()">Airmail API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="cargoXML" onchange="updateSubmit()">CargoXML API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="cargoIMP" onchange="updateSubmit()">CargoIMP API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="uldStatus" onchange="updateSubmit()">ULD Status API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPI" onclick="showoneRecordAPICallbackField()" onchange="updateSubmit()">ONE Record API</label> \ </p>'; var summHTML = document.getElementById("applications-summ").parentElement.innerHTML; document.getElementById("applications-summ").parentElement.innerHTML = summHTML + apisRequested; var customerTerms = '<label style="font-weight:normal"><input type="checkbox" id="customerTerms" onclick="setRequestedApisAndAcceptedTerms()">I agree to the <a href="/files/General_Terms_and_Conditions_API.pdf" target="_blank">General Terms and Conditions</a> and the applicable <a href="/files/Terms_of_Services.pdf" target="_blank">Terms of Services</a>.</label>'; // MUST have existing Mashery terms too - it's a TIBCO account var masheryTerms = '<label style="font-weight:normal"><input type="checkbox" id="masheryTerms" onclick="setRequestedApisAndAcceptedTerms()">I certify that I have read and agree to the <a href="http://www.mashery.com/terms/" target="_blank" >Mashery Terms of Service</a> and <a href="http://www.mashery.com/privacy/" target="_blank">Privacy Policy</a>.</label><br>'; document.getElementById("registration-terms-of-service").innerHTML = ""; // Push the terms above the submit button var submitHTML = document.getElementById("process-register").parentElement .innerHTML; document.getElementById("process-register").parentElement.innerHTML = customerTerms + masheryTerms + submitHTML; document.getElementById("registration-terms-of-service").innerHTML = ""; // Add call back URL field input document.getElementById("applications-shipment_tracking_sub_callback").setAttribute( "oninput", "updateSubmit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_idpissuer_sub_callback").setAttribute( "oninput", "updateSubmit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_idppuburl_sub_callback").setAttribute( "oninput", "updateSubmit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_recorduri_sub_callback").setAttribute( "oninput", "updateSubmit()"); // Add call back for text field input var requiredRegistrationTextFields = getRequiredRegistrationTextFields(); for (var field = 0; field < requiredRegistrationTextFields.length; field++) { var textField = document.getElementById(requiredRegistrationTextFields[field]); textField.setAttribute("oninput", "updateSubmit()"); } }); // Hide fields in apps edit page window.addEventListener('portalAfterRender', function() { // Only run on apps edit page if (document.getElementsByClassName("category-appedit").length == 0) return; // Disable registration button until terms accepted const submit = document.getElementById("process-save"); submit.disabled = true; // Hide field storing oAuth callback url and its label document.getElementById("applications-oauth_redirect_uri").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-oauth_redirect_uri') { elem.remove(); break; } } // Hide field storing requested API access and its label document.getElementById("applications-requested_api_access").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-requested_api_access') { // remove descr var descr = elem.parentElement.getElementsByClassName("descr"); for (var n = 0; n < descr.length; n++) { descr[n].remove(); } elem.remove(); break; } } // Hide field storing terms and conditions accepted and its label document.getElementById("applications-terms_and_conditions_accepted").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-terms_and_conditions_accepted') { elem.remove(); break; } } // Hide field storing shipment tracking subscribe callback document.getElementById("applications-shipment_tracking_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-shipment_tracking_sub_callback') { elem.hidden = true; break; } } //CS7608 // Hide field storing recordapi identityprovider tracking subscribe callback document.getElementById("applications-recordapi_idpissuer_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_idpissuer_sub_callback') { // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } //CS7608 // Hide field storing recordapi identityprovider tracking subscribe callback document.getElementById("applications-recordapi_idppuburl_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_idppuburl_sub_callback') { // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } //CS7608 // Hide field storing recordapi onerecorduri tracking subscribe callback document.getElementById("applications-recordapi_recorduri_sub_callback").hidden = true; var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for").toString().toLowerCase() == 'applications-recordapi_recorduri_sub_callback') { // remove descr CS7608 Kamlesh trying out -remove to hidden // var descr = elem.parentElement.getElementsByClassName("descr"); // for (var n = 0; n < descr.length; n++) { // // descr[n].remove(); // descr[n].hidden = true; // } elem.hidden = true; break; } } // Display customer terms // CS7608 Added oneRecordAPIIdentityProvider, oneRecordAPIURI // <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPIIdentityProvider" onclick="showoneRecordAPIIdentityProviderCallbackField()" onchange="updateSubmitForEdit()">ONE Record API - Use own Identity Provider</label> \ // <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPIURI" onclick="showoneRecordAPIURICallbackField()" onchange="updateSubmitForEdit()">ONE Record API - Use own ONE Record API</label> \ var apisRequested = '<p> \ <h3>Request further API access</h3> \ <p>Please select APIs you would like request access to. Further access will be granted after approval.</p> \ <b>Select open API:<br></b> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="shipmentTracking" onchange="updateSubmitForEdit()">Shipment Tracking API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="shipmentTrackingSubscribe" onclick="showShipmentTrackingSubscribeCallbackField()" onchange="updateSubmitForEdit()">Shipment Tracking Subscribe API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="routingOffer" onchange="updateSubmitForEdit()">Routing Offer API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="stationInformation" onchange="updateSubmitForEdit()">Station Information API</label><br> \ <b>Select partner API (access will only be given upon prior approval and agreement by LH):</b><br> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="smartBooking" onchange="updateSubmitForEdit()">smartBooking API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="airmail" onchange="updateSubmitForEdit()">Airmail API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="cargoXML" onchange="updateSubmitForEdit()">CargoXML API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="cargoIMP" onchange="updateSubmitForEdit()">CargoIMP API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="uldStatus" onchange="updateSubmitForEdit()">ULD Status API</label> \ <label style=font-weight:normal><input type="checkbox" class="customerAPI" id="oneRecordAPI" onclick="showoneRecordAPICallbackField()" onchange="updateSubmit()">ONE Record API</label> \ </p>'; var summHTML = document.getElementById("applications-summ").parentElement.innerHTML; document.getElementById("applications-summ").parentElement.innerHTML = summHTML + apisRequested; var customerTerms = '<label style="font-weight:normal"><input type="checkbox" id="customerTerms" onclick="setRequestedApisAndAcceptedTermsForEdit()">I agree to the <a href="/files/General_Terms_and_Conditions_API.pdf" target="_blank">General Terms and Conditions</a> and the applicable <a href="/files/Terms_of_Services.pdf" target="_blank">Terms of Services</a>.</label>'; // Push the terms above the submit button var submitHTML = document.getElementById("process-save").parentElement .innerHTML; document.getElementById("process-save").parentElement.innerHTML = customerTerms + submitHTML; // Add call back URL field input document.getElementById("applications-shipment_tracking_sub_callback").setAttribute( "oninput", "updateSubmitForEdit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_idpissuer_sub_callback").setAttribute( "oninput", "updateSubmitForEdit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_idppuburl_sub_callback").setAttribute( "oninput", "updateSubmitForEdit()"); // CS7608 Add call back URL field input document.getElementById("applications-recordapi_recorduri_sub_callback").setAttribute( "oninput", "updateSubmitForEdit()"); }); // // Conditional contact request // function getContactFields() { // List of all custom fields added in the MashDash Model and Layout for contact request // Three arrays: one for each request dropdown select index var customContactFormFields = [ [], ["contact_request-message"], ["contact_request-api", "contact_request-httpStatus", "contact_request-affected_awb", "contact_request-company_name", "contact_request-complete_received_response", "contact_request-complete_request_body", "contact_request-conversation_id", "contact_request-issue_description", "contact_request-issue_timestamp", "contact_request-type_of_impairment", "contact_request-environment", "contact_request-url_accessed" ] ]; return customContactFormFields; } function getRequiredContactFields() { // List of required fields, ie must have a value. Can include custom and standard fields. // Three arrays: one for each request dropdown select index var requiredContactFields = [ [], ["contact_request-subject", "contact_request-message", "contact_request-name", "contact_request-email" ], ["contact_request-subject", "contact_request-name", "contact_request-email", "contact_request-company_name", "contact_request-type_of_impairment", "contact_request-environment", "contact_request-api", "contact_request-url_accessed", "contact_request-httpStatus", "contact_request-issue_description" ] ]; return requiredContactFields; } function changeContactFieldLabel(labelFor, labelText) { // Change label text var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == labelFor) { elem.innerHTML = labelText; break; } } } function setSubmitState() { // Skip post-submit pages if (!document.getElementById("contact_request-type")) return; // Enables the submit button if all required fields have values var formType = document.getElementById("contact_request-type").selectedIndex; if (formType == 0) { // No type selected document.getElementById("process-submit").disabled = true; } var requiredFields = getRequiredContactFields(); for (var field = 0; field < requiredFields[formType].length; field++) { if (!document.getElementById(requiredFields[formType][field]).value) { document.getElementById("process-submit").disabled = true; return; } } document.getElementById("process-submit").disabled = false; } function setContactFieldRequired(fieldId, required = false) { // Sets field to be required (ie must have a value) or not required) if (required) { document.getElementById(fieldId).parentElement.classList.add("require"); document.getElementById(fieldId).classList.add("require"); } else { document.getElementById(fieldId).parentElement.classList.remove("require"); document.getElementById(fieldId).classList.remove("require"); } // Same of the field's label var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) { if (required) { elem.classList.add("require"); elem.parentElement.classList.add("require"); } else { elem.classList.remove("require"); elem.parentElement.classList.remove("require"); } break; } } } function setContactFieldDisplay(fieldId, showField) { // Show/hide form field // Input field: if (showField) { document.getElementById(fieldId).hidden = false; document.getElementById(fieldId).parentElement.style.visibility = "visible"; document.getElementById(fieldId).parentElement.style.fontSize = "100%"; } else { document.getElementById(fieldId).hidden = true; document.getElementById(fieldId).parentElement.style.visibility = "hidden"; document.getElementById(fieldId).parentElement.style.fontSize = "0%"; } // Fields label: var els = document.getElementsByTagName("label"); for (var i = 0; i < els.length; i++) { var elem = els[i]; if (elem.getAttribute("for") && elem.getAttribute("for").toString().toLowerCase() == fieldId.toLowerCase()) { if (showField) { elem.style.visibility = "visible"; elem.parentElement.style.visibility = "visible"; elem.parentElement.style.fontSize = "100%"; } else { elem.style.visibility = "hidden"; elem.parentElement.style.visibility = "hidden"; elem.parentElement.style.fontSize = "0%"; } break; } } } function setCustomLabels(formType) { // Custom label text per form type if (formType == 0) { // Default changeContactFieldLabel('contact_request-subject', 'Subject'); } else { // Not default changeContactFieldLabel('contact_request-subject', 'Issue Title'); } } function setContactFormType() { // Skip post-submit pages if (!document.getElementById("contact_request-type")) return; // Sets all the fields for different contact type selections var formType = document.getElementById("contact_request-type").selectedIndex; // Selected form index // If form type not selected so hide of defaults var defaultFields = ['contact_request-subject','contact_request-name','contact_request-handle','contact_request-email'] for (var defaultField = 0; defaultField < defaultFields.length; defaultField++) { if (formType == 0) { setContactFieldDisplay(defaultFields[defaultField], false); } else { setContactFieldDisplay(defaultFields[defaultField], true); } } var contactFields = getContactFields(); var displayedFieldsProcessed = []; var requiredFieldsProcessed = []; // Loop over all possible form selections for (var form = 0; form < contactFields.length; form++) { var formState = false; if (form == formType) { formState = true; } // Display all fields for this form type for (var contactField = 0; contactField < contactFields[form].length; contactField++) { if (displayedFieldsProcessed.includes(contactFields[form][contactField])) break; setContactFieldDisplay( contactFields[form][contactField], formState); if (form == formType) displayedFieldsProcessed.push(contactFields[form] [contactField]); } // Set required fields var requiredFields = getRequiredContactFields(); for (var requiredField = 0; requiredField < requiredFields[form].length; requiredField++) { if (requiredFieldsProcessed.includes(requiredFields[form][requiredField])) break; setContactFieldRequired( requiredFields[form][requiredField], formState); if (form == formType) requiredFieldsProcessed.push(requiredFields[ form][requiredField]); } } // Set custom labels setCustomLabels(formType); // Clear form when it changes type var inputs = document.getElementsByTagName('input'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].type.toLowerCase() == 'text') { inputs[i].value = ''; } } var textareas = document.getElementsByTagName('textarea'); for (var i = 0; i < textareas.length; i++) { textareas[i].value = ''; } if (formType == 0) { document.getElementById('contact_request-type_of_impairment').selectedIndex = -1; document.getElementById('contact_request-environment').selectedIndex = -1; document.getElementById('contact_request-api').selectedIndex = -1; } document.getElementById("process-submit").disabled = true; } // Conditional contact request window.addEventListener('portalAfterRender', function() { // Only run on contact request page if (!document.getElementById("page-contact")) return; // Skip post-submit pages if (!document.getElementById("contact_request-type")) return; // Set up the form setContactFormType(); setSubmitState(); // Add field onchange listener to be able to enable/disable submit var requiredFields = getRequiredContactFields(); document.getElementById("process-submit").disabled = true; for (var formType = 0; formType < requiredFields.length; formType++) { for (var field = 0; field < requiredFields[formType].length; field++) { document.getElementById(requiredFields[formType][field]).setAttribute( "oninput", "setSubmitState()"); } } // Add request type select onchange document.getElementById("contact_request-type").setAttribute( "onchange", "setContactFormType()"); }); //]]> </script> <script src="/files/main.js" type="text/javascript"></script> <script type="text/javascript" > m$.init(portalOptions); </script> </body> </html>