/* * JavaScriptove funkce */ jQuery(document).ready(function () { // Nastavuje priznak pro zasilani emailu uzivatelum jQuery('#getting_info').change(function(){ $value = 1; if (jQuery('#getting_info').is(':checked')) { $value = 0; } $userid = jQuery('#getting_info_user').val(); // ajaxem posleme kod na server jQuery.getJSON('/unlock_process/set_notifinfo/'+$userid+'+'+$value,function(data){ }); }); // Dle zadaneho UnitID dohleda ID pristroje jQuery('#internal_id').change(function(){ // vybereme hodnotu z unitid $id = jQuery('#internal_id').val(); // ajaxem posleme kod na server jQuery.getJSON('/unlock_process/get_type/'+$id,function(data){ // zpracuj odpoved switch(data.status) { // Zpracuje korektni pozadavek case 1: if (jQuery("select.#navigationtypeid").length) { var found = false; var found_name = ""; jQuery("select.#navigationtypeid option").each(function () { if (jQuery(this).val() == data.unl_navigationtypeid) { found_name = jQuery(this).html(); found = true; jQuery(this).attr("selected", "selected"); jQuery(this).parent().val(jQuery(this).attr("value")); } }); // kod nenalezen if (!found) { jQuery("select.#navigationtypeid+span").next().remove(); jQuery("select.#navigationtypeid").next().next().show(); jQuery("select.#navigationtypeid").next().show(); alert(lang['navigation_not_found']); } // kod nalezen else { jQuery("select.#navigationtypeid").next().val(found_name).hide(); jQuery("select.#navigationtypeid").next().next().hide(); jQuery("select.#navigationtypeid").after(''+found_name+''); } } break; // Vypise chybove hlaseni default: jQuery("select.#navigationtypeid+span").remove(); jQuery("select.#navigationtypeid").next().next().show(); jQuery("select.#navigationtypeid").next().show(); // alert(data.message); }; }); }); // nahrazeni tlacitka pokracovat odkazem jQuery("button.continue").hide(); jQuery("a.button-continue").click(function () { jQuery(this).prev().trigger("click"); return false; }).css({ display : 'block' }); // generovani odemykacich kodu jQuery("a.generate-unlockkey").click(function () { var button = jQuery(this); button.parent().fadeOut(function () { button.parent().prev().css({ display : 'block' }); jQuery.post( '/ajax/generate_unlockkey', { unl_unlockkeyid : button.attr('id') }, function (unlockkey) { if (unlockkey) { button.parent().prev().html(unlockkey); button.parent().remove(); // zkopirujeme klic do Zero Clipboard var clip = eval('clip' + button.attr('id')); clip.setText(unlockkey); } else { button.parent().prev().hide(); button.parent().show(); } }, 'text' ); }); return false; }); // automaticke generovani odemykacich kodu jQuery("a.generate-unlockkey-now").trigger("click"); // tisk stranky registrace jQuery("#registration-print").click(function () { jQuery("div.block span.loader:visible").each(function () { if (jQuery(this).find("img")) { jQuery(this).find("img").hide(); } }); window.print(); /* Spůsobuje skrytí čerstvě vygenerovaného klíče - chyba jQuery("div.block span.loader").each(function () { if (jQuery(this).data("hide")) { jQuery(this).show(); } }); */ return false; }); // zaslani stranky registrace na e-mail jQuery("#registration-email").click(function () { var a = jQuery(this); a.hide().next("span").css({ display : 'block' }); jQuery.post( '/ajax/send_registration', {}, function (message) { a.show().next("span").hide(); alert(message); }, 'text' ); return false; }); (function( jQuery ) { jQuery.widget( "ui.combobox", { _create: function() { var self = this, select = this.element.hide(), selected = select.children( ":selected" ), value = selected.val() ? selected.text() : ""; var input = jQuery( "" ) .insertAfter( select ) .val( value ) .autocomplete({ delay: 0, minLength: 0, source: function( request, response ) { var matcher = new RegExp( jQuery.ui.autocomplete.escapeRegex(request.term), "i" ); // hack pro nüvi matcher.compile(matcher.source.replace('u', '[uü]'), "i"); response( select.children( "option" ).map(function() { var text = jQuery( this ).text(); if ( this.value && ( !request.term || matcher.test(text) ) ) return { label: text.replace( new RegExp( "(?![^&;]+;)(?!<[^<>]*)(" + jQuery.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi" ), "$1" ), value: text, option: this }; }) ); }, select: function( event, ui ) { ui.item.option.selected = true; self._trigger( "selected", event, { item: ui.item.option }); }, change: function( event, ui ) { if ( !ui.item ) { var matcher = new RegExp( "^" + jQuery.ui.autocomplete.escapeRegex( jQuery(this).val() ) + "$", "i" ), valid = false; select.children( "option" ).each(function() { if ( this.text.match( matcher ) ) { this.selected = valid = true; return false; } }); if ( !valid ) { // remove invalid value, as it didn't match anything jQuery( this ).val( "" ); select.val( "" ); return false; } } } }) .addClass( "ui-widget ui-widget-content ui-corner-left" ); input.data( "autocomplete" )._renderItem = function( ul, item ) { return jQuery( "
" ) .data( "item.autocomplete", item ) .append( "" + item.label + "" ) .appendTo( ul ); }; jQuery( "" ) .attr( "tabIndex", -1 ) .attr( "title", "Show All Items" ) .insertAfter( input ) .button({ icons: { primary: "ui-icon-triangle-1-s" }, text: false }) .removeClass( "ui-corner-all" ) .addClass( "ui-corner-right ui-button-icon" ) .click(function() { // close if already visible if ( input.autocomplete( "widget" ).is( ":visible" ) ) { input.autocomplete( "close" ); return; } // pass empty string as value to search for, displaying all results input.autocomplete( "search", "" ); input.focus(); return false; }); } }); })( jQuery ); // jQuery('#reload').click(function() { var navigationsEvidio = []; jQuery("select.#navigationtypeid option").each(function () { navigationsEvidio[jQuery(this).val()] = jQuery(this).html(); }); // garmin communicator if (jQuery("select.#navigationtypeid").length || jQuery("#internal_id[type='text']").length) { jQuery("select.#navigationtypeid").hide().prev().show(); jQuery("#internal_id[type='text']").hide().prev().show(); var control; //create a call-back listener class var listener = Class.create(); listener.prototype = { initialize: function() { }, onFinishFindDevices: function(json) { //Seznam zariceni nactenych pluginem var devices = json.controller.getDevices(); var key; var ff; var nameParts; var val; var id; var found = false; var multiple = []; var navigations = []; if (json.controller.numDevices > 0) { //var navigations = []; var cnt = 0; // pripravime si pole nalezenych nav pres garmin API // index 0 - plnu nazev (muze byt vcetne Unit ID) // index 1 - ID // index 2 - PART NUMBER // index 3 - Typ zarizeni // index 4 - odkaz do navigationsEvidio (-1 pokud nenalezena) for(var i = 0; i < devices.length; i++){ // zajimaji nas pouze nav, ne SD karty uvnir zariceni (neni parent) if(devices[i].getParent() == null){ // A nezajimaji nas samostatne SD karty if(devices[i].getDescription() != 'An SD Card'){ navigations[cnt] = new Array(4); // nacteni udaju o navigaci Jmeno, Id, PArtnumber, typ navigations[cnt][0] = devices[i].getDisplayName(); navigations[cnt][1] = devices[i].getId(); navigations[cnt][2] = devices[i].getPartNumber(); // Na windows je displayname pripojeno unitID, pokusime se ho odstranit, // jinak pouzijeme jako typ displayname cely var match = devices[i].getDisplayName().match(/(.+) \(Unit ID (.*)\)/); if(match == null){ navigations[cnt][3] = devices[i].getDisplayName(); }else{ navigations[cnt][3] = match[1]; } // -1 jestlize neni v seznamu navigations[cnt][4] = jQuery.inArray(navigations[cnt][3], navigationsEvidio); // pokud typ stale nezname, skusime dohledat podle descriptions v databazi if(navigations[cnt][4] == -1){ jQuery.ajax({ url: '/ajax/get_navs/'+ encodeURIComponent(navigations[cnt][3]), async: false, dataType: 'json', success: function (data) { if(data.navname != ''){ navigations[cnt][4] = jQuery.inArray(data.navname, navigationsEvidio); navigations[cnt][3] = data.navname; } } }); } // pokud nav je v databazi a pole multiple je prazdne, pridej ji na prvni misto. // pouzije se jako prvni nalezena misto comboboxu // if(navigations[cnt][4] > -1 && multiple.length == 0){ // multiple[0] = navigations[cnt]; // } cnt++; } } } } // pokud nav mame vic, zobraz dalsi SELECT na vyber if(navigations.length > 1){ jQuery('#navigationtypes-container').show(); if(!jQuery('.temp').hasClass('insert-value-under')){ jQuery('.temp').addClass('insert-value-under'); } jQuery('#navigationtypes').empty(); for( var i=0; i < navigations.length; i++ ) { jQuery('#navigationtypes').append( jQuery('').attr('id', navigations[i][4]).val(i).html(navigations[i][0]) ); } } FoundDevices = navigations.length; // nenalezena zadna - Pouze rucni zadani if (FoundDevices == 0) { // Vyresetovani hodnot // jQuery("select.#navigationtypeid").val(""); // jQuery("#internal_id[type='text']").val(""); jQuery("select.#navigationtypeid").show().prev().hide(); jQuery("#internal_id[type='text']").show().prev().hide(); jQuery('#navigationtypeid').combobox(); } // Nalezena 1 - predvyplnena, nelze smenit na jinou, ale nemusi existovat shoda na typu else if (FoundDevices == 1) { jQuery('#navigationtypeid').combobox(); jQuery('#hidden-iid').remove(); jQuery('#hidden-tid').remove(); jQuery('#iid').remove(); jQuery('#tid').remove(); var NavigationIndex = 0; if (jQuery("select.#navigationtypeid").length) { // projdi nav z evidia jQuery("select.#navigationtypeid option").each(function () { id = jQuery(this).val(); // pokud ID se shoduje s nalezenou // schovej combobox a vypis nazev + hidden if (id == navigations[NavigationIndex][4]) { jQuery("select#navigationtypeid").hide(); jQuery("select.#navigationtypeid").next().val(ff).hide(); jQuery("select.#navigationtypeid").next().next().hide(); jQuery("select.#navigationtypeid").after(''+navigations[NavigationIndex][3]+''); found = true; // misto nacitaciho img se zobrazi seznam typu na vyber jQuery("select.#navigationtypeid").show().prev().hide(); //Skryti comboboxu pro vyber typu pristoje jQuery("select#navigationtypeid").hide(); } }); //Poreseni zobrazeni zadavani ID if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+navigations[NavigationIndex][1]+''); jQuery('input#internal_id').hide(); //jQuery("#internal_id[type='text']").val(navigations[NavigationIndex][1]); } // misto nacitaciho okna se zobrazi pole pro zadani id jQuery("#internal_id[type='text']").show().prev().hide(); //Skryti pole pro zadavani ID jQuery("#internal_id[type='text']").hide(); // pokud neni nalezen, typ navigace if (!found) { //Skryje probiha detekovani tzpu pristoje jQuery("select.#navigationtypeid").show().prev().hide(); // skryje combobox pro vyber typu jQuery("select#navigationtypeid").hide(); // misto nacitaciho okna se zobrazi pole pro zadani id //jQuery("#internal_id[type='text']").show().prev().hide(); //Skryti pole pro zadavani ID //jQuery("#internal_id[type='text']").hide(); jQuery('#navigationtypeid').combobox(); alert(lang['navigation_not_found']); } } } // Nalezeno vice - umoznit vyber a pozor, nemusi existovt shoda na typu else { jQuery('#navigationtypeid').combobox(); jQuery('#hidden-iid').remove(); jQuery('#hidden-tid').remove(); jQuery('#iid').remove(); jQuery('#tid').remove(); // akce vyberu z vice nav nameParts = navigations[jQuery("#navigationtypes").val()]; ff = jQuery("#navigationtypes").html(); val = jQuery("#navigationtypes").attr('value'); id = jQuery('#navigationtypes option:selected').attr('id'); // ZOBRAZENI VYBERU TYPU ZARIZENI // je sparovana s vypisem z evidia: // schovej combobox a zobraz nazev a hidden input s ID misto nej if(id > -1){ // ZNAME TYP ZARIZENI //Skryje probiha detekovani tzpu pristoje jQuery("select.#navigationtypeid").show().prev().hide(); // skryje combobox pro vyber typu jQuery("select#navigationtypeid").hide(); // Skryje textbox pro zadani typu jQuery("select.#navigationtypeid").next().hide(); // skryje rozbalovaci tlacitko pro zadani typu jQuery("select.#navigationtypeid").next().next().hide(); // Zobrazi needitovatelnou hodnotu typu zarizeni jQuery("select.#navigationtypeid").after(''+nameParts[3]+''); // neni sparovana - zobraz SELECT s vyberem nav z evidia // nastav default value na prvni polozku // odstran mozny predchozi vypis hidden inputu (prepsal by nam vyber) }else{ // NEZNAME TYP ZARIZENI //Skryje probiha detekovani tzpu pristoje jQuery("select.#navigationtypeid").show().prev().hide(); // skryje combobox pro vzber typu jQuery("select#navigationtypeid").hide(); jQuery("select.#navigationtypeid").next().next().show(); jQuery("select.#navigationtypeid").next().show(); } // ZOBRAZENI ID ZARIZENI //Skryje probiha detekovani id pristoje jQuery("#internal_id[type='text']").show().prev().hide(); //nastavime prazne id jQuery("select.#navigationtypeid").val(""); //Nastavime zobrazeni id if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+nameParts[1]+''); jQuery('input#internal_id').hide(); } // akce vyberu z vice nav jQuery("#navigationtypes").change(function () { jQuery('#hidden-iid').remove(); jQuery('#hidden-tid').remove(); jQuery('#iid').remove(); jQuery('#tid').remove(); nameParts = navigations[jQuery(this).val()]; ff = jQuery(this).html(); val = jQuery(this).attr('value'); id = jQuery('#navigationtypes option:selected').attr('id'); // ZOBRAZENI VYBERU TYPU ZARIZENI // je sparovana s vypisem z evidia: // schovej combobox a zobraz nazev a hidden input s ID misto nej if(id > -1){ // ZNAME TYP ZARIZENI //Skryje probiha detekovani tzpu pristoje jQuery("select.#navigationtypeid").show().prev().hide(); // skryje combobox pro vyber typu jQuery("select#navigationtypeid").hide(); // Skryje textbox pro zadani typu jQuery("select.#navigationtypeid").next().hide(); // skryje rozbalovaci tlacitko pro zadani typu jQuery("select.#navigationtypeid").next().next().hide(); // Zobrazi needitovatelnou hodnotu typu zarizeni jQuery("select.#navigationtypeid").after(''+nameParts[3]+''); // neni sparovana - zobraz SELECT s vyberem nav z evidia // nastav default value na prvni polozku // odstran mozny predchozi vypis hidden inputu (prepsal by nam vyber) }else{ // NEZNAME TYP ZARIZENI //Skryje probiha detekovani tzpu pristoje jQuery("select.#navigationtypeid").show().prev().hide(); // skryje combobox pro vzber typu jQuery("select#navigationtypeid").hide(); jQuery("select.#navigationtypeid").next().next().show(); jQuery("select.#navigationtypeid").next().show(); } // ZOBRAZENI ID ZARIZENI //Skryje probiha detekovani id pristoje jQuery("#internal_id[type='text']").show().prev().hide(); //nastavime prazne id jQuery("select.#navigationtypeid").val(""); //Nastavime zobrazeni id if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+nameParts[1]+''); jQuery('input#internal_id').hide(); } }); } // pokud mame nav v multiple, pouzijeme ji /* if(multiple.length == 1){ navigation = multiple; }else{ navigation = navigations; } */ /* for( var i=0; i < navigation.length; i++ ) { if (jQuery("select.#navigationtypeid").length) { // projdi nav z evidia jQuery("select.#navigationtypeid option").each(function () { id = jQuery(this).val(); // pokud ID se shoduje s nalezenou // schovej combobox a vypis nazev + hidden if (id == navigation[i][4] && navigation.length == 1) { ff = jQuery(this).html(); jQuery("select#navigationtypeid").hide(); jQuery("select.#navigationtypeid").next().val(ff).hide(); jQuery("select.#navigationtypeid").next().next().hide(); jQuery("select.#navigationtypeid").after(''+navigation[i][3]+''); found = true; } }); // pokud neni nic nalezeno, zobraz hlasku if (!found) { alert(lang['navigation_not_found']); } } if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+navigation[i][1]+''); jQuery('input#internal_id').hide(); //jQuery("#internal_id[type='text']").val(navigation[i][1]); } }*/ // pokud neni nic nalezeno nebo je undefined, zobraz combobox // if(found == false || found == undefined) { // jQuery("select.#navigationtypeid").show().prev().hide(); // jQuery("#internal_id[type='text']").show().prev().hide(); // jQuery('#navigationtypeid').combobox(); // } else { // jQuery('#hidden-iid').remove(); // jQuery('#hidden-tid').remove(); /* // jQuery("select.#navigationtypeid").prev().hide(); // jQuery("#internal_id[type='text']").hide().prev().hide(); //jQuery("#internal_id[type='text']").show().prev().hide(); if(navigations.length > 0){ nameParts = navigations[jQuery(jQuery('#navigationtypes')).val()]; ff = jQuery(jQuery('#navigationtypes')).html(); //alert (ff); val = jQuery(jQuery('#navigationtypes')).attr('value'); //alert (val); id = jQuery('#navigationtypes option:selected').attr('id'); //alert (id); jQuery("select#navigationtypeid").hide(); jQuery("select.#navigationtypeid").next().val(ff).hide(); // je sparovana s vypisem z evidia: // schovej combobox a zobraz nazev a hidden input s ID misto nej if(id > -1){ jQuery("select.#navigationtypeid").next().next().hide(); jQuery("select.#navigationtypeid").after(''+nameParts[3]+''); if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+nameParts[1]+''); jQuery('input#internal_id').hide(); //jQuery("#internal_id[type='text']").val(nameParts[1]); } // neni sparovana - zobraz SELECT s vyberem nav z evidia // nastav default value na prvni polozku // odstran mozny predchozi vypis hidden inputu (prepsal by nam vyber) }else{ jQuery("select.#navigationtypeid").next().next().hide(); jQuery("select.#navigationtypeid").show().prev().hide(); jQuery("#internal_id[type='text']").show().prev().hide(); jQuery("select.#navigationtypeid").val(""); if (jQuery("#internal_id[type='text']").length) { jQuery('#iid').remove(); jQuery("#internal_id[type='text']").after(''+nameParts[1]+''); jQuery('input#internal_id').hide(); //jQuery("#internal_id[type='text']").val(nameParts[1]); } } }*/ // } } } try { control = new Garmin.DeviceControl(); control.register(new listener()); var unlocked = control.unlock( ["http://unlock.garmin.cz/","e00acc37e466924fbe747b9feef98fc4"] ); try { control.findDevices(); } catch(e) { jQuery("select.#navigationtypeid").show().prev().hide(); jQuery("#internal_id[type='text']").show().prev().hide(); jQuery('#navigationtypeid').combobox(); } } catch(e) { jQuery("select.#navigationtypeid").show().prev().hide(); jQuery("#internal_id[type='text']").show().prev().hide(); jQuery('#navigationtypeid').combobox(); } } else { jQuery('#navigationtypeid').combobox(); } jQuery('#mapsid').combobox(); // }); });