Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Excerpt
HTML
<script>
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var product_filter = getParameterByName('prod');
var area_filter = getParameterByName('area');
var type_filter = getParameterByName('type');
</script>

<b>Filter by your interest:</b>
<script>
if(product_filter == "bas") {
document.write('<b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=bas">Basic Courses</a></b>');
} else {
document.write('<a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=bas">Basic Courses</a>');
}

if(product_filter == "adv") {
document.write(' - <b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=adv">Advanced Courses</a></b>');
} else {
document.write(' - <a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=adv">Advanced Courses</a>');
}

if(product_filter == "ovw") {
document.write(' - <b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=ovw">New Topics</a></b>');
} else {
document.write(' - <a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?prod=ovw">New Topics</a>');
}

if(!product_filter) {
document.write(' - <b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars">All Webinars</a></b>&emsp; ');
} else {
document.write(' - <a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars">All Webinars</a>&emsp; ');
}
</script>



<b>Filter by type:</b>
<script>
if(type_filter == "Sales") {
document.write('<b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?type=Sales">Sales</a></b>');
} else {
document.write('<a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?type=Sales">Sales</a>');
}

if(type_filter == "Technical") {
document.write(' - <b><a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?type=Technical">Technical</a></b><br>');
} else {
document.write(' - <a href="https://training.2n.cz/display/TRG/2N+Training+and+Webinars?type=Technical">Technical</a><br>');
}
</script>

<br>

<script>

var trainings_schedule = [


"30","11","2017","13:00","2N Elevator Systems","90","Robin Horniak",
"2N Elevator Systems","Technical","gws",


"31","5","2018","8:00","2N News - IP Intercoms and Access Solution Update","30","Michal Beran",
"hipcc","Technical","ovw",

"14","6","2018","13:00","2N News - 2N LTE Verso and 2N Access Commander Box","30","Michal Beran",
"ovw","Technical","ovw",

"6","9","2018","13:00","2N News - IP Intercoms Solution Update 2.24","30","Michal Beran",
"hipcc","Technical","ovw",

"25","10","2018","8:00","2N News - Answering Units","30","Ladislav Karlovský",
"hipcc","Technical","ovw",

"31","1","2019","9:00","2N News - Elevator Systems Update","50","Robin Horniak",
"lift","Technical","ovw",

"18","2","2019","9:00","2N IP Intercoms - Sales Overview","40","Lucie Sekničková",
"ipiso","Sales","bas",

"4","3","2019","9:00","2N Answering Units - Sales Overview","40","Lucie Sekničková",
"auso","Sales","bas",

"21","3","2019","9:00","2N Elevator Systems","60","Robin Horniak",
"lift","Technical","bas",





"923","5","2019","813:00","2N News - IP Intercoms Solution Update 2.26","30","Gareth Robinson",
"hipcc","Technical","ovw",



"1618","57","2019","811:00","2N IP Intercoms - Basic InstallationSIP Audio","50","MichalJaroslav BeranPipek",
"hipbiIP Audio","Technical","bas",



"1625","57","2019","118:00","2N IP Intercoms - CallAccess Configuration","50","Michal Beran",
"hipcc","Technical","bas",

"1625","57","2019","1312:00","2N IP Intercoms - Access ConfigurationCommander","5080","MichalOndrej BeranSindelar",
"hipccLearn about 2N access system and how it works together with our portfolio of IP intercoms.","Technical","basadv",

"2315","58","2019","8:00","2N SIP AudioIP Intercoms - Basic Installation","50","JaroslavMichal PipekBeran",
"IP Audiohipbi","Technical","bas",

"2315","58","2019","1312:00","2N News - IP Intercoms Solution Update 2.26Answering Units","3050","GarethLadislav RobinsonKarlovský",
"hipccaus","Technical","ovw",



"1021","68","2019","8:00","2N IP AccessSolution Controlfor -Smart Sales OverviewCity and Emergency Communication","40","Lucie Sekničková",
"acso","Sales","bas",

"1322","68","20192018","8:00","2N IP Intercoms - BasicCall InstallationConfiguration","50","Michal Beran",
"hipbihipcc","Technical","bas",

"1326","68","2019","11:00","2N IP IntercomsAccess Control - CallSales ConfigurationOverview","5040","MichalLucie BeranSekničková",
"hipccacso","TechnicalSales","bas",

"1329","68","2019","138:00","2N IP Intercoms - Access Configuration","50","Michal Beran",
"hipcc","Technical","bas",

"2429","68","2019","1112:00","2N IP Access Control Access Commander","80","Ondrej Sindelar",
"Learn about 2N access system and how it works together with our portfolio of IP intercoms.","Technical","bas",

"2","9","2019","8:00","2N IP Intercoms and Answering Units - Sales Overview","40","Lucie Sekničková",
"acso","Sales","bas",

"275","69","2019","8:00","2N Access CommanderIP Intercoms - Basic Installation","8050","OndrejMichal SindelarBeran",
"Learn about 2N access system and how it works together with our portfolio of IP intercoms.hipbi","Technical","advbas",

"275","69","2019","1312:00","My2N2N -Answering Mobile VideoUnits","50","Ladislav KarlovskyKarlovský",
"My2n.aus","Technical","basovw",

"810","79","2019","89:00","2N IPSales IntercomsNews and- AnsweringIP UnitsIntercoms -in SalesResidential OverviewMarket","4020","Lucie Sekničková",
"acso","Sales","bas",

"1012","79","2019","8:00","2N IP Intercoms - BasicCall InstallationConfiguration","50","Michal Beran",
"hipbihipcc","Technical","bas",

"1812","79","2019","12:00","2N News - IP Intercoms Solution Update 2.27","30","Gareth Robinson",
"hipcc","Technical","ovw",

"19","9","2019","8:00","2N IP Intercoms - CallAccess Configuration","50","Michal Beran",
"hipcc","Technical","bas",

"1819","79","2019","1112:00","2N SIP Audio","50","Jaroslav Pipek",
"IP Audio","Technical","bas",



"253","710","2019","8:00","2N IP Intercoms - AccessBasic ConfigurationInstallation","50","Michal Beran",
"hipcchipbi","Technical","bas",

"253","710","2019","12:00","2N AccessAnswering CommanderUnits","8050","OndrejLadislav SindelarKarlovský",
"Learn about 2N access system and how it works together with our portfolio of IP intercoms.aus","Technical","advovw",

"158","810","2019","8:00","2N IP IntercomsAccess Control - BasicSales InstallationOverview","5040","MichalLucie BeranSekničková",
"hipbiacso","TechnicalSales","bas",

"2210","810","2019","8:00","2N IP Intercoms - Call Configuration","50","Michal Beran",
"hipcc","Technical","bas",

"2210","810","2019","12:00","My2N - Mobile Video","50","Ladislav Karlovsky",
"My2n.","Technical","bas",

"2617","810","2019","118:00","2N IP AccessIntercoms Control - SalesAccess OverviewConfiguration","4050","LucieMichal SekničkováBeran",
"acsohipcc","SalesTechnical","bas",

"217","910","2019","812:00","2N IP Intercoms and Answering Units - Sales OverviewAccess Commander","4080","LucieOndrej SekničkováSindelar",
"acsoLearn about 2N access system and how it works together with our portfolio of IP intercoms.","SalesTechnical","bas",




];

