
var AutoComplete = Vue.extend(
    {
        data: function () {
            return {
                suggestions: [],
                sWord: '',
                sysLanguageUid: -1,
                typeAhead: true
            }
        },
        watch: {
            sWord: function (value) {
                if (this.typeAhead) {
                    if (this.sWord.length >= 3) {
                        this.fetchData(this.sWord);
                    } else {
                        this.suggestions = [];
                    }
                }
            }
        },
        methods: {
            fetchData: function (sword) {
                var self = this;
                var ajaxUrl = '/?type=1481794251&tx_nextsearch_pi1[sword]=' + this.sWord + '&tx_nextsearch_pi1[languageUid]=' + this.sysLanguageUid;
                var suggestions = [];
                $.ajax({
                    url: ajaxUrl
                }).done(function (data) {
                    if (data) {
                        suggestions = data;
                    }
                }).always(function () {
                    if (sword === self.sWord) {
                        self.suggestions = suggestions;
                    }
                });
            },
            chooseOption: function (suggestion) {
                this.sWord = suggestion.baseWord;
            }
        }
    }
);


			// decrypt helper function
		function decryptCharcode(n,start,end,offset) {
			n = n + offset;
			if (offset > 0 && n > end) {
				n = start + (n - end - 1);
			} else if (offset < 0 && n < start) {
				n = end - (start - n - 1);
			}
			return String.fromCharCode(n);
		}
			// decrypt string
		function decryptString(enc,offset) {
			var dec = "";
			var len = enc.length;
			for(var i=0; i < len; i++) {
				var n = enc.charCodeAt(i);
				if (n >= 0x2B && n <= 0x3A) {
					dec += decryptCharcode(n,0x2B,0x3A,offset);	// 0-9 . , - + / :
				} else if (n >= 0x40 && n <= 0x5A) {
					dec += decryptCharcode(n,0x40,0x5A,offset);	// A-Z @
				} else if (n >= 0x61 && n <= 0x7A) {
					dec += decryptCharcode(n,0x61,0x7A,offset);	// a-z
				} else {
					dec += enc.charAt(i);
				}
			}
			return dec;
		}
			// decrypt spam-protected emails
		function linkTo_UnCryptMailto(s) {
			location.href = decryptString(s,-2);
		}
		