/////////////////////////////////////////////////////// // // localendar.com - Common.js // /////////////////////////////////////////////////////// var ppcIE =((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5))); var ppcNN6 =((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)); var ppcNN =((navigator.appName == "Netscape")&&(document.layers)) ; var posX = 4; var posY = 4; var now = new Date("02/09/10"); function today() { var result = "" var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth(); curr_month++; var curr_year = (d.getFullYear()+"").substring(2,4); if (curr_month<10) result+="0"; result += curr_month + "-"; if (curr_date<10) result+="0"; result+=curr_date + "-" + curr_year; return result } function getPos(atImg) { // MO: Using jQuery to get position 2/1/10 var position=$('#'+atImg).offset(); posX=position.left; posY=position.top; /* if ( ppcIE ) { posX = getOffsetLeft(document.images[atImg]); posY = getOffsetTop(document.images[atImg]) + document.images[atImg].height; } else if (ppcNN) { posX = document.images[atImg].x; posY = document.images[atImg].y + document.images[atImg].height; } */ } function fn_chg_color(lcfield,pcolor){ fn_chk_color(lcfield,pcolor); } function fn_chk_color(lcfield,pcolor){ var numStr = "0123456789ABCDEFabcdef"; if (pcolor.length==0) return true; for (i = 0; i < pcolor.length; i++) { thisChar = pcolor.charAt(i); if (numStr.indexOf(thisChar) == -1){ alert("Please enter a valid six character hexidecimal color value."); lcfield.value = ''; return false; } } if (pcolor.length!=6){ alert("Please enter a valid six character hexidecimal color value."); lcfield.value = ''; return false; } lcfield.value = pcolor; return true; } function validateNewUser(lcform){ if (( !isEmail(lcform)) || (! checkZip(lcform)) || (! isName(lcform)) || (! checkPassword(lcform)) || (! checkAgree(lcform))) return false; return true; } function checkSelect(lcform){ var w = eval("document." + lcform.name + ".event_category"); var count = 0; for (var x = 0; x < w.length; x++) { if (lcform.event_category[x].checked) { count++ } } if (count == 0 ) { alert("\No categories selected.\n\nPlease select at least one category.") lcform.event_category[0].focus(); return false; } return true; } function category_check(lcform,pvalue){ var w = eval("document." + lcform.name + ".event_category"); for (var x = 0; x < w.length; x++) { if (pvalue == 'all'){ w[x].checked = true; }else { w[x].checked = false; } } } function popup(info){ var view_window; var lcf; info=info.toUpperCase(); if (info=="HELP") lcf="FAQ"; if (info=="LEGAL") lcf="Legal"; if (info=="A1CLEGAL") lcf="A1CLEGAL"; if (info=="PRIVACY") lcf="Privacy"; if (info=="A1CPRIVACY") lcf="A1CPRIVACY"; // if (info=="PRINTCAL") lcf="PrintableCalendar"; view_window = window.open("/elsie?JSP="+lcf+"&context=None", "localendar", "width=500,height=500,scrollbars=yes,resizable=yes"); view_window.focus(); } function popupEventAdd() { view_window = window.open("/elsie?JSP=EventEditorAnon", "localendar", "width=545,height=550,menubar=yes,scrollbars=yes,resizable=yes"); } function popupPrintableCalendar() { var view_window = window.open("/elsie?JSP=PrintableCalendar&context=None", "printablelocalendar", "toolbar=yes,menubar=yes,width=700,height=600,scrollbars=yes,resizable=yes"); view_window.focus(); } function lc_navjump(p_direction,p_menutype,p_startdate){ window.location.href="/elsie?JSP=Calendar&mode=MONTH_"+p_direction+"&menu_type="+p_menutype+"&start_date="+p_startdate; } function lc_dayjump(p_menutype,p_date){ window.location.href="/elsie?JSP=Calendar&menu_type=D0&start_date="+p_date; } function lc_weekjump(p_menutype,p_date){ window.location.href="/elsie?JSP=Calendar&menu_type=W0&start_date="+p_date; } function lc_monthjump(p_menutype,p_date){ window.location.href="/elsie?JSP=Calendar&menu_type=M0&start_date="+p_date; } /* function lc_publishjump(p_menutype,p_date,p_calendarid,p_rsslink){ window.location.href="/elsie?JSP=PublishedCalendar&mode=PUBLISH_PUBLIC&search_type="+p_menutype+"&start_date="+p_date+"&calendar_id="+p_calendarid+"&rss_link="+p_rsslink; } */ function lc_searchjump(p_zip,p_radius,p_date,p_type){ window.location.href="/elsie?JSP=SearchResults&mode=ADVSEARCH&zip="+p_zip+"&radius="+p_radius+"&start_date="+p_date+"&search_type="+p_type; } function lc_pubsearchjump(p_zip,p_radius,p_date,p_type){ window.location.href="/elsie?JSP=PublishedSearch&mode=PUBSEARCH&zip="+p_zip+"&radius="+p_radius+"&start_date="+p_date+"&search_type="+p_type; } function HelpWindow(vers){ var view_window; view_window = window.open("/elsie?JSP="+vers+"FAQ&context=None", vers+"FAQ","width=500,height=500,scrollbars=yes,resizable=yes"); view_window.title = "FAQ"; view_window.focus(); } function AddEvent(){ window.location.href="/elsie?DAM=EventEditor" } function Preferences(){ window.location.href="/elsie?JSP=PreferencesGeneral" } function Search(){ window.location.href="/elsie?JSP=Search" } function PublicEventDetail(calendar_id, event_id, more_info, exportDate) { var detail_window = window.open("http://www.localendar.com/elsie?DAM=PublishedEvent&event_id="+event_id+"&calendar_id="+calendar_id+"&more_info="+more_info+"&export_date="+exportDate, "previewevent","width=400,height=400,scrollbars=yes,resizable=yes"); detail_window.focus(); } function zipSearchSubmit(lcform) { var c = lcform.city.value; if (c.length < 3) { alert ("Please enter at least the first 3 characters of the city"); return false; } return true; } function checkAdvSearch(lcform) { if ((! checkZip(lcform)) || (! checkSelect(lcform))) return false; else return true; } function prefsEventsSubmit(lcform) { if (checkZip(lcform)) return true; else return false; } function prefsGeneralSubmit(lcform) { if (checkDayViewRange(lcform)) return true; else return false; } function isNumber(data) { var numStr = "0123456789"; for (i = 0; i < data.length; i++) { thisChar = data.charAt(i); if (numStr.indexOf(thisChar) == -1) return false; } return true; } function checkZip(lcform) { var zipcode = lcform.zip.value; if ((!isNumber(zipcode)) || zipcode == "" || zipcode.length != 5) { alert ("You must enter a valid 5 digit zipcode."); lcform.zip.focus(); return false; } return true; } function checkDayViewRange(lcform) { var dayStart = lcform.dayStart.selectedIndex+1; var dayEnd = lcform.dayEnd.selectedIndex+1; if (dayEnd<=dayStart) { alert ("Please make sure the day-view 'To:' hour is later than the 'From:' hour."); lcform.dayStart.focus(); return false; } return true; } // if you put one space in then it passes function checkSubject(lcform) { var subject = lcform.event_title.value; if (subject == "") { alert ("To schedule an event, you must enter an event title."); lcform.event_title.select(); return false; } return true; } function checkChangeMemberLogon(lcform) { var str = lcform.username.value; // Return false if characters are not a-z, A-Z, or 1-9. for (var i = 0; i < str.length; i++) { var ch = str.substring(i, i + 1); if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch) && (ch < "0" || "9" < ch)) || ch ==' ' && ch != '.') { if (ch!='_' && ch!='-') { alert("\nThe Member Name only accepts letters & numbers (spaces are not allowed).\n\nPlease change your member name."); lcform.username.select(); lcform.username.focus(); return false; } } } return true; } function isName(lcform) { var str = lcform.username.value; // Return false if name field is blank. if (str == "") { alert("\nThe Member Name is blank.\n\nPlease enter your member name.") lcform.username.focus(); return false; } return checkChangeMemberLogon(lcform); } function isEmail(lcform) { // Return false if e-mail field is blank. var str = lcform.email.value; if (str == "") { alert("\nThe Email Address is blank.\n\nPlease enter your email address.") lcform.email.focus(); return false; } // Return false if e-mail field does not contain a '@' and '.' . if (str.indexOf ('@',0) == -1 || str.indexOf ('.',0) == -1){ alert("\nPlease enter a valid Email Address.") lcform.email.select(); lcform.email.focus(); return false; } return true; } function checkPassword(lcform) { var pw1 = lcform.password.value; var pw2 = lcform.confirmpw.value; // Return false if pw don't match. if (lcform.password.value == "") { alert("\nThe Password is blank.\n\nPlease enter your Password.") lcform.password.focus(); return false; } if (lcform.confirmpw.value == "") { alert("\nThe Re-Enter Password field is blank.\n\nPlease re-enter your password.") lcform.confirmpw.focus(); return false; } if (pw1 != pw2) { alert("\nPasswords don't match.\n\nPlease check your password."); lcform.password.select(); lcform.password.focus(); return false; } // Return false if characters are not '0-9' or '.' . for (var i = 0; i < pw1.length; i++) { var ch = pw1.substring(i, i + 1); if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch) && (ch < "0" || "9" < ch)) || ch ==' ' && ch != '.') { if (ch!='_' && ch!='-') { alert("\nThe Password field only accepts letters & numbers (spaces are not allowed).\n\nPlease change your password."); lcform.password.select(); lcform.password.focus(); return false; } } } return true; } function checkChangePassword(lcform) { var old_pw = lcform.password.value; var new_pw1 = lcform.newpassword.value; var new_pw2 = lcform.confirmpassword.value; if (old_pw == "") { alert("\nThe Password is blank.\n\nPlease enter your Password.") lcform.password.focus(); return false; } if (new_pw2 == "") { alert("\nThe Confirm Password field is blank.\n\nPlease re-enter your password.") lcform.confirmpassword.focus(); return false; } if (new_pw1 != new_pw2) { alert("\nNew passwords don't match.\n\nPlease check your password."); lcform.newpassword.select(); lcform.newpassword.focus(); return false; } // Return false if characters are not '0-9' or '.' . for (var i = 0; i < new_pw1.length; i++) { var ch = new_pw1.substring(i, i + 1); if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch) && (ch < "0" || "9" < ch)) || ch ==' ' && ch != '.') { if (ch!='_' && ch!='-') { alert("\nThe Password field only accepts letters & numbers (spaces are not allowed).\n\nPlease change your password."); lcform.newpassword.select(); lcform.newpassword.focus(); return false; } } } return true; } function checkAgree(lcform) { if (!lcform.agree.checked) { alert("Please indicate that you accept the Terms of Service"); lcform.agree.focus(); return false; } return true; } function EditEvent(event_id,event_public) { window.location.href="/elsie?DAM=EventEditor&event_id="+event_id+"&public_event="+event_public; } function getRestaurants(zipcode) { var view_window; view_window = window.open("http://www.usrg.com/script/nearzip.asp?ZIP="+zipcode,"localendar","width=800,height=500,scrollbars=yes,resizable=yes"); view_window.focus(); } function trim(strValue) { var intLoop=0; for(intLoop=0; intLoop=0; intLoop=strValue.length-1) { if(strValue.charAt(intLoop)==" ") strValue=strValue.substring(0,intLoop); else break; } return strValue; } // // Task-related functions // function addTask() { window.location.href="/elsie?DAM=EventEditor" } function deleteTask(index) { if (confirm("Are you sure you want to delete entry\n\""+taskList[index].title+"\" ?")) window.location.href="/elsie?DAM=TaskEditor&task_id="+taskList[index].tId+"&action=D"; } function editTask(task_id) { window.location.href="/elsie?DAM=TaskEditor&task_id="+task_id; } function AnonAddInfo() { var view_window; view_window = window.open("/elsie?JSP=AnonAddInfo", "localendar", "width=475,height=565,scrollbars=no,resizable=yes"); view_window.focus(); } /** * DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML . * Author: Drew Diller * Email: drew.diller@gmail.com * URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/ * Version: 0.0.7a * Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license * * Example usage: * DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector * DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement **/ /* PLEASE READ: Absolutely everything in this script is SILLY. I know this. IE's rendering of certain pixels doesn't make sense, so neither does this code! */ var DD_belatedPNG = { ns: 'DD_belatedPNG', imgSize: {}, createVmlNameSpace: function() { /* enable VML */ if (document.namespaces && !document.namespaces[this.ns]) { document.namespaces.add(this.ns, 'urn:schemas-microsoft-com:vml'); } if (window.attachEvent) { window.attachEvent('onbeforeunload', function() { DD_belatedPNG = null; }); } }, createVmlStyleSheet: function() { /* style VML, enable behaviors */ /* Just in case lots of other developers have added lots of other stylesheets using document.createStyleSheet and hit the 31-limit mark, let's not use that method! further reading: http://msdn.microsoft.com/en-us/library/ms531194(VS.85).aspx */ var style = document.createElement('style'); document.documentElement.firstChild.insertBefore(style, document.documentElement.firstChild.firstChild); var styleSheet = style.styleSheet; if (styleSheet!=null) { try { styleSheet.addRule(this.ns + '\\:*', '{behavior:url(#default#VML)}'); styleSheet.addRule(this.ns + '\\:shape', 'position:absolute;'); styleSheet.addRule('img.' + this.ns + '_sizeFinder', 'behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;'); /* large negative top value for avoiding vertical scrollbars for large images, suggested by James O'Brien, http://www.thanatopsic.org/hendrik/ */ } catch(r) {} this.styleSheet = styleSheet; } }, readPropertyChange: function() { var el = event.srcElement; if (event.propertyName.search('background') != -1 || event.propertyName.search('border') != -1) { DD_belatedPNG.applyVML(el); } if (event.propertyName == 'style.display') { var display = (el.currentStyle.display == 'none') ? 'none' : 'block'; for (var v in el.vml) { el.vml[v].shape.style.display = display; } } if (event.propertyName.search('filter') != -1) { DD_belatedPNG.vmlOpacity(el); } }, vmlOpacity: function(el) { if (el.currentStyle.filter.search('lpha') != -1) { var trans = el.currentStyle.filter; trans = parseInt(trans.substring(trans.lastIndexOf('=')+1, trans.lastIndexOf(')')), 10)/100; el.vml.color.shape.style.filter = el.currentStyle.filter; /* complete guesswork */ el.vml.image.fill.opacity = trans; /* complete guesswork */ } }, handlePseudoHover: function(el) { setTimeout(function() { /* wouldn't work as intended without setTimeout */ DD_belatedPNG.applyVML(el); }, 1); }, /** * This is the method to use in a document. * @param {String} selector - REQUIRED - a CSS selector, such as '#doc .container' **/ fix: function(selector) { var selectors = selector.split(','); /* multiple selectors supported, no need for multiple calls to this anymore */ for (var i=0; i size.H) { c.B = size.H; } el.vml.image.shape.style.clip = 'rect('+c.T+'px '+(c.R+fudge)+'px '+c.B+'px '+(c.L+fudge)+'px)'; } else { el.vml.image.shape.style.clip = 'rect('+dC.T+'px '+dC.R+'px '+dC.B+'px '+dC.L+'px)'; } }, fixPng: function(el) { el.style.behavior = 'none'; if (el.nodeName == 'BODY' || el.nodeName == 'TD' || el.nodeName == 'TR') { /* elements not supported yet */ return; } el.isImg = false; if (el.nodeName == 'IMG') { if(el.src.toLowerCase().search(/\.png$/) != -1) { el.isImg = true; el.style.visibility = 'hidden'; } else { return; } } else if (el.currentStyle.backgroundImage.toLowerCase().search('.png') == -1) { return; } var lib = DD_belatedPNG; el.vml = {color: {}, image: {}}; var els = {shape: {}, fill: {}}; for (var r in el.vml) { for (var e in els) { var nodeStr = lib.ns + ':' + e; el.vml[r][e] = document.createElement(nodeStr); } el.vml[r].shape.stroked = false; el.vml[r].shape.appendChild(el.vml[r].fill); el.parentNode.insertBefore(el.vml[r].shape, el); } el.vml.image.shape.fillcolor = 'none'; /* Don't show blank white shapeangle when waiting for image to load. */ el.vml.image.fill.type = 'tile'; /* Ze magic!! Makes image show up. */ el.vml.color.fill.on = false; /* Actually going to apply vml element's style.backgroundColor, so hide the whiteness. */ lib.attachHandlers(el); lib.giveLayout(el); lib.giveLayout(el.offsetParent); /* set up element */ lib.applyVML(el); } }; try { document.execCommand("BackgroundImageCache", false, true); /* TredoSoft Multiple IE doesn't like this, so try{} it */ } catch(r) {} DD_belatedPNG.createVmlNameSpace(); DD_belatedPNG.createVmlStyleSheet(); document.write(''); document.write("
"); document.write("
Events at St. Andrew's,
February 2010
Sun
Mon
Tue
Wed
Thu
Fri
Sat
31
") document.write("
8 am - 9 am
Worship
9:30 am - 10:30 am
SS & Youth Group
10 am - 11:15 am
Worship
3 pm - 4 pm
Alpha & Omega
7:30 pm - 8:30 pm
NA
") document.write("
February 1
") document.write("
10 am - 11 am
Al Anon
6:30 pm - 7:30 pm
CCANA
7 pm - 8 pm
Women's NA
") document.write("
2
") document.write("") document.write("
3
") document.write("
6:30 pm - 7:30 pm
Non Violence Alliance
7 pm - 8 pm
Alpha & Omega
") document.write("
4
") document.write("
5:15 pm - 6:15 pm
A.A.
7:30 pm - 8:30 pm
AA
") document.write("
5
") document.write("
7:30 pm - 8:30 pm
NA
") document.write("
6
") document.write("
5 pm - 6 pm
Worship
") document.write("
7
") document.write("
8 am - 9 am
Worship
9:30 am - 10:30 am
SS & Youth Group
10 am - 11:15 am
Worship
3 pm - 4 pm
Alpha & Omega
7:30 pm - 8:30 pm
NA
") document.write("
8
") document.write("
10 am - 11 am
Al Anon
6:30 pm - 7:30 pm
Prayer Shawl Meeting
7 pm - 8 pm
Women's NA
") document.write("
9
") document.write("
7:30 am - 8:30 am
Eucharist & Breakfast
") document.write("
10
") document.write("
6:30 pm - 7:30 pm
Non Violence Alliance
7 pm - 8 pm
Alpha & Omega
") document.write("
11
") document.write("
5:15 pm - 6:15 pm
A.A.
7:30 pm - 8:30 pm
AA
") document.write("
12
") document.write("
7:30 pm - 8:30 pm
NA
") document.write("
13
") document.write("
5 pm - 6 pm
Worship
") document.write("
14
") document.write("
8 am - 9 am
Worship
9:30 am - 10:30 am
SS & Youth Group
10 am - 11:15 am
Worship
3 pm - 4 pm
Alpha & Omega
7:30 pm - 8:30 pm
NA
") document.write("
15
") document.write("
President's Day
Office Closed
10 am - 11 am
Al Anon
7 pm - 8 pm
Women's NA
") document.write("
16
") document.write("
6 pm - 7 pm
Fat Tuesday Pancake Dinner
7 pm - 8 pm
Vestry
") document.write("
17
") document.write("Ash Wednesday
12 pm - 1 pm
Holy Eucharist with Imposition of Ashes
5:30 pm - 6:30 pm
Service for Children & Parents
6:30 pm - 7:30 pm
Non Violence Alliance
7 pm - 8 pm
Alpha & Omega
7:30 pm - 8:30 pm
Holy Eucharist with Imposition Ashes
") document.write("
18
") document.write("
5:15 pm - 6:15 pm
A.A.
7:30 pm - 8:30 pm
AA
") document.write("
19
") document.write("
7:30 pm - 8:30 pm
NA
") document.write("
20
") document.write("
11 am - 12 pm
Food Pantry
5 pm - 6 pm
Worship
") document.write("
21
") document.write("
8 am - 9 am
Worship
9:30 am - 10:30 am
SS & Youth Group
10 am - 11:15 am
Worship
3 pm - 4 pm
Alpha & Omega
7:30 pm - 8:30 pm
NA
") document.write("
22
") document.write("
10 am - 11 am
Al Anon
7 pm - 8 pm
Women's NA
") document.write("
23
") document.write("
7 pm - 8 pm
NA
") document.write("
24
") document.write("
6:30 pm - 7:30 pm
Lenten Potluck Dinner
6:30 pm - 7:30 pm
Non Violence Alliance
7 pm - 8 pm
Alpha & Omega
") document.write("
25
") document.write("
5:15 pm - 6:15 pm
A.A.
7:30 pm - 8:30 pm
AA
") document.write("
26
") document.write("
7:30 pm - 8:30 pm
NA
") document.write("
27
") document.write("
5 pm - 6 pm
Worship
") document.write("
28
") document.write("
8 am - 9 am
Worship
9:30 am - 10:30 am
SS & Youth Group
10 am - 11:15 am
Worship
3 pm - 4 pm
Alpha & Omega
7:30 pm - 8:30 pm
NA
") document.write("
1
") document.write("
10 am - 11 am
Al Anon
6:30 pm - 7:30 pm
CCANA
7 pm - 8 pm
Women's NA
") document.write("
2
") document.write("") document.write("
3
") document.write("
7 pm - 8 pm
Alpha & Omega
") document.write("
4
") document.write("
5:15 pm - 6:15 pm
A.A.
7:30 pm - 8:30 pm
AA
") document.write("
5
") document.write("
7:30 pm - 8:30 pm
NA
") document.write("
6
") document.write("
5 pm - 6 pm
Worship
") document.write("
Sun
Mon
Tue
Wed
Thu
Fri
Sat
20 Catlin Street, Meriden, CT, (203)237-7451
") google_ad_client = "pub-2644230428539254"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "text_image"; google_ad_channel = "8313328509"; google_color_border = "#BFBFBF"; google_color_bg = "#BFBFBF"; google_color_link = "#840000"; google_color_text = "#840000"; google_color_url = "#840000"; document.write(""); document.write("
"); document.write("
"); document.write(""); document.write("Web Calendar powered by: localendar.com"); document.write(""); document.write(""); document.write("RSS Calendar Feed"); document.write("
"); document.write("
"); DD_belatedPNG.fix('.event_image');