﻿function SetReply(comment, replyName, replyEmail, commentTextBox, authorEmail, authorName) { commentTextBox.value = "<i>Reply To: <b>" + authorName + "</b>"; replyName.value = authorName; replyEmail.value = authorEmail }; function GetControlRef(parentControl, tagName, controlId) { var items = parentControl.getElementsByTagName(tagName); for (var i = 0; i < items.length; i++) { if (items[i].id.indexOf(controlId) != -1) { return items[i] } } return null }; String.prototype.clean = function () { return (this.toString().replace(/[^a-zA-Z 0-9'.@\n\r]+/g, '').replace(/^\s+|\s+$/g, '')) }; function Get(elementId) { return document.getElementById(elementId) }; function GetByTagName(parentControl, tagName, controlType) { var objs = new Array(); var cnt = 0; var temp = parentControl.getElementsByTagName(tagName); for (var i = 0; i < temp.length; i++) { if (temp[i].type == controlType) { objs[cnt] = temp[i]; cnt++ } } return objs }; String.prototype.trim = function () { return (this.toString().replace(/^\s+|\s+$/g, '')) }; function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func } else { window.onload = function () { oldonload(); func() } } }; String.format = function () { var s = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("\\{" + i + "\\}", "gm"); s = s.replace(reg, arguments[i + 1]) } return s }; function ConvertToDate(dateString, onlyDate) { if (dateString != null) { if (onlyDate == true) { return dateFormat(eval(dateString.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")), "mmm dd, yyyy") } return dateFormat(eval(dateString.replace(/\/Date\((\d+)\)\//gi, "new Date($1)")), "mmm dd, yyyy hh:mm TT") } else { return "" } }; function ValidateEmail(email) { var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; return expr.test(email) }; var isShift = false; function keyUP(keyCode) { if (keyCode == 16) isShift = false }; function isNumeric(keyCode) { if (keyCode == 16) isShift = true; return ((keyCode >= 48 && keyCode <= 57 || keyCode == 8 || keyCode == 9 || (keyCode >= 96 && keyCode <= 105)) && isShift == false) }; String.prototype.HtmlEncode = function () { return $('<div/>').text(this.toString()).html() }; String.prototype.HtmlDecode = function () { return $('<div/>').html(this.toString()).text() }; var loader = "<img src = '/images/loading3.gif' alt = 'Loading...' style = 'height:35px;width:35px' />"; var serviceUrl = "/Services/Common.asmx/"; function AjaxCall(method, params, successMethod, extraParams) { if (extraParams != null) { try { if (extraParams.Pager != null) { extraParams.Pager[0].disabled = true; extraParams.Pager[0].className = "" } } catch (e) { } try { if (extraParams.Container != null) { if (extraParams.Loader == null) { extraParams.Container.html(loader) } else { extraParams.Container.html(extraParams.Loader) } } } catch (e) { } } var ajaxUrl = method.indexOf("/") == -1 ? serviceUrl + method : method; $.ajax({ type: "POST", url: ajaxUrl, data: params, contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { if (typeof successMethod != "undefined") { successMethod(response, extraParams) } }, error: function (response) { alert(response.responseText) }, failure: function (response) { alert(response.responseText) } }) }; function ValidateControl(control) { var isValid = true; $("input[type=text], input[type=password], textarea", control).each(function () { if ($(this)[0].nextSibling != null && $(this)[0].nextSibling.className == "error") { if (jQuery.trim($(this).val()) == "") { if (isValid) { isValid = false } $(this)[0].nextSibling.style.visibility = "visible" } else { $(this)[0].nextSibling.style.visibility = "hidden" } } }); return isValid }; function Load() { $("input[id*=txtSearch]").live("keyup", function (event) { if (event.keyCode == 13) Search() }); $("#txtSubscriberEmail").live("keyup", function (event) { if (event.keyCode == 13) SubscribeVisitor() }); $("input[id*=txtSearch]").Watermark(); $("input[type=image], input[type=submit]").live("click", function () { $("#IsPostBack").val("true"); $("#PostbackControl").val($(this)[0].name) }); $(document).ready(function () { ApplyValidation(".form input[type=image], .form .submit") }) }; function Load2() { $("input[type=text], textarea").live("blur", function (event) { $(this).val($(this).val().clean()) }) }; function ApplyValidation(selector) { $(selector).each(function () { var attr = ""; if ($(this)[0].getAttributeNode("onclick") != null) { attr = $(this)[0].getAttributeNode("onclick").value } $(this)[0].setAttribute("onclick", ""); $(this).click(function () { if (attr == null) { return ValidateControl($(this).parents(".form")) } if (ValidateControl($(this).parents(".form"))) { var funcs = attr.split(';'); for (var i in funcs) { if (funcs[i].indexOf("return") != -1) { var val; eval("val = " + funcs[i].replace("return", "")); if (!val) { return val } } else { eval(funcs[i]) } } return true } return false }) }) }; (function () { $.fn.Watermark = function () { $(this).live('focusout', function () { if (this.value == "") { this.value = this.title } }); $(this).live('focusin', function () { if (this.value == this.title) { this.value = "" } }) } })(jQuery); function Carousel(id, interval) { var autoscrolling = true; $('#' + id).infiniteCarousel().mouseover(function () { autoscrolling = false }).mouseout(function () { autoscrolling = true }); setInterval(function () { if (autoscrolling) { $('#' + id).trigger('next') } }, interval) }; (function () { $.fn.infiniteCarousel = function () { function repeat(str, n) { return new Array(n + 1).join(str) } return this.each(function () { var $wrapper = $('> div', this).css('overflow', 'hidden'), $slider = $wrapper.find('> ul').width(9999), $items = $slider.find('> li'), $single = $items.filter(':first'); singleWidth = $single.outerWidth(), visible = Math.ceil($wrapper.innerWidth() / singleWidth), currentPage = 1, pages = Math.ceil($items.length / visible); if ($items.length % visible != 0) { $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible))); $items = $slider.find('> li') } $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned')); $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned')); $items = $slider.find('> li'); $wrapper.scrollLeft(singleWidth * visible); function gotoPage(page) { var dir = page < currentPage ? -1 : 1, n = Math.abs(currentPage - page), left = singleWidth * dir * visible * n; $wrapper.filter(':not(:animated)').animate({ scrollLeft: '+=' + left }, 500, function () { if (page > pages) { $wrapper.scrollLeft(singleWidth * visible); page = 1 } else if (page == 0) { page = pages; $wrapper.scrollLeft(singleWidth * visible * pages) } currentPage = page }) } $wrapper.after('<a href="#" style = "display:none" class="arrow back">&lt;</a><a href="#"  style = "display:none" class="arrow forward">&gt;</a>'); $('a.back', this).click(function () { gotoPage(currentPage - 1); return false }); $('a.forward', this).click(function () { gotoPage(currentPage + 1); return false }); $(this).bind('goto', function (event, page) { gotoPage(page) }); $(this).bind('next', function () { gotoPage(currentPage + 1) }) }) } })(jQuery); var left = -9; var top = 34; var IsMouseOverPopUp; function BindHoverMenu(target, menu) { $("#" + target).live("mouseover", function () { IsMouseOverPopUp = false; var p = GetCordinates($(this).get(0)); $("#dvMenu").css("left", (parseInt(p.x) + parseInt(left)) + "px"); $("#dvMenu").css("top", (parseInt(p.y) + 34) + "px"); $("#dvMenu").css("display", "block"); $("#dvMenu").html($("#" + menu).html()); $(this).mouseout(function () { HideHoverMenu() }) }); $("#dvMenu, #" + target).live("mouseover", function () { IsMouseOverPopUp = true }); $("#dvMenu, #" + target).live("mouseout", function () { IsMouseOverPopUp = false; HideHoverMenu() }) }; function GetCordinates(obj) { var p = {}; p.x = obj.offsetLeft; p.y = obj.offsetTop; while (obj.offsetParent) { p.x = p.x + obj.offsetParent.offsetLeft; p.y = p.y + obj.offsetParent.offsetTop; if (obj == document.getElementsByTagName("body")[0]) { break } else { obj = obj.offsetParent } } return p }; function HideHoverMenu() { setTimeout(function () { if (!IsMouseOverPopUp) { $("#dvMenu").css("display", "none") } }, 500) }; function GetRelatedArticles(theme) { $("#dvRelatedArticles div").html(loader); AjaxCall("GetRelatedArticles", "{articleId:" + article.ArticleId + "}", function (r) { $("#dvRelatedArticles div").html("<ul></ul>"); for (var i in r.d) { $("#dvRelatedArticles ul").append(String.format("<li><a href = '/{3}/Articles/{0}.aspx'>{1}</a><br />{2}</li>", r.d[i].Slug, r.d[i].Title, r.d[i].Description, theme)) } Carousel("dvRelatedArticles", 3000) }) }; function GetComments(pageIndex, theme) { $("#dvMoreComments").html(loader); AjaxCall("GetComments", "{slug: '" + article.Slug + "', approved:" + approved + ", pageIndex:" + pageIndex + "}", function (response) { $("#lblNoComments").css("display", "none"); if (response.d.HasRows) { $.template("CommentTemplate", CommentTemplate); $.tmpl("CommentTemplate", response.d.Data).appendTo("#dvComments") } else { $("#lblNoComments").css("display", "block") } if ($("#dvComments .comment").length < response.d.Parameters.RecordCount) { var a = "<a href = 'javascript:;' onclick = 'GetComments(" + (pageIndex + 1) + ", \"" + theme + "\")'><img alt = 'More comments' title = 'More comments' src = '/images/" + theme + "/more.png'/></a>"; $("#dvMoreComments").html(a) } else { $("#dvMoreComments").html("") } }) }; function GetAllComments() { $("#dvMoreComments").html(loader); AjaxCall("GetAllComments", "{slug: '" + article.Slug + "', approved:" + false + "}", function (response) { $("#dvMoreComments").html(""); $("#dvComments").html(""); $("#lblNoComments").css("display", "none"); if (response.d.length > 0) { $.template("CommentTemplate", CommentTemplate); $.tmpl("CommentTemplate", response.d).appendTo("#dvComments") } else { $("#lblNoComments").css("display", "block") } }) }; function ProcessComments(control, action) { var commentIds = ""; switch (control.tagName) { case "A": commentIds = control.parentNode.getElementsByTagName("input")[0].value; processComments('{commentIds: "\'' + commentIds + '\'"}', action, "Do you want to delete this comment?"); break; case "INPUT": var count = 0; $("#dvComments input[type=checkbox]:checked").each(function () { commentIds += "'" + $(this).parent().parent().children("td:eq(1)").children("input").val() + "',"; count++ }); processComments('{commentIds: "' + commentIds.substr(0, commentIds.length - 1) + '"}', action, String.format("Do you want to delete {0} comments?", count)); break } }; function processComments(data, action, message) { var method; switch (action) { case "approve": method = "ApproveComments"; break; case "delete": if (!confirm(message)) { return } method = "DeleteComments"; break } $("#dvComments").html(""); AjaxCall(method, data, function () { GetAllComments() }) }; function VerifySelectedComments() { $("#btnApproveComments")[0].disabled = $("#dvComments input[type=checkbox]:checked").length == 0; $("#btnDeleteComments")[0].disabled = $("#dvComments input[type=checkbox]:checked").length == 0 }; function AddComment() { var comment = {}; comment.Author = {}; var isReply = $("#txtName").length == 0; if (!isReply) { $("#txtEmail")[0].nextSibling.innerHTML = "Required"; if (!ValidateEmail(jQuery.trim($("#txtEmail").val()))) { $("#txtEmail")[0].nextSibling.innerHTML = "Invalid email address."; $("#txtEmail")[0].nextSibling.style.visibility = "visible"; return false } $("#txtEmail")[0].nextSibling.style.visibility = "hidden"; comment.Author.AuthorName = jQuery.trim($("#txtName").val()); comment.Author.AuthorEmail = jQuery.trim($("#txtEmail").val()) } else { if ($("#comments input[type=radio]:checked").length == 0) { alert("Please select a comment to reply."); return false } comment.Author.AuthorName = $("#lblName").html(); comment.Author.AuthorEmail = $("#lblEmail").html(); comment.CommentId = $("#comments input[type=radio]:checked").parent().parent().children("td:eq(1)").children("input").val() } comment.CommentBody = jQuery.trim($("#txtBody").val().HtmlEncode()); comment.IPAddress = IPAddress; var cExpression = typeof (CaptchaExpression) == "undefined" ? "" : CaptchaExpression; AjaxCall("AddComment", "{comment: " + JSON.stringify(comment) + ",article:" + JSON.stringify(article) + ", securityCode: '" + jQuery.trim($("#txtSecurityCode").val() + "',captchaExpression: '" + cExpression + "',isReply: " + isReply + "}"), function (response) { if (response.d == false) { $("#txtSecurityCode")[0].nextSibling.style.visibility = "visible" } else { if (!isReply) { $("#dvAddComment").css("display", "none"); $(".greenbox").css("display", "block") } else { GetAllComments(); $("#dvAddComment input[type=text], textarea").each(function () { $(this).val("") }) } } }); return false }; function SubscribeVisitor() { if (ValidateEmail(jQuery.trim($("#txtSubscriberEmail").val()))) { DisplaySubscriberMessage(loader, ""); var newsletterSubscriber = {}; newsletterSubscriber.VisitorName = $("#txtSubscriberEmail").val().split('@')[0]; newsletterSubscriber.VisitorEmail = $("#txtSubscriberEmail").val(); AjaxCall("SubscribeVisitor", "{newsletterSubscriber: " + JSON.stringify(newsletterSubscriber) + "}", OnSubscribeSuccess) } else { $("#dvSubscriberMessage")[0].className = "error"; $("#dvSubscriberMessage").html("Invalid email address."); $("#dvSubscriberMessage").css("display", "block") } return false }; function OnSubscribeSuccess(r) { if (r.d == true) { DisplaySubscriberMessage("Thank you! You are now subscribed.", "title") } else { DisplaySubscriberMessage("You are already subscribed.", "error") } }; function DisplaySubscriberMessage(message, className) { $("#dvSubscriberMessage")[0].className = className; $("#dvSubscriberMessage").html(message); $("#dvSubscriberMessage").css("display", "block"); $("#btnGo").css("display", "none"); $("#txtSubscriberEmail").css("display", "none") }; function Search() { var txtSearch = $("input[id*=Search]"); if (txtSearch.val() != "" && txtSearch.val() != txtSearch[0].title) { window.location = encodeURI(String.format(SearchUrl + "?q={0}", $("input[id*=txtSearch]").val())) } return false }; function CategorizedSearch() { var txtSearch = $("#txtSearch1"); if (txtSearch.val() == "" || txtSearch.val() == txtSearch[0].title) { return false } return true }; function SendContactEmail() { var email = {}; email.Author = {}; $("#txtEmail")[0].nextSibling.innerHTML = "Required"; if (!ValidateEmail(jQuery.trim($("#txtEmail").val()))) { $("#txtEmail")[0].nextSibling.innerHTML = "Invalid email address."; $("#txtEmail")[0].nextSibling.style.visibility = "visible"; $("#InvalidEmail").css("visibility", "visible"); return false } $("#txtEmail")[0].nextSibling.style.visibility = "hidden"; email.Author.AuthorName = jQuery.trim($("#txtName").val()); email.Author.AuthorEmail = jQuery.trim($("#txtEmail").val()); email.Subject = jQuery.trim($("#txtSubject").val()); email.Body = $("#txtBody").val().replace(/\n\r?/g, '<br />'); email.IPAddress = IPAddress; AjaxCall("SendContactEmail", "{email: " + JSON.stringify(email) + ", securityCode: '" + jQuery.trim($("#txtSecurityCode").val() + "',captchaExpression: '" + CaptchaExpression + "'}"), function (response) { if (response.d == false) { $("#txtSecurityCode")[0].nextSibling.style.visibility = "visible" } else { $("#dvSendEmail").css("display", "none"); $(".greenbox").css("display", "block") } }); return false }; function GetCategories() { $("#txtCategories").tokenInput('/Handlers/Common.ashx?action=categories', { classes: { tokenList: "token-input-list-facebook", token: "token-input-token-facebook", tokenDelete: "token-input-delete-token-facebook", selectedToken: "token-input-selected-token-facebook", highlightedToken: "token-input-highlighted-token-facebook", dropdown: "token-input-dropdown-facebook", dropdownItem: "token-input-dropdown-item-facebook", dropdownItem2: "token-input-dropdown-item2-facebook", selectedDropdownItem: "token-input-selected-dropdown-item-facebook", inputToken: "token-input-input-token-facebook"} }) }; function GrabUrls(text) { var urlRegex = /(https?:\/\/[^\s]+)/g; return text.replace(urlRegex, '<a href="$1" target = "_blank">$1</a>') };