var HIPBI_description = [

"This basic technical training provideswill anintroduce introduction you to the range of 2N Helios IP Intercoms. Chooseand theavailable right intercom together with all necessary components and accessories. Get ready for the configuration in 5 minutes.",

"<li>2N IP Intercoms comparison</li><li>Components hardware accessories.",

"<li>Understand the advantages of IP hardware and the 2N solution</li><li>Compare 2N Intercom models and discuss the suitable verticals for each one</li><li>Components required for mechanical installation</li><li>Accessoriesli><li>What accessories (readers, keypads, tamper switches, etc) are available for each model</li><li>What common accessories are available (answering units, accesselectrical controlstrikes, ...etc)</li><li>Licensing</li><li>Connection to IP network</li><li>Connection to li><li>Discover which licenses are available, what they offer and how they work</li><li>Connecting your intercom to an IP network and setting its IP parameters</li><li>Accessing the intercom’s web interface forand intercom's configuration<briefly exploring the main sections</li>",

"<li>Not required</li>"

];

var HIPCC_description = [

"This basic technical training provideswill anintroduce explanationto ofall callthe configurationpossibilities for and features related to calling and equip you with all the know-how needed to set up audio and video communication.calling between 2N Intercoms and other destinations, whether they be other 2N solutions or some 3rd party answering device. ",

"<li>Interconnection<li>Add users to the intercom’s directory and assign them multiple phone numbers</li><li>Set up calls to other IP devices<2N devices and to 3rd party VoIP destinations</li><li>Call routingwith scenarios and settings</li><li>Hardware of IP Intercoms related to calling</li><li>Overview of advanced integrations</or without a SIP Proxy</li><li>Register to up to 2 SIP Proxy accounts and tell the intercom which account to use for a given number</li><li>Set up simultaneous calling to multiple destinations</li><li>Set up a chain of ‘fallback’ numbers</li><li>Define time profiles to govern when a number should be used or ignored</li><li>How to trigger calls using buttons, a keypad or a display</li><li>Use automation to trigger or react to calls</li><li>Access the intercom’s video stream even without a Videophone</li><li>Integrate with other platforms and products</li>",

"<li>Not required</li>"

];

