PageSourceSearch

https://zoobrasov.ro/wp-content/plugins/ticketsys-events/ticketsys/resources/utils.js?v=1.1&ver=6.7.9

js zoobrasov.ro collected 2026-10-02 13:03:31 UTC 31,436 bytes, 976 lines download raw bytes

1function formatDate(time, ei, fmt)
2{
3    var bucharestTime = getTimestamp(time, ei);
4    var t = jQuery.format;
5    var g =  t.date(bucharestTime, fmt);
6    return g;
7}
8function formatDateSimple(time, fmt) {
9    return jQuery.format.date(time, fmt);
10}
11function isValidPhone(p) {
12    var phoneRe = /^[0-9]\d{2}[0-9]\d{2}\d{4}$/;
13    var digits = p.replace(/\D/g, "");
14    return (digits.match(phoneRe) !== null);
15}
16function getTimestamp(time, ei) {
17    var date = new Date(time);
18    var bucharestOffset = 0;
19    var userOffset = 0;
20    if (ei !== null && ei.rawOffset !== null && ei.dstOffset !== null) {
21        bucharestOffset = (ei.rawOffset + ei.dstOffset) * 1000;
22        userOffset = date.getTimezoneOffset() * 60000;
23    }
24    //bucharest time
25    return new Date(date.getTime() + bucharestOffset + userOffset);
26}
27function roundValue(val) {
28    return Math.round(val * 100) / 100;
29}
30function setContainerClick(el) {
31    el.on('click', function (event) {
32        var input = jQuery(this).find('input[type="radio"]').first();
33        if (input[0] != null) {
34            if (event.target.nodeName.toLowerCase() != 'input') {
35                if (!input.is(":checked")) {
36                    input.attr("checked", !input.attr("checked"));
37                    input.change();
38                    $.uniform.update(input);
39                }
40            }
41        }
42    });
43}
44function setClassClick(elClass) {
45
46}
47function setMobileMenuToggle() {
48    if (jQuery.browser.mobile) {
49        jQuery('.main_menu_toggle').click(function (event) {
50            jQuery("#main_menu_toggle").toggle();
51        });
52    }
53}
54function getAds() {
55    var cont = jQuery("#ads_cont");
56    $.ticketingAPI("getAds", function (response) {
57        if (response.data != null) {
58            var ads = response.data;
59            for (var i = 0; i < ads.length; ++i) {
60                cont.append(getAd(ads[i]));
61            }
62        }
63    });
64}
65function setInputsDefault(elClass) {
66    jQuery("." + elClass).focus(function (srcc)
67    {
68        if (jQuery(this).val() == jQuery(this)[0].title)
69        {
70            jQuery(this).removeClass("defaultTextActive");
71            jQuery(this).val("");
72        }
73    });
74
75    jQuery("." + elClass).blur(function ()
76    {
77        if (jQuery(this).val() == "")
78        {
79            jQuery(this).addClass("defaultTextActive");
80            jQuery(this).val(jQuery(this)[0].title);
81        }
82    });
83
84    jQuery("." + elClass).blur();
85}
86function setInputsDefaultForElem(elem) {
87    elem.focus(function (srcc)
88    {
89        if (jQuery(this).val() == jQuery(this)[0].title)
90        {
91            jQuery(this).removeClass("defaultTextActive");
92            jQuery(this).val("");
93        }
94    });
95
96    elem.blur(function ()
97    {
98        if (jQuery(this).val() == "")
99        {
100            jQuery(this).addClass("defaultTextActive");
101            jQuery(this).val(jQuery(this)[0].title);
102        }
103    });
104
105    elem.blur();
106}
107function getIconImage(elClass) {
108    return jQuery('<img src="site_images/blank.gif" width="1" height="1" class="sprite-img ' + elClass + '"/>');
109}
110function getPromotedEventStructure(event) {
111    var li = jQuery("#cloneLI").clone();
112    li.removeAttr("id");
113    li.show();
114    var info = formatDate(event.dateStart, event, 'd MMM')
115    if (event.venue != null) {
116        info += ", " + event.venue.name;
117    }
118    if (event.image != null) {
119        var img = jQuery('<img src="' + event.image.url + '"/>');
120    }
121    li.find(".image-overlay").after(img);
122    li.find("p").text(info);
123    var a = jQuery('<a href="event.php?id=' + event.id + '">' + event.event.name + '</a>');
124    li.find("h2").append(a);
125    return li;
126}
127
128function getMenuButton(info) {
129    if (info.id != null) {
130        return jQuery('<a rel="' + info.id + '">' + info.name + '</a>');
131    }
132    else {
133        return jQuery('<a>' + info.name + '</a>');
134    }
135}
136function getOrderedEvents(events, dateFmt) {
137    var orderedEvents = {};
138    var event = null;
139    //order the events by date
140    for (var i = 0; i < events.length; ++i) {
141        event = events[i];
142        if (event.dateStart == null)
143            continue;
144        var month = formatDate(event.dateStart, event, dateFmt);
145        if (orderedEvents['' + month] == null) {
146            orderedEvents['' + month ] = [event];
147        }
148        else {
149            orderedEvents['' + month ].push(event);
150        }
151    }
152    return orderedEvents;
153}
154function getEventsByOptions(options, callFunc) {
155    if (options.category == "promo") {
156        options.promotion = "true";
157        delete options.category;
158    }
159    $.ticketingAPI("getEvents", callFunc, options);
160}
161function registerRefreshSideCartTimer() {
162    $.Cart('registerElem', jQuery('#side-cart-timer'));
163    jQuery('#side-cart').show();
164    $.Cart('onRefresh', function (response) {
165        if (response != null) {
166            var cart = response.data.cart;
167            var nr = 0;
168            var val = 0;
169            var time = response.data.time;
170
171
172            if (cart != null && cart.length > 0) {
173                for (var i = 0; i < cart.length; ++i) {
174                    for (var j = 0; j < cart[i].categories.length; ++j) {
175                        nr += cart[i].categories[j].tickets.length;
176                        val += cart[i].categories[j].price * cart[i].categories[j].tickets.length;
177                    }
178                }
179            }
180            if (time > 0 && nr > 0) {
181                jQuery('#checkout-timer-cont').show();
182            } else {
183                jQuery('#checkout-timer-cont').hide();
184            }
185            if (nr == 1) {
186                jQuery('#side-cart-nr-tickets').text('1 bilet');
187            } else {
188                jQuery('#side-cart-nr-tickets').text(nr + ' bilete');
189            }
190        }
191    });
192}
193
194function getPromotedEvents() {
195    var cont = jQuery("#slider");
196    cont.parent().overlay({
197        minHeight: '300px',
198        text: 'Se incarca evenimentele promovate',
199        preloaderUrl: 'site_images/preloader.gif'
200    });
201    $.ticketingAPI("getPromotedEvents", function (result) {
202        cont.parent().overlay('destroy');
203        if (result.data != null) {
204
205            var events = result.data;
206            for (var i = 0; i < events.length; ++i) {
207                cont.append(getPromotedEventStructure(events[i]));
208            }
209            registerAccordion();
210        }
211    });
212}
213function getDot() {
214    var dot = jQuery("#ad_dot").clone();
215    dot.removeAttr("id");
216    dot.show();
217    return dot;
218}
219function getAd(ad) {
220    var extension = ad.src.split('.').pop();
221    var div = jQuery('<div class="adds_cont margin-bottom-10"></div>');
222    var obj = null;
223    if (extension == 'swf') {
224        obj = jQuery('<object type="application/x-shockwave-flash" data="' + ad.src + '" width="210" height="140">' +
225                '<!-- <![endif]-->' +
226                '<!--[if IE]>' +
227                '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="244" height="177">' +
228                '<param name="movie" value="' + ad.src + '" />' +
229                '<!-->' +
230                '</object>');
231    }
232    if (extension == 'jpg' || extension == 'gif' || extension == 'png') {
233        obj = jQuery('<img src="' + ad.src + '" width="210"/>');
234    }
235    div.append(obj);
236    if (ad.link != null) {
237        div.on("click", function (event) {
238            document.location = ad.link;
239        });
240    }
241    return div;
242}
243function executeOnEnter(elem, func) {
244    elem.on('keypress', function (event) {
245        if (event.keyCode == 13) {
246            func();
247        }
248    });
249}
250function getAds() {
251    var cont = jQuery("#ads_cont");
252    cont.overlay({
253        minHeight: '300px',
254        text: 'Se incarca reclamele',
255        preloaderUrl: 'site-images/preloader.gif'
256    });
257    $.ticketingAPI("getAds", function (response) {
258        cont.overlay("destroy");
259
260        if (response.data != null) {
261            var ads = response.data;
262            for (var i = 0; i < ads.length; ++i) {
263                cont.append(getAd(ads[i]));
264                cont.append(jQuery('<div class="blt-separator spacing-top_15"></div>'));
265            }
266        }
267    });
268}
269function populateEventCategories(eventId) {
270    $.ticketingAPI("getCategories", eventId, function (response) {
271        console.log(response);
272    });
273}
274function setLoginAction2() {
275    jQuery('.login-form').submit(function (event) {
276        event.stopPropagation();
277        event.preventDefault();
278        login2(jQuery(this).find("input[name='username']").val(), jQuery(this).find("input[name='password']").val());
279    });
280    jQuery(".logout").click(function (event) {
281        logout2();
282    });
283    jQuery(".logout-fb").click(function (event) {
284        logout2();
285        //FB.logout();
286    });
287}
288function showLogged() {
289    jQuery('#logged_container').show();
290    jQuery('#userLoginForm').hide();
291}
292function showLogin() {
293    jQuery('#login-msg').empty();
294    jQuery('#logged_container').hide();
295    jQuery('#userLoginForm').show();
296}
297function showLoginPopout() {
298
299    var wrap = jQuery('<div id="login-form"/>');
300    var buttons = null;
301    wrap.load('loginForm.html', function () {
302        wrap.find('input').keyup(function (event) {
303            if (event.keyCode == 13) {
304                buttons["Login"].apply(wrap);
305            }
306        });
307    }).dialog({
308        modal: true,
309        title: "Autentificare",
310        draggable: false,
311        buttons: {
312            "Login": function () {
313                login(wrap.find('input[name="w_username"]').val(), wrap.find('input[name="w_password"]').val(), function (response) {
314                    if (response.result == 0) {
315                        wrap.find('.w_error').text("Autentificare esuata!");
316                    } else {
317                        wrap.dialog("destroy");
318                    }
319                });
320            },
321            "Anuleaza": function () {
322                wrap.dialog("destroy");
323            }
324        },
325    });
326    buttons = wrap.dialog("option", "buttons");
327
328}
329function showLoginError(msg) {
330    jQuery('#login-msg').empty().append('<div class="alert margin-top-10 alert-warning fade in">' +
331            '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
332            msg +
333            '</div>');
334}
335function login2(user, pass, callback) {
336    jQuery.ticketingAPI("login", user, pass, function (response) {
337        if (response) {
338            showLoginError("Numele/parola sunt incorecte!");
339        } else {
340            showLoginError("Nu s-a putut efectua autentificarea!");
341        }
342        if (callback != null) {
343            callback(response);
344        }
345    }, function (response) {
346        if (response.result == 1)
347        {
348            if (response.data.profile.lastName != null) {
349                jQuery('.logged_username').text(response.data.profile.firstName + " " + response.data.profile.lastName);
350                showLogged();
351            } else {
352                jQuery('.logged_username').text(response.data.profile.firstName);
353                showLogged();
354            }
355        }
356        else
357        {
358
359        }
360        if (callback) {
361            callback(response);
362        }
363    });
364}
365function login(user, pass, callback) {
366    $.ticketingAPI("login", user, pass, function (response) {
367        if (response) {
368            removePreloader(jQuery("#login_btn"));
369            jQuery("#login_btn").removeClass("disabled");
370            if (response.result != 1)
371            {
372                loginState(2, user);
373            }
374        } else {
375            alert("Nu s-a putut efectua autentificarea!");
376        }
377        if (callback != null) {
378            callback(response);
379        }
380    }, function (response) {
381        if (response.result == 1)
382        {
383            if (response.data.profile.lastName != null) {
384                loginState(1, response.data.profile.firstName + " " + response.data.profile.lastName);
385            } else {
386                loginState(1, response.data.profile.firstName);
387            }
388        }
389        else
390        {
391            loginState(2, user);
392        }
393        if (callback) {
394            callback(response);
395        }
396    });
397}
398function logout2() {
399    $.ticketingAPI("logout", function (response) {
400        if (response.result == 1) {
401            showLogin();
402            $.Cart('refresh');
403        }
404        else
405        {
406            displayErrors(response.errors, jQuery("#errors_login2"));
407        }
408    });
409}
410function logout() {
411    $.ticketingAPI("logout", function (response) {
412        if (response.result == 1) {
413            loginState(0);
414            $.Cart('refresh');
415        }
416        else
417        {
418            displayErrors(response.errors, jQuery("#errors_login2"));
419        }
420    });
421}
422
423function displayErrors(errors, container)
424{
425    container.empty();
426    if (errors != null) {
427        for (var i = 0; i < errors.length; ++i)
428        {
429            container.append(jQuery("<p>" + errors[i] + "</p>"));
430        }
431    }
432}
433function addPreloader(cont) {
434}
435function removePreloader(cont) {
436}
437function getTimeString(seconds)
438{
439    var hours = Math.floor(seconds / 3600);
440    seconds = seconds % 3600;
441    var minutes = Math.floor(seconds / 60);
442    seconds = seconds % 60;
443    var ret = "";
444    if (hours > 0) {
445        ret += hours + ":";
446    }
447    if (minutes > 0) {
448        if (minutes < 10) {
449            ret += "0" + minutes + ":";
450        } else {
451            ret += minutes + ":";
452        }
453
454    } else {
455        ret += "00:";
456    }
457    if (seconds > 0) {
458        if (seconds < 10) {
459            ret += "0" + seconds;
460        } else {
461            ret += seconds;
462        }
463    } else {
464        ret += "00";
465    }
466    return ret;
467}
468function setToggle(upClass, downClass, elem, container) {
469    elem.on('click', function (event) {
470        if (jQuery(this).hasClass(upClass)) {
471            container.hide();
472            jQuery(this).removeClass(upClass).addClass(downClass);
473        } else {
474            container.show();
475            jQuery(this).removeClass(downClass).addClass(upClass);
476        }
477    });
478
479}
480function setEventCategories() {
481    var container = jQuery("#menu_dynamic_cat");
482    container.parent().overlay({
483        text: 'Se incarca categoriile',
484        preloaderUrl: 'site_images/preloader.gif'
485    });
486    $.ticketingAPI("getEventCategories", function (response) {
487
488        if (response.data != null) {
489            for (var i = 0; i < response.data.length; ++i) {
490                container.append(jQuery('<a rel="' + response.data[i].id + '">' + response.data[i].name + '</a>'));
491            }
492            setMenuAction();
493            try {
494
495                setSearchAction();
496            } catch (e) {
497                console.log(e.toString());
498            }
499        }
500        container.parent().overlay('destroy');
501    });
502}
503
504function compareSeats(seat1, seat2)
505{
506    var sect1 = seat1.sector == null ? '' : seat1.sector;
507    var sect2 = seat2.sector == null ? '' : seat2.sector;
508    var ret = sect1.localeCompare(sect2);
509    if (ret == 0)
510    {
511        var r1 = parseFloat(seat1.row);
512        var r2 = parseFloat(seat2.row);
513        if (isNaN(r1) || isNaN(r2))
514        {
515            ret = seat1.row.localeCompare(seat2.row);
516        }
517        else
518            ret = r1 - r2;
519        if (ret == 0)
520        {
521            r1 = parseFloat(seat1.label);
522            r2 = parseFloat(seat2.label);
523            if (isNaN(r1) || isNaN(r2))
524            {
525                ret = seat1.row.localeCompare(seat2.row);
526            }
527            else
528                ret = r1 - r2;
529        }
530    }
531
532    return ret;
533}
534
535function registerAccordion() {
536    var cont = jQuery("#slider");
537    jQuery(".slider_arrow_left").click(function (event) {
538        cont.zAccordion("triggerNext");
539    });
540    jQuery(".slider_arrow_right").click(function (event) {
541        cont.zAccordion("triggerPrev");
542    });
543    cont.zAccordion({
544        speed: 650,
545        slideWidth: 550,
546        slideClass: 'slider',
547        animationStart: function () {
548            cont.find('li.slider-open div').css('display', 'none');
549            cont.find('li.slider-previous div').css('display', 'none');
550        },
551        animationComplete: function () {
552            cont.find('li div').fadeIn(600);
553
554        },
555        width: 930,
556        height: 340
557    });
558}
559
560function getMenuItem(text) {
561    return jQuery('<a class="blt-menu-item">
561' + text + '</a>');
562}
563function activateMenuItem(elem) {
564    jQuery(elem).append(jQuery('<img src="site-images/blank.gif" width="1" height="1" class="sprite-img menu-active-knob"/>'));
565}
566function setInputsDefault(elClass) {
567
568    jQuery("." + elClass).focus(function (srcc)
569    {
570        if (jQuery(this).val() == jQuery(this)[0].title)
571        {
572            jQuery(this).removeClass("defaultTextActive");
573            jQuery(this).val("");
574        }
575    });
576
577    jQuery("." + elClass).blur(function ()
578    {
579        if (jQuery(this).val() == "")
580        {
581            jQuery(this).addClass("defaultTextActive");
582            jQuery(this).val(jQuery(this)[0].title);
583        }
584    });
585    jQuery("." + elClass).blur();
586}
587/*
588 type : null or != rest = none
589 0 - promotion
590 1 - sold out
591 2 - little tickets left
592 */
593function getEventListStr(id, eventName, date, type) {
594    var cont = jQuery('<div class="blt-event-list-item">');
595    var img = jQuery('<img src="site-images/blank.gif" width="1" height="1" class="blt-event-list-item-icon"/>');
596    var info = jQuery('<div class="blt-event-list-item-info">');
597    var btn = jQuery('<a class="green-btn2">CUMPARA BILET</a>');
598    if (type != null) {
599        switch (type) {
600            case 0 :
601                img.addClass('promotion-icon-small');
602                btn.attr('class', 'red-btn2');
603                btn.text('SOLD OUT');
604                btn.removeAttr('href');
605                break;
606            case 1 :
607                img.addClass('sold-out-icon-small');
608                btn.attr('href', 'event.php?id=' + id);
609                break;
610            case 2 :
611                img.addClass('low-tickets-icon-small');
612                btn.attr('href', 'event.php?id=' + id);
613                break;
614        }
615    }
616    info.append(jQuery('<div class="blt-event-list-item-title">' + eventName + '</div>'));
617    info.append(jQuery('<div class="blt-event-list-item-date">' + date + '</div>'));
618    info.append(jQuery('<div class="blt-event-list-item-btn"/>').append(btn));
619    info.append(jQuery('<br class="clearfloat"/>'));
620    cont.append(img);
621    cont.append(info);
622    cont.append(jQuery('<br class="clearfloat"/>'));
623    return cont;
624}
625/*
626 state - the state of the login zone
627 0 - login form
628 1 - succesfull login
629 2 - unsuccessfull login
630 3 - mail doesn't exist
631 */
632function loginState(state, data) {
633    switch (state) {
634        case 0:
635            var cont = jQuery('<div></div>');
636            cont.append(jQuery('<input type="text" id="login_user" class="default_txt" title="adresa de email">'));
637            cont.append(jQuery('<input type="password" id="login_pass" class="default_txt" title="password here" placeholder="password here"/>'));
638            var div = (jQuery('<div class="blt-login-buttons-cont"></div>'));
639            div.append(jQuery('<a class="blt-button-simple blue" id="login_btn">login</a>'));
640            div.append(jQuery('<a class="blt-button-simple green" id="create_account">creare cont</a>'));
641            div.append(jQuery('<div id="forgot_cont"><a class="blt-button-txt forgot">ai uitat parola?</a></div>'));
642            setInputsDefaultForElem(cont.find(".default_txt"));
643            cont.append(div);
644            jQuery("#login-state").empty();
645            jQuery('#login-state').append(cont);
646            setLoginAction2();
647            setLoginAction();
648            addFbLoginButton()
649            break;
650        case 1:
651            var cont = jQuery("<div></div>");
652            cont.append(jQuery('<p class="blt-user-message"><img src="site-images/blank.gif" width="1" height="1" class="sprite-img green-circle-tiny"/>Bine ai venit, ' + data + '!</p>'));
653            cont.append(jQuery('<div class="blt-user-btns"><span><a class="green-flat-btn" href="account.php">contul meu</a></span><a class="blue-flat-btn logout">logout</a></div>'));
654            jQuery("#login-state").empty();
655            jQuery("#login-state").append(cont);
656            setLoginAction2();
657            setLoginAction();
658            break;
659        case 2:
660            var cont = jQuery('<div></div>');
661            var div = (jQuery('<div class="blt-login-buttons-cont"></div>'));
662            div.append(jQuery('<p class="blt-user-simple-msg error">Ai uitat parola?</p>'));
663            div.append(jQuery('<input id="emailAddress" type="text" class="blt-input3" title="Introdu aici adresa ta de e-mail">'));
664            div.append(jQuery('<div class="blt-user-reset-pass"><a class="blt-button-simple green relogin">reintrodu datele</a><a class="blt-blue-button2 reset-link">Recupereaza parola</a></div>'));
665            cont.append(div);
666            setInputsDefaultForElem(div.find('input[type="text"]'));
667            jQuery("#login-state").empty();
668            jQuery("#login-state").append(cont);
669            setLoginAction2();
670            setLoginAction();
671            break;
672        case 3:
673            var cont = jQuery('<div></div>');
674            var div = (jQuery('<div class="blt-login-buttons-cont"></div>'));
675            div.append('<p class="login-error-msg login-msg">Emailul ' + data + ' nu exista in baza de date!</p>')
676            div.append(jQuery('<div class="blt-user-reset-pass"><a class="blt-button-simple green relogin">reintrodu datele</a></div>'));
677            cont.append(div);
678            setInputsDefaultForElem(div.find('input[type="text"]'));
679            jQuery("#login-state").empty();
680            jQuery("#login-state").append(cont);
681            setLoginAction2();
682            setLoginAction();
683            break;
684        case 4:
685            var cont = jQuery('<div></div>');
686            var div = (jQuery('<div class="blt-login-buttons-cont"></div>'));
687            div.append('<p class="login-msg">Verificati adresa ' + data + ' si urmati pasii urmatori!</p>')
688            div.append(jQuery('<div class="blt-user-reset-pass"><a class="blt-button-simple green relogin">reintrodu datele</a></div>'));
689            cont.append(div);
690            setInputsDefaultForElem(div.find('input[type="text"]'));
691            jQuery("#login-state").empty();
692            jQuery("#login-state").append(cont);
693            setLoginAction2();
694            setLoginAction();
695            break;
696    }
697}
698
699function getInstancesDatesStr(instances, sort) {
700    var str = "";
701    if (sort != null && sort == true) {
702        instances.sort(function (a, b) {
703            if (a == null) {
704                if (b == null) {
705                    return 0;
706                } else {
707                    return 1;
708                }
709            } else {
710                if (b == null) {
711                    return  -1;
712                }
713            }
714            return a.dateStart - b.dateStart;
715        });
716    }
717    var lastDay = "";
718    var lastMonth = "";
719    var month = "";
720    for (var i = 0; i < instances.length; ++i) {
721        var instance = instances[i];
722        var date = formatDate(instance.dateStart, instance, "dd");
723        month = formatDate(instance.dateStart, instance, "MMMM");
724        if (month == lastMonth && date == lastDay) {
725            continue;
726        }
727        if (lastMonth != "" && month != lastMonth) {
728            //remove  ", "
729            str = str.slice(0, -2);
730            str += " " + lastMonth + " " + date + ", ";
731        } else {
732            str += date + ", ";
733        }
734        lastMonth = month;
735        lastDay = date;
736    }
737    str = str.slice(0, -2);
738    str += " " + lastMonth;
739    return str.toLowerCase();
740}
741function addParameter(uri, key, value) {
742    var re = new RegExp("([?|&])" + key + "=.*?(&|$)", "i");
743    separator = uri.indexOf('?') !== -1 ? "&" : "?";
744    if (uri.match(re)) {
745        return uri.replace(re, '$1' + key + "=" + value + '$2');
746    }
747    else {
748        return uri + separator + key + "=" + value;
749    }
750}
751function alertDialog(str) {
752    jQuery("<p>" + str + "</p>").dialog({
753        modal: true,
754        buttons: {
755            Ok: function () {
756                jQuery(this).dialog("close");
757            }
758        }
759    });
760}
761
762function facebookInit() {
763    $.ajaxSetup({cache: true});
764    $.getScript('//connect.facebook.net/en_UK/all.js', function () {
765        FB.init({
766            appId: '277201615778925',
767            channelUrl: 'localhost/bilet/facebook/channel.php',
768        });
769
770        console.log("userId: " + $.ticketingAPI('getUserId'));
771        console.log("cookie:" + $.cookie('fb-autologin'));
772        if ($.ticketingAPI('getUserId') === -1) {
773            FB.getLoginStatus(function (response) {
774                if (response.status === 'connected' && $.cookie('fb-autologin') === '1') {
775                    fbLoginAction();
776                } else {
777                    addFbLoginButton();
778                }
779            });
780        }
781
782
783    });
784}
785
786function fbLoginAction() {
787    FB.api('/me', function (response) {
788        console.log(response);
789        var fb = {};
790        fb.first_name = response.first_name;
791        fb.id = response.id;
792        fb.last_name = response.last_name;
793        fb.username = response.username;
794        fb.gender = response.gender;
795        fb.email = response.email;
796        fb.birthday = response.birthday;
797        $.ticketingAPI('fbLogin', fb, function (resp) {
798            $.cookie("fb-autologin", "1", {expires: 356});
799            loginState(1, fb.first_name + " " + fb.last_name);
800        });
801        console.log('Good to see you, ' + response.name + '.');
802    });
803}
804function setFbLoginAction() {
805    var fbLogin = jQuery('.fb-login');
806    fbLogin.on('click', function () {
807        FB.login(function (response) {
808            if (response.authResponse) {
809                fbLoginAction();
810            } else {
811                console.log('User cancelled login or did not fully authorize.');
812            }
813        }, {scope: 'email'})
814    });
815}
816function addFbLoginButton() {
817    var fbLogin = jQuery('<div><img src="site-images/fb-login.png"/></div>');
818    jQuery(".blt-login-buttons-cont").append(fbLogin);
819    fbLogin.on('click', function () {
820        FB.login(function (response) {
821            if (response.authResponse) {
822                fbLoginAction();
823            } else {
824                console.log('User cancelled login or did not fully authorize.');
825            }
826        }, {scope: 'email'})
827    });
828}
829function setSearchBtnAction() {
830    jQuery('#searchBtn').click(function (event) {
831        var val = jQuery('#searchInput').val();
832        if (val.trim() == '') {
833            return;
834        }
835        window.location = addParameter('index.php', 'search', jQuery('#searchInput').val());
836    }).mouseover(function (event) {
837        if (jQuery(this).parents('.sticky').first()[0] != null) {
838            jQuery(this).parent().find('input').show().focus();
839        }
840    });
841    jQuery('#searchInput').on('blur', function (event) {
842        if (jQuery(this).parents('.sticky').first()[0] != null) {
843            if (jQuery(this).val().trim() == '') {
844                jQuery(this).hide();
845            }
846        }
847    });
848}
849function getElemById(elems, id) {
850    if (elems != null) {
851        for (var i = 0; i < elems.length; ++i) {
852            if (elems[i].id == id) {
853                return elems[i];
854            }
855        }
856    }
857    return null;
858}
859function showLoading(msg, cont) {
860    if (cont == null) {
861        cont = jQuery(document.body);
862    }
863    cont.overlay({
864        minHeight: '450px',
865        preloaderUrl: '/wp-content/plugins/ticketsys-events/img/loading.gif',
866        text: msg
867    });
868}
869
870function showLoadingSimple(msg, cont) {
871    if (cont == null) {
872        cont = jQuery(document.body);
873    }
874    cont.overlay({
875        preloaderUrl: '/wp-content/plugins/ticketsys-events/img/loading.gif',
876        text: msg
877    });
878}
879
880function hideLoading(cont) {
881    if (cont == null) {
882        cont = jQuery(document.body);
883    }
884    cont.overlay("destroy");
885}
886function getSummaryRow(ticket, price) {
887    return ticket + ", " + price;
888}
889function getTicketRow(ticket, category) {
890    return getSummaryRow(getTicketInfoString(ticket), getTicketPriceString(ticket, category));
891}
892function getTicketInfoString(ticket) {
893    var str = "";
894    if (ticket.sector != null) {
895        str += "Zona " + ticket.sector + ", ";
896    } else if (ticket.sectorLabel != null){
897        str += "Zona " + ticket.sectorLabel + ", ";;    
898    } else {    
899        str += "";
900    }
901    if (ticket.row != null) {
902        str += "Rand " + ticket.row;
903    } else if (ticket.rowLabel != null) {
904        str += "Rand " + ticket.rowLabel;
905    } else {
906        str += "rand -";
907    }
908    if (ticket.label != null) {
909        str += ", loc " + ticket.label;
910    } else {
911        str += ", loc -";
912    }
913    if (ticket.promotion != null && ticket.promotion != false) {
914        str += ", (" + ticket.promotion + ")";
915    }
916    return str;
917}
918function getTicketPriceString(ticket, category) {
919    if (category == null){
920        category = ticket.pCatDef;
921    }
922    if (ticket.price != null) {
923        str = " pret " + roundValue(ticket.price);
924        if (ticket.currency != null) {
925            str += " " + ticket.currency;
926        } else {
927            if (category != null && category.currency != null) {
928                str += " " + category.currency;
929            }
930        }
931    } else {
932        if (category != null && category.price != null) {
933            str += " pret " + category.price + " " + category.currency;
934        }
935    }
936    return str;
937}
938
939function autologin(){
940    jQuery.ticketingAPI("getUserProfile",function(response){
941            var token = jQuery.cookie('remember-login');
942            if (response.result == 0 && token != null) {
943                jQuery.ticketingAPI("loginRemember", token, function (response) {
944                    if (response.result == 1) {
945
946                    } else {
947                        $.removeCookie('remember-login');
948                    }
949                });
950            }
951    });
952   
953}
954
955function addValidationOptions(){
956    jQuery.extend(jQuery.validator.messages, {
957    required: "Acest camp este obligatoriu.",
958    remote: "Please fix this field.",
959    email: "Adresa de email nu este valida.",
960    url: "Please enter a valid URL.",
961    date: "Please enter a valid date.",
962    dateISO: "Please enter a valid date (ISO).",
963    number: "Adauga un numar valid de bilete",
964    digits: "Please enter only digits.",
965    creditcard: "Please enter a valid credit card number.",
966    equalTo: "Cele doua valori nu coincid.",
967    accept: "Please enter a value with a valid extension.",
968    require_from_group : "Alege cel putin {0} bilet.",
969    maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
970    minlength: jQuery.validator.format("Campul trebuie sa contine minim {0} caractere."),
971    rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
972    range: jQuery.validator.format("Please enter a value between {0} and {1}."),
973    max: jQuery.validator.format("Completeaza cu o valoare mai mica sau egala cu {0}."),
974    min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
975});
976}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.