There are some great things you can do with the css text- shadow property.
Here is a cool stamped text effect using a background and a text shadow in combination.
Give your background element a grey background color, and give the text a white shadow.
As complex paperless forms become full fledged web applications, there is a growing need for automation such as having a form available to be used from a certain date/time range. For example, a health insurance sign up that opens on December 1 at 9:00 AM and closes on December 24th at 5:00pm Pacific Time. We want these times to be hard coded for the server, in case the users are from different time zones, we want everyone to be able to sign up at exactly the same server time, regardless of their location. So if they were from New York, they would be open to sign up at 3pm December 1st, etc….
We need a few variables. open_date – the date / time that the form will open close_date – the date / time that the form will close today_date_server – the current date/time of the servertoday_date_user – the current date/time of the users machine. user_time_difference – the difference between the users time and the servers time. this could be used to display correct messages about when the user can sign up.
openorclosed – this will be set by the logic then used to display the correct messages and ui views closedmessage – this will be a spot for the special message that will display to the user when the form is closed.
So now that I have my variables set up, lets put them to use. I will compare the dates and make sure that today is within the form opening range. Then I will set the openorclosed variable to open or closed based on the results. The I will update the ui view according to the openorclosed variable.
Here is the final form opening and closing automation logic in VbScript:
open_date = "9/2/" & year(NOW) & " 09:00 AM"
close_date = "10/14/" & year(NOW) & " 05:00 PM"
today_date_server = NOW()
datediffopen = DateDiff("n",today_date_server, open_date)
datediffclosed = DateDiff("n", today_date_server, close_date)
If datediffopen < 0 and datediffclosed > 0 Then
openorclosed = "open"
Else
openorclosed = "closed"
End If
This will automatically open and close the form to the users every year. Hooray for Automation!
Now I can manipulate the ui view using the variables, so the user will know when the form is open and why its closed.
[code language=”vb”]
If datediffopen > 0 and datediffclosed > 0 Then
‘display message for before the form has opened for the year.
openorclosedmessage=”The nomination form will be open from ” & open_date & ” to ” & close_date & “. Please submit your nominations between this time period for them to be considered.”
ElseIf datediffopen < 0 and datediffclosed < 0 Then
‘display message for after form has closed for the year.
openorclosedmessage=”The nominations were due by ” & close_date & “. The nominations are over for the ” & year(NOW) & ” year. The nomination form is closed.”
End If[/code]
To display the date and time in a user friendly format – Tuesday, October 14, 2014 at 5:00:00 PM – use the FormatDateTime function: [code language=”vb”]FormatDateTime(close_date, 1) at FormatDateTime(close_date, 3)[/code]
To debug the automation code, use this snippet:
[code language=”vb”]
‘ this message is for de bugging the open / close automation
closedmessage = closedmessage + “<p class=’redtext boldtext’>Today is ” & today_date_server & “. The form will open on ” & open_date & ” and close on ” & close_date & “. Is today inside the date range?” & isitopenorclose & “. The date dif open is ” & datediffopen & “. the date diff closed is ” & datediffclosed & “</p>”
[/code]
Now I would like to take this a bit further, by having the form open on the first Monday of January, and close on the last Friday of January. Here is the algorithm I have come up with:
[code]
mydate = “1/1/” & year(NOW) & ” 9:00 AM”
dtmDate = CDate(mydate)
daycounter = 1
Do While daycounter <= 7
‘ response.write(Weekday(dtmDate) & ” is the weekday for ” & dtmDate & “<br/>”)
If Weekday(dtmDate) = 2 Then
response.write(“<br>The form will open on ” & FormatDateTime(dtmDate, 1))
Exit Do
End If
daycounter = daycounter + 1
dtmDate = dtmDate + 1
Loop
daycounter = 1
Do While daycounter <= 31
‘response.write(“<br />” & Weekday(dtmDate) & ” is the weekday for ” & dtmDate & “<br/>”)
If Weekday(dtmDate) = 6 Then
thelastfriday=dtmDate
End If
daycounter = daycounter + 1
dtmDate = dtmDate + 1
Loop
response.write(“<br>The form will close on ” & FormatDateTime(thelastfriday, 1))
[/code]
For the year 2014, the result will display: The form will open on Monday, January 06, 2014 The form will close on Friday, January 31, 2014
Now I can drop this into my forms that will open in the pattern of first Monday, and close on last Friday of January.
Due to the strict Web Content Accessibility Guidelines for institutions that serve public internet content to users around the world, I am updating some legacy apps to use a date picker to allow user to enter their birthdate. After some research I’ve decided that the jQuery UI datepicker would be the perfect thing to use due to its ability to work in almost every browser that exists.
The first thing I will do is to read the docs at jQuery official site. Now that I have a good understanding of the scripts and code involved, lets break down the minimum requirements to have this working in a page.
I would want the user to click into the text field…
…and have the picker pop up, with drop downs to choose the month and year…
…then they click to chose the day.
The audience for this user case scenario are adults of an age to be interested in information about college. The device target includes desktop and laptop computers. Mobile devices have native form controls that would conflict with this script.
We start with my html 5 template, then add the calls to the google cdn to get the jquery plug in scripts.
[code language=”html”]<script src=”http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js”></script>
<link rel=”stylesheet” href=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css” />
<script src=”http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js”></script>[/code]
Next we have a form with a date element, given proper name and id attributes.
That’s all there is to it. While testing on the desktop, it is working well in Chrome, Firefox and Internet Explorer.
To avoid the problems of overlayed natives on mobile devices , We just use a “text” input instead of the html5 “date” input element. We can easily use CSS media queries JavaScript to change the data type on the fly.
According to the Microsoft Docs, The InStr(string1, string2) function returns the position of the first occurrence of one string within another.
We can use this to find a string within another one. For example. I wish to see if an email address is from the Skagit.edu domain. I want to see if the address is firstname.lastname@skagit.edu so I can use the first and last name in a greeting.
I need a server side check for basic email address syntax. I will use a regular expression to match the pattern of xxxxx@yyyyy.zzz
Function GetEmailValidator()
Set GetEmailValidator = New RegExp
GetEmailValidator.Pattern = "^((?:[A-Z0-9_%+-]+.?)+)@((?:[A-Z0-9-]+.)+[A-Z]{2,4})$"
GetEmailValidator.IgnoreCase = True
End Function
This is a great function, but how to use it? Well, you test it like so:
Dim EmailValidator : Set EmailValidator = GetEmailValidator()
If EmailValidator.Test(to_email) = False Then ..... execute code for when an invalid email is found
I would like to begin by describing how I worked my way up to my current position of I.T. Developer at Skagit Valley College. I started working at the help desk assisting students with log-ins and computer issues. During some downtime my supervisor, Benjy, decided to test out my Web Assistant skills. I seemed to have a natural talent for editing the web pages and Benjy saw my potential, so he put me to work doing Web Assistant tasks. I began to develop what Dr. Coorough, the MIT department chair, has said are rare talents: the ability to learn HTML, CSS, Javascript, and pretty much any other programming language. I can also do most everything multimedia related such as graphics, video production, printing, and Flash. As a technician, I can solve technical support issues, hardware upgrades and application installation. I was doing such a good job that I was asked to be hired on part time as an IT developer. Benjy moved me from the help desk down the hall into an office with him, and we set to work designing the first Paperless Progress Reporting System for the college. I began by creating the Information Architect Documents. After thorough documentation and planning I began to implement my designs by hand coding using a relatively new technique called Model View Controller. This is very different than a standard webpage, and even a normal web application is not the same as an MVC web application. The MVC technique of coding is very powerful and allows me to perform complex operations from a web page interface. Benjy and I put that power to use in the form of converting an age old paper progress reports system into a paperless progress reporting system.
Successfully managed 68 unit apartment complex. Responsible for advertising and renting empty units, collection and recording of rent, coordinating move-outs and move-ins, customer service and tenant relations. Responsible for rapid turnover of move outs including cleaning, painting, maintenance, repair and remodeling of units. Routinely perform grounds keeping, landscaping, building upkeep, and preventative maintenance of entire premises including outdoor lighting, automated sprinkler system, security entrances, elevator. Conducted weekly inventory reports and ordered parts/supplies.
Notable achievements include keeping complex full with a waiting list, modernizing units with new appliances, fixtures and accessories. Responsible for unit turnovers and emergency maintenance with skills including custom carpentry, counter tops, cabinets, major remodeling, installation of appliances, hot water tanks, plumbing, electrical, drywall repair, texture and paint.
I flew to Anchorage, Alaska then took a small plane to Dutch Harbor. I went on board the Diomedes, a Russian owned crab fishing and processing vessel. We were the only boat allowed to fish in the Russian Sea of Okhotsk. During 6 months at sea, I became experienced in pulling crab pots with live crab using the Hansen Hauler hydraulic system and sorting male/ female and legal sized crab. Skilled at baiting crab pots on deck of vessel. Experienced in all phases of seafood processing and packing including butchering, cooking, and packing of crab. Also including freezer on and off loading of finished product and supplies. Promoted to process foreman in charge of 13 men and responsible for additional duties included quality control, cooking and freezing of product, and maintaining processing equipment.
In charge of final detail cleaning of new construction projects. Promoted to foreman in charge of leading cleaning crews from 13-22 men on large scale projects to government standards.
One Pacific Tower – 2000 1st Avenue, Seattle, WA 98121
Lead cleaning crews of up to 22 men to provide final detail cleaning for turnover completed project to owners. One Pacific Tower is a 27-story luxury tower on 1st Avenue on the edge of Belltown and Downtown Seattle just 2 blocks from Pike Place Market. The affluent 27-story tower features a 24-hour concierge, indoor pool, guest suite, club room and 80 units which boast expansive western views.
Everett Navy Exchange
Lead 13-22 men crews to final detail clean the entire 60,000 sq ft mall after 18 months of construction. The amenities included full size auto repair shop, hair salon, dry cleaners, food services, retail sales, large restrooms, and 1000’s of square feet of windows. This was an enormous project to manage, and even back then I used a computer to come up with solutions to time, project and staff planning and management.