<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs
	title="Fuzzy Clock"
	directory_title="Fuzzy Clock"
	title_url="http://www.cjmillisock.com"
	description="The time is expressed in words, inspired by the Linux fuzzy clock"
	author="CJ Millisock"
	author_email="cj.feedback@gmail.com"
	author_location="Paradise, PA"
	screenshot="http://www.cjmillisock.com/gmodules/fuzzyclock.jpg"
	render_inline="never"
/>
<UserPref name="fuzziness" display_name="Fuzziness Level" required="true" default_value="1" datatype="enum">
	<EnumValue value="1" display_value="Least Fuzzy"/>
	<EnumValue value="2" display_value="Somewhat Fuzzy"/>
	<EnumValue value="3" display_value="Kinda Fuzzy"/>
	<EnumValue value="4" display_value="Pretty Fuzzy"/>
	<EnumValue value="5" display_value="Very Fuzzy"/>
	<EnumValue value="6" display_value="Extremely Fuzzy"/>
	<EnumValue value="7" display_value="Absolute Fuzziness"/>
</UserPref>

<UserPref name="fontName" display_name="Font" required="true" default_value="Arial" datatype="enum">
	<EnumValue value="Arial"/>
	<EnumValue value="Times"/>
	<EnumValue value="Courier"/>
</UserPref>

<UserPref name="middleWord" display_name="Middle Word" required="true" default_value="until" datatype="enum">
	<EnumValue value="until"/>
	<EnumValue value="to"/>
	<EnumValue value="of"/>
	<EnumValue value="'til"/>
	<EnumValue value="til"/>
	<EnumValue value="before"/>
</UserPref>

<UserPref name="fontColor" display_name="Font Color" required="true" default_value="Google Blue" datatype="enum">
	<EnumValue value="Google Blue"/>
	<EnumValue value="Blue"/>
	<EnumValue value="Green"/>
	<EnumValue value="Yellow"/>
	<EnumValue value="Red"/>
	<EnumValue value="White"/>
	<EnumValue value="Black"/>
	<EnumValue value="Orange"/>
</UserPref>

<UserPref name="backgroundColor" display_name="Background Color" required="true" default_value="Google Blue" datatype="enum">
	<EnumValue value="Google Blue"/>
	<EnumValue value="Blue"/>
	<EnumValue value="Green"/>
	<EnumValue value="Yellow"/>
	<EnumValue value="Red"/>
	<EnumValue value="White"/>
	<EnumValue value="Black"/>
	<EnumValue value="Orange"/>
</UserPref>

<UserPref name="fontSize" display_name="Font Size" required="true" default_value="18" datatype="enum">
	<EnumValue value="8"/>
	<EnumValue value="10"/>
	<EnumValue value="12"/>
	<EnumValue value="14"/>
	<EnumValue value="16"/>
	<EnumValue value="18"/>
	<EnumValue value="20"/>
	<EnumValue value="22"/>
