diff options
Diffstat (limited to 'public/js/util.js')
| -rw-r--r-- | public/js/util.js | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/public/js/util.js b/public/js/util.js new file mode 100644 index 0000000..7b2520e --- /dev/null +++ b/public/js/util.js @@ -0,0 +1,137 @@ +var URLregexp = /^(https?:\/\/)(www.)?([-A-Z0-9.]+)(\/)?([-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])*/ig; +var months = { Jan: 0, Feb: 1, Mar: 2, Apr: 3, May: 4, Jun: 5, Jul: 6, Aug: 7, Sep: 8, Oct: 9, Nov: 10, Dec: 11 } +function isScrolledIntoView (elem) + { + return true; + var docViewTop = $(window).scrollTop(); + var docViewBottom = docViewTop + $(window).height(); + var elemTop = $(elem).offset().top; + var elemBottom = elemTop + $(elem).height(); + return ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)); + } +function scrollToTop (div) + { $(div).scrollTop( 0 ) } +function scrollToBottom (div) + { $(div).scrollTop( $(div)[0].scrollHeight ) } +function warn(s) + { +// return + console.log(s) + var h = document.getElementById('msg').innerHTML + h = s + '<br/>' + h + document.getElementById('msg').innerHTML = h + } +var image_extensions = ["jpg","gif","png","jpeg","JPEG","JPG","GIF","PNG"] +function is_image(s) + { + for (i in image_extensions) + { + if (s.indexOf(image_extensions[i]) !== -1) + return true + } + return false + } +var domain_extensions = [".com",".net",".org",".uk",".fr",".de",".ch",".info",".nu",".mu",".io","facebook.com","twitter.com"] +function has_domain(s) + { + for (var i in domain_extensions) + { + if (s.indexOf(domain_extensions[i]) !== -1) + return true + } + return false + } +function parse_blurb(s) + { + // s = linkify(s+"\n") + var parsed_lines = [] + var lines = s.split("\n") + for (i in lines) + { + var parsed_words = [] + var words = lines[i].split(" ") + for (j in words) + { + if (words[j].indexOf("http") !== -1) + { + if (is_image(words[j])) + parsed_words.push('<img src="'+words[j]+'"/>') + else + parsed_words.push(linkify(words[j])) + } + else if (words[j].indexOf("www") === 0 || has_domain(words[j])) + { + parsed_words.push(linkify("http://"+words[j])) + } + else + parsed_words.push(words[j]) + } + parsed_lines.push( parsed_words.join(" ") ) + } + // return s.replace(/\n/g, '<br/>') + return parsed_lines.join("<br/>") + } +function linkify(s) + { + var link = ''; + var punctuation = ''; + var end = s.length-1; + + // strip the terminal punctuation mark if it's a period or comma + if (s.indexOf(".", end) === end || s.indexOf(",", end) === end) + { + punctuation = s.substr(end, 1); + s = s.substr(0, end); + } + if (s.indexOf("twitter.com") !== -1) + { + var partz = s.split("/"); + var uname = ''; + if (partz[partz.length-1].length) + uname = partz[partz.length-1]; + else if (parts[-2].length) + uname = partz[partz.length-2]; + link = '<a href="https://twitter.com/' + uname + '" target="_blank">@' + uname + '</a>'; + } + else + { + // link = s.replace(URLregexp,"<a href='$1$2$3$4$5' target='_blank'>[$3]</a>"); + var match = URLregexp.exec(s); + if (match && match.length == 6) + { + var url = match[0] || ""; + var http = match[1] || ""; + var www = match[2] || ""; + var domain = match[3] || ""; + var slash = match[4] || ""; + var uri = match[5] ? match[5].replace(/\/?index.html$/, "") : ""; + link = '<a href="' + url + '" target="_blank">[' + domain + ']</a>'; + } + else + { + link = s.replace(URLregexp,"<a href='$1$2$3$4$5' target='_blank'>[$3]</a>"); + } + } + return link + punctuation; + } +var URL = + { + auth: + { + login: "/login", + logout: "/logout", + }, + party: + { + list: "/api/party/list", + view: "/api/party/view", + edit: "/api/party/edit", + }, + user: + { + all: "/api/user/all", + view: "/api/user/view", + edit: "/api/user/edit", + destroy: "/api/user/destroy", + }, + }; |