var HIPAC_description = [

"This basic technical training providesintroduces anall explanationthe ofpossibilities configurationand forfeatures localrelated to providing and remoterestricting access controlvia a 2N Intercom or Access unit.",

"<li>Remote <li>Add users to the intercom’s directory and localenroll their access triggers<credentials</li><ul><li>Answering Units</li><li>Codes</li><li>RFID card</li><li>Mobile phones</li><li>Fingerprints</li></ul><li>Configuration of all access methods </li><li>Configuration of outputs for door opening</li><li>Hardware related to access control</li><li>Overview of advanced integrations<li><li>Connect a door lock to the intercom and control lock behavior</li><li>Control additional outputs, like parking barriers or window shutters</li><li>Grant access to your visitor from a remote location</li><li>Discover which access technologies (RFID, PIN Code, Bluetooth, NFC, Fingerprint) are supported by each 2N device </li><li>Control user access by time profile</li><li>Require multiple authentication </li><li>Enforce differing security policies according to time profile or direction of access</li><li>Switch on or off IP connected devices from the Intercom or Access Unit</li><li>Manipulate the Intercom or Access Unit’s outputs via its API</li><li>Detect door state changes and trigger alerts</li><li>Send or receive credentials via Wiegand</li>",

"<li>Not required</li>"

];

var HIPBS_description = [

"This basic technical training covers settings of most typical installations. Setup voice and video communication together with access control.",

"<li>Interconnection of 2N and 3rd party devices</li><li>Call routing scenarios</li><li>Access control scenarios</li><li>Call routing settings</li><li>Access control settings</li>",

"<li>Elementary networking (IP address, LAN, WAN, VoIP, SIP)</li>"

];

var HIPAS_description = [

"Find out extra features and learn how to set them up. Examples: Picture to email, External camera, Sound and Motion detection, Automation.",

"<li>Explanation of licensed features</li><li>Settings of licensed features</li><li>Other settings not mentioned in basic training</li>",

"<li>Elementary networking (IP address, LAN, WAN, VoIP, SIP)</li>"

];


var LIFT_description = [

"General trainning on Lift products.",

"<li>2N® Lift1 hardware and software configuration</li><li>2N® Lift8 hardware and software configuration</li><li>2N® LiftIP hardware and software configuration</li>",

"<li>No requirements</li>"

];


var IPISO_description = [

"Join our free sales training for 2N IP Intercoms overview that helps you to understand benefits of different solutions we offer, how and where you can use them!",

"<li>Market trends in IP intercoms</li><li>Focus on verticals and customers</li><li>Sales arguments why to use 2N solution</li><li>Licences</li><li>Success stories, unique features and benefits</li>",

"<li>No requirements</li>"

];

var AUSO_description = [
"The training is focused on presentation of all answering units 2N offers and will launch in the next months.",
"<li>General overview on 2N answering units.</li><li>What we sell now and how you can use it</li><li>2N Mobile Video from the sales perspective</li><li>What is coming in 2019 </li>",
"<li>No requirements</li>"
];



var IPAUSO_description = [
"The training is focused on presentation of all IP intercoms and answering units that 2n  offers and will launch in the next months.",
"<li>General overview on 2N IP intercoms and answering units</li><li>What we sell now and how you can offer it</li><li>Success stories</li><li>What is coming in 2019 </li><li>Ask questions and discuss your projects </li>",
"<li>No requirements</li>"
];

var ACSO_description = [
"The training is focused on presentation of all IP access control solutions 2N offers and will launch in the next months.",
"<li>General overview on 2N IP access control solutions</li><li>What we sell now and how you can offer it</li><li>Success stories</li><li>What is coming in 2019 </li><li>Ask questions and discuss your projects </li>",
"<li>No requirements</li>"
];



 var ACB_description = [

"TheThis Basicbasic training providesintroduces introduction2N® of Access Commander and explains how it can be used to manage access via 2N® Access UnitUnits and 2N® AccessIP CommanderIntercoms.",

"<li>Advantages<li>The advantages of Access Control from 2N</li><li>Comparison with traditional access control systems (technology and price)</li><li>Licensingli><li>What policy</li><li>Howlicenses toare install available for Access Commander and run what they provide</li><li>Installing and running Access Commander</li><li>Howli><li>Adding tousers createand their access rulescredentials</li><li>Adding for2N your building</li><li>How does Attendance and Presence work access devices and establishing Access Rules</li><li>Managing visitor access via Access Commander</li><li>Monitoring presence and Attendance in Access Commander</li><li>Setting up event-based notification and camera logs</li><li>Establishing and managing anti-passback areas</li>",

"<li>Elementary knowledge of networking<br>(IP address, LAN, WAN, SIP, virtual machine).</li>"

];