</UserPref>
	<Content type="html">
		<![CDATA[
			<div id="fuzzyClock" style="font: 18pt Verdana, sans-serif; text-align: center"></div>
			<script type="text/javascript">
			 _IG_RegisterOnloadHandler(function() { startClock(); });
			preferences = new _IG_Prefs(__MODULE_ID__)
			fuzzinessLevel = preferences.getString( "fuzziness" )
			fontName = preferences.getString( "fontName" )
			_gel( "fuzzyClock" ).style.fontFamily = fontName

			fontColor = preferences.getString( "fontColor" )
			if( fontColor == "Google Blue" )
				_gel( "fuzzyClock" ).style.color = "000088"
			else
				_gel( "fuzzyClock" ).style.color = fontColor

			backgroundColor = preferences.getString( "backgroundColor" )
			if( backgroundColor == "Google Blue" )
				_gel( "fuzzyClock" ).style.backgroundColor = "E5ECF9"
			else
				_gel( "fuzzyClock" ).style.backgroundColor = backgroundColor
			
			middleWord = preferences.getString( "middleWord" );
			
			fontSize = preferences.getString( "fontSize" );
				_gel( "fuzzyClock" ).style.fontSize = fontSize + "pt"

			function startClock()
			{
				var hours;
				var minutes;
				var seconds;
				var day;
				var displayHours;
				
				var dayWords = new Array(7)
				dayWords[ 0 ] = "Sunday"
				dayWords[ 1 ] = "Monday"
				dayWords[ 2 ] = "Tuesday"
				dayWords[ 3 ] = "Wednesday"
				dayWords[ 4 ] = "Thursday"
				dayWords[ 5 ] = "Friday"
				dayWords[ 6 ] = "Saturday"
				
				
				var hourWords = new Array(12)
				hourWords[ 0 ] = "Twelve"
				hourWords[ 1 ] = "One"
				hourWords[ 2 ] = "Two"
				hourWords[ 3 ] = "Three"
				hourWords[ 4 ] = "Four"
				hourWords[ 5 ] = "Five"
				hourWords[ 6 ] = "Six"
				hourWords[ 7 ] = "Seven"
				hourWords[ 8 ] = "Eight"
				hourWords[ 9 ] = "Nine"
				hourWords[ 10 ] = "Ten"
				hourWords[ 11 ] = "Eleven"
				hourWords[ 12 ] = "Twelve"
				
				var AMorPM = "am"
				var theTime = new Date();
				var hours = theTime.getHours();
				var minutes = theTime.getMinutes();
				var seconds = theTime.getSeconds();
				var day = theTime.getDay();
				
				displayHours = hours;
				
				if( hours >= 12 )
				{
					AMorPM = "pm"
				}
				if( hours > 12 )
				{
					displayHours -= 12;
				}
				if( hours == 0 )
				{
					displayHours = 12;
				}
				
				//*********least fuzzy
				if( fuzzinessLevel == "1" )
				{
					if( minutes <= 2 )
						_gel("fuzzyClock").innerHTML = hourWords[ displayHours ] + " o'clock";
					else if( minutes >= 3 && minutes <= 7 )
						_gel("fuzzyClock").innerHTML = "Five past " + hourWords[ displayHours ];
					else if( minutes >= 8 && minutes <= 12 )
						_gel("fuzzyClock").innerHTML = "Ten past " + hourWords[ displayHours ];
					else if( minutes >= 13 && minutes <= 17 )
						_gel("fuzzyClock").innerHTML = "Quarter past " + hourWords[ displayHours ];
					else if( minutes >= 18 && minutes <= 22 )
						_gel("fuzzyClock").innerHTML = "Twenty past " + hourWords[ displayHours ];
					else if( minutes >= 23 && minutes <= 27 )
						_gel("fuzzyClock").innerHTML = "Twenty-five past " + hourWords[ displayHours ];
					else if( minutes >= 28 && minutes <= 32 )
						_gel("fuzzyClock").innerHTML = "Half past " + hourWords[ displayHours ];
					else if( minutes >= 33 && minutes <= 37 )
						_gel("fuzzyClock").innerHTML = "Twenty-five " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 38 && minutes <= 42 )
						_gel("fuzzyClock").innerHTML = "Twenty " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 43 && minutes <= 47 )
						_gel("fuzzyClock").innerHTML = "Quarter " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 48 && minutes <= 52 )
						_gel("fuzzyClock").innerHTML = "Ten " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 53 && minutes <= 57 )
						_gel("fuzzyClock").innerHTML = "Five " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 58 )
						_gel("fuzzyClock").innerHTML = (hourWords[ (displayHours + 1) % 12 ]) + " o'clock";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
	
				//*********somewhat fuzzy
				else if( fuzzinessLevel == "2" )
				{
					if( minutes <= 5 )
						_gel("fuzzyClock").innerHTML = hourWords[ displayHours ] + " o'clock";
					else if( minutes >= 6 && minutes <= 15 )
						_gel("fuzzyClock").innerHTML = "Ten past " + hourWords[ displayHours ];
					else if( minutes >= 16 && minutes <= 25 )
						_gel("fuzzyClock").innerHTML = "Twenty past " + hourWords[ displayHours ];
					else if( minutes >= 26 && minutes <= 35 )
						_gel("fuzzyClock").innerHTML = "Half past " + hourWords[ displayHours ];
					else if( minutes >= 36 && minutes <= 45 )
						_gel("fuzzyClock").innerHTML = "Twenty " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 46 && minutes <= 55 )
						_gel("fuzzyClock").innerHTML = "Ten " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 56 )
						_gel("fuzzyClock").innerHTML = (hourWords[ (displayHours + 1) % 12 ]) + " o'clock";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
					
				else if( fuzzinessLevel == "3" )
				{
					//*********kinda fuzzy
					if( minutes <= 7 )
						_gel("fuzzyClock").innerHTML = hourWords[ displayHours ] + " o'clock";
					else if( minutes >= 8 && minutes <= 22 )
						_gel("fuzzyClock").innerHTML = "Quarter past " + hourWords[ displayHours ];
					else if( minutes >= 23 && minutes <= 37 )
						_gel("fuzzyClock").innerHTML = "Half past " + hourWords[ displayHours ];
					else if( minutes >= 38 && minutes <= 52 )
						_gel("fuzzyClock").innerHTML = "Quarter " + middleWord + " " + (hourWords[ (displayHours + 1) % 12 ]);
					else if( minutes >= 53 )
						_gel("fuzzyClock").innerHTML = (hourWords[ (displayHours + 1) % 12 ]) + " o'clock";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
				
				else if( fuzzinessLevel == "4" )
				{
					//*********pretty fuzzy
					if( minutes <= 14 )
						_gel("fuzzyClock").innerHTML = hourWords[ displayHours ] + " o'clock";
					else if( minutes >= 15 && minutes <= 44 )
						_gel("fuzzyClock").innerHTML = "Half past " + hourWords[ displayHours ];
					else if( minutes >= 45 )
						_gel("fuzzyClock").innerHTML = (hourWords[ (displayHours + 1) % 12 ]) + " o'clock";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
				
				else if( fuzzinessLevel == "5" )
				{
					//*********very fuzzy
					if( minutes <= 30 )
						_gel("fuzzyClock").innerHTML = hourWords[ displayHours ] + " o'clock";
					else if( minutes >= 31 )
						_gel("fuzzyClock").innerHTML = (hourWords[ (displayHours + 1) % 12 ]) + " o'clock";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
					
				else if( fuzzinessLevel == "6" )
				{
					//*********extremely fuzzy
					if( hours < 5 )
						_gel("fuzzyClock").innerHTML = "Early Morning";
					else if( hours >= 5 && hours <= 8 )
						_gel("fuzzyClock").innerHTML = "Morning";
					else if( hours >= 9 && hours <= 10 )
						_gel("fuzzyClock").innerHTML = "Almost Noon";
					else if( hours >= 11 && hours <= 12 )
						_gel("fuzzyClock").innerHTML = "Noon";
					else if( hours >= 13 && hours <= 15 )
						_gel("fuzzyClock").innerHTML = "Afternoon";
					else if( hours >= 16 && hours <= 18 )
						_gel("fuzzyClock").innerHTML = "Evening";
					else if( hours >= 19 && hours <= 21 )
						_gel("fuzzyClock").innerHTML = "Late Evening";
					else if( hours >= 22 )
						_gel("fuzzyClock").innerHTML = "Night";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
					
				else if( fuzzinessLevel == "7" )
				{
					//*********absolute fuzziness
					if( day == 1 || day == 2 )
						_gel("fuzzyClock").innerHTML = "Start of Week";
					else if( day == 3 || day == 4 )
						_gel("fuzzyClock").innerHTML = "Middle of Week";
					else if( day == 5 )
						_gel("fuzzyClock").innerHTML = "End of Week";
					else if( day == 6 || day == 0 )
						_gel("fuzzyClock").innerHTML = "Weekend";
					else
						_gel("fuzzyClock").innerHTML = "ERROR";
				}
				
				setTimeout( 'startClock()', 1000 );
			}
			</script >
		]]>
	</Content>

</Module>