var HIPM_description = [

"The training is focused on the new features of the latest 2N® Indoor Touch FW and 2N® Helios IP Mobile application releases.",

"<li>New features of the 2N® Indoor Touch FW version 1.6.7</li><li>New features of the 2N® Helios IP Mobile version 4</li>",

"<li>Advanced training and experience with 2N® Helios IP usage</li><li>Experience with 2N® Indoor Touch usage</li>"

];

var HIPV_description = [

"Join our free sales training for 2N Helios IP Verso that helps you understand benefits of IP technology in intercom world and how and where you can offer it!",

"<li>Market trends for intercoms</li><li>Focus on verticals and customers (top 3 verticals)</li><li>What are customer's requirements</li><li>Sales arguments why to use 2N solution</li><li>How to create quotation</li><li>Success stories, unique features and benefits</li>",

"<li>No requirements</li>"

];

var MY2NMY2NT_description = [

"This basic training willintroduces introduce the My2NMY2N portalplatform and 2Nits 2N® Mobile Video service, which lets you receive calls from theyour business perspectiveintercom remotely and remotely configure its calling behavior.",

"<li>What areis the benefitsMY2N ofplatform 2N and what does it offer?</li><li>What is 2N® Mobile Video forand the user.</how does it work?</li><li>Which products can I use with MY2N? (2N products or otherwise)</li><li>How to offerset theup servicea forMobile largeVideo projects.<account</li><li>How does the billing work.</li><li>How can you build your own business on 2Nto add both calling sources and destinations</li><li>Setting up calls form the intercom to a Mobile Video device</li><li>Calling to several devices simultaneously</li><li>Triggering multiple switches form the Mobile Video service.<app</li><li>Futureli><li>Managing plansmultiple withsites My2Nor portal.</installations</li><li>Subscription pricing and payment</li>",

"<li>No requirements</li>"

];



var MY2NTIPISEC_description = [
"You "Technical introduction to My2N - Mobile Video",

"<li>What is 2N® Mobile Video and how does it work?</li><li>2N compatible products</li><li>Step-by-step setup</li><li>Management & subscription purchases</li>",

can sign up for our free commercial training on IP solution for smart city and emergency communication. The training helps you to understand the benefits of our solution and the possibilities of its commercialization.",
"<li>General info about 2N</li><li>Case studies on how you can use the solution</li><li>What products we offer for the solution</li><li>Integration with other systems</li><li>Possibility to consult your projects </li>",
"<li>No requirements</li>"
];

var AUS_description = [
"This basic technical training introduces the 2N® answering unit portfolio explores suitable installation environments for each model. You will learn how each product compares with the others and how to configure the devices to exploit the key features.",
"<li>Introduction to  the 2N Indoor Talk, 2N Indoor Compact and 2N Indoor Touch 2.0</li><li>Compare functional capabilities of each device</li><li>How to set up or restrict calls between intercoms and answering units</li><li>How to set up or restrict calls between answering units</li><li>How 3rd party apps can be used on the Indoor Touch and how to install them</li><li>Connecting an external camera for an alternative viewpoint of the door</li><li>Connecting a separate doorbell</li><li>Other features, like: Do Not Disturb mode, Video Preview, Missed Call Photo Log</li><li>Networking requirements for installations of various sizes</li>",
"<li>No requirements</li>"
];

var SIPA_description = [
"This basic technical training introduces the 2N® SIP Audio portfolio and typical use case scenarios. It also explores a range of features and how to configure them.",
"<li>Product description and comparison</li><li>Suitable verticals and use case scenarios</li><li>Transmitting sounds via an IP network to the 2N® SIP Speaker for indoor use</li><li>Transmitting sounds via an IP network to the 2N® SIP Speaker Horn, the loudest IP horn on the market, for indoor or outdoor use</li><li>How to transmit from an IP source to an analogue speaker or from an analogue source to an IP speaker using the 2N® SIP Audio Converter </li><li>Making live announcements to individual devices or entire zones via the 2N® SIP Mic</li><li>Playing stored recordings and messages on the fly or according to a schedule</li><li>Triggering HTTP requests and other actions from the 2N® SIP Mic</li>",
"<li>No requirements</li>"

];




var training_URI;

document.write('<table class="bordered"><tr><th>Date</th><th colspan="1">Your Time<Time (24h)</th><th>Training</th><th>Duration</th><th>Type</th><th colspan="1">UTC Time</th></tr>');

var showall = false;

for (i = 0; i < trainings_schedule.length;) { 

if ((trainings_schedule[i+1] < 3) || ((trainings_schedule[i+1] == 3) && (trainings_schedule[i] < 12))) {
switch(trainings_schedule[i+3]) {
case "6:00" : training_hour = 6; phoenix = "1:00 (1AM)"; cape = "7:00 (7AM)"; tokyo = "15:00 (3PM)"; break;
case "7:00" : training_hour = 7; phoenix = "2:00 (2AM)"; cape = "8:00 (8AM)"; tokyo = "16:00 (4PM)"; break;
case "8:00" : training_hour = 8; phoenix = "3:00 (3AM)"; cape = "9:00 (9AM)"; tokyo = "17:00 (5PM)"; break;
case "9:00" : training_hour = 9; phoenix = "4:00 (4AM)"; cape = "10:00 (10AM)"; tokyo = "18:00 (6PM)"; break;
case "10:00" : training_hour = 10; phoenix = "5:00 (5AM)"; cape = "11:00 (11AM)"; tokyo = "19:00 (7PM)"; break;
case "11:00" : training_hour = 11; phoenix = "6:00 (6AM)"; cape = "12:00 (12PM)"; tokyo = "20:00 (8PM)"; break;
case "12:00" : training_hour = 12; phoenix = "7:00 (7AM)"; cape = "13:00 (1PM)"; tokyo = "21:00 (9PM)"; break;
case "13:00" : training_hour = 13; phoenix = "8:00 (8AM)"; cape = "14:00 (2PM)"; tokyo = "22:00 (10PM)"; break;
case "14:00" : training_hour = 14; phoenix = "9:00 (9AM)"; cape = "15:00 (3PM)"; tokyo = "23:00 (11PM)"; break;
case "15:00" : training_hour = 15; phoenix = "10:00 (10AM)"; cape = "16:00 (4PM)"; tokyo = "24:00 (12AM)"; break;
case "16:00" : training_hour = 16; phoenix = "11:00 (11AM)"; cape = "17:00 (5PM)"; tokyo = "1:00 (1AM,+1d)"; break;
case "17:00" : training_hour = 17; phoenix = "12:00 (12PM)"; cape = "18:00 (6PM)"; tokyo = "2:00 (2AM,+1d)"; break;
case "18:00" : training_hour = 18; phoenix = "13:00 (1PM)"; cape = "19:00 (7PM)"; tokyo = "3:00 (3AM,+1d)"; break;
case "19:00" : training_hour = 19; phoenix = "14:00 (2PM)"; cape = "20:00 (8PM)"; tokyo = "4:00 (4AM,+1d)"; break;
case "20:00" : training_hour = 20; phoenix = "15:00 (3PM)"; cape = "21:00 (9PM)"; tokyo = "5:00 (5AM,+1d)"; break;
case "21:00" : training_hour = 21; phoenix = "16:00 (4PM)"; cape = "22:00 (10PM)"; tokyo = "6:00 (6AM,+1d)"; break;
default : training_hour = "WrongTime"; break;
}
}

if (((trainings_schedule[i+1] == 3)  && (trainings_schedule[i] > 12)) && ((trainings_schedule[i+1] == 3) && (trainings_schedule[i] < 26))) {
switch(trainings_schedule[i+3]) {
case "6:00" : training_hour = 6; phoenix = "2:00 (2AM)"; cape = "7:00 (7AM)"; tokyo = "15:00 (3PM)"; break;
case "7:00" : training_hour = 7; phoenix = "3:00 (3AM)"; cape = "8:00 (8AM)"; tokyo = "16:00 (4PM)"; break;
case "8:00" : training_hour = 8; phoenix = "4:00 (4AM)"; cape = "9:00 (9AM)"; tokyo = "17:00 (5PM)"; break;
case "9:00" : training_hour = 9; phoenix = "5:00 (5AM)"; cape = "10:00 (10AM)"; tokyo = "18:00 (6PM)"; break;
case "10:00" : training_hour = 10; phoenix = "6:00 (6AM)"; cape = "11:00 (11AM)"; tokyo = "19:00 (7PM)"; break;
case "11:00" : training_hour = 11; phoenix = "7:00 (7AM)"; cape = "12:00 (12PM)"; tokyo = "20:00 (8PM)"; break;
case "12:00" : training_hour = 12; phoenix = "8:00 (8AM)"; cape = "13:00 (1PM)"; tokyo = "21:00 (9PM)"; break;
case "13:00" : training_hour = 13; phoenix = "9:00 (9AM)"; cape = "14:00 (2PM)"; tokyo = "22:00 (10PM)"; break;
case "14:00" : training_hour = 14; phoenix = "10:00 (10AM)"; cape = "15:00 (3PM)"; tokyo = "23:00 (11PM)"; break;
case "15:00" : training_hour = 15; phoenix = "11:00 (11AM)"; cape = "16:00 (4PM)"; tokyo = "24:00 (12AM)"; break;
case "16:00" : training_hour = 16; phoenix = "12:00 (12PM)"; cape = "17:00 (5PM)"; tokyo = "1:00 (1AM,+1d)"; break;
case "17:00" : training_hour = 17; phoenix = "13:00 (1PM)"; cape = "18:00 (6PM)"; tokyo = "2:00 (2AM,+1d)"; break;
case "18:00" : training_hour = 18; phoenix = "14:00 (2PM)"; cape = "19:00 (7PM)"; tokyo = "3:00 (3AM,+1d)"; break;
case "19:00" : training_hour = 19; phoenix = "15:00 (3PM)"; cape = "20:00 (8PM)"; tokyo = "4:00 (4AM,+1d)"; break;
case "20:00" : training_hour = 20; phoenix = "16:00 (4PM)"; cape = "21:00 (9PM)"; tokyo = "5:00 (5AM,+1d)"; break;
case "21:00" : training_hour = 21; phoenix = "17:00 (5PM)"; cape = "22:00 (10PM)"; tokyo = "6:00 (6AM,+1d)"; break;
default : training_hour = "WrongTime"; break;
}
}

if ((trainings_schedule[i+1] > 3) || ((trainings_schedule[i+1] == 3) && (trainings_schedule[i] > 26))) {
switch(trainings_schedule[i+3]) {
case "6:00" : training_hour = 6; phoenix = "2:00 (2AM)"; cape = "8:00 (8AM)"; tokyo = "15:00 (3PM)"; break;
case "7:00" : training_hour = 7; phoenix = "3:00 (3AM)"; cape = "9:00 (9AM)"; tokyo = "16:00 (4PM)"; break;
case "8:00" : training_hour = 8; phoenix = "4:00 (4AM)"; cape = "10:00 (10AM)"; tokyo = "17:00 (5PM)"; break;
case "9:00" : training_hour = 9; phoenix = "5:00 (5AM)"; cape = "11:00 (11AM)"; tokyo = "18:00 (6PM)"; break;
case "10:00" : training_hour = 10; phoenix = "6:00 (6AM)"; cape = "12:00 (12PM)"; tokyo = "19:00 (7PM)"; break;
case "11:00" : training_hour = 11; phoenix = "7:00 (7AM)"; cape = "13:00 (1PM)"; tokyo = "20:00 (8PM)"; break;
case "12:00" : training_hour = 12; phoenix = "8:00 (8AM)"; cape = "14:00 (2PM)"; tokyo = "21:00 (9PM)"; break;
case "13:00" : training_hour = 13; phoenix = "9:00 (9AM)"; cape = "15:00 (3PM)"; tokyo = "22:00 (10PM)"; break;
case "14:00" : training_hour = 14; phoenix = "10:00 (10AM)"; cape = "16:00 (4PM)"; tokyo = "23:00 (11PM)"; break;
case "15:00" : training_hour = 15; phoenix = "11:00 (11AM)"; cape = "17:00 (5PM)"; tokyo = "24:00 (12AM)"; break;
case "16:00" : training_hour = 16; phoenix = "12:00 (12PM)"; cape = "18:00 (6PM)"; tokyo = "1:00 (1AM,+1d)"; break;
case "17:00" : training_hour = 17; phoenix = "13:00 (1PM)"; cape = "19:00 (7PM)"; tokyo = "2:00 (2AM,+1d)"; break;
case "18:00" : training_hour = 18; phoenix = "14:00 (2PM)"; cape = "20:00 (8PM)"; tokyo = "3:00 (3AM,+1d)"; break;
case "19:00" : training_hour = 19; phoenix = "15:00 (3PM)"; cape = "21:00 (9PM)"; tokyo = "4:00 (4AM,+1d)"; break;
case "20:00" : training_hour = 20; phoenix = "16:00 (4PM)"; cape = "22:00 (10PM)"; tokyo = "5:00 (5AM,+1d)"; break;
case "21:00" : training_hour = 21; phoenix = "17:00 (5PM)"; cape = "23:00 (11PM)"; tokyo = "6:00 (6AM,+1d)"; break;
default : training_hour = "WrongTime"; break;
}
}

if (((trainings_schedule[i+1] == 11)  && (trainings_schedule[i] < 6)) || ((trainings_schedule[i+1] == 10) && (trainings_schedule[i] == 31))) {
switch(trainings_schedule[i+3]) {
case "6:00" : training_hour = 6; phoenix = "2:00 (2AM)"; cape = "7:00 (7AM)"; tokyo = "15:00 (3PM)"; break;
case "7:00" : training_hour = 7; phoenix = "3:00 (3AM)"; cape = "8:00 (8AM)"; tokyo = "16:00 (4PM)"; break;
case "8:00" : training_hour = 8; phoenix = "4:00 (4AM)"; cape = "9:00 (9AM)"; tokyo = "17:00 (5PM)"; break;
case "9:00" : training_hour = 9; phoenix = "5:00 (5AM)"; cape = "10:00 (10AM)"; tokyo = "18:00 (6PM)"; break;
case "10:00" : training_hour = 10; phoenix = "6:00 (6AM)"; cape = "11:00 (11AM)"; tokyo = "19:00 (7PM)"; break;
case "11:00" : training_hour = 11; phoenix = "7:00 (7AM)"; cape = "12:00 (12PM)"; tokyo = "20:00 (8PM)"; break;
case "12:00" : training_hour = 12; phoenix = "8:00 (8AM)"; cape = "13:00 (1PM)"; tokyo = "21:00 (9PM)"; break;
case "13:00" : training_hour = 13; phoenix = "9:00 (9AM)"; cape = "14:00 (2PM)"; tokyo = "22:00 (10PM)"; break;
case "14:00" : training_hour = 14; phoenix = "10:00 (10AM)"; cape = "15:00 (3PM)"; tokyo = "23:00 (11PM)"; break;
case "15:00" : training_hour = 15; phoenix = "11:00 (11AM)"; cape = "16:00 (4PM)"; tokyo = "24:00 (12AM)"; break;
case "16:00" : training_hour = 16; phoenix = "12:00 (12PM)"; cape = "17:00 (5PM)"; tokyo = "1:00 (1AM,+1d)"; break;
case "17:00" : training_hour = 17; phoenix = "13:00 (1PM)"; cape = "18:00 (6PM)"; tokyo = "2:00 (2AM,+1d)"; break;
case "18:00" : training_hour = 18; phoenix = "14:00 (2PM)"; cape = "19:00 (7PM)"; tokyo = "3:00 (3AM,+1d)"; break;
case "19:00" : training_hour = 19; phoenix = "15:00 (3PM)"; cape = "20:00 (8PM)"; tokyo = "4:00 (4AM,+1d)"; break;
case "20:00" : training_hour = 20; phoenix = "16:00 (4PM)"; cape = "21:00 (9PM)"; tokyo = "5:00 (5AM,+1d)"; break;
case "21:00" : training_hour = 21; phoenix = "17:00 (5PM)"; cape = "22:00 (10PM)"; tokyo = "6:00 (6AM,+1d)"; break;
default : training_hour = "WrongTime"; break;
}
}

if ((trainings_schedule[i+1] == 12) || ((trainings_schedule[i+1] == 11) && (trainings_schedule[i] > 6))) {
switch(trainings_schedule[i+3]) {
case "6:00" : training_hour = 6; phoenix = "1:00 (1AM)"; cape = "7:00 (7AM)"; tokyo = "15:00 (3PM)"; break;
case "7:00" : training_hour = 7; phoenix = "2:00 (2AM)"; cape = "8:00 (8AM)"; tokyo = "16:00 (4PM)"; break;
case "8:00" : training_hour = 8; phoenix = "3:00 (3AM)"; cape = "9:00 (9AM)"; tokyo = "17:00 (5PM)"; break;
case "9:00" : training_hour = 9; phoenix = "4:00 (4AM)"; cape = "10:00 (10AM)"; tokyo = "18:00 (6PM)"; break;
case "10:00" : training_hour = 10; phoenix = "5:00 (5AM)"; cape = "11:00 (11AM)"; tokyo = "19:00 (7PM)"; break;
case "11:00" : training_hour = 11; phoenix = "6:00 (6AM)"; cape = "12:00 (12PM)"; tokyo = "20:00 (8PM)"; break;
case "12:00" : training_hour = 12; phoenix = "7:00 (7AM)"; cape = "13:00 (1PM)"; tokyo = "21:00 (9PM)"; break;
case "13:00" : training_hour = 13; phoenix = "8:00 (8AM)"; cape = "14:00 (2PM)"; tokyo = "22:00 (10PM)"; break;
case "14:00" : training_hour = 14; phoenix = "9:00 (9AM)"; cape = "15:00 (3PM)"; tokyo = "23:00 (11PM)"; break;
case "15:00" : training_hour = 15; phoenix = "10:00 (10AM)"; cape = "16:00 (4PM)"; tokyo = "24:00 (12AM)"; break;
case "16:00" : training_hour = 16; phoenix = "11:00 (11AM)"; cape = "17:00 (5PM)"; tokyo = "1:00 (1AM,+1d)"; break;
case "17:00" : training_hour = 17; phoenix = "12:00 (12PM)"; cape = "18:00 (6PM)"; tokyo = "2:00 (2AM,+1d)"; break;
case "18:00" : training_hour = 18; phoenix = "13:00 (1PM)"; cape = "19:00 (7PM)"; tokyo = "3:00 (3AM,+1d)"; break;
case "19:00" : training_hour = 19; phoenix = "14:00 (2PM)"; cape = "20:00 (8PM)"; tokyo = "4:00 (4AM,+1d)"; break;
case "20:00" : training_hour = 20; phoenix = "15:00 (3PM)"; cape = "21:00 (9PM)"; tokyo = "5:00 (5AM,+1d)"; break;
case "21:00" : training_hour = 21; phoenix = "16:00 (4PM)"; cape = "22:00 (10PM)"; tokyo = "6:00 (6AM,+1d)"; break;
default : training_hour = "WrongTime"; break;
}
}

var time_friendly;
time_friendly = false;

if(area_filter) {

if((area_filter == "AME") && (parseInt(training_hour) >= 13)) time_friendly = true;
if((area_filter == "EUR") && (parseInt(training_hour) >= 7) && (parseInt(training_hour) <= 15) ) time_friendly = true;
if((area_filter == "ASI") && (parseInt(training_hour) <= 10) ) time_friendly = true;
}

switch (trainings_schedule[i+4]) {

case "2N IP Intercoms Basic":
product = "hip";
training_type= "Technical";
break;
case "2N IP Intercoms Advanced":
product = "hip";
training_type= "Technical";
break;
case "2N IP Audio Basic":
product = "ipa";
training_type= "Technical";
break;
case "2N IP Audio Advanced":
product = "ipa";
training_type= "Technical";
break;
case "2N Elevator Systems":
product = "gws";
training_type= "Technical";
break;
case "2N Access Control Basic":
training_type= "Technical";
product = "ac";
break;
case "2N Access Control Sales":
training_type= "Sales";
product = "ac";
break;
case "2N Products Overview":
product = "ovw";
training_type= "Technical";
break;
case "2N IP Intercoms and Access Control Overview":
product = "ovw";
training_type= "Sales";
break;
case "2N Helios IP Verso Sales":
product = "hip";
training_type= "Sales";
break;
case "2N Helios IP Firmware 2.14":
product = "hip";
training_type= "Technical";
break;
default:
product = "unknown";
training_type= "Technical";
break;
}

if(!product_filter) {
if(!area_filter) {
if(!type_filter) showall = true;
}
}

var datumskoleni = new Date(trainings_schedule[i+2], trainings_schedule[i+1]-1, trainings_schedule[i], training_hour, 0, 0, 0);
var rozdilhodin = datumskoleni.getTimezoneOffset();
rozdilhodin = rozdilhodin/60;
tvuj_cas_skoleni = training_hour - rozdilhodin;






if (TrainingInFuture(training_hour,trainings_schedule[i],trainings_schedule[i+1],trainings_schedule[i+2]) && ((type_filter == trainings_schedule[i+8]) || (product_filter == trainings_schedule[i+9]) || showall || time_friendly)) {

if (trainings_schedule[i+4] == "2N IP Intercoms Basic") document.write('<tr class="basic">');
if (trainings_schedule[i+4] == "2N IP Intercoms Advanced") document.write('<tr class="advanced">');
if (trainings_schedule[i+4] == "2N IP Audio Basic") document.write('<tr class="basic">');
if (trainings_schedule[i+4] == "2N IP Audio Advanced") document.write('<tr class="advanced">');
if (trainings_schedule[i+4] == "2N Gateways Basic") document.write('<tr class="basic">');
if (trainings_schedule[i+4] == "2N Access Control Basic") document.write('<tr class="basic">');
 
document.write("<td>"+trainings_schedule[i]+"."+trainings_schedule[i+1]+"."+trainings_schedule[i+2]+"</td><td>"+tvuj_cas_skoleni+":00</td><td>");

 
document.write('<b><a href="https://training.2n.cz/display/TRG/Training+Registration+Form?D='+trainings_schedule[i]+'&M='+trainings_schedule[i+1]+'&Y='+trainings_schedule[i+2]+'&time='+trainings_schedule[i+3]+'&trg='+encodeURIComponent(trainings_schedule[i+4])+'&dur='+trainings_schedule[i+5]+'&who='+encodeURIComponent(trainings_schedule[i+6])+'">'+trainings_schedule[i+4]+'</a></b>');


 
document.write("</td><td>"+trainings_schedule[i+5]+" Minutes</td><td>"+trainings_schedule[i+8]+"</td><td>"+trainings_schedule[i+3]+"</td></tr>");

}

i=i+10;

}
document.write("</table>");

function TrainingInFuture(thour,tday,tmonth,tyear) {
var computer_time = new Date();
var UTC_day = computer_time.getUTCDate();
var UTC_hour = computer_time.getUTCHours()-1;
var UTC_month = computer_time.getUTCMonth()+1;
var UTC_year = computer_time.getUTCFullYear();

UTC_hour=UTC_hour+1;

if(tyear<UTC_year) return false;
if(tyear>UTC_year) return true;
if(tmonth<UTC_month) return false;
if(tmonth>UTC_month) return true;
if(tday<UTC_day) return false;
if(tday>UTC_day) return true;
if(thour<=UTC_hour) return false;
if(thour>UTC_hour) return true;

return true;

}
</script>

...