Adding
diff --git a/Main/About/about.php b/Main/About/about.php
new file mode 100644
index 0000000..7bf45bb
--- /dev/null
+++ b/Main/About/about.php
@@ -0,0 +1,50 @@
+		
+		<div class="content">
+			<p class="content_para"> 
+			<b>I love you.</b> <br>
+			- Me
+			</p>
+
+			<p class="content_para" id="left_para">
+				Sasho, Charlie, Itachi, Okabe, <br>
+				no matter what name you know him by, <br>you know there's no other mad scientist quite like him. <br>
+				He's a hungry for knowledge programmer <br>with dreams nearly as big as my butt. <br>
+				If you want to find him, you can always <br>jump down the rabbit hole and you will find yourself <br>
+				soaring in the sky where you will feel freedom. <br>And where there is freedom, there is Sasho. <br>
+				He has a vast imagination and isn't afraid <br>to use it, be it for the creation of physical embodiments of his ideas <br>
+				or to find more things to do when <br>he's already late for an occasion. <br>
+				He's an exceptional person (who I'm lucky to be able to call mine) <br>
+				and you should give him gummy bears <br>or oreos when you see him <br>
+				(so that I can steal and devour them later). <br>
+				<br>
+					- <b>Dannie</b>, 12.04.2014
+			</p>
+
+			<img src="Other/us.jpg" alt="photo_of_us" id="us">
+
+			<p class="content_para" id="right_para">
+				<b>A Glimpse Of Her</b> <br>
+				<br>
+				Enchanting. Beautiful. Insane. <br>Funny. Sweet. Tender. Brilliant. <br>All of this and more. 
+				She's full of life. <br>An artist, a dancer, a nymph, a psychologist, an experimenter. <br>And she cooks. 
+				She shines, while smiling. <br>Her ember eyes are full of honesty, love and sparks. <br>
+				If I fall, she'll always catch me. Then she'll be pround of it. <br>And then she'll trip on something and someone'll get hurt. <br>
+				She provokes me, makes me think more, do more, care more. <br>I can never show my appreciation of what she's doing for me. <br>
+				Infinity is her domain and The Eight is her medium. <br>She has the bravery to pray and the will to want. <br>
+				She likes smoke, candles, lanterns and christmas lights. <br>She loves chocolate. <br>
+				I gave her many names, yet not enough to describe her. <br>
+				Never enough. <br>
+				<br>
+					- <b>Charles Scarver</b>, 11.04.2014
+			</p>
+
+		</div>
+
+		<div id="null_field">
+			<div id="null_l-eye"></div>
+			<div id="null_r-eye"></div>
+		</div>
+
+	</body>
+</html>
+
diff --git a/Main/Gallery/Pictures/photography_gallery/1453401_746373675380113_650757813_n.jpg b/Main/Gallery/Pictures/photography_gallery/1453401_746373675380113_650757813_n.jpg
new file mode 100644
index 0000000..e0ad6c3
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1453401_746373675380113_650757813_n.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1487255_781136885237125_1594610609_n.jpg b/Main/Gallery/Pictures/photography_gallery/1487255_781136885237125_1594610609_n.jpg
new file mode 100644
index 0000000..95456e5
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1487255_781136885237125_1594610609_n.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1506802_772081382809342_1055613513_n.jpg b/Main/Gallery/Pictures/photography_gallery/1506802_772081382809342_1055613513_n.jpg
new file mode 100644
index 0000000..e3e9ccf
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1506802_772081382809342_1055613513_n.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1537432_793483434002470_2021804732_o.jpg b/Main/Gallery/Pictures/photography_gallery/1537432_793483434002470_2021804732_o.jpg
new file mode 100644
index 0000000..bba68a8
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1537432_793483434002470_2021804732_o.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1658544_832597266757753_2024689380_o.jpg b/Main/Gallery/Pictures/photography_gallery/1658544_832597266757753_2024689380_o.jpg
new file mode 100644
index 0000000..b87f165
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1658544_832597266757753_2024689380_o.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1921007_835620989788714_1486883911_o.jpg b/Main/Gallery/Pictures/photography_gallery/1921007_835620989788714_1486883911_o.jpg
new file mode 100644
index 0000000..c303723
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1921007_835620989788714_1486883911_o.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/1964775_814908238526656_296891560_n.jpg b/Main/Gallery/Pictures/photography_gallery/1964775_814908238526656_296891560_n.jpg
new file mode 100644
index 0000000..1f5949a
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/1964775_814908238526656_296891560_n.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/736070_839420592742087_2556024649909096380_o.jpg b/Main/Gallery/Pictures/photography_gallery/736070_839420592742087_2556024649909096380_o.jpg
new file mode 100644
index 0000000..0223683
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/736070_839420592742087_2556024649909096380_o.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/936623_774519112565569_1436914111_n.jpg b/Main/Gallery/Pictures/photography_gallery/936623_774519112565569_1436914111_n.jpg
new file mode 100644
index 0000000..4349bba
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/936623_774519112565569_1436914111_n.jpg
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0012.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0012.JPG
new file mode 100644
index 0000000..0335d04
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0012.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0013.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0013.JPG
new file mode 100644
index 0000000..eef5f9b
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0013.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0027.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0027.JPG
new file mode 100644
index 0000000..1c47cfb
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0027.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0149.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0149.JPG
new file mode 100644
index 0000000..fc59e84
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0149.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0155.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0155.JPG
new file mode 100644
index 0000000..2cb7eb2
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0155.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0159.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0159.JPG
new file mode 100644
index 0000000..0f38f10
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0159.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0166.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0166.JPG
new file mode 100644
index 0000000..f1591e4
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0166.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0167.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0167.JPG
new file mode 100644
index 0000000..927fbc3
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0167.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0510.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0510.JPG
new file mode 100644
index 0000000..8054587
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0510.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0632.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0632.JPG
new file mode 100644
index 0000000..dfc7fc0
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0632.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0642.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0642.JPG
new file mode 100644
index 0000000..925e78e
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0642.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0678.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0678.JPG
new file mode 100644
index 0000000..1f442df
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0678.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0683.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0683.JPG
new file mode 100644
index 0000000..bd54031
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0683.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0686.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0686.JPG
new file mode 100644
index 0000000..898b37e
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0686.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0688.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0688.JPG
new file mode 100644
index 0000000..f22593a
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0688.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_0735.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_0735.JPG
new file mode 100644
index 0000000..60da0dc
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_0735.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_1112.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_1112.JPG
new file mode 100644
index 0000000..fe4d15d
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_1112.JPG
Binary files differ
diff --git a/Main/Gallery/Pictures/photography_gallery/DSC_1309.JPG b/Main/Gallery/Pictures/photography_gallery/DSC_1309.JPG
new file mode 100644
index 0000000..31206cd
--- /dev/null
+++ b/Main/Gallery/Pictures/photography_gallery/DSC_1309.JPG
Binary files differ
diff --git a/Main/Gallery/back-up.php b/Main/Gallery/back-up.php
new file mode 100644
index 0000000..a5c9b37
--- /dev/null
+++ b/Main/Gallery/back-up.php
@@ -0,0 +1,35 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+	if (!$connect) //Check is connection was successful
+		echo "Failed to connect!";
+
+	if (!mysql_select_db("charleston")) //Check is DB selection was successful
+		echo "Failed to select DB!";
+
+$gallery_name = "photography_gallery";
+$results = mysql_query("SELECT * FROM `$gallery_name`");
+	if (!$results)  // Succession check
+		echo "Failed to select elements! :c<br>";
+
+
+
+while($row = mysql_fetch_array($results)) { 
+	if (in_array($ip, $GLOBALS['admins'])
+	&& file_exists($row['Source'])) {	 
+		echo "
+		<div class=\"image_container\">
+			<a href=\"{$row['Source']}\"> <img src=\"{$row['Source']}\" alt=\"{$row['Alt']}\" class=\"gal_images\" onclick=\"clickSelector('{$row['Alt']}');\" /> </a>
+			<form method=\"POST\" id=\"image_deletion_form\">
+				<input type=\"hidden\" name=\"image_id\" value=\"{$row['Alt']}\">
+				<input type=\"submit\" name=\"DeleteImage\" value=\"Delete Image\" >
+			</form>
+		</div>";
+	} else {
+		echo "<a href=\"{$row['Source']}\"><img src=\"{$row['Source']}\" alt=\"{$row['Alt']}\" class=\"gal_images\" onclick=\"clickSelector('{$row['Alt']}');\" /></a>";
+	}
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/Main/Gallery/gallery.php b/Main/Gallery/gallery.php
new file mode 100644
index 0000000..d09c624
--- /dev/null
+++ b/Main/Gallery/gallery.php
@@ -0,0 +1,65 @@
+
+		<div class="content">
+
+			<?php
+				require_once 'gallery_code.php';
+			
+			$GLOBALS['admins'] = array("192.168.1.1","46.238.53.111");
+			$ip = $_SERVER['REMOTE_ADDR'];
+
+			if (isset($_POST['NormalView'])) {
+				$amiadmin = in_array($ip, $GLOBALS['admins']);
+				if ($amiadmin) {
+					foreach ($GLOBALS['admins'] as $key => $value) {
+						if ($value == $_SERVER['REMOTE_ADDR'])
+							unset($GLOBALS['admins'][$key]);
+					}
+				} else {
+					echo "You are not an admin. <br>";
+				}
+
+			}
+
+			if (in_array($ip, $GLOBALS['admins'])) {
+				echo "
+				<form method=\"POST\" enctype=\"multipart/form-data\" id=\"import_form\">
+					<input type=\"file\" name=\"file\" size=\"50\" >
+					<input type=\"submit\" name=\"Import\" value=\"Import Image\">
+				</form>";	
+			}
+
+			echo "<h3 class=\"titles\"> Gallery </h3> <br>";
+				
+				require_once 'gallery_delete.php';
+				//require_once 'back-up.php';
+				require_once 'gallery_print.php';
+			?>
+
+		</div>
+
+		<div id="null_field">
+			<div id="null_l-eye"></div>
+			<div id="null_r-eye"></div>
+		</div>
+
+		<?php
+			if (in_array($ip, $GLOBALS['admins'])) {
+				echo "
+					<form method=\"POST\" id=\"normal_view_form\">
+						<input type=\"submit\" name=\"NormalView\" value=\"Normal View\">				
+					</form>";
+			}
+		?>
+
+		<div id="gallery_footer">
+			
+			<a href="#top">
+				<div id="top_anchor">
+				 UP 
+				</div>
+			</a>
+
+		</div>
+
+	</body>
+</html>
\ No newline at end of file
diff --git a/Main/Gallery/gallery_code.php b/Main/Gallery/gallery_code.php
new file mode 100644
index 0000000..6fc0e77
--- /dev/null
+++ b/Main/Gallery/gallery_code.php
@@ -0,0 +1,58 @@
+<?php
+
+if(isset($_POST['Import'])) {
+	$allowedExts = array("gif", "jpeg", "jpg", "png", "JPG");
+	$temp = explode(".", $_FILES["file"]["name"]);
+	$extension = end($temp);
+
+	if ((($_FILES['file']['name'] != "" )
+	|| ($_FILES["file"]["type"] == "image/gif")
+	|| ($_FILES["file"]["type"] == "image/jpeg")
+	|| ($_FILES["file"]["type"] == "image/jpg")
+	|| ($_FILES["file"]["type"] == "image/pjpeg")
+	|| ($_FILES["file"]["type"] == "image/x-png")
+	|| ($_FILES["file"]["type"] == "image/png"))
+	&& ($_FILES["file"]["size"] < 70000000)
+	&& in_array($extension, $allowedExts))
+	{
+		if ($_FILES["file"]["error"] > 0) {
+		  echo "Error: " . $_FILES["file"]["error"] . "<br>";
+		} else {		
+
+			if (file_exists("Gallery/Pictures/photography_gallery/" . $_FILES["file"]["name"])) {
+		     	echo $_FILES["file"]["name"] . " already exists. <br>";
+		    } else {
+		      	move_uploaded_file($_FILES["file"]["tmp_name"], "Gallery/Pictures/photography_gallery/" . $_FILES["file"]["name"]);
+
+		      	$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+				if (!$connect) { //Check is connection was successful
+					echo "Failed to connect!";
+				}
+
+				if (!mysql_select_db("charleston")) { //Check is DB selection was successful
+					echo "Failed to select DB!";
+				}
+
+				$gallery_name = "photography_gallery";
+				$src = "Gallery/Pictures/photography_gallery/" . $_FILES["file"]["name"];
+		      	$name = explode('.', $_FILES["file"]["name"]);
+		      	$alt = $name[0];
+		      	$results = mysql_query("INSERT INTO `$gallery_name` (`Source`, `Alt`, `Extension`) VALUES ('$src', '$alt', '$extension')");
+		      	if (!$results)  // Succession check
+					echo "Failed to import image! :c<br>";
+		    }
+
+		    list($w, $h) = getimagesize("Gallery/Pictures/photography_gallery/" . $_FILES["file"]["name"]);
+			//echo "width - " . $w . "<br>";
+			//echo "height - " . $h . "<br>";
+		}
+
+	} else {
+		echo "<b>Invalid file</b> <br><br>";
+	}
+
+}
+
+?>
+
+
diff --git a/Main/Gallery/gallery_delete.php b/Main/Gallery/gallery_delete.php
new file mode 100644
index 0000000..ce83d46
--- /dev/null
+++ b/Main/Gallery/gallery_delete.php
@@ -0,0 +1,37 @@
+<?php
+
+if (isset($_POST['DeleteImage'])) { // Delete Image => name
+
+	$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+		if (!$connect) //Check is connection was successful
+			echo "Failed to connect!";
+
+		if (!mysql_select_db("charleston")) //Check is DB selection was successful
+			echo "Failed to select DB!";
+
+	$gallery_name = "photography_gallery";
+	$img_id = $_POST['image_id'];
+
+	$results = mysql_query("SELECT `Extension` FROM `$gallery_name` WHERE `Alt` = '$img_id'");
+		if (!$results)  // Succession check
+			echo "Failed to select elements! :c<br>";
+
+	while($row = mysql_fetch_array($results)) { 
+		$ext = $row['Extension'];
+	}
+	//echo "ext - {$ext}";
+
+	$results = mysql_query("DELETE FROM `$gallery_name` WHERE `Alt` = '$img_id'");
+	if (!$results)  // Succession check
+		echo "Failed to delete image! :c<br>";
+	else {
+		$file = "Gallery/Pictures/photography_gallery/" . $_POST['image_id'] . "." . $ext;
+		if (file_exists($file) && is_readable($file)) {
+			unlink($file);
+		}
+	}
+
+} 
+
+?>
+
diff --git a/Main/Gallery/gallery_print.php b/Main/Gallery/gallery_print.php
new file mode 100644
index 0000000..fda3cce
--- /dev/null
+++ b/Main/Gallery/gallery_print.php
@@ -0,0 +1,43 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+	if (!$connect) //Check is connection was successful
+		echo "Failed to connect!";
+
+	if (!mysql_select_db("charleston")) //Check is DB selection was successful
+		echo "Failed to select DB!";
+
+$gallery_name = "photography_gallery";
+$results = mysql_query("SELECT * FROM `$gallery_name`");
+	if (!$results)  // Succession check
+		echo "Failed to select elements! :c<br>";
+
+		
+$i = 0;
+while($row = mysql_fetch_array($results)) { 
+	$pics[$i]['Source'] = $row['Source'];
+	$pics[$i]['Alt'] = $row['Alt']; 
+	$i++;
+}
+
+$i--;
+while($i > -1) { 
+	if (in_array($ip, $GLOBALS['admins'])
+	&& file_exists($pics[$i]['Source'])) {	 
+		echo "
+		<div class=\"image_container\">
+			<a href=\"{$pics[$i]['Source']}\"> <img src=\"{$pics[$i]['Source']}\" alt=\"{$row['Alt']}\" class=\"gal_images\" onclick=\"clickSelector('{$pics[$i]['Alt']}');\" /> </a>
+			<form method=\"POST\" id=\"image_deletion_form\">
+				<input type=\"hidden\" name=\"image_id\" value=\"{$pics[$i]['Alt']}\">
+				<input type=\"submit\" name=\"DeleteImage\" value=\"Delete Image\" >
+			</form>
+		</div>";
+	} else {
+		echo "<a href=\"{$pics[$i]['Source']}\"><img src=\"{$pics[$i]['Source']}\" alt=\"{$pics[$i]['Alt']}\" class=\"gal_images\" onclick=\"clickSelector('{$pics[$i]['Alt']}');\" /></a>";
+	}
+	$i--;
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/Main/Gallery/gallery_script.js b/Main/Gallery/gallery_script.js
new file mode 100644
index 0000000..c4cdac1
--- /dev/null
+++ b/Main/Gallery/gallery_script.js
@@ -0,0 +1,59 @@
+function clickSelector (old_id) {
+	console.log("Parameter - ", old_id);
+	var img = document.getElementById(old_id);
+	if (img == null || old_id == "body_click" ) {
+		img = document.getElementById("clicked");
+	}
+	console.log(document.getElementById("clicked"));
+	console.log("ID Before change - ", img.getAttribute("id"));
+	if (img.getAttribute("id") != "clicked") {
+		if (document.getElementById("clicked") == null) {
+			img.setAttribute("id", "clicked");
+			//alert("Clicked On");
+		} else {
+			console.log("There is a zoomed image already!");
+		}
+	} else {
+		if (old_id == "body_click") {
+			img.setAttribute("id", makeId());
+		} else {
+			img.setAttribute("id", old_id);
+		}
+		//alert("Clicked Off");
+	}
+	console.log("ID After change - ", img.getAttribute("id"));
+	console.log("--------------------------------\n");
+}
+
+function makeId()
+{
+    var text = "";
+    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+
+    for( var i=0; i < 5; i++ )
+        text += possible.charAt(Math.floor(Math.random() * possible.length));
+
+    return text;
+}
+
+// ------------------------------
+
+function zoomInImage () {
+	var styleSheet = document.styleSheets[0];
+	//console.log(styleSheet.cssRules[document.styleSheets[0].cssRules.length - 1].cssText);
+	
+	styleSheet.insertRule("#clicked {max-width: 1200px; max-height: 950px; margin-top: 75px; margin-bottom: 75px;}", styleSheet.cssRules.length - 1);
+}
+
+function zoomOutImage () {
+	var styleSheet = document.styleSheets[0];
+	//console.log(styleSheet.cssRules[document.styleSheets[0].cssRules.length - 1].cssText);
+
+	styleSheet.deleteRule(styleSheet.cssRules.length - 1);
+}
+
+
+function deleteImage(id) {
+    var elem = document.getElementById(id);
+    elem.parentNode.removeChild(elem);
+} 
\ No newline at end of file
diff --git a/Main/Other/Combination.jpg b/Main/Other/Combination.jpg
new file mode 100644
index 0000000..cfb9761
--- /dev/null
+++ b/Main/Other/Combination.jpg
Binary files differ
diff --git a/Main/Other/charleston-logo.png b/Main/Other/charleston-logo.png
new file mode 100644
index 0000000..7b7fb18
--- /dev/null
+++ b/Main/Other/charleston-logo.png
Binary files differ
diff --git a/Main/Other/charleston.png b/Main/Other/charleston.png
new file mode 100644
index 0000000..cca630b
--- /dev/null
+++ b/Main/Other/charleston.png
Binary files differ
diff --git a/Main/Other/deviantart.png b/Main/Other/deviantart.png
new file mode 100644
index 0000000..24a4a7f
--- /dev/null
+++ b/Main/Other/deviantart.png
Binary files differ
diff --git a/Main/Other/deviantart1.png b/Main/Other/deviantart1.png
new file mode 100644
index 0000000..d9d7763
--- /dev/null
+++ b/Main/Other/deviantart1.png
Binary files differ
diff --git a/Main/Other/facebook.png b/Main/Other/facebook.png
new file mode 100644
index 0000000..e602375
--- /dev/null
+++ b/Main/Other/facebook.png
Binary files differ
diff --git a/Main/Other/facebook_old.png b/Main/Other/facebook_old.png
new file mode 100644
index 0000000..b1c3bb8
--- /dev/null
+++ b/Main/Other/facebook_old.png
Binary files differ
diff --git a/Main/Other/gallery-back-up.jpg b/Main/Other/gallery-back-up.jpg
new file mode 100644
index 0000000..4ebba11
--- /dev/null
+++ b/Main/Other/gallery-back-up.jpg
Binary files differ
diff --git a/Main/Other/github.png b/Main/Other/github.png
new file mode 100644
index 0000000..677d8ba
--- /dev/null
+++ b/Main/Other/github.png
Binary files differ
diff --git a/Main/Other/icon.png b/Main/Other/icon.png
new file mode 100644
index 0000000..a065112
--- /dev/null
+++ b/Main/Other/icon.png
Binary files differ
diff --git a/Main/Other/icon2.png b/Main/Other/icon2.png
new file mode 100644
index 0000000..fb1d586
--- /dev/null
+++ b/Main/Other/icon2.png
Binary files differ
diff --git a/Main/Other/icon3.png b/Main/Other/icon3.png
new file mode 100644
index 0000000..1bde21f
--- /dev/null
+++ b/Main/Other/icon3.png
Binary files differ
diff --git a/Main/Other/twitter.png b/Main/Other/twitter.png
new file mode 100644
index 0000000..1e2341d
--- /dev/null
+++ b/Main/Other/twitter.png
Binary files differ
diff --git a/Main/Other/twitter_old.png b/Main/Other/twitter_old.png
new file mode 100644
index 0000000..c53e774
--- /dev/null
+++ b/Main/Other/twitter_old.png
Binary files differ
diff --git a/Main/Other/us.jpg b/Main/Other/us.jpg
new file mode 100644
index 0000000..a6cf7ea
--- /dev/null
+++ b/Main/Other/us.jpg
Binary files differ
diff --git a/Main/Relax/Fantasy-Night-Sky.jpg b/Main/Relax/Fantasy-Night-Sky.jpg
new file mode 100644
index 0000000..ef702d3
--- /dev/null
+++ b/Main/Relax/Fantasy-Night-Sky.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/12902758-butterfly-logo.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/12902758-butterfly-logo.jpg
new file mode 100644
index 0000000..ea95310
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/12902758-butterfly-logo.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/1kQqy.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/1kQqy.jpg
new file mode 100644
index 0000000..4f59c29
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/1kQqy.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/3d free wallpapers-3.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/3d free wallpapers-3.jpg
new file mode 100644
index 0000000..fde4963
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/3d free wallpapers-3.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/blue-night-sky-moon-digital-art-157179.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/blue-night-sky-moon-digital-art-157179.jpg
new file mode 100644
index 0000000..0264cf1
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/blue-night-sky-moon-digital-art-157179.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/digital-fantasy-art.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/digital-fantasy-art.jpg
new file mode 100644
index 0000000..f846724
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/digital-fantasy-art.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/dreamy_planets.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/dreamy_planets.jpg
new file mode 100644
index 0000000..0db7275
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/dreamy_planets.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg
new file mode 100644
index 0000000..086a552
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/tumblr_mvdojtRAkw1rijfv5o2_r1_500.gif b/Main/Relax/Gallery/Pictures/CharlieScarver/tumblr_mvdojtRAkw1rijfv5o2_r1_500.gif
new file mode 100644
index 0000000..c6aa705
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/tumblr_mvdojtRAkw1rijfv5o2_r1_500.gif
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/CharlieScarver/underwater-sxc-1021580_77067223.jpg b/Main/Relax/Gallery/Pictures/CharlieScarver/underwater-sxc-1021580_77067223.jpg
new file mode 100644
index 0000000..f7e29b3
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/CharlieScarver/underwater-sxc-1021580_77067223.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/Danniesaurus/tumblr_mygzzlKfIq1t0qsoko1_500.jpg b/Main/Relax/Gallery/Pictures/Danniesaurus/tumblr_mygzzlKfIq1t0qsoko1_500.jpg
new file mode 100644
index 0000000..fe3a7c7
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/Danniesaurus/tumblr_mygzzlKfIq1t0qsoko1_500.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/Kamen/11111111111111111111111111.jpg b/Main/Relax/Gallery/Pictures/Kamen/11111111111111111111111111.jpg
new file mode 100644
index 0000000..f0e5ae6
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/Kamen/11111111111111111111111111.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/Kamen/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg b/Main/Relax/Gallery/Pictures/Kamen/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg
new file mode 100644
index 0000000..086a552
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/Kamen/ginger_drawing_practice_by_danniesaurus-d6wkw9h.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/blue_tornado/6832800031_1000f98a63_b_large.jpg b/Main/Relax/Gallery/Pictures/blue_tornado/6832800031_1000f98a63_b_large.jpg
new file mode 100644
index 0000000..234cace
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/blue_tornado/6832800031_1000f98a63_b_large.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/kalinka/blue-night-sky-moon-digital-art-157179.jpg b/Main/Relax/Gallery/Pictures/kalinka/blue-night-sky-moon-digital-art-157179.jpg
new file mode 100644
index 0000000..0264cf1
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/kalinka/blue-night-sky-moon-digital-art-157179.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/kalinka/clear-view-night-sky.jpg b/Main/Relax/Gallery/Pictures/kalinka/clear-view-night-sky.jpg
new file mode 100644
index 0000000..0149f23
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/kalinka/clear-view-night-sky.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/kalinka/dreamy_planets.jpg b/Main/Relax/Gallery/Pictures/kalinka/dreamy_planets.jpg
new file mode 100644
index 0000000..0db7275
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/kalinka/dreamy_planets.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/Pictures/killer18ys/1488663_10151951486445326_1801799280_n.jpg b/Main/Relax/Gallery/Pictures/killer18ys/1488663_10151951486445326_1801799280_n.jpg
new file mode 100644
index 0000000..ec2701c
--- /dev/null
+++ b/Main/Relax/Gallery/Pictures/killer18ys/1488663_10151951486445326_1801799280_n.jpg
Binary files differ
diff --git a/Main/Relax/Gallery/gallery.php b/Main/Relax/Gallery/gallery.php
new file mode 100644
index 0000000..696c7b9
--- /dev/null
+++ b/Main/Relax/Gallery/gallery.php
@@ -0,0 +1,34 @@
+
+		<br>
+
+		<div id="gallery_main_block" >
+		<!--onclick="if (document.getElementById('clicked') != null) {clickSelector('body_click');}"-->
+			<p id="gallery_block_title">
+				Gallery
+			</p>
+
+			<?php
+				require 'gallery_code.php';
+			?>
+
+			<div id="gallery_block_content">
+				<form method="POST" enctype="multipart/form-data">
+					<input type="file" name="file" size="50" id="choose_file" class="submits" >
+					<input type="submit" name="Import" id="import" value="Import Image" class="submits">
+				</form>
+				<br>
+				<?php
+					require 'gallery_print.php';
+				?>
+				<!--<img src="Fantasy-Night-Sky.jpg" alt="FantasyNightSky"/>-->
+			</div>
+
+			<p id="block_footer">
+				Created on 24.12.2013, 07:16<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Gallery/gallery_code.php b/Main/Relax/Gallery/gallery_code.php
new file mode 100644
index 0000000..4cca6bc
--- /dev/null
+++ b/Main/Relax/Gallery/gallery_code.php
@@ -0,0 +1,57 @@
+<?php
+
+if(isset($_POST['Import'])) {
+	$allowedExts = array("gif", "jpeg", "jpg", "png");
+	$temp = explode(".", $_FILES["file"]["name"]);
+	$extension = end($temp);
+
+	if ((($_FILES['file']['name'] != "" )
+	|| ($_FILES["file"]["type"] == "image/gif")
+	|| ($_FILES["file"]["type"] == "image/jpeg")
+	|| ($_FILES["file"]["type"] == "image/jpg")
+	|| ($_FILES["file"]["type"] == "image/pjpeg")
+	|| ($_FILES["file"]["type"] == "image/x-png")
+	|| ($_FILES["file"]["type"] == "image/png"))
+	&& ($_FILES["file"]["size"] < 250000)
+	&& in_array($extension, $allowedExts))
+ 	{
+		if ($_FILES["file"]["error"] > 0) {
+		  echo "Error: " . $_FILES["file"]["error"] . "<br>";
+		} else {
+/*			echo "Upload: " . $_FILES["file"]["name"] . "<br>";
+			echo "Type: " . $_FILES["file"]["type"] . "<br>";
+			echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
+			echo "Stored in: " . $_FILES["file"]["tmp_name"];
+*/
+			if (file_exists("Gallery/Pictures/" . $_SESSION['user'] . "/" . $_FILES["file"]["name"])) {
+		     	echo $_FILES["file"]["name"] . " already exists. <br>";
+		    } else {
+		      	move_uploaded_file($_FILES["file"]["tmp_name"], "Gallery/Pictures/" . $_SESSION['user'] . "/" . $_FILES["file"]["name"]);
+//		      	echo "Stored in: " . "Gallery/Pictures/" . $_FILES["file"]["name"];
+
+		      	$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+				if (!$connect) { //Check is connection was successful
+					echo "Failed to connect!";
+				}
+
+				if (!mysql_select_db("charleston")) { //Check is DB selection was successful
+					echo "Failed to select DB!";
+				}
+
+				$gallery_name = "gallery_" . $_SESSION['user'];
+				$src = "Gallery/Pictures/" . $_SESSION['user'] . "/" . $_FILES["file"]["name"];
+		      	$name = explode('.', $_FILES["file"]["name"]);
+		      	$alt = $name[0];
+		      	$results = mysql_query("INSERT INTO `$gallery_name` (`Source`, `Alt`) VALUES ('$src', '$alt')");
+		      	if (!$results)  // Succession check
+					echo "Failed to import image! :c<br>";
+		    }
+		}
+
+	} else {
+		echo "Invalid file<br>";
+	}
+
+}
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/Gallery/gallery_print.php b/Main/Relax/Gallery/gallery_print.php
new file mode 100644
index 0000000..aa34036
--- /dev/null
+++ b/Main/Relax/Gallery/gallery_print.php
@@ -0,0 +1,24 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+	if (!$connect) //Check is connection was successful
+		echo "Failed to connect!";
+
+	if (!mysql_select_db("charleston")) //Check is DB selection was successful
+		echo "Failed to select DB!";
+
+$gallery_name = "gallery_" . $_SESSION['user'];
+$results = mysql_query("SELECT * FROM `$gallery_name`");
+	if (!$results)  // Succession check
+		echo "Failed to select elements! :c<br>";
+
+//echo $results;
+echo "<hr>";
+
+while($row = mysql_fetch_array($results)) { ////////////////////////////////////////////////////////
+	echo "<img src=\"{$row['Source']}\" alt=\"{$row['Alt']}\" id=\"{$row['Alt']}\" class=\"gal_images\" onclick=\"clickSelector('{$row['Alt']}');\" />";
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/Gallery/gallery_script.js b/Main/Relax/Gallery/gallery_script.js
new file mode 100644
index 0000000..c4cdac1
--- /dev/null
+++ b/Main/Relax/Gallery/gallery_script.js
@@ -0,0 +1,59 @@
+function clickSelector (old_id) {
+	console.log("Parameter - ", old_id);
+	var img = document.getElementById(old_id);
+	if (img == null || old_id == "body_click" ) {
+		img = document.getElementById("clicked");
+	}
+	console.log(document.getElementById("clicked"));
+	console.log("ID Before change - ", img.getAttribute("id"));
+	if (img.getAttribute("id") != "clicked") {
+		if (document.getElementById("clicked") == null) {
+			img.setAttribute("id", "clicked");
+			//alert("Clicked On");
+		} else {
+			console.log("There is a zoomed image already!");
+		}
+	} else {
+		if (old_id == "body_click") {
+			img.setAttribute("id", makeId());
+		} else {
+			img.setAttribute("id", old_id);
+		}
+		//alert("Clicked Off");
+	}
+	console.log("ID After change - ", img.getAttribute("id"));
+	console.log("--------------------------------\n");
+}
+
+function makeId()
+{
+    var text = "";
+    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+
+    for( var i=0; i < 5; i++ )
+        text += possible.charAt(Math.floor(Math.random() * possible.length));
+
+    return text;
+}
+
+// ------------------------------
+
+function zoomInImage () {
+	var styleSheet = document.styleSheets[0];
+	//console.log(styleSheet.cssRules[document.styleSheets[0].cssRules.length - 1].cssText);
+	
+	styleSheet.insertRule("#clicked {max-width: 1200px; max-height: 950px; margin-top: 75px; margin-bottom: 75px;}", styleSheet.cssRules.length - 1);
+}
+
+function zoomOutImage () {
+	var styleSheet = document.styleSheets[0];
+	//console.log(styleSheet.cssRules[document.styleSheets[0].cssRules.length - 1].cssText);
+
+	styleSheet.deleteRule(styleSheet.cssRules.length - 1);
+}
+
+
+function deleteImage(id) {
+    var elem = document.getElementById(id);
+    elem.parentNode.removeChild(elem);
+} 
\ No newline at end of file
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/counter.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/counter.php
new file mode 100644
index 0000000..70e5a5d
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/counter.php
@@ -0,0 +1,103 @@
+<?php
+
+// Hit counter function.
+// Your probably want to remove lines that report errors. If not your website could stop working if, for example, your database is down.
+
+include ('counter_config.php');
+
+function addinfo($page)
+
+{ 
+	
+// ################################################
+// ######### connect + select  database ###########
+// ################################################
+
+	global $localhost, $dbuser, $dbpass, $dbname, $dbtablehits,$dbtableinfo,$maxrows; 
+
+	$link = mysql_connect($localhost, $dbuser, $dbpass); 
+	
+	if (!$link) 
+	{
+	    die('Could not connect: ' . mysql_error());  // remove ?
+	}	
+
+	$dbselect=mysql_select_db($dbname); 
+	if (!$dbselect) 
+	{
+    	die ("Can't use database $dbname! : " . mysql_error()); // remove ?
+	}
+	
+// ########################################################
+// ######### check if counter exsist and update ###########
+// ########################################################
+
+	if(mysql_num_rows(mysql_query("SELECT page FROM $dbtablehits WHERE page = '$page'")))
+	{
+	//A counter for this page  already exsists. Now we have to update it.
+
+		$updatecounter = mysql_query("UPDATE $dbtablehits SET count = count+1 WHERE page = '$page'");
+		if (!$updatecounter) 
+		{
+		die ("Can't update the counter : " . mysql_error()); // remove ?
+		}
+	
+	} 
+	else
+	{
+	// This page did not exsist in the counter database. A new counter must be created for this page.
+
+		$insert = mysql_query("INSERT INTO $dbtablehits (page, count)VALUES ('$page', '1')");
+	
+		if (!$insert) 
+		{
+    		die ("Can\'t insert into $dbtablehits : " . mysql_error()); // remove ?
+		}
+	}
+	
+// ####################################################
+// ######### add IP and user-agent and time ###########
+// ####################################################
+
+
+// gather user data
+$ip= $_SERVER["REMOTE_ADDR"]; 
+$agent =$_SERVER["HTTP_USER_AGENT"];
+$datetime =date("Y/m/d") . ' ' . date('H:i:s') ;
+
+
+if(!mysql_num_rows(mysql_query("SELECT ip_address FROM info WHERE ip_address = '$ip'"))) // check if the IP is in database
+{
+	// if not , add it.	
+	$adddata = mysql_query("INSERT INTO $dbtableinfo (ip_address, user_agent, datetime) VALUES('$ip' , '$agent','$datetime' ) ") ;
+	if (!$adddata) 
+	{
+	    die('Could not add IP : ' . mysql_error()); // remove ?
+	}
+}
+
+// ***************************************************************
+// ** delete the first entry in $dbtableinfo if rows > $maxrows **
+// ***************************************************************
+
+$result = mysql_query("SELECT * FROM $dbtableinfo", $link);
+$num_rows = mysql_num_rows($result);
+$to_delete = $num_rows- $maxrows;
+if($to_delete > 0)
+{
+	for ($i = 1; $i <= $to_delete; $i++) 
+	{
+
+		$delete = mysql_query("DELETE FROM $dbtableinfo ORDER BY id LIMIT 1") ;
+		if (!$delete) 
+		{
+		    die('Could not delete : ' . mysql_error()); // remove ?
+		}
+	}
+}	
+
+mysql_close($link);
+
+} 
+
+?>
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/counter_config.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/counter_config.php
new file mode 100644
index 0000000..bdbe46a
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/counter_config.php
@@ -0,0 +1,11 @@
+<?php
+// change these values :
+$localhost = 'localhost';
+$dbuser =  'root';
+$dbpass = 'rootpass';
+$dbname = 'charleston';
+$dbtablehits= 'hits';
+$dbtableinfo= 'info';
+$maxrows = 50; // Restrics how many entry´s are allowed in $dbtableinfo. if more then $maxrows , new entry´s will replace the oldest to keep your database small. 
+
+?>
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/create.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/create.php
new file mode 100644
index 0000000..18a1fbc
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/create.php
@@ -0,0 +1,49 @@
+<?php
+
+//############################################################################
+//##### run this file to create the tables needed for the counter to work #### 
+//############################################################################
+
+ include ('counter_config.php');
+
+
+$link = mysql_connect("$localhost", "$dbuser", "$dbpass");
+if (!$link) 
+{
+    die('Could not connect: ' . mysql_error());
+}
+
+echo "- Connected to database at $localhost successfully <br />";
+
+$db_selected = mysql_select_db($dbname, $link);
+if (!$db_selected) 
+{
+    die ("Can't use database $dbname! : " . mysql_error());
+}
+
+echo "- Using database $dbname <br />" ;
+
+
+$create1 = mysql_query("CREATE TABLE IF NOT EXISTS $dbtableinfo(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), ip_address VARCHAR(30), user_agent VARCHAR(50), datetime VARCHAR(25))");
+if (!$create1) 
+{
+    die("Could create table $dbtableinfo :" . mysql_error());
+}
+
+echo "- Table $dbtableinfo created.<br />";
+
+$create2 = mysql_query("CREATE TABLE IF NOT EXISTS $dbtablehits(page char(100),PRIMARY KEY(page),count int(15))");
+if (!$create2) 
+{
+    die("Could create table $dbtablehits :" . mysql_error());
+} 
+
+echo "- Table $dbtablehits created<br/>";
+
+
+mysql_close($link);
+
+echo '- You are now ready to start using the statscounter.';
+
+?>
+
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/index.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/index.php
new file mode 100644
index 0000000..61f464c
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/index.php
@@ -0,0 +1,29 @@
+<?php
+
+$page = 'The first page';
+
+// $_SERVER['PHP_SELF']
+
+include ( 'counter.php');
+addinfo($page);
+
+ 
+?>
+ 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+	<title>PHP - Hitcounter example</title>
+</head>
+
+<body>
+<p>
+Thank you for visiting the first page. View the stats <a href="view.php"> HERE.</a> 
+<br />
+Visit the second page <a href="second.php"> HERE.</a> 
+</p>
+</body>
+</html>
+	
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/second.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/second.php
new file mode 100644
index 0000000..57dd438
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/second.php
@@ -0,0 +1,29 @@
+<?php
+
+$page = 'The second page';
+
+// or use $_SERVER['PHP_SELF']
+
+include ( 'counter.php');
+addinfo($page);
+
+ 
+?>
+ 
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+	<title>PHP - Hitcounter example</title>
+</head>
+
+<body>
+<p>
+Thank you for visiting the second page. View the stats <a href="view.php"> HERE.</a> 
+<br />
+Visit the first page <a href="index.php"> HERE.</a> 
+</p>
+</body>
+</html>
+	
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/style.css b/Main/Relax/Hits/Example_Hitcounter_v1.0/style.css
new file mode 100644
index 0000000..be8d4b2
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/style.css
@@ -0,0 +1,17 @@
+body 
+{
+	font-family: verdana;
+	margin: 0px;	
+	padding: 0px;
+	background: #FFFFFF;
+	font-size: 10pt;
+
+}
+
+td			
+{
+
+font-size: 8pt;
+
+}
+
diff --git a/Main/Relax/Hits/Example_Hitcounter_v1.0/view.php b/Main/Relax/Hits/Example_Hitcounter_v1.0/view.php
new file mode 100644
index 0000000..f9012cb
--- /dev/null
+++ b/Main/Relax/Hits/Example_Hitcounter_v1.0/view.php
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+	<title>Hit viewer</title>
+	<link href="style.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+
+<?php
+	include("counter_config.php");
+	
+// ###########################
+// ### Connect to database ###
+// ###########################
+
+$link = mysql_connect($localhost, $dbuser, $dbpass); 
+if (!$link) 
+	{
+	    die('Could not connect to database : ' . mysql_error());
+	}
+$db_selected = mysql_select_db($dbname, $link);
+
+if (!$db_selected) 
+	{
+	    die ('Can\'t use database : ' . mysql_error());
+	}
+
+
+// ######################
+// ### get total hits ###
+// ######################
+	
+	$query = "SELECT SUM(count)  AS totalhits FROM hits"; 
+	 
+	$result = mysql_query($query) or die(mysql_error());
+
+	
+	while($row = mysql_fetch_array($result))
+	{
+		$totalhits = $row['totalhits']  ;
+	}
+
+// ####################
+// ### Display hits ###
+// ####################
+
+	echo '<h3>Hits</h3>' ;
+
+	$result = mysql_query("SELECT * FROM " . $dbtablehits . " ORDER BY count DESC");
+	
+	echo "<table width='100%' border='0'>";
+	echo '	<tr>
+		<td height="2" bgcolor="#1AC414" width="400">Page</td> 
+		<td height="2" bgcolor="#1AC414" width="169"> Hits</td>
+		</tr>' ;
+
+	// keeps getting the next row until there are no more to get
+	while($row = mysql_fetch_array( $result )) 
+	{
+	// Print out the contents of each row into a table
+	echo '<tr><td bgcolor="#75D169">'; 
+	echo $row['page'];
+	echo '</td><td bgcolor="#75D169">'; 
+	echo $row['count'];
+	echo '</td></tr>'; 	
+	} 
+	echo "<tr><td bgcolor=\"#1AC414\"> <strong> Total Hits </strong> </td><td bgcolor=\"#1AC414\"> <strong> $totalhits </strong> </td></tr>" ;
+	echo "</table><br /> ";
+
+// ############################
+// ### get total unique IPs ###
+// ############################
+
+$result=mysql_query("SELECT MAX(id) FROM info");
+while ($row = mysql_fetch_array($result, MYSQL_NUM)) 
+{
+$totalips = $row[0] ;  
+}
+
+
+// ########################
+// ### Display visitors ###
+// ########################
+
+echo '<h3> Visitors </h3>' ;
+
+$result = mysql_query("SELECT * FROM $dbtableinfo ORDER BY id DESC") 
+or die(mysql_error());  
+
+echo "<table width='100%' border='0'>";
+echo '<tr> <td width="200" bgcolor="#1AC414">  IP </td> <td height="2" bgcolor="#1AC414" width="400">User agent</td> <td height="2" bgcolor="#1AC414" width="169"> Date &amp; Time</td></tr>';
+
+// keeps getting the next row until there are no more to get
+while($row = mysql_fetch_array( $result )) 
+{
+	// Print out the contents of each row into a table
+	echo '<tr><td bgcolor="#75D169">'; 
+	echo $row['ip_address'];
+	echo '</td><td bgcolor="#75D169">'; 
+	echo $row['user_agent'];
+	echo '</td><td bgcolor="#75D169">'; 
+	echo $row['datetime'];
+	echo "</td></tr>"; 		
+} 
+	echo "<tr><td bgcolor=\"#1AC414\"> <strong> Total unique IP´s </strong> </td><td bgcolor=\"#1AC414\"> <strong> $totalips </strong> </td></tr>" ;
+	echo "</table><br /> ";
+?>
+
+</body>
+</html>
+
diff --git "a/Main/Relax/Hyousa Rurutia \133 musicbox \135.mp3" "b/Main/Relax/Hyousa Rurutia \133 musicbox \135.mp3"
new file mode 100644
index 0000000..8064cfb
--- /dev/null
+++ "b/Main/Relax/Hyousa Rurutia \133 musicbox \135.mp3"
Binary files differ
diff --git a/Main/Relax/Login/login.php b/Main/Relax/Login/login.php
new file mode 100644
index 0000000..21d3fb7
--- /dev/null
+++ b/Main/Relax/Login/login.php
@@ -0,0 +1,30 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Log In
+			</p>
+
+			<?php 
+				require 'login_code.php';
+			?>
+
+			<form method="POST" id="block_content">
+				<label for="Username">Username:</label>
+				<input id="Username" name="Username" maxlength="20" type="text" class="non_submit_input" required="required"><br>
+				<label for="Password">Password:</label>
+				<input id="Password" name="Password" maxlength="15" type="password" class="non_submit_input" required="required"><br>
+				<br>
+				<input type="submit" name="Login" id="submit_login" value="Log in">
+			</form>
+
+			<p id="block_footer">
+				Created on 23.12.2013, 18:43<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Login/login_code.php b/Main/Relax/Login/login_code.php
new file mode 100644
index 0000000..613f924
--- /dev/null
+++ b/Main/Relax/Login/login_code.php
@@ -0,0 +1,48 @@
+		<?php
+
+		$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+		if (!$connect) { //Check is connection was successful
+			die("Failed to connect!");
+		}
+
+		if (!mysql_select_db("charleston")) { //Check is DB selection was successful
+			die("Failed to select DB!");
+		}
+		
+		if(isset($_POST['Login'])) { // If the Login button has been pressed
+			$user = $_POST['Username']; // Get the entered username
+			$password = $_POST['Password']; // Get the entered password
+
+			if ($user != "" && $password != "") { // If Username and Password field are NOT empty
+				$elems = mysql_query("SELECT `Username`,`Password` FROM `accounts` WHERE `Username` = '$user'");
+				// Find and Select the Username in the DB (not working check??)
+				$row = mysql_fetch_row($elems); // Extract the Username
+
+				if (!is_null($row[0])) { // If the Username is NOT NULL (exists)
+	//				echo "User ", $row[0], " found<br>";
+	//				echo "Logging in...<br>";
+
+					$user = htmlspecialchars(trim($_POST['Username'])); // Crypt the Username
+					$password = md5(htmlspecialchars(trim($_POST['Password']))); //Crypt the Password
+
+					if ($password == $row[1]) {
+						$_SESSION['user'] = $user; // SET the Session to the current User
+						echo "User ", $row[0], " logged<br>";
+						header("Location: http://charleston.zapto.org/Relax");
+						exit;
+					} else {
+						echo "Wrong Password!<br>";
+					}
+
+
+				} else { // If the Username IS NULL
+					echo "No such user: $user<br>";
+				}
+
+			} else { // If Username and Password fields are EMPTY
+				echo "Obligatory fields not filled!<br>";
+			}
+
+		}
+
+		?>
\ No newline at end of file
diff --git a/Main/Relax/Orange-space.jpg b/Main/Relax/Orange-space.jpg
new file mode 100644
index 0000000..a6f1087
--- /dev/null
+++ b/Main/Relax/Orange-space.jpg
Binary files differ
diff --git a/Main/Relax/ParagonX9 - Polar240.mp3 b/Main/Relax/ParagonX9 - Polar240.mp3
new file mode 100644
index 0000000..3d3e23c
--- /dev/null
+++ b/Main/Relax/ParagonX9 - Polar240.mp3
Binary files differ
diff --git a/Main/Relax/Profile/profile.php b/Main/Relax/Profile/profile.php
new file mode 100644
index 0000000..2ddeb79
--- /dev/null
+++ b/Main/Relax/Profile/profile.php
@@ -0,0 +1,87 @@
+
+		<br>
+
+		<div id="main_block" >
+			<?php
+
+			
+			echo "<style> #main_block {width: 750px;} #block_content {width: 550px;}</style>";
+
+			echo '<p id="block_title"> ', $_SESSION['user'], '\'s Profile </p>';
+
+			//--------Connect to MySQL and select DataBase--------------
+
+			if (!mysql_connect("localhost","root","rootpass")) //connect to MySQL 
+			//Check is connection was successful
+				die("Failed to connect!");
+
+			if (!mysql_select_db("charleston"))  //Check is DB selection was successful
+				die("Failed to select DB!");
+
+			//--------Get Number Of Images in the Gallery---------------
+
+			$user = $_SESSION['user'];
+			$gallery_name = "gallery_" . $user;
+			$gal_selector = mysql_query("SELECT * FROM `$gallery_name`");
+			if(!$gal_selector) 
+				echo "Selection from DB failed<br>";
+
+			$pic_num = 0;
+
+			while ($row = mysql_fetch_array($gal_selector)) {
+				$pic_num++;
+			}
+
+			//--------Get Email and RegDate---------------------
+
+
+			$data_selector = mysql_query("SELECT `Username`,`Email`,`RegDate` FROM `accounts` WHERE `Username` = '$user'");
+			// Find and Select the user's Data in the DB (not working check??)
+
+			if(!$data_selector) 
+				echo "Selection from DB failed<br>";
+
+			//---------Print Everything------------------------
+
+			while($row = mysql_fetch_array($data_selector)) {
+
+				echo "<p id=\"block_content\">";
+				echo "Images in the Gallery: ", $pic_num;
+				echo "</p>";
+				echo "<hr>";
+				echo "Email: {$row['Email']} <br><br>";
+				echo "Registered on: ", $row['RegDate'];
+				echo "<hr>";
+
+			}
+
+			?>
+
+			<p id="block_content" onclick="showTip()">
+				:)
+			</p>
+
+			<!--<form>
+				<input type="checkbox" name="Haha" value="Haha">
+				<label for="Haha">Haha</label><br>
+				<input type="hidden" value="Am I hidden?">
+				<input type="submit" name="Delete" value="Delete Haha" class="submits">
+			</form>-->
+
+			<p id="block_footer">
+				Created on 25.12.2013, 02:47<br>
+					by CharlieScarver
+			</p>
+
+		</div>
+
+	</body>
+
+</html>
+
+<!-- Sky Flight
+
+Transperancy: ON OFF
+
+
+ -->
\ No newline at end of file
diff --git a/Main/Relax/Profile/profile_code.php b/Main/Relax/Profile/profile_code.php
new file mode 100644
index 0000000..875ec06
--- /dev/null
+++ b/Main/Relax/Profile/profile_code.php
@@ -0,0 +1,54 @@
+<?php
+
+echo "<style> #main_block {width: 750px;} #block_content {width: 550px;}</style>";
+
+echo '<p id="block_title"> ', $_SESSION['user'], '\'s Profile </p>';
+
+//--------Connect to MySQL and select DataBase--------------
+
+if (!mysql_connect("localhost","root","rootpass")) //connect to MySQL 
+//Check is connection was successful
+	die("Failed to connect!");
+
+if (!mysql_select_db("charleston"))  //Check is DB selection was successful
+	die("Failed to select DB!");
+
+//--------Get Number Of Images in the Gallery---------------
+
+$user = $_SESSION['user'];
+$gallery_name = "gallery_" . $user;
+$gal_selector = mysql_query("SELECT * FROM `$gallery_name`");
+if(!$gal_selector) 
+	echo "Selection from DB failed<br>";
+
+$pic_num = 0;
+
+while ($row = mysql_fetch_array($gal_selector)) {
+	$pic_num++;
+}
+
+//--------Get Email and RegDate---------------------
+
+
+$data_selector = mysql_query("SELECT `Username`,`Email`,`RegDate` FROM `accounts` WHERE `Username` = '$user'");
+// Find and Select the user's Data in the DB (not working check??)
+
+if(!$data_selector) 
+	echo "Selection from DB failed<br>";
+
+//---------Print Everything------------------------
+
+while($row = mysql_fetch_array($data_selector)) {
+
+	echo "<p id=\"block_content\">";
+	echo "Images in the Gallery: ", $pic_num;
+	echo "</p>";
+	echo "<hr>";
+	echo "Email: {$row['Email']} <br><br>";
+	echo "Registered on: ", $row['RegDate'];
+	echo "<hr>";
+
+}
+
+
+?>
diff --git a/Main/Relax/Questions/add_question.php b/Main/Relax/Questions/add_question.php
new file mode 100644
index 0000000..74fd17e
--- /dev/null
+++ b/Main/Relax/Questions/add_question.php
@@ -0,0 +1,36 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Add New Question
+			</p>
+
+			<?php
+			
+			require 'add_question_code.php';
+
+			echo "
+			<form method=\"POST\" id=\"block_content\">
+				<br>
+				<label for=\"Author\">*Author:</label>
+				<input id=\"Author\" name=\"Author\" maxlength=\"30\" type=\"text\" class=\"non_submit_input\"><br>
+				<label for=\"Question\">*Question:</label>
+				<input id=\"Question\" name=\"Question\" maxlength=\"50\" type=\"textfield\" class=\"non_submit_input\"><br>
+				<label for=\"Answer\">*Answer:</label>
+				<input id=\"Answer\" name=\"Answer\" maxlength=\"30\" type=\"text\" class=\"non_submit_input\"><br>
+				<br>
+				<input type=\"submit\" name=\"AddQuestion\" id=\"submit_registration\" value=\"Submit Entry\">
+			</form>";
+
+			?>
+
+			<p id="block_footer">
+				Created on 15.01.2013, 17:13<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Questions/add_question_code.php b/Main/Relax/Questions/add_question_code.php
new file mode 100644
index 0000000..61b0cc9
--- /dev/null
+++ b/Main/Relax/Questions/add_question_code.php
@@ -0,0 +1,48 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+if (!$connect) { //Check is connection was successful
+	die("Failed to connect to MySQL!");
+}
+
+if (!mysql_select_db("charleston")) { //Check is DB selection was successful
+	die("Failed to select DB!");
+}
+
+if(isset($_POST['AddQuestion'])) { // If the AddQuestion button has been pressed
+	$author = $_POST['Author']; // Get the entered Author	
+	$question = $_POST['Question']; // Get the entered Question
+	$answer = $_POST['Answer']; // Get the entered Answer
+	$date = date('Y-m-d'); // Get the current Date
+
+	if ($question != "" && $answer != "" && $author != "") { // If Question and Answer fields are NOT empty
+
+		$elems = mysql_query("SELECT `Question` FROM `questions` WHERE `Question` = '$question'");
+		// Find and Select the Question in the DB 
+			if (!$elems)
+				echo "Data selection failed <br>";
+		$row = mysql_fetch_row($elems); // Extract the Question
+
+		if (!is_null($row[0])) { // If the Question is NOT NULL (exists)
+			echo "Question: <br>", $row[0], "<br> already exists!<br>";
+
+		} else { 
+			$results = mysql_query("INSERT INTO `questions` (`Author`, `Question`, `Answer`, `Date`) 
+												VALUES ('$author', '$question', '$answer', '$date')");  
+			// Insert the new Data into the DB
+			echo "|{$results}|";
+			if (!$results) { // The Data was NOT INSERTED successfully
+				echo "Failed to insert data :c<br>";
+			} else {
+				header("Location: http://charleston.zapto.org/?page=Add_Success");
+				exit;
+			}
+		}
+		
+	} else { // If Question and Answer fields are EMPTY
+		echo "Obligatory fields not filled!<br>";
+	}
+
+} // If the AddQuestion button has been pressed
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/Questions/add_success.php b/Main/Relax/Questions/add_success.php
new file mode 100644
index 0000000..5f0ac65
--- /dev/null
+++ b/Main/Relax/Questions/add_success.php
@@ -0,0 +1,24 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Question Added Successfully! ^-^
+			</p>
+			
+			<a href="http://charleston.zapto.org/?page=Questions">	
+				<p id="block_content">
+					You can now see it with all the other questions!
+				</p>
+			</a>
+
+			<p id="block_footer">
+				Created on 15.02.2014, 18:58<br>
+					by CharlieScarver
+			</p>
+
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Questions/questions.php b/Main/Relax/Questions/questions.php
new file mode 100644
index 0000000..48e7490
--- /dev/null
+++ b/Main/Relax/Questions/questions.php
@@ -0,0 +1,31 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				All Questions
+			</p>
+
+			<div id="block_content">
+
+				<?php
+				
+				require 'questions_code.php';
+
+				echo "<form method=\"GET\" id=\"menu_form\">
+							<input type=\"submit\" name=\"page\" id=\"add_question\" value=\"Add Question\" class=\"submits\">
+					<form>";
+
+				?>
+
+			</div>
+
+			<p id="block_footer">
+				Created on 15.01.2013, 17:13<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Questions/questions_code.php b/Main/Relax/Questions/questions_code.php
new file mode 100644
index 0000000..17d9dbf
--- /dev/null
+++ b/Main/Relax/Questions/questions_code.php
@@ -0,0 +1,24 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+	if (!$connect) //Check is connection was successful
+		echo "Failed to connect!";
+
+	if (!mysql_select_db("charleston")) //Check is DB selection was successful
+		echo "Failed to select DB!";
+
+$results = mysql_query("SELECT * FROM `questions`");
+	if (!$results)  // Succession check
+		echo "Failed to select elements! :c<br>";
+
+//echo $results;
+echo "<hr>";
+
+while($row = mysql_fetch_array($results)) { ////////
+	echo "<p id=\"question_par\"> {$row['Question']} <br><br> {$row['Answer']} <br> by: {$row['Author']} </p>  ";
+	echo "<hr>";
+}
+
+
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/LICENSE b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/LICENSE
new file mode 100644
index 0000000..b612f71
--- /dev/null
+++ b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+AUTHORS:
+  Mike Crawford
+  Ben Maurer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/README b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/README
new file mode 100644
index 0000000..21f1a27
--- /dev/null
+++ b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/README
@@ -0,0 +1,7 @@
+reCAPTCHA README
+================
+
+The reCAPTCHA PHP Lirary helps you use the reCAPTCHA API. Documentation
+for this library can be found at
+
+	http://recaptcha.net/plugins/php
diff --git a/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-captcha.php b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-captcha.php
new file mode 100644
index 0000000..f6f7fa0
--- /dev/null
+++ b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-captcha.php
@@ -0,0 +1,37 @@
+<html>
+  <body>
+    <form action="" method="post">
+<?php
+
+require_once('recaptchalib.php');
+
+// Get a key from https://www.google.com/recaptcha/admin/create
+$publickey = "";
+$privatekey = "";
+
+# the response from reCAPTCHA
+$resp = null;
+# the error code from reCAPTCHA, if any
+$error = null;
+
+# was there a reCAPTCHA response?
+if ($_POST["recaptcha_response_field"]) {
+        $resp = recaptcha_check_answer ($privatekey,
+                                        $_SERVER["REMOTE_ADDR"],
+                                        $_POST["recaptcha_challenge_field"],
+                                        $_POST["recaptcha_response_field"]);
+
+        if ($resp->is_valid) {
+                echo "You got it!";
+        } else {
+                # set the error code so that we can display it
+                $error = $resp->error;
+        }
+}
+echo recaptcha_get_html($publickey, $error);
+?>
+    <br/>
+    <input type="submit" value="submit" />
+    </form>
+  </body>
+</html>
diff --git a/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-mailhide.php b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-mailhide.php
new file mode 100644
index 0000000..d08622c
--- /dev/null
+++ b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/example-mailhide.php
@@ -0,0 +1,17 @@
+<html><body>
+<?
+require_once ("recaptchalib.php");
+
+// get a key at http://www.google.com/recaptcha/mailhide/apikey
+$mailhide_pubkey = '';
+$mailhide_privkey = '';
+
+?>
+
+The Mailhide version of example@example.com is
+<? echo recaptcha_mailhide_html ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?>. <br>
+
+The url for the email is:
+<? echo recaptcha_mailhide_url ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?> <br>
+
+</body></html>
diff --git a/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/recaptchalib.php b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/recaptchalib.php
new file mode 100644
index 0000000..32c4f4d
--- /dev/null
+++ b/Main/Relax/Register/recaptcha-php-1.11/recaptcha-php-1.11/recaptchalib.php
@@ -0,0 +1,277 @@
+<?php
+/*
+ * This is a PHP library that handles calling reCAPTCHA.
+ *    - Documentation and latest version
+ *          http://recaptcha.net/plugins/php/
+ *    - Get a reCAPTCHA API Key
+ *          https://www.google.com/recaptcha/admin/create
+ *    - Discussion group
+ *          http://groups.google.com/group/recaptcha
+ *
+ * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * AUTHORS:
+ *   Mike Crawford
+ *   Ben Maurer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * The reCAPTCHA server URL's
+ */
+define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api");
+define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api");
+define("RECAPTCHA_VERIFY_SERVER", "www.google.com");
+
+/**
+ * Encodes the given data into a query string format
+ * @param $data - array of string elements to be encoded
+ * @return string - encoded request
+ */
+function _recaptcha_qsencode ($data) {
+        $req = "";
+        foreach ( $data as $key => $value )
+                $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
+
+        // Cut the last '&'
+        $req=substr($req,0,strlen($req)-1);
+        return $req;
+}
+
+
+
+/**
+ * Submits an HTTP POST to a reCAPTCHA server
+ * @param string $host
+ * @param string $path
+ * @param array $data
+ * @param int port
+ * @return array response
+ */
+function _recaptcha_http_post($host, $path, $data, $port = 80) {
+
+        $req = _recaptcha_qsencode ($data);
+
+        $http_request  = "POST $path HTTP/1.0\r\n";
+        $http_request .= "Host: $host\r\n";
+        $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
+        $http_request .= "Content-Length: " . strlen($req) . "\r\n";
+        $http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
+        $http_request .= "\r\n";
+        $http_request .= $req;
+
+        $response = '';
+        if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
+                die ('Could not open socket');
+        }
+
+        fwrite($fs, $http_request);
+
+        while ( !feof($fs) )
+                $response .= fgets($fs, 1160); // One TCP-IP packet
+        fclose($fs);
+        $response = explode("\r\n\r\n", $response, 2);
+
+        return $response;
+}
+
+
+
+/**
+ * Gets the challenge HTML (javascript and non-javascript version).
+ * This is called from the browser, and the resulting reCAPTCHA HTML widget
+ * is embedded within the HTML form it was called from.
+ * @param string $pubkey A public key for reCAPTCHA
+ * @param string $error The error given by reCAPTCHA (optional, default is null)
+ * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false)
+
+ * @return string - The HTML to be embedded in the user's form.
+ */
+function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
+{
+	if ($pubkey == null || $pubkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
+	}
+	
+	if ($use_ssl) {
+                $server = RECAPTCHA_API_SECURE_SERVER;
+        } else {
+                $server = RECAPTCHA_API_SERVER;
+        }
+
+        $errorpart = "";
+        if ($error) {
+           $errorpart = "&amp;error=" . $error;
+        }
+        return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
+
+	<noscript>
+  		<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
+  		<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
+  		<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
+	</noscript>';
+}
+
+
+
+
+/**
+ * A ReCaptchaResponse is returned from recaptcha_check_answer()
+ */
+class ReCaptchaResponse {
+        var $is_valid;
+        var $error;
+}
+
+
+/**
+  * Calls an HTTP POST function to verify if the user's guess was correct
+  * @param string $privkey
+  * @param string $remoteip
+  * @param string $challenge
+  * @param string $response
+  * @param array $extra_params an array of extra variables to post to the server
+  * @return ReCaptchaResponse
+  */
+function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array())
+{
+	if ($privkey == null || $privkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
+	}
+
+	if ($remoteip == null || $remoteip == '') {
+		die ("For security reasons, you must pass the remote ip to reCAPTCHA");
+	}
+
+	
+	
+        //discard spam submissions
+        if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
+                $recaptcha_response = new ReCaptchaResponse();
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = 'incorrect-captcha-sol';
+                return $recaptcha_response;
+        }
+
+        $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
+                                          array (
+                                                 'privatekey' => $privkey,
+                                                 'remoteip' => $remoteip,
+                                                 'challenge' => $challenge,
+                                                 'response' => $response
+                                                 ) + $extra_params
+                                          );
+
+        $answers = explode ("\n", $response [1]);
+        $recaptcha_response = new ReCaptchaResponse();
+
+        if (trim ($answers [0]) == 'true') {
+                $recaptcha_response->is_valid = true;
+        }
+        else {
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = $answers [1];
+        }
+        return $recaptcha_response;
+
+}
+
+/**
+ * gets a URL where the user can sign up for reCAPTCHA. If your application
+ * has a configuration page where you enter a key, you should provide a link
+ * using this function.
+ * @param string $domain The domain where the page is hosted
+ * @param string $appname The name of your application
+ */
+function recaptcha_get_signup_url ($domain = null, $appname = null) {
+	return "https://www.google.com/recaptcha/admin/create?" .  _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname));
+}
+
+function _recaptcha_aes_pad($val) {
+	$block_size = 16;
+	$numpad = $block_size - (strlen ($val) % $block_size);
+	return str_pad($val, strlen ($val) + $numpad, chr($numpad));
+}
+
+/* Mailhide related code */
+
+function _recaptcha_aes_encrypt($val,$ky) {
+	if (! function_exists ("mcrypt_encrypt")) {
+		die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.");
+	}
+	$mode=MCRYPT_MODE_CBC;   
+	$enc=MCRYPT_RIJNDAEL_128;
+	$val=_recaptcha_aes_pad($val);
+	return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
+}
+
+
+function _recaptcha_mailhide_urlbase64 ($x) {
+	return strtr(base64_encode ($x), '+/', '-_');
+}
+
+/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
+function recaptcha_mailhide_url($pubkey, $privkey, $email) {
+	if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
+		die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
+		     "you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>");
+	}
+	
+
+	$ky = pack('H*', $privkey);
+	$cryptmail = _recaptcha_aes_encrypt ($email, $ky);
+	
+	return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
+}
+
+/**
+ * gets the parts of the email to expose to the user.
+ * eg, given johndoe@example,com return ["john", "example.com"].
+ * the email is then displayed as john...@example.com
+ */
+function _recaptcha_mailhide_email_parts ($email) {
+	$arr = preg_split("/@/", $email );
+
+	if (strlen ($arr[0]) <= 4) {
+		$arr[0] = substr ($arr[0], 0, 1);
+	} else if (strlen ($arr[0]) <= 6) {
+		$arr[0] = substr ($arr[0], 0, 3);
+	} else {
+		$arr[0] = substr ($arr[0], 0, 4);
+	}
+	return $arr;
+}
+
+/**
+ * Gets html to display an email address given a public an private key.
+ * to get a key, go to:
+ *
+ * http://www.google.com/recaptcha/mailhide/apikey
+ */
+function recaptcha_mailhide_html($pubkey, $privkey, $email) {
+	$emailparts = _recaptcha_mailhide_email_parts ($email);
+	$url = recaptcha_mailhide_url ($pubkey, $privkey, $email);
+	
+	return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) .
+		"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]);
+
+}
+
+
+?>
diff --git a/Main/Relax/Register/recaptchalib.php b/Main/Relax/Register/recaptchalib.php
new file mode 100644
index 0000000..32c4f4d
--- /dev/null
+++ b/Main/Relax/Register/recaptchalib.php
@@ -0,0 +1,277 @@
+<?php
+/*
+ * This is a PHP library that handles calling reCAPTCHA.
+ *    - Documentation and latest version
+ *          http://recaptcha.net/plugins/php/
+ *    - Get a reCAPTCHA API Key
+ *          https://www.google.com/recaptcha/admin/create
+ *    - Discussion group
+ *          http://groups.google.com/group/recaptcha
+ *
+ * Copyright (c) 2007 reCAPTCHA -- http://recaptcha.net
+ * AUTHORS:
+ *   Mike Crawford
+ *   Ben Maurer
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+/**
+ * The reCAPTCHA server URL's
+ */
+define("RECAPTCHA_API_SERVER", "http://www.google.com/recaptcha/api");
+define("RECAPTCHA_API_SECURE_SERVER", "https://www.google.com/recaptcha/api");
+define("RECAPTCHA_VERIFY_SERVER", "www.google.com");
+
+/**
+ * Encodes the given data into a query string format
+ * @param $data - array of string elements to be encoded
+ * @return string - encoded request
+ */
+function _recaptcha_qsencode ($data) {
+        $req = "";
+        foreach ( $data as $key => $value )
+                $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
+
+        // Cut the last '&'
+        $req=substr($req,0,strlen($req)-1);
+        return $req;
+}
+
+
+
+/**
+ * Submits an HTTP POST to a reCAPTCHA server
+ * @param string $host
+ * @param string $path
+ * @param array $data
+ * @param int port
+ * @return array response
+ */
+function _recaptcha_http_post($host, $path, $data, $port = 80) {
+
+        $req = _recaptcha_qsencode ($data);
+
+        $http_request  = "POST $path HTTP/1.0\r\n";
+        $http_request .= "Host: $host\r\n";
+        $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
+        $http_request .= "Content-Length: " . strlen($req) . "\r\n";
+        $http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
+        $http_request .= "\r\n";
+        $http_request .= $req;
+
+        $response = '';
+        if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
+                die ('Could not open socket');
+        }
+
+        fwrite($fs, $http_request);
+
+        while ( !feof($fs) )
+                $response .= fgets($fs, 1160); // One TCP-IP packet
+        fclose($fs);
+        $response = explode("\r\n\r\n", $response, 2);
+
+        return $response;
+}
+
+
+
+/**
+ * Gets the challenge HTML (javascript and non-javascript version).
+ * This is called from the browser, and the resulting reCAPTCHA HTML widget
+ * is embedded within the HTML form it was called from.
+ * @param string $pubkey A public key for reCAPTCHA
+ * @param string $error The error given by reCAPTCHA (optional, default is null)
+ * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false)
+
+ * @return string - The HTML to be embedded in the user's form.
+ */
+function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false)
+{
+	if ($pubkey == null || $pubkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
+	}
+	
+	if ($use_ssl) {
+                $server = RECAPTCHA_API_SECURE_SERVER;
+        } else {
+                $server = RECAPTCHA_API_SERVER;
+        }
+
+        $errorpart = "";
+        if ($error) {
+           $errorpart = "&amp;error=" . $error;
+        }
+        return '<script type="text/javascript" src="'. $server . '/challenge?k=' . $pubkey . $errorpart . '"></script>
+
+	<noscript>
+  		<iframe src="'. $server . '/noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
+  		<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
+  		<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
+	</noscript>';
+}
+
+
+
+
+/**
+ * A ReCaptchaResponse is returned from recaptcha_check_answer()
+ */
+class ReCaptchaResponse {
+        var $is_valid;
+        var $error;
+}
+
+
+/**
+  * Calls an HTTP POST function to verify if the user's guess was correct
+  * @param string $privkey
+  * @param string $remoteip
+  * @param string $challenge
+  * @param string $response
+  * @param array $extra_params an array of extra variables to post to the server
+  * @return ReCaptchaResponse
+  */
+function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array())
+{
+	if ($privkey == null || $privkey == '') {
+		die ("To use reCAPTCHA you must get an API key from <a href='https://www.google.com/recaptcha/admin/create'>https://www.google.com/recaptcha/admin/create</a>");
+	}
+
+	if ($remoteip == null || $remoteip == '') {
+		die ("For security reasons, you must pass the remote ip to reCAPTCHA");
+	}
+
+	
+	
+        //discard spam submissions
+        if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
+                $recaptcha_response = new ReCaptchaResponse();
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = 'incorrect-captcha-sol';
+                return $recaptcha_response;
+        }
+
+        $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
+                                          array (
+                                                 'privatekey' => $privkey,
+                                                 'remoteip' => $remoteip,
+                                                 'challenge' => $challenge,
+                                                 'response' => $response
+                                                 ) + $extra_params
+                                          );
+
+        $answers = explode ("\n", $response [1]);
+        $recaptcha_response = new ReCaptchaResponse();
+
+        if (trim ($answers [0]) == 'true') {
+                $recaptcha_response->is_valid = true;
+        }
+        else {
+                $recaptcha_response->is_valid = false;
+                $recaptcha_response->error = $answers [1];
+        }
+        return $recaptcha_response;
+
+}
+
+/**
+ * gets a URL where the user can sign up for reCAPTCHA. If your application
+ * has a configuration page where you enter a key, you should provide a link
+ * using this function.
+ * @param string $domain The domain where the page is hosted
+ * @param string $appname The name of your application
+ */
+function recaptcha_get_signup_url ($domain = null, $appname = null) {
+	return "https://www.google.com/recaptcha/admin/create?" .  _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname));
+}
+
+function _recaptcha_aes_pad($val) {
+	$block_size = 16;
+	$numpad = $block_size - (strlen ($val) % $block_size);
+	return str_pad($val, strlen ($val) + $numpad, chr($numpad));
+}
+
+/* Mailhide related code */
+
+function _recaptcha_aes_encrypt($val,$ky) {
+	if (! function_exists ("mcrypt_encrypt")) {
+		die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed.");
+	}
+	$mode=MCRYPT_MODE_CBC;   
+	$enc=MCRYPT_RIJNDAEL_128;
+	$val=_recaptcha_aes_pad($val);
+	return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
+}
+
+
+function _recaptcha_mailhide_urlbase64 ($x) {
+	return strtr(base64_encode ($x), '+/', '-_');
+}
+
+/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */
+function recaptcha_mailhide_url($pubkey, $privkey, $email) {
+	if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) {
+		die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " .
+		     "you can do so at <a href='http://www.google.com/recaptcha/mailhide/apikey'>http://www.google.com/recaptcha/mailhide/apikey</a>");
+	}
+	
+
+	$ky = pack('H*', $privkey);
+	$cryptmail = _recaptcha_aes_encrypt ($email, $ky);
+	
+	return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail);
+}
+
+/**
+ * gets the parts of the email to expose to the user.
+ * eg, given johndoe@example,com return ["john", "example.com"].
+ * the email is then displayed as john...@example.com
+ */
+function _recaptcha_mailhide_email_parts ($email) {
+	$arr = preg_split("/@/", $email );
+
+	if (strlen ($arr[0]) <= 4) {
+		$arr[0] = substr ($arr[0], 0, 1);
+	} else if (strlen ($arr[0]) <= 6) {
+		$arr[0] = substr ($arr[0], 0, 3);
+	} else {
+		$arr[0] = substr ($arr[0], 0, 4);
+	}
+	return $arr;
+}
+
+/**
+ * Gets html to display an email address given a public an private key.
+ * to get a key, go to:
+ *
+ * http://www.google.com/recaptcha/mailhide/apikey
+ */
+function recaptcha_mailhide_html($pubkey, $privkey, $email) {
+	$emailparts = _recaptcha_mailhide_email_parts ($email);
+	$url = recaptcha_mailhide_url ($pubkey, $privkey, $email);
+	
+	return htmlentities($emailparts[0]) . "<a href='" . htmlentities ($url) .
+		"' onclick=\"window.open('" . htmlentities ($url) . "', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=300'); return false;\" title=\"Reveal this e-mail address\">...</a>@" . htmlentities ($emailparts [1]);
+
+}
+
+
+?>
diff --git a/Main/Relax/Register/reg_code.php b/Main/Relax/Register/reg_code.php
new file mode 100644
index 0000000..e5ab448
--- /dev/null
+++ b/Main/Relax/Register/reg_code.php
@@ -0,0 +1,84 @@
+<?php
+
+$connect = mysql_connect("localhost","root","rootpass"); //connect to DB
+if (!$connect) { //Check is connection was successful
+	die("Failed to connect to MySQL!");
+}
+
+if (!mysql_select_db("charleston")) { //Check is DB selection was successful
+	die("Failed to select DB!");
+}
+
+if(isset($_POST['Register'])) { // If the Register button has been pressed
+	$user = $_POST['Username']; // Get the entered Username
+	$password = $_POST['Password']; // Get the entered Password
+	$email = $_POST['Email']; // Get the entered Email
+	$secquestion = $_POST['SecQuestion']; // Get the entered Secret Question
+	$secanswer = $_POST['SecAnswer']; // Get the entered Secret Answer
+	$date = date('Y-m-d'); // Get the current Date
+
+	if ($secquestion == "") {
+		$secquestion = NULL;
+	} else if ($secanswer == ""){
+		$secanswer = NULL;
+	}
+
+	if ($user != "" && $password != "" && $email != "") { // If Username, Password and Email field are NOT empty
+		$elems = mysql_query("SELECT `Username` FROM `accounts` WHERE `Username` = '$user'");
+		// Find and Select the Username in the DB (not working check??)
+		$row = mysql_fetch_row($elems); // Extract the Username
+
+		if (!is_null($row[0])) { // If the Username is NOT NULL (exists)
+			echo "User ", $row[0], " already exists!<br>";
+			$user = htmlspecialchars(trim($_POST['Username'])); // Crypt the Username
+			$password = md5(htmlspecialchars(trim($_POST['Password']))); //Crypt the Password
+		} else { // If the Username IS NULL (does not exists)
+
+			do { // Everything is in a loop so we can break at anytime! (important for captcha)
+			
+			//------Beginning of CAPTCHA Code-------
+			require_once 'recaptchalib.php';
+			$privatekey = "6Ld-W-wSAAAAAHOIfcMayEDduZTWuZ_FUNp4tsmR";
+			$resp = recaptcha_check_answer($privatekey, 
+				$_SERVER["REMOTE_ADDR"], 
+				$_POST["recaptcha_challenge_field"], 
+				$_POST["recaptcha_response_field"]);
+
+			if (!$resp->is_valid) {
+				echo "Wrong Captcha Phrase";
+				break;
+			}
+			//------End of CAPTCHA Code------------
+
+			echo "Registring New User...<br>";
+			$user = htmlspecialchars(trim($_POST['Username'])); // Crypt the Username
+			$password = md5(htmlspecialchars(trim($_POST['Password']))); // Crypt the Password
+			$dir = "Gallery/Pictures/" . $user; // The new Gallery Directory name
+
+			if(mkdir($dir)) { // If the folder was created successfully
+				$results = mysql_query("INSERT INTO `accounts` (`Username`, `Password`, `Email`, `SecretQuestion`, `SecretAnswer`, `RegDate`) VALUES ('$user', '$password', '$email', '$secquestion', '$secanswer', '$date')");  // Insert the new user's Data into the DB
+				if ($results) { // The Data was INSERTED successfully
+					$gallery_name = "gallery_" . $user;
+					$table_create = mysql_query("CREATE TABLE `$gallery_name` (ID INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY, Source VARCHAR(100), Alt VARCHAR(70))"); 
+					if (!$table_create)  // Succession check
+						echo "Failed to create gallery table :c<br>";
+					else {
+						header("Location: http://charleston.zapto.org/?page=Reg_Success");
+						exit;
+					}
+				}
+			} else
+				echo "Failed to create user directory";
+
+			break; // Making sure that the loop will be executed once
+			} while (1 == 1); // End of do-while	
+			
+		}
+
+	} else { // If Username, Password and Email fields are EMPTY
+		echo "Obligatory fields not filled!<br>";
+	}
+
+} // If the Register button has been pressed
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/Register/reg_success.php b/Main/Relax/Register/reg_success.php
new file mode 100644
index 0000000..de9cdc9
--- /dev/null
+++ b/Main/Relax/Register/reg_success.php
@@ -0,0 +1,24 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Registration Successful! ^-^
+			</p>
+			
+			<a href="http://charleston.zapto.org/?page=Log+in">	
+				<p id="block_content">
+					You can now log in!
+				</p>
+			</a>
+
+			<p id="block_footer">
+				Created on 23.12.2013, 21:06<br>
+					by CharlieScarver
+			</p>
+
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Register/register.php b/Main/Relax/Register/register.php
new file mode 100644
index 0000000..eeeb88d
--- /dev/null
+++ b/Main/Relax/Register/register.php
@@ -0,0 +1,46 @@
+
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Register New User
+			</p>
+
+			<?php
+			
+			require 'reg_code.php';
+
+			echo "
+			<form method=\"POST\" id=\"block_content\">
+				<label for=\"Username\">*Username:</label>
+				<input id=\"Username\" name=\"Username\" maxlength=\"20\" type=\"text\" class=\"non_submit_input\" required=\"required\"><br>
+				<label for=\"Password\">*Password:</label>
+				<input id=\"Password\" name=\"Password\" maxlength=\"15\" type=\"password\" class=\"non_submit_input\" required=\"required\"><br>
+				<label for=\"Email\">*Email:</label>
+				<input id=\"Email\" name=\"Email\" maxlength=\"30\" type=\"email\" class=\"non_submit_input\" required=\"required\"><br>
+				<br>
+				<label for=\"SecQuestion\">Secret Question:</label>
+				<input id=\"SecQuestion\" name=\"SecQuestion\" maxlength=\"30\" type=\"text\" class=\"non_submit_input\"><br>
+				<label for=\"SecAnswer\">Secret Answer:</label>
+				<input id=\"SecAnswer\" name=\"SecAnswer\" maxlength=\"15\" type=\"text\" class=\"non_submit_input\"><br>
+				<br>";
+
+				require_once 'recaptchalib.php';
+				$publickey = "6Ld-W-wSAAAAAMDMGPp7a4CdYRZojKYVAe0B6erd";
+				echo recaptcha_get_html($publickey);
+
+			echo"<br>
+				<input type=\"submit\" name=\"Register\" id=\"submit_registration\" value=\"Register User\">
+			</form>";
+
+			?>
+
+			<p id="block_footer">
+				Created on 23.12.2013, 03:50<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/Themes/themes.php b/Main/Relax/Themes/themes.php
new file mode 100644
index 0000000..22e50b6
--- /dev/null
+++ b/Main/Relax/Themes/themes.php
@@ -0,0 +1,37 @@
+			
+
+
+		<div id="main_block" >
+
+			<p id="block_title">
+				Themes Available:
+			</p>
+
+			<?php
+
+			if (isset($_POST['theme'])) {
+
+				$_SESSION['theme'] = $_POST['theme'];
+				echo "Theme changed to {$_POST['theme']}<br>";
+				header("Location: http://charleston.zapto.org/Relax");
+				exit;
+			}
+
+			?>
+
+
+			<form method="POST" id="block_content">
+				<input type="submit" name="theme" id="blue_theme_submit" value="Blue" class="submits">
+				<input type="submit" name="theme" id="red_theme_submit" value="Red" class="submits">
+			</form>
+
+			<p id="block_footer">
+				Created on 14.02.2014, 03:45<br>
+					by CharlieScarver
+			</p>
+
+		</div>
+
+	</body>
+
+</html>
\ No newline at end of file
diff --git a/Main/Relax/charleston-blue.css b/Main/Relax/charleston-blue.css
new file mode 100644
index 0000000..c9818b3
--- /dev/null
+++ b/Main/Relax/charleston-blue.css
@@ -0,0 +1,514 @@
+body
+{
+	background-image: url('Fantasy-Night-Sky.jpg');
+	-moz-background-size: 100% 100%;
+	background-repeat: no-repeat;
+	background-attachment:fixed;
+	background-position: center;
+	color: white;
+	/*font-family: "Comic Sans MS";*/
+	font-family: "Calibri";
+	margin:0;
+	padding:0;
+
+}
+
+img
+{
+	max-width: 500px;
+	max-height: 350px;
+	margin: 10px;
+}
+
+a {text-decoration: none;}
+a:link {color: #FFFFFF;} /* unvisited link */    
+a:hover {color:#333333;	opacity: 1.0;	filter:alpha(opacity=100);} /* mouse over link */
+a:visited {color:#FFFFFF;}  /* visited link */
+a:active {color:#FFFFFF;}  /* selected link */
+a:focus {outline: none;}  /* focused link */
+
+form {display: block;}
+
+button
+{
+	background-color: rgba(27,161,226,0.5);
+	color: white;
+	font-size: 18px;
+	border-width: 2px;
+	border-color: rgba(27,161,226,1.0);
+	padding: 2px;
+	padding-left: 3px;
+	padding-right: 3px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+button:focus {outline: none;} /*no outline on focus, input*/
+button:hover {background-color: rgba(27,161,226,1.0);}
+
+.submits
+{
+	background-color: rgba(27,161,226,0.5);
+	color: white;
+	font-size: 18px;
+	text-align: center;
+	border-style: outset;
+	border-width: 2px;
+	border-color: rgba(27,161,226,1.0);
+	padding: 2px;
+	padding-left: 3px;
+	padding-right: 3px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    display: inline;
+}
+.submits:active {border-style: inset;}
+.submits:focus {outline: none;}
+.submits:hover {background-color: rgba(27,161,226,1.0);}
+
+
+
+#title
+{
+	color: #1BA1E2;
+	width: 800px;
+	margin-right: auto;
+	margin-left: auto;
+	text-align: center;
+	font-size: 110px;
+	margin-top: 0px;
+	/*
+	border-style: solid;
+	border-width: 5px;
+	*/
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#title:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#profile_message
+{
+	background-color: rgba(27,161,226,0.8);
+	font-size: 20px;
+	display: inline-block;
+	padding: 4px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+
+
+#buttons
+{
+	text-align: center;
+	vertical-align: text-top;
+	margin-bottom: 15px; 
+	margin-right: auto;
+	margin-left: auto;
+	position: relative;
+	top: -100px;
+}
+
+#bi_form
+{
+	display:inline-block;
+}
+
+#log_button
+{
+	width: 70px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#log_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#reg_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#reg_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#logout
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#logout:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(27,161,226,1.0);}
+#logout:focus
+{outline: none;}
+
+#gallery_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+
+#gallery_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#profile_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#profile_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+
+#main_block
+{
+	background-color: rgba(27,161,226,0.5); /*#1BA1E2; good too*/
+	width: 510px;
+	text-align: center;
+	color: white;
+	font-size: 22px;
+	margin-left: auto;
+	margin-right: auto;
+	padding: 15px;
+	opacity: 0.5;
+	filter:alpha(opacity=50); /* For IE8 and earlier*/
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    position: relative;
+	top: -100px;
+}
+
+#main_block:hover
+{
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+}
+
+#block_title
+{
+	font-style: bold;
+	font-size: 30px;
+}
+
+#block_content
+{
+	background-color: rgba(27,161,226,1.0);
+	width: 310px;
+	margin-right: auto;
+	margin-left: auto;
+	padding: 5%;
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#block_content .non_submit_input
+{
+	width: 85%;
+	font-size: 16px;
+}
+
+#submit_registration
+{
+	font-size: 16px;
+}
+
+#submit_login
+{
+	font-size: 16px;
+}
+
+#block_footer
+{
+	text-align: center;
+	vertical-align: text-bottom;
+}
+
+
+#gallery_main_block
+{
+	background-color: rgba(27,161,226,0.5); /*#1BA1E2; good too*/
+	max-width: 1400px;
+	text-align: center;
+	color: white;
+	font-size: 22px;
+	margin-left: auto;
+	margin-right: auto;
+	padding: 15px;
+	opacity: 0.5;
+	filter:alpha(opacity=50); /* For IE8 and earlier*/
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    position: relative;
+	top: -100px;
+}
+
+#gallery_main_block:hover
+{
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+}
+
+#gallery_block_title
+{
+	font-style: bold;
+	font-size: 30px;
+}
+
+#gallery_block_content
+{
+	background-color: rgba(27,161,226,1.0);
+	margin-right: auto;
+	margin-left: auto;
+	padding: 5%;
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#choose_file
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#choose_file:hover {border-color: rgba(255,255,255,0.2);}
+
+
+#import
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#import:hover {	border-color: rgba(255,255,255,0.2);}
+
+
+#clicked 
+{
+	max-width: 1200px; 
+	max-height: 950px; 
+	margin-top: 75px; 
+	margin-bottom: 75px;
+}
+
+/*--------------------------------New-------------------------------*/
+
+#profile
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#profile:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(27,161,226,1.0);}
+#profile:focus
+{outline: none;}
+
+#gallery
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#gallery:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(27,161,226,1.0);}
+#gallery:focus
+{outline: none;}
+
+#login
+{
+	width: 70px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#login:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#register
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#register:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#menu_form
+{
+	display:inline-block;
+}
+
+#tip_button_show
+{	
+	background-color: rgba(27,161,226,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#tip_button_hide
+{	
+	background-color: rgba(27,161,226,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#tip
+{	
+	background-color: rgba(27,161,226,0.8);
+	width: 250px;
+	height: 90px;
+	text-align: center;
+
+	margin-top: 70px;
+	padding: 7px;
+	padding-top: 25px;
+	display: none;
+	float: right;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#music_button_show
+{
+	background-color: rgba(27,161,226,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#music_button_hide
+{
+	background-color: rgba(27,161,226,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#player
+{
+	margin-right: auto;
+	margin-right: auto;
+	display: none;
+}
+
+/*-------------------------Questions-----------------------*/
+
+#questions
+{
+	width: 95px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#questions:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(27,161,226,1.0);}
+#questions:focus
+{outline: none;}
+
+#add_question
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#add_question:hover {	border-color: rgba(255,255,255,0.2);}
+
+
+/*
+{
+	background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari /
+	background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11-12 /
+	background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15 /
+	background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard /
+}
+
+/*--------------------------Themes--------------------------*/
+
+#theme_selector
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#theme_selector:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#blue_theme_submit
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#blue_theme_submit:hover {	border-color: rgba(255,255,255,0.2);}
+
+#red_theme_submit
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#red_theme_submit:hover {	border-color: rgba(255,255,255,0.2);}
+
+/*
+
+uyhhu888888
+
+
+*_button is for deletion
+
+*/
diff --git a/Main/Relax/charleston-red.css b/Main/Relax/charleston-red.css
new file mode 100644
index 0000000..c134504
--- /dev/null
+++ b/Main/Relax/charleston-red.css
@@ -0,0 +1,514 @@
+body
+{
+	background-image: url('Orange-space.jpg');
+	-moz-background-size: 100% 100%;
+	background-repeat: no-repeat;
+	background-attachment:fixed;
+	background-position: center;
+	color: white;
+	/*font-family: "Comic Sans MS";*/
+	font-family: "Calibri";
+	margin:0;
+	padding:0;
+}
+
+img
+{
+	max-width: 500px;
+	max-height: 350px;
+	margin: 10px;
+}
+
+a {text-decoration: none;}
+a:link {color: #FFFFFF;} /* unvisited link */    
+a:hover {color:#333333;	opacity: 1.0;	filter:alpha(opacity=100);} /* mouse over link */
+a:visited {color:#FFFFFF;}  /* visited link */
+a:active {color:#FFFFFF;}  /* selected link */
+a:focus {outline: none;}  /* focused link */
+
+form {display: block;}
+
+button
+{
+	background-color: rgba(237,67,55,0.5);
+	color: white;
+	font-size: 18px;
+	border-width: 2px;
+	border-color: rgba(237,67,55,1.0);
+	padding: 2px;
+	padding-left: 3px;
+	padding-right: 3px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+button:focus {outline: none;} /*no outline on focus, input*/
+button:hover {background-color: rgba(237,67,55,1.0);}
+
+.submits
+{
+	background-color: rgba(237,67,55,0.5);
+	color: white;
+	font-size: 18px;
+	text-align: center;
+	border-style: outset;
+	border-width: 2px;
+	border-color: rgba(237,67,55,1.0);
+	padding: 2px;
+	padding-left: 3px;
+	padding-right: 3px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    display: inline;
+}
+.submits:active {border-style: inset;}
+.submits:focus {outline: none;}
+.submits:hover {background-color: rgba(237,67,55,1.0);}
+
+
+
+#title
+{
+	color: #ED4337;;
+	width: 800px;
+	margin-right: auto;
+	margin-left: auto;
+	text-align: center;
+	font-size: 110px;
+	margin-top: 0px;
+	/*
+	border-style: solid;
+	border-width: 5px;
+	*/
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#title:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#profile_message
+{
+	background-color: rgba(237,67,55,0.8);
+	font-size: 20px;
+	display: inline-block;
+	padding: 4px;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+
+
+#buttons
+{
+	text-align: center;
+	vertical-align: text-top;
+	margin-bottom: 15px; 
+	margin-right: auto;
+	margin-left: auto;
+	position: relative;
+	top: -100px;
+}
+
+#bi_form
+{
+	display:inline-block;
+}
+
+#log_button
+{
+	width: 70px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#log_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#reg_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#reg_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#logout
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#logout:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(237,67,55,1.0);}
+#logout:focus
+{outline: none;}
+
+#gallery_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+
+#gallery_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#profile_button
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#profile_button:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+
+
+#main_block
+{
+	background-color: rgba(237,67,55,0.5); /*#1BA1E2; good too*/
+	width: 510px;
+	text-align: center;
+	color: white;
+	font-size: 22px;
+	margin-left: auto;
+	margin-right: auto;
+	padding: 15px;
+	opacity: 0.5;
+	filter:alpha(opacity=50); /* For IE8 and earlier*/
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    position: relative;
+	top: -100px;
+}
+
+#main_block:hover
+{
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+}
+
+#block_title
+{
+	font-style: bold;
+	font-size: 30px;
+}
+
+#block_content
+{
+	background-color: rgba(237,67,55,1.0);
+	width: 310px;
+	margin-right: auto;
+	margin-left: auto;
+	padding: 5%;
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#block_content .non_submit_input
+{
+	width: 85%;
+	font-size: 16px;
+}
+
+#submit_registration
+{
+	font-size: 16px;
+}
+
+#submit_login
+{
+	font-size: 16px;
+}
+
+#block_footer
+{
+	text-align: center;
+	vertical-align: text-bottom;
+}
+
+
+#gallery_main_block
+{
+	background-color: rgba(237,67,55,0.5); /*#1BA1E2; good too*/
+	max-width: 1400px;
+	text-align: center;
+	color: white;
+	font-size: 22px;
+	margin-left: auto;
+	margin-right: auto;
+	padding: 15px;
+	opacity: 0.5;
+	filter:alpha(opacity=50); /* For IE8 and earlier*/
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+
+    position: relative;
+	top: -100px;
+}
+
+#gallery_main_block:hover
+{
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+}
+
+#gallery_block_title
+{
+	font-style: bold;
+	font-size: 30px;
+}
+
+#gallery_block_content
+{
+	background-color: rgba(237,67,55,1.0);
+	margin-right: auto;
+	margin-left: auto;
+	padding: 5%;
+	opacity:1.0;
+	filter:alpha(opacity=100); /* For IE8 and earlier */
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#choose_file
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#choose_file:hover {border-color: rgba(255,255,255,0.2);}
+
+
+#import
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#import:hover {	border-color: rgba(255,255,255,0.2);}
+
+
+#clicked 
+{
+	max-width: 1200px; 
+	max-height: 950px; 
+	margin-top: 75px; 
+	margin-bottom: 75px;
+}
+
+/*--------------------------------New-------------------------------*/
+
+#profile
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#profile:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(237,67,55,1.0);}
+#profile:focus
+{outline: none;}
+
+#gallery
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#gallery:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(237,67,55,1.0);}
+#gallery:focus
+{outline: none;}
+
+#login
+{
+	width: 70px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#login:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#register
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#register:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#menu_form
+{
+	display:inline-block;
+}
+
+#tip_button_show
+{	
+	background-color: rgba(237,67,55,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#tip_button_hide
+{	
+	background-color: rgba(237,67,55,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#tip
+{	
+	background-color: rgba(237,67,55,0.8);
+	width: 250px;
+	height: 90px;
+	text-align: center;
+
+	margin-top: 70px;
+	padding: 7px;
+	padding-top: 25px;
+	display: none;
+	float: right;
+
+	-moz-border-radius: 20px;		/*round edges*/
+    -webkit-border-radius: 20px; 	/*round edges*/
+    -khtml-border-radius: 20px; 	/*round edges*/
+    border-radius: 20px; 			/*round edges*/
+}
+
+#music_button_show
+{
+	background-color: rgba(237,67,55,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#music_button_hide
+{
+	background-color: rgba(237,67,55,0.8);
+	width: 50px;
+	height: 45px;
+
+	margin-top: 7px;
+	margin-right: 10px;
+	display: inline;
+	float: right;
+}
+
+#player
+{
+	margin-right: auto;
+	margin-right: auto;
+	display: none;
+}
+
+/*-------------------------Questions-----------------------*/
+
+#questions
+{
+	width: 95px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#questions:hover
+{opacity: 1.0;	filter:alpha(opacity=100);	background-color: rgba(237,67,55,1.0);}
+#questions:focus
+{outline: none;}
+
+#add_question
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#add_question:hover {	border-color: rgba(255,255,255,0.2);}
+
+
+/*--------------------------Themes--------------------------*/
+
+#theme_selector
+{
+	width: 80px;
+	opacity: 0.5;
+	filter:alpha(opacity=50);
+}
+#theme_selector:hover
+{opacity: 1.0;	filter:alpha(opacity=100);}
+
+#blue_theme_submit
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#blue_theme_submit:hover {	border-color: rgba(255,255,255,0.2);}
+
+#red_theme_submit
+{
+	padding: 5px;
+	border-style: solid;
+	border-width: 7px;
+	border-color: rgba(255,255,255,0.5);
+}
+#red_theme_submit:hover {	border-color: rgba(255,255,255,0.2);}
+
+/*
+{
+	background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari /
+	background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11-12 /
+	background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15 /
+	background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard /
+}
+
+/*
+
+uyhhu888888
+
+
+*_button is for deletion
+
+*/
diff --git a/Main/Relax/home_blue.php b/Main/Relax/home_blue.php
new file mode 100644
index 0000000..562bde7
--- /dev/null
+++ b/Main/Relax/home_blue.php
@@ -0,0 +1,40 @@
+		<?php
+
+		$page = 'http://charleston.zapto.org';
+
+		// or you could use $page = $_SERVER['PHP_SELF'] ;
+
+		include ( 'Hits/Example_Hitcounter_v1.0/counter.php');
+		addinfo($page);
+
+
+		?>
+				
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Welcome to Charleston!
+			</p>
+
+			<p id="block_content">
+				This website is currently under construction. 
+				If you have any suggestions about anything at all
+				you can share them with me on <!--skype - <b>fantasy376</b> 
+				or -->facebook - <b>Saasho Apostolov</b>.<br>
+				Online: 20:00 PM - 02:00 AM
+				<br><br>
+				<a href="http://wallike.com/wp-content/uploads/2013/10/Fantasy-Night-Sky.jpg">Background Image: <b>FantasyNightSky</b> </a>
+				<br><br>
+				<a href="http://www.youtube.com/watch?v=JmwAI-Q0R7c">Music: <b>Rurutia - Hyousa [musicbox version]</b> </a>
+			</p>
+
+			<p id="block_footer">
+				Created on 20.12.2013, 21:37<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/home_red.php b/Main/Relax/home_red.php
new file mode 100644
index 0000000..84053f3
--- /dev/null
+++ b/Main/Relax/home_red.php
@@ -0,0 +1,40 @@
+		<?php
+
+		$page = 'http://charleston.zapto.org';
+
+		// or you could use $page = $_SERVER['PHP_SELF'] ;
+
+		include ( 'Hits/Example_Hitcounter_v1.0/counter.php');
+		addinfo($page);
+
+
+		?>
+					
+		<br>
+
+		<div id="main_block" >
+			<p id="block_title">
+				Welcome to Charleston!
+			</p>
+
+			<p id="block_content">
+				This website is currently under construction. 
+				If you have any suggestions about anything at all
+				you can share them with me on <!--skype - <b>fantasy376</b> 
+				or -->facebook - <b>Saasho Apostolov</b>.<br>
+				Online: 20:00 PM - 02:00 AM
+				<br><br>
+				<a href="http://miriadna.com/desctopwalls/images/max/Orange-space.jpg">Background Image: <b>OrangeSpace</b> </a>
+				<br><br>
+				<a href="http://www.youtube.com/watch?v=JmwAI-Q0R7c">Music: <b>Rurutia - Hyousa [musicbox version]</b> </a>
+			</p>
+
+			<p id="block_footer">
+				Created on 20.12.2013, 21:37<br>
+					by CharlieScarver
+			</p>
+		</div>
+
+	</body>
+
+</html>
diff --git a/Main/Relax/home_script.js b/Main/Relax/home_script.js
new file mode 100644
index 0000000..95c2ee7
--- /dev/null
+++ b/Main/Relax/home_script.js
@@ -0,0 +1,133 @@
+/////////////Ctrl disable code///////////////////
+
+	var isCtrl = false;
+    document.onkeyup = function(e) {
+	    if(e.which == 17)
+	    isCtrl=false;
+	}
+	/*
+    document.onkeydown=function(e) {
+    	if(e.which == 17)
+    		isCtrl=true;
+    	if((e.which == 85) || (e.which == 67) && isCtrl == true)
+    	{
+    		// alert(‘Keyboard shortcuts are cool!’);
+    		return false;
+   		}
+
+   		^ In F12 disable code
+    } */
+
+
+/////////////F12 disable code///////////////////
+
+    document.onkeypress = function (event) {
+        event = (event || window.event);
+        if (event.keyCode == 123) {
+           //alert('No F-12');
+			return false;
+        }
+    }
+
+	document.onkeydown = function (event) {
+		var e = event
+		event = (event || window.event);
+        if (event.keyCode == 123) {
+           //alert('No F-12');
+			return false;
+        }
+      /*
+      else if (e.which == 17) {
+    		isCtrl=true;
+    	}
+    	else if((e.which == 85) || (e.which == 67) && isCtrl == true)
+    	{
+    		// No Ctrl+U and Ctrl+C
+    		return false;
+   		} 
+      */
+    }
+
+    function disableF12 (event) {
+    	event = (event || window.event);
+        if (event.keyCode == 123) {
+            //alert('No F-keys');
+            return false;
+        }
+    }
+
+/////////////////////Right Click disable code///////////////////////
+
+document.oncontextmenu = function (event) {
+    return false;
+    // No Right click
+   }
+
+/////////////////////end///////////////////////
+ 
+function showTip () {
+  if ($('#tip_button_show').attr("id") == "tip_button_show") {
+    $('#tip_button_show').attr("id", "tip_button_hide");  
+    $('#tip_text').hide();
+    $('#tip').show(2500);
+    $('#tip_text').delay(2600).show(500);
+  } else {
+    $('#tip_button_hide').attr("id", "tip_button_show");  
+    $('#tip_text').hide(500);
+    $('#tip').hide(2500).delay(1000);
+  }
+
+  /*
+  $('#tip_text').hide();
+
+  $('#tip').show(2500).delay(3000);
+  setTimeout($('#tip_text').delay(2500).show(500).delay(2000).hide(500), 2500);
+  $('#tip').hide(2500).delay(1000);
+  */
+}
+
+function togglePlayer () {
+  if ($('#music_button_show').attr("id") == "music_button_show") {
+    $('#music_button_show').attr("id", "music_button_hide");  
+    $('#player').show(2500).delay(1000);
+  } else {
+    $('#music_button_hide').attr("id", "music_button_show");  
+    $('#player').hide(2500).delay(1000);
+  }
+}
+
+// ---------------------------------
+
+function toggleFullScreen() {
+    if ((document.fullScreenElement && document.fullScreenElement !== null) ||    
+       (!document.mozFullScreen && !document.webkitIsFullScreen)) {
+    if (document.documentElement.requestFullScreen) {  
+      document.documentElement.requestFullScreen();  
+    } else if (document.documentElement.mozRequestFullScreen) {  
+      document.documentElement.mozRequestFullScreen();  
+    } else if (document.documentElement.webkitRequestFullScreen) {  
+      document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);  
+    }  
+  } else {  
+    if (document.cancelFullScreen) {  
+      document.cancelFullScreen();  
+    } else if (document.mozCancelFullScreen) {  
+      document.mozCancelFullScreen();  
+    } else if (document.webkitCancelFullScreen) {  
+      document.webkitCancelFullScreen();  
+    }  
+  }  
+} 
+
+function F11 () { //HTML 5
+  var docElm = document.documentElement;
+  if (docElm.requestFullscreen) {
+      docElm.requestFullscreen();
+  }
+  else if (docElm.mozRequestFullScreen) {
+      docElm.mozRequestFullScreen();
+  }
+  else if (docElm.webkitRequestFullScreen) {
+      docElm.webkitRequestFullScreen();
+  }
+}
\ No newline at end of file
diff --git a/Main/Relax/index.php b/Main/Relax/index.php
new file mode 100644
index 0000000..d0f3f92
--- /dev/null
+++ b/Main/Relax/index.php
@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html>
+
+	<head>
+		<title> Charleston </title>
+		<meta charset="UTF-8">
+		<?php 
+		if(session_start())
+			;
+		else
+			die("Session could not be resumed!");
+
+		if (isset($_SESSION['theme'])) {
+			switch ($_SESSION['theme']) {
+				case 'Red':
+					echo '<link rel="stylesheet" type="text/css" href="charleston-red.css" media="screen" >';
+					break;
+				case 'Blue':
+					echo '<link rel="stylesheet" type="text/css" href="charleston-blue.css" media="screen" >';
+					echo '<script src="snowstormv144_20131208/snowstormv144_20131208/snowstorm.js"></script>';
+					break;
+			}
+
+		} else {
+			echo '<link rel="stylesheet" type="text/css" href="charleston-blue.css" media="screen" >';
+			echo '<script src="snowstormv144_20131208/snowstormv144_20131208/snowstorm.js"></script>';
+		}
+
+		
+		?>
+		<!--<link rel="stylesheet" type="text/css" href="charleston-blue.css" media="screen" >-->
+		<link rel="shortcut icon" href="Fantasy-Night-Sky.jpg" />
+		<script type="text/JavaScript" src="Gallery/gallery_script.js"></script>
+		<script language="JavaScript" src="home_script.js"></script>
+
+		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+
+	</head>
+
+	<body>
+		<button id="music_button_show" onclick="togglePlayer()"><b> ♫ </b></button>
+
+		<button id="tip_button_show" onclick="showTip()"><b> :) </b></button>
+		<div id="tip"><p id="tip_text"> Use Full Screen (F11) for better experience :) </p></div>
+
+		<a href="http://charleston.zapto.org/Relax"> <p id="title"> CHARLESTON </p> </a>
+		
+		
+		<!--
+		<p id="subtitle" onclick="toggleFullScreen()"> Use Full Screen (F11) for better experience :) </p>
+		<! onclick="toggleFullScreen()" -->
+
+		<?php
+
+		if(isset($_POST['Logout'])){ // If Logout is pressed 
+			unset($_SESSION['user']); // UNSET the Session from the current user
+			header("Location: http://charleston.zapto.org/Relax");
+		}
+
+		if (!isset($_SESSION['user'])) {
+			echo '<div id="buttons">
+					<form method="GET" id="menu_form">
+						<input type="submit" name="page" id="login" value="Log in" class="submits">
+						|
+						<input type="submit" name="page" id="register" value="Register" class="submits">
+					</form> 
+				</div>';
+		} else {
+			echo '<div id="buttons">
+					<p id="profile_message"> Hello, ', $_SESSION['user'], '! </p>
+					<form method="GET" id="menu_form">
+						<input type="submit" name="page" id="profile" value="Profile" class="submits">
+						<input type="submit" name="page" id="gallery" value="Gallery" class="submits">
+						<input type="submit" name="page" id="theme_selector" value="Themes" class="submits">
+						|
+						<input type="submit" name="page" id="questions" value="Questions" class="submits">
+					</form>	
+						|
+					<form method="POST" id="bi_form">
+					    <input type="submit" name="Logout" id="logout" value="Logout" class="submits">
+					</form>
+				</div>';
+		}
+
+		
+		if(isset($_GET['page'])) {
+			
+			switch ($_GET['page']) {
+				case 'Log in':
+					require_once 'Login/login.php';
+					break;
+				case 'Register':
+					require_once 'Register/register.php';
+					break;
+				case 'Reg_Success':
+					require_once 'Register/reg_success.php';
+					break;
+				case 'Profile':
+					require_once 'Profile/profile.php';
+					break;
+				case 'Gallery':
+					require_once 'Gallery/gallery.php';
+					break;
+				case 'Themes':
+					require_once 'Themes/themes.php';
+					break;
+				case 'Questions':
+					require_once 'Questions/questions.php';
+					break;
+				case 'Add Question':
+					require_once 'Questions/add_question.php';
+					break;
+				case 'Add_Success':
+					require_once 'Questions/add_success.php';
+					break;
+			}
+
+		} else {
+			if (isset($_SESSION['theme'])  && $_SESSION['theme'] == 'Red') {
+				require_once 'home_red.php';
+			} else {
+				require_once 'home_blue.php';
+			}
+		}
+
+		//--------------Hits--------------------------
+		/*
+		$page = 'http://charleston.zapto.org/Relax';
+
+		// or you could use $page = $_SERVER['PHP_SELF'] ;
+
+		include ( 'Hits/Example_Hitcounter_v1.0/counter.php');
+		addinfo($page);
+		*/
+
+		?>
+
+		<audio controls id="player">
+			<source src="Hyousa Rurutia [ musicbox ].mp3" type="audio/mpeg">
+			<source src="ParagonX9 - Polar240.wav" type="audio/wav">
+		</audio>
+
+<!-- Sky Flight
+
+Transperancy: ON OFF
+Gallery - Image Deletion Option
+User Deletion Tool
+Profile Message Edit
+Toggle FullScreen Button
+Customized Scrollbar
+Main Gallery
+Images Border
+Avatar
+Online Between
+
+ -->
diff --git a/Main/Relax/loader.php b/Main/Relax/loader.php
new file mode 100644
index 0000000..2e86026
--- /dev/null
+++ b/Main/Relax/loader.php
@@ -0,0 +1,30 @@
+<?php
+
+if(isset($_GET['page'])) {
+	
+	switch ($_GET['page']) {
+		case 'Log in':
+			require_once 'Login/login.php';
+			break;
+		case 'Register':
+			require_once 'Register/register.php';
+			break;
+		case 'Reg_Success':
+			require_once 'Register/reg_success.php';
+			break;
+		case 'Profile':
+			require_once 'Profile/profile.php';
+			break;
+		case 'Gallery':
+			require_once 'Gallery/gallery.php';
+			break;
+		default:
+			require_once 'home.php';
+			break;
+	}
+
+} else {
+	require_once 'home.php';
+}
+
+?>
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/.gitignore b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/.gitignore
new file mode 100644
index 0000000..2ca3f09
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/.gitignore
@@ -0,0 +1,3 @@
+build.*
+.DS_Store
+*.zip
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/README b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/README
new file mode 100644
index 0000000..b6c8108
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/README
@@ -0,0 +1,12 @@
+/**
+ * DHTML Snowstorm! JavaScript-based Snow for web pages
+ * --------------------------------------------------------
+ * Version 1.44.20131111 (Previous rev: 1.43.20111201)
+ * Copyright (c) 2007, Scott Schiller. All rights reserved.
+ * Code provided under the BSD License:
+ * http://schillmania.com/projects/snowstorm/license.txt
+ */
+
+Homepage, demo, downloads etc.:
+http://www.schillmania.com/projects/snowstorm/
+
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example-customized.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example-customized.html
new file mode 100644
index 0000000..bca1f09
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example-customized.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>DHTML SnowStorm: Basic Example</title>
+<script type="text/javascript" src="snowstorm.js"></script>
+<script type="text/javascript">
+snowStorm.snowColor = '#99ccff'; // blue-ish snow!?
+snowStorm.flakesMaxActive = 96;  // show more snow on screen at once
+snowStorm.useTwinkleEffect = true; // let the snow flicker in and out of view
+</script>
+</head>
+
+<body style="background:#336699;font:100 1.75em helvetica neue, helvetica,arial,verdana,sans-serif;color:#fff">
+
+<h1 style="font-size:2em;margin:0px;font-weight:100">Example SnowStorm page</h1>
+
+<p>
+ A single Javascript reference in the &lt;head&gt; tag is required for SnowStorm to work.
+</p>
+
+<p>
+ As well, some customized options are specified which override the SnowStorm defaults.
+</p>
+
+<p>
+ View the source of this page for reference.
+</p>
+
+<pre style="color:#99ccff">
+&lt;!-- required, default behaviour --&gt;
+&lt;script src="snowstorm.js"&gt;&lt;/script&gt;
+
+&lt;!-- now, we'll customize the snowStorm object --&gt;
+&lt;script&gt;
+snowStorm.snowColor = '#99ccff';   // blue-ish snow!?
+snowStorm.flakesMaxActive = 96;    // show more snow on screen at once
+snowStorm.useTwinkleEffect = true; // let the snow flicker in and out of view
+&lt;/script&gt;
+</pre>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example.html
new file mode 100644
index 0000000..b3cf1f8
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/basic-example.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>DHTML SnowStorm: Basic Example</title>
+<script type="text/javascript" src="snowstorm.js"></script>
+</head>
+
+<body style="background:#6699cc;font:100 1.75em helvetica neue, helvetica,arial,verdana,sans-serif;color:#fff">
+
+<h1 style="font-size:2em;margin:0px;font-weight:100">Example SnowStorm page</h1>
+
+<p>
+ A single Javascript reference in the &lt;head&gt; tag is required for SnowStorm to work.
+</p>
+
+<p>
+ View the source of this page for reference.
+</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html4-example.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html4-example.html
new file mode 100644
index 0000000..7c2f470
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html4-example.html
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>DHTML SnowStorm: Basic Example (HTML4 DTD)</title>
+<meta name="robots" content="noindex" />
+<script src="snowstorm-min.js"></script>
+</head>
+
+<body style="background:#6699cc">
+
+<h1 style="font-size:1em;color:#fff">Example SnowStorm page</h1>
+
+<p style="font-size:1em;color:#fff">
+ A single Javascript reference in the &lt;head&gt; tag is required for SnowStorm to work.<br />
+ View the source of this page for reference.
+</p>
+
+<p style="font-size:1em;color:#fff">This page uses a HTML 4.01 transitional DTD, and thus Internet Explorer doesn't support position:fixed in "backCompat" rendering mode. The script should handle this case properly.</p>
+
+
+</body>
+</html>
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html5-example.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html5-example.html
new file mode 100644
index 0000000..4ddf50d
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/basic-html5-example.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>DHTML SnowStorm: Basic Example (HTML5 DTD)</title>
+<meta name="robots" content="noindex" />
+<script src="snowstorm-min.js"></script>
+</head>
+
+<body style="background:#6699cc">
+
+<h1 style="font-size:1em;color:#fff">Example SnowStorm page</h1>
+
+<p style="font-size:1em;color:#fff">
+ A single Javascript reference in the &lt;head&gt; tag is required for SnowStorm to work.<br />
+ View the source of this page for reference.
+</p>
+
+<p style="font-size:1em;color:#fff">This page uses a HTML 5 DTD. Older versions of IE should render this page in standards mode, where supported.</p>
+
+
+</body>
+</html>
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_background.gif b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_background.gif
new file mode 100644
index 0000000..81ee990
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_background.gif
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_default.css b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_default.css
new file mode 100644
index 0000000..18419bd
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/demo/demo_default.css
@@ -0,0 +1,223 @@
+/*
+
+ SnowStorm demo page CSS
+ -----------------------
+
+ None of this is needed for the snow effect to work - it's strictly to make the demo/documentation look pretty.
+
+*/
+
+body {
+ margin:0px;
+ padding:0px;
+ background:#333 url(../lights/image/bg-strip-dark.png);
+ color:#eeeeee;
+ font-family:helvetica,verdana,arial,tahoma,"sans serif";
+ font-weight: 300;
+ font-size:100%;
+ text-shadow: 0 0 0 #000; /* safari is lame. */
+}
+
+a {
+ color:#aaaa00;
+ text-decoration:none;
+}
+
+a:hover {
+ color:#ffff33;
+}
+
+h1, h2, h3 {
+ font-family:"helvetica neue",helvetica,verdana,arial,tahoma,"sans serif";
+ margin:0px;
+ font-weight: 200;
+ color:#fff;
+}
+
+h1 {
+ font-size:2.5em;
+ font-weight: 100;
+}
+
+h2 {
+ font-size:1.8em;
+ font-weight: 100;
+ margin-top:1em;
+ color:#fff;
+}
+
+h3 {
+ font-size:1.4em;
+ margin-top:1em;
+ margin-bottom:0.5em;
+ letter-spacing: 0.01em;
+ color:#99ccff;
+}
+
+h3 + p {
+ margin-top:0px;
+}
+
+p {
+ margin:1em 0px 0px 0px;
+}
+
+dd,
+p {
+ line-height:1.6em;
+}
+
+p.first {
+ margin-top:0.25em;
+}
+
+.noTop {
+ margin-top:0px !important;
+ padding-top:0px !important;
+ line-height:1em;
+}
+
+pre {
+ font-size:1.2em;
+ *font-size:1em;
+ color:#33cc33;
+}
+
+pre span {
+ color: #999;
+}
+
+pre {
+ font-size:1.25em;
+}
+
+ul {
+ margin-left:16px;
+ padding-left:0px;
+ margin-top:5px;
+ margin-bottom:5px;
+}
+
+.bright {
+ color:#ff6666;
+}
+
+dl {
+ margin-left:1em;
+}
+
+dl dt {
+ font-weight:bold;
+ border-bottom:1px dotted #555;
+ padding-bottom:4px;
+ margin-top:1.5em;
+ margin-right:2%;
+}
+
+dl dd {
+ margin-top:4px;
+ margin-left:0px;
+ margin-bottom:0.5em;
+}
+
+code,
+dl dt code {
+ color:#33cc33;
+ font-weight:normal;
+}
+
+dl dd code {
+ color:#ccc;
+}
+
+dl em {
+ color:#fff;
+ font-weight:normal;
+ padding-top:2px;
+ padding-bottom:0.5em;
+}
+
+code {
+ font-family:monaco,"VT-100","lucida console",terminal,monospace,courier,system,sans-serif;
+ font-size:1em;
+ font-weight:light;
+}
+
+#container {
+ position:relative;
+ background-color:#222;
+ padding:32px 16px 16px 16px;
+ border:1px solid #111;
+ max-width:60em;
+ _width:50em;
+ margin:0px auto;
+}
+
+#content {
+ position:relative;
+ z-index:2;
+}
+
+.alt {
+ color:#ccc;
+}
+
+/* seasonal decorations */
+
+#lights {
+ position:absolute;
+ border-top:1px solid #006600;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:275px;
+ overflow:hidden;
+ z-index:1;
+ display:none;
+}
+
+.xlsf-light {
+ position:absolute;
+ margin-top:-1px;
+}
+
+.xlsf-fragment {
+ position:absolute;
+ background:transparent url(../lights/image/bulbs-50x50-fragments.png) no-repeat 0px 0px;
+ width:50px;
+ height:50px;
+}
+
+.xlsf-fragment-box {
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:50px;
+ height:50px;
+ *width:100%;
+ *height:100%;
+ display:none;
+}
+
+.xlsf-cover {
+ position:fixed;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ background:#fff;
+ opacity:1;
+ z-index:999;
+ display:none;
+}
+
+.special {
+ display:none;
+ _display: block; /* just you, IE 6. */
+ font-size:x-small;
+ color:#999;
+}
+
+ul li {
+ line-height:1.75em;
+}
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/index.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/index.html
new file mode 100644
index 0000000..d83ad5b
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/index.html
@@ -0,0 +1,351 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>JavaScript Snow: DHTML Snowstorm. Making it snow on the internets since 2003.</title>
+<meta name="robots" content="noindex" />
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
+<meta name="description" content="Realistic JavaScript snow effect for your web site. Free for any use. BSD license. Includes wind, velocity, &quot;sticky&quot; snow and fading effects. Single file, easy to set up and customize." />
+<meta name="keywords" content="DHTML Snowstorm, DHTML snow, javascript snow, snow effect, Scott Schiller, Schill, Schillmania" />
+<meta name="author" content="Scott Schiller" />
+<meta name="copyright" content="Copyright (C) 2003 Scott Schiller" />
+<meta name="language" content="en-us" />
+<link type="text/css" rel="stylesheet" href="demo/demo_default.css" />
+
+<!-- Copy the <script> tag into your own page(s) for the snow effect. That is all! (No CSS etc. is needed) -->
+<script src="snowstorm.js"></script>
+
+<!-- for the Snowstorm homepage, allow the demo to run on iPhone and mobile devices. -->
+<script>snowStorm.excludeMobile = false;</script>
+
+<!-- bonus christmas light stuff, not required for snowstorm -->
+<script src="lights/soundmanager2-nodebug-jsmin.js"></script>
+<script src="http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js&2.6.0/build/animation/animation-min.js"></script>
+<script src="lights/christmaslights.js"></script>
+
+</head>
+
+<body>
+
+<div id="lights">
+ <!-- lights go here -->
+</div>
+
+<div id="container">
+
+ <div id="content">
+
+ <h1>Snowstorm: A JavaScript Snow Effect for HTML</h1>
+ <p class="alt noTop">Bringing snow to the web since 2003. This version: 1.44.20131208</p>
+
+ <p>
+  <a href="#" onclick="snowStorm.randomizeWind();return false">Change Wind</a> | <a href="#" onclick="snowStorm.stop();return false">Stop Snowing</a> | Bonus widget: <a href="lights/" onclick="if (document.location.protocol != 'http') this.href=this.href+'index.html'">Smash Christmas Lights</a>
+ </p>
+ <p id="special" class="special">(Note: Christmas Lights are incompatible with IE 6 because of PNG images.)</p>
+
+ <h2>Let It Snow.</h2>
+
+ <h3>So, you want JavaScript snow on your web site, eh?</h3>
+ 
+ <p class="first">Snowstorm is a JavaScript-driven snow effect that can be easily added to web pages. It is free for use, and easy to set up. A single JavaScript file provides the functionality required. No images are used for the snow effect.</p>
+
+ <h3>I'd like to use this on my site.</h3>
+
+ <p>This is all you need to get started:</p>
+
+ <p>
+  <pre>&lt;script src="snowstorm.js"&gt;&lt;/script&gt;</pre>
+ </p>
+
+ <p>See this <a href="basic-example.html" title="Simple Snowstorm demo">basic example</a> for reference.</p>
+
+ <h3>What kind of things can I customize?</h3>
+
+ <p>You can adjust the snow speed, the amount of snow, the "wind", if and where it should stick (and if it should "melt"), and finally, whether the snow can react to the mouse moving (ie., "wind changes.") See <a href="#customizing" title="Customizing snow storm behaviour">Customizing Snowstorm</a> for more.</p>
+
+ <h3>And the Christmas Lights?</h3>
+
+ <p>The christmas lights are a separate experimental script which also has an <a href="lights/" onclick="if (document.location.protocol != 'http') this.href=this.href+'index.html'">example</a>. It is undocumented, but the script can be modified to taste if you're the adventurous type.</p>
+
+ <h2 id="download">Download</h2>
+ <p class="first">ZIP file, includes this demo page and source code.</p>
+
+ <ul>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv144_20131208.zip">Snowstorm v1.44.20131208</a></li>
+ </ul>
+
+ <p>Also on Github: <a href="http://github.com/scottschiller/snowstorm/">github.com/scottschiller/snowstorm/</a></p>
+
+ <h2 id="license">License</h2>
+ <p class="first">Snowstorm is provided under a <a href="license.txt" title="Snowstorm BSD license">BSD license</a>.</p>
+
+ <h2 id="technotes">Technical Notes</h2>
+
+ <p class="first">Snowstorm works under modern browsers, and as far back as IE 6 - possibly even 5.5, if you can find a copy!</p>
+ <p>If you are seeing snow as you read this, then the script is working as expected.</p>
+
+ <h3>CPU Use</h3>
+
+ <p class="first">Snowstorm can eat up a lot of CPU, even on modern computers, because of the number of elements being moved around the screen at once. The <a href="basic-example.html" title="Simple Snowstorm demo">basic example</a> may have notably lower CPU use as it doesn't include the christmas lights, and the page layout is much simpler. Consider raising the animation interval, and lowering the amount of snowflakes (active and max) to help reduce CPU use.</p>
+
+ <p>Where supported, Snowstorm will attempt to use GPU-based hardware acceleration to draw and animate the snow. Having GPU acceleration can help in reducing CPU load.</p>
+
+ <h3>Mobile Support</h3>
+
+ <p>By default, mobile devices are excluded from the snow effect to be nice to their CPUs (and batteries.) If your local marketing department insists, <i>"This must work on mobile!"</i> despite being warned of the downsides, you can set <code style="white-space:nowrap">snowStorm.excludeMobile = false;</code> (or edit the snowstorm.js file directly) to enable Snowstorm on devices like the iPhone, iPad and Android phones etc. This demo page has the effect enabled for mobile devices.</p>
+
+ <h2 id="howto">Implementation</h2>
+
+ <p class="first">One JavaScript reference is required. Aside from customization, that's it!</p>
+
+<pre>
+&lt;script src="snowstorm.js"&gt;&lt;/script&gt;
+</pre>
+
+ <p>Once you have snowstorm configured, you can use the optimized, minified version of the code (~40% smaller):</p>
+
+ <p>
+  <pre>&lt;script src="snowstorm-min.js"&gt;&lt;/script&gt;</pre>
+ </p>
+
+ <h2 id="customizing">Customizing Snowstorm</h2>
+
+ <p>Once you have Snowstorm running in your page, you can customize its properties either by editing the snowstorm.js file directly, or assigning new values to the snowStorm object after snowstorm.js has loaded.</p>
+
+ <p>For example:</p>
+
+<pre>
+<span>&lt;!-- required snowstorm JS, default behaviour --&gt;</span>
+&lt;script src="snowstorm.js"&gt;&lt;/script&gt;
+
+<span>&lt;!-- now, we'll customize the snowStorm object --&gt;</span>
+&lt;script&gt;
+snowStorm.snowColor = '#99ccff'; <span>  // blue-ish snow!?</span>
+snowStorm.flakesMaxActive = 96;  <span>  // show more snow on screen at once</span>
+snowStorm.useTwinkleEffect = true; <span>// let the snow flicker in and out of view</span>
+&lt;/script&gt;
+</pre>
+
+ <p>See this <a href="basic-example-customized.html" title="Snowstorm with custom options">customized example</a> in action.</p>
+
+ <h2 id="properties">Configurable Properties</h2>
+
+ <p class="first">Snowstorm can be fairly easily customized; some of the major properties are listed below.</p>
+
+ <dl>
+
+  <dt><code>snowStorm.autoStart = true;</code></dt>
+  <dd>Whether the snow should start automatically or not.</dd>
+
+  <dt><code>snowStorm.animationInterval = 33;</code></dt>
+  <dd>Theoretical "milliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower</dd>
+
+  <dt><code>snowStorm.flakeBottom = null;</code></dt>
+  <dd>Limits the "floor" (pixels) of the snow. If unspecified, snow will "stick" to the bottom of the browser window and persists through browser resize/scrolling.</dd>
+
+  <dt><code>snowStorm.flakesMax = 128;</code></dt>
+  <dd>Sets the maximum number of snowflakes that can exist on the screen at any given time.</dd>
+
+  <dt><code>snowStorm.flakesMaxActive = 64;</code></dt>
+  <dd>Sets the limit of "falling" snowflakes (ie. moving on the screen, thus considered to be active.)</dd>
+
+  <dt><code>snowStorm.followMouse = true;</code></dt>
+  <dd>Allows snow to move dynamically with the "wind", relative to the mouse's X (left/right) coordinates.</dd>
+
+  <dt><code>snowStorm.freezeOnBlur = true;</code></dt>
+  <dd>Stops the snow effect when the browser window goes out of focus, eg., user is in another tab. Saves CPU, nicer to user.</dd>
+
+  <dt><code>snowStorm.snowColor = '#fff';</code></dt>
+  <dd>Don't eat (or use?) yellow snow.</dd>
+
+  <dt><code>snowStorm.snowCharacter = '&bull;';</code></dt>
+  <dd>&amp;bull; (&bull;) = bullet. &amp;middot; entity (&middot;) is not used as it's square on some systems etc. Changing this may result in cropping of the character and may require flakeWidth/flakeHeight changes, so be careful.</dd>
+
+  <dt><code>snowStorm.snowStick = true;</code></dt>
+  <dd>Allows the snow to "stick" to the bottom of the window. When off, snow will never sit at the bottom.</dd>
+
+  <dt><code>snowStorm.targetElement = null;</code></dt>
+  <dd>An HTML element which snow will be appended to (default: document body.) Can be an element ID string eg. 'myDiv', or a DOM node reference. See <a href="target-element-relative-example.html">relative</a> and <a href="target-element-absolute-example.html">absolute</a>-positioned examples.</dd>
+
+  <dt><code>snowStorm.useMeltEffect = true;</code></dt>
+  <dd>When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it</dd>
+
+  <dt><code>snowStorm.useTwinkleEffect = true;</code></dt>
+  <dd>Allow snow to randomly "flicker" in and out of view while falling</dd>
+
+  <dt><code>snowStorm.usePositionFixed = false;</code></dt>
+  <dd>true = snow not affected by window scroll. may increase CPU load, disabled by default - if enabled, used only where supported.</dd>
+
+  <dt><code>snowStorm.vMaxX = 8;<br />snowStorm.vMaxY = 5;</code></dt>
+  <dd>Defines maximum X and Y velocities for the storm; a random value in this range is selected for each snowflake.</dd>
+
+ </dl>
+
+ <h2 id="methods">Methods</h2>
+
+ <p>Snowstorm has a few basic methods for controlling the snow effect.</p>
+
+ <dl>
+
+  <dt><code>snowStorm.randomizeWind()</code></dt>
+  <dd>Sets the wind speed with a random value relative to vMaxX and vMaxY properties.</dd>
+
+  <dt><code>snowStorm.freeze()</code></dt>
+  <dd>Stops the snow effect in place.</dd>
+
+  <dt><code>snowStorm.resume()</code></dt>
+  <dd>Continues snowing from a "frozen" state.</dd>
+
+  <dt><code>snowStorm.toggleSnow()</code></dt>
+  <dd>Enables or disables the snow effect depending on state, same as calling freeze() or resume().</dd>
+
+  <dt><code>snowStorm.stop()</code></dt>
+  <dd>Freezes and kills the snowstorm effect, and removes related event handlers. Snowstorm will not work properly if other methods are called after stop().</dd>
+
+ </dl>
+
+ <h2 id="versionhistory">Version History</h2>
+
+ <h3 id="oldversions">Older versions</h3>
+ <ul>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv144_20131125.zip">Snowstorm v1.44.20131125</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv144_20131111.zip">Snowstorm v1.44.20131111</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv143_20111201.zip">Snowstorm v1.43.20111201</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv142_20111120.zip">Snowstorm v1.42.20111120</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv141_20101113.zip">Snowstorm v1.41.20101113</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv14_20091115.zip">Snowstorm v1.4.20091115</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv13_20081215.zip">Snowstorm v1.3.20081215</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstormv13_20081208.zip">Snowstorm v1.3.20081208</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstorm_20041121a.zip">Snowstorm v1.2.20041121a</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstorm_20031218a.zip">Snowstorm v1.2.20031218a</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstorm_20031213a.zip">Snowstorm v1.2.20031213a</a></li>
+  <li><a href="http://www.schillmania.com/projects/snowstorm/snowstorm_20031206c.zip">Snowstorm v1.1.20031206c</a></li>
+ </ul>
+
+ <h3>1.44.20131208</h3>
+ <ul>
+  <li>Added <code>usePixelPosition</code> to allow forcing of pixels for left/top positioning vs. percentage-based values.</li>
+  <li>Detect and force pixel-based positioning if <code>targetElement</code> is specified, or <code>body</code> is relatively-positioned.</li>
+  <li>Adjust positioning logic for <code>targetElement</code> case.</li>
+ </ul>
+
+
+ <h3>1.44.20131125</h3>
+ <ul>
+  <li>Fixed regression where <code>flakeBottom</code> would result in snow not properly sticking.</li>
+  <li>Percent based left/right positioning is now applied in all browsers, making resizing better.</li>
+ </ul>
+
+ <h3>1.44.20131111</h3>
+ <ul>
+  <li>GPU (hardware)-accelerated snow, where supported. Faster drawing, less load on CPU.</li>
+  <li>Percent-based bottom/right positioning of snow, rather than top/left-based pixel-based positioning (where supported.)</li>
+  <li>JSLint cleanup.</li>
+  <li>Fixed the color of christmas light fragments to match the lights, finally.</li>
+  <li>Design/layout tweaks, slightly more modern.</li>
+ </ul>
+
+ <h3>1.43.20111201</h3>
+ <ul>
+  <li>ImageOptim-optimized image files (byte savings)</li>
+  <li>Added snowStorm.autoStart, for those who want to start snow at their own leisure</li>
+  <li>Additional Mobile check: Opera Mobile</li>
+  <li>cursor:default over snow (instead of text I-beam cursor)</li>
+  <li>meltFrame animation counter correction (possible JS error fix)</li>
+ </ul>
+
+ <h3>1.42.20111120</h3>
+ <ul>
+  <li>Tweaked right margin for IE 9 under Windows 7, fixing horizontal scrollbar issue</li>
+  <li>Re-appeased the jslint gods</li>
+ </ul>
+
+ <h3>1.41.20101113</h3>
+ <ul>
+  <li>Added formal BSD license (project was previously "free for any use.")</li>
+  <li>Modernized event add/remove handlers, wait for window.onload() before starting</li>
+  <li>New excludeMobile option, ignore iPhone etc. by default (high CPU use on mobile is evil for both CPU, and batteries.)</li>
+  <li>New freezeOnBlur option, allow control of previously-hardcoded behaviour</li>
+  <li>Focus-based freezeOnBlur now works under IE 6, too</li>
+  <li>Code cleanup, now passes updated (more-strict) jslint validation</li>
+ </ul>
+
+ <h3>1.4.20091115</h3>
+ <ul>
+  <li>Text-based snow (and color options) using "bullet" HTML entity &bull; .. no more images!</li>
+  <li>New snowMelt effect, resize + fade where supported</li>
+  <li>New twinkle effect (like stars)</li>
+  <li>New animationInterval, usePositionFixed, snowColor attributes, common attributes now public on snowStorm object eg. snowStorm.stick = true;</li>
+  <li>Code passes jslint validation (2009-10-04 edition, default settings)</li>
+  <li>Removed "collect" feature, somewhat-buggy and nobody used it</li>
+  <li>Fixed sticky/recycle behaviour</li>
+ </ul>
+
+ <h3>1.3.20081215</h3>
+ <ul>
+  <li>IE doctype rendering tweak: position:absolute used for "BackCompat" (HTML 4 transitional) DOCTYPE in IE.</li>
+  <li>Fixed an annoying horizontal scrollbar positioning-related bug with wind affecting snow near the right edge.</li>
+ </ul>
+
+ <h3>1.3.20081208</h3>
+ <ul>
+  <li>New snowStick (snow stickiness) and followMouse (dynamic wind) options.</li>
+  <li>Four years later, we still have IE 6 and can't use position:fixed globally for "sticky" snow, but we're really close.</li>
+  <li>Position:fixed used for all more modern browsers.</li>
+  <li>Improved distribution of initial snow dump, new recycling.</li>
+  <li>Focus/blur events (minus IE) for graceful pausing of snow, sparing user's CPU when window not in focus.</li>
+  <li>Bonus smashable christmas lights demo, using <a href="http://schillmania.com/projects/soundmanager2/" title="JavaScript Sound api, play mp3s with JavaScript">SoundManager 2</a> and <a href="http://developer.yahoo.com/yui/" title="Yahoo! User Interface Library">YUI</a> DOM/Event libraries</li>
+  <li>Cleaner, simplified event code, removal of old PNG wrapper stuff.</li>
+ </ul>
+
+ <h3>1.2.20041121a</h3>
+ <ul>
+  <li>Script moved into one file (snowstorm.js) for simplicity</li>
+  <li>addEventHandler and PNG support functions updated</li>
+ </ul>
+
+ <h3>1.2.20031218a</h3>
+ <ul>
+  <li>Opera 7 ("O7") support added.. I think.</li>
+  <li>Improved initialization speed (less snowflake objects on startup)</li>
+  <li>Err.. That's about it.</li>
+ </ul>
+
+ <h3>1.2.20031213a</h3>
+ <ul>
+  <li>Netscape 6.x "sticky" snow behavior fixed (now works)</li>
+  <li>IE:mac bug event handler bug fixed (script should now work)</li>
+  <li>Snow collection feature added</li>
+  <li>Snowflake speed is relative to size (Cheap pseudo-3D effect)</li>
+ </ul>
+
+ <h3>1.1.20031206c</h3>
+ <ul>
+  <li>Initial release</li>
+ </ul>
+
+ <h2 id="feedback">Feedback</h2>
+ <h3>Comments, suggestions, questions, criticism?</h3>
+ <p class="first">
+   A few contact options are available. <a href="http://schillmania.com/content/react/contact/" title="Scott Schiller's contact information">Get in touch</a> via email or IM.
+ </p>
+
+ <h2 id="elsewhere">Elsewhere On The Internets</h2>
+ <p class="first">
+  This is a side project by Scott Schiller. Wacky DHTML/JavaScript experiments and other nonsense can be found at <a href="http://www.schillmania.com/" title="Scott's personal experimental DHTML site">schillmania.com</a>.
+ </p>
+
+ </div>
+
+</div>
+
+<!-- stats/counter stuff for my web site. You don't need this for the snow effect to work. -->
+<script type="text/javascript" src="http://include.reinvigorate.net/re_.js"></script>
+<script type="text/javascript">
+try {
+reinvigorate.track("vq4zg-s08a9v69iv");
+} catch(err) {}
+</script>
+
+</body>
+</html>
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/license.txt b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/license.txt
new file mode 100644
index 0000000..fedb072
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/license.txt
@@ -0,0 +1,29 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2003, Scott Schiller (schillmania.com)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this 
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+
+* Neither the name of schillmania.com nor the names of its contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission from schillmania.com.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.css b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.css
new file mode 100644
index 0000000..6af3244
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.css
@@ -0,0 +1,111 @@
+/* XLSF 2007 */
+
+body {
+ background:#333 url(image/bg-strip-dark.png) 0px 0px;
+ font-family:normal,"Century Gothic","Helvetica Neue Light","Helvetica Neue",georgia,"times new roman","Arial Rounded MT Bold",helvetica,verdana,tahoma,arial,"sans serif";
+ font-size:75%;
+ color:#666;
+}
+
+h1, h1 a {
+ color:#999;
+ text-decoration:none;
+}
+
+h1 {
+ color:#999;
+ margin-bottom:0;
+ margin-left:-5px;
+ margin-top:0;
+ padding-left:5px;
+ padding-right:5px;
+}
+
+h1, h2, h3 {
+ clear:both;
+ float:left;
+ font-family:normal,"Century Gothic","Helvetica Neue Light","Helvetica Neue",georgia,"times new roman","Arial Rounded MT Bold",helvetica,verdana,tahoma,arial,"sans serif";
+ font-size:3em;
+ font-size-adjust:none;
+ margin-bottom:0.25em;
+ padding-bottom:1px;
+}
+
+h1, h2 {
+ letter-spacing:-1px;
+ margin-bottom:0;
+ margin-left:-5px;
+ margin-top:0;
+ padding-left:5px;
+ padding-right:5px;
+}
+
+a {
+ color:#6699cc;
+ padding:0px 2px;
+ text-decoration:none;
+}
+
+a:hover {
+ background:#6699cc;
+ color:#fff;
+}
+
+#lights {
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ overflow:hidden;
+}
+
+.xlsf-light {
+ position:absolute;
+}
+
+body.fast .xlsf-light {
+ opacity:0.9;
+}
+
+.xlsf-fragment {
+ position:absolute;
+ background:transparent url(image/bulbs-50x50-fragments.png) no-repeat 0px 0px;
+ width:50px;
+ height:50px;
+}
+
+.xlsf-fragment-box {
+ position:absolute;
+ left:0px;
+ top:0px;
+ width:50px;
+ height:50px;
+ *width:100%;
+ *height:100%;
+ display:none;
+}
+
+.xlsf-cover {
+ position:fixed;
+ left:0px;
+ top:0px;
+ width:100%;
+ height:100%;
+ background:#fff;
+ opacity:1;
+ z-index:999;
+ display:none;
+}
+
+/*
+.xlsf-light.bottom {
+ height:49px;
+ border-bottom:1px solid #006600;
+}
+
+.xlsf-light.top {
+ height:49px;
+ border-top:1px solid #009900;
+}
+*/
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.js b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.js
new file mode 100644
index 0000000..50d615f
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/christmaslights.js
@@ -0,0 +1,468 @@
+// Christmas Light Smashfest
+// Adapted from XLSF 2007 as originally used on http://schillmania.com/?theme=2007&christmas=1
+
+function $(sID) {
+  return document.getElementById(sID);
+}
+
+var Y = {
+ // shortcuts
+ A: YAHOO.util.Anim,
+ D: YAHOO.util.Dom,
+ E: YAHOO.util.Event,
+ UE: YAHOO.util.Easing,
+ CA: YAHOO.util.ColorAnim,
+ BG: YAHOO.util.BgPosAnim
+}
+
+function XLSF(oTarget,urlBase) {
+  var writeDebug = soundManager._wD;
+  var urlBase = (urlBase?urlBase:'lights/');
+  writeDebug('XLSF()');
+  var IS_MOON_COMPUTER = false;
+  var isIE = navigator.userAgent.match(/msie/i);
+  var self = this;
+  var xlsf = self;
+  var animDuration = 1;
+  this.oFrag = document.createDocumentFragment();
+  this.oTarget = (oTarget?oTarget:document.documentElement);
+  this.oExplosionBox = document.createElement('div');
+  this.oExplosionBox.className = 'xlsf-fragment-box';
+  this.oExplosionFrag = document.createElement('div');
+  this.oExplosionFrag.className = 'xlsf-fragment';
+  this.lights = [];
+  this.lightClasses = {
+    pico: 32,
+    tiny: 50,
+    small: 64,
+    medium: 72,
+    large: 96	
+  }
+
+  if (window.innerWidth || window.innerHeight) {
+    var screenX = window.innerWidth; // -(!isIE?24:2);
+    var screenY = window.innerHeight;
+  } else {
+    var screenX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth); // -(!isIE?8:0);
+    var screenY = (document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);
+  }
+
+  this.lightClass = (screenX>1800?'small':'pico'); // kind of light to show (32px to 96px square)
+
+  if (window.location.href.match(/size=/i)) {
+    this.lightClass = window.location.href.substr(window.location.href.indexOf('size=')+5);
+  }
+
+  this.lightXY = this.lightClasses[this.lightClass]; // shortcut to w/h
+
+  this.lightGroups = {
+    left: [],
+    top: [],
+    right: [],
+    bottom: []
+  }
+  this.lightSmashCounter = 0;
+  this.lightIndex = 0;
+  this.lightInterval = 500;
+  this.timer = null;
+  this.bgBaseX = 0;
+  this.bgBaseY = 0;
+  this.soundIDs = 0;
+  this.soundPan = {
+    panValue: 75,
+    left: 0,
+    mid: 481,
+    right: 962
+  }
+
+  this.cover = document.createElement('div');
+  this.cover.className = 'xlsf-cover';
+  document.documentElement.appendChild(this.cover);
+
+  this.initSounds = function() {
+	for (var i=0; i<6; i++) {
+	  soundManager.createSound({
+	    id: 'smash'+i,
+	    url: urlBase+'sound/glass'+i+'.mp3',
+	    autoLoad: true,
+	    multiShot: true,
+		volume:50
+	  });
+	}
+    self.initSounds = function() {} // safety net
+  }
+
+  this.appendLights = function() {
+	writeDebug('xlsf.appendLights()');
+    self.oTarget.appendChild(self.oFrag);
+    self.oFrag = document.createDocumentFragment();
+  }
+
+  function ExplosionFragment(nType,sClass,x,y,vX,vY) {
+    var self = this;
+    this.o = xlsf.oExplosionFrag.cloneNode(true);
+    this.nType = nType;
+    this.sClass = sClass;
+    this.x = x;
+    this.y = y;
+    this.w = 50;
+    this.h = 50;
+    this.bgBaseX = 0;
+    this.bgBaseY = this.h*this.nType;
+    this.vX = vX*(1.5+Math.random());
+    this.vY = vY*(1.5+Math.random());
+    this.oA = null;
+    this.oA2 = null;
+    this.burstPhase = 1; // starting background offset point
+    this.burstPhases = 4; // 1+offset (ignore large size)
+    this.o.style.backgroundPosition = ((this.w*-this.burstPhase)+'px '+(this.h*-nType)+'px');
+
+    // boundary checks
+    if (self.sClass == 'left') {
+      this.vX = Math.abs(this.vX);
+    } else if (self.sClass == 'right') {
+      this.vX = Math.abs(this.vX)*-1;
+    }
+
+    this.burstTween = function() {
+      // determine frame to show
+      var phase = 1+Math.floor((this.currentFrame/this.totalFrames)*self.burstPhases);
+      if (phase != self.burstPhase) {
+        self.burstPhase = phase;
+        self.o.style.backgroundPosition = ((self.w*-self.burstPhase)+'px '+(self.h*-nType)+'px');
+      }
+    }
+
+    this.burst = function() {
+      self.oA = new Y.A(self.o,{marginLeft:{to:(self.vX*8)},marginTop:{to:(self.vY*8)}},animDuration,Y.UE.easeOutStrong);
+      self.oA.onTween.subscribe(self.burstTween);
+      self.oA.animate();
+    }
+
+    this.hide = function() {
+      if (!isIE) self.o.style.opacity = 0;
+    }
+
+    this.reset = function() {
+      self.o.style.left = '0px';
+      self.o.style.top = '0px';
+      self.o.style.marginLeft = '0px';
+      self.o.style.marginTop = '0px';
+      if (!isIE) self.o.style.opacity = 1;
+    }
+
+    this.animate = function() {
+      self.reset();
+      self.burst();
+    }
+
+  }
+
+  function Explosion(nType,sClass,x,y) {
+    var oParent = this;
+    var self = this;
+    this.o = null;
+    this.nType = nType;
+    this.sClass = sClass;
+    this.x = x;
+    this.y = y;
+    this.boxVX = 0;
+    this.boxVY = 0;
+    this.o = xlsf.oExplosionBox.cloneNode(true);
+    this.o.style.left = x+'px';
+    this.o.style.top = y+'px';
+    this.fragments = [];
+
+    var mX = x;
+    var mY = y;
+
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,-5,-5));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,0,-5));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,5,-5));
+
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,-5,0));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,0,0));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,5,0));
+
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,5,-5));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,5,0));
+    this.fragments.push(new ExplosionFragment(nType,sClass,mX,mY,5,5));
+
+    this.init = function() {
+      for (var i=self.fragments.length; i--;) {
+        self.o.appendChild(self.fragments[i].o);
+      }
+      if (!IS_MOON_COMPUTER) {
+        // faster rendering, particles get cropped
+        xlsf.oFrag.appendChild(self.o);
+      } else {
+        // slower rendering, can overlay body
+        xlsf.oFrag.appendChild(self.o);
+      }
+    }
+
+    this.reset = function() {
+      // clean-up
+      // self.o.parentNode.removeChild(self.o);
+      self.o.style.display = 'none';
+      self.o.style.marginLeft = '0px';
+      self.o.style.marginTop = '0px';
+      self.o.style.left = self.x+'px';
+      self.o.style.top = self.y+'px';
+      if (!isIE) self.o.style.opacity = 1;
+      for (var i=self.fragments.length; i--;) {
+        self.fragments[i].reset();
+      }
+    }
+
+    this.trigger = function(boxVX,boxVY) {
+      self.o.style.display = 'block';
+      self.boxVX = boxVX;
+      self.boxVY = boxVY;
+      // boundary checks
+      if (self.sClass == 'right') {
+        self.boxVX = Math.abs(self.boxVX)*-1;
+      } else if (self.sClass == 'left') {
+        self.boxVX = Math.abs(self.boxVX);
+      }
+      for (var i=self.fragments.length; i--;) {
+        self.fragments[i].animate();
+      }
+      if (!isIE && (IS_MOON_COMPUTER)) {
+        var oAExplode = new Y.A(self.o,{marginLeft:{to:100*self.boxVX},marginTop:{to:150*self.boxVY},opacity:{to:0.01}},animDuration,Y.UE.easeInStrong);
+      } else {
+        // even IE 7 sucks w/alpha-transparent PNG + CSS opacity. Boo urns.
+        var oAExplode = new Y.A(self.o,{marginLeft:{to:100*self.boxVX},marginTop:{to:150*self.boxVY}},animDuration,Y.UE.easeInStrong);
+      }
+      oAExplode.onComplete.subscribe(self.reset);
+      oAExplode.animate();
+    }
+
+    this.init();
+
+  }
+
+  function Light(sSizeClass,sClass,nType,x,y) {
+    var self = this;
+    this.o = document.createElement('div');
+    this.sClass = sClass;
+    this.sSizeClass = sSizeClass;
+    this.nType = (nType||0);
+    this.useY = (sClass == 'left' || sClass == 'right');
+    this.state = null;
+    this.broken = 0;
+    this.w = xlsf.lightClasses[sSizeClass];
+    this.h = xlsf.lightClasses[sSizeClass];
+    this.x = x;
+    this.y = y;
+    this.bg = urlBase+'image/bulbs-'+this.w+'x'+this.h+'-'+this.sClass+'.png';
+    this.o.style.width = this.w+'px';
+    this.o.style.height = this.h+'px';
+    this.o.style.background = 'url('+this.bg+') no-repeat 0px 0px';
+    this.bgBaseX = (self.useY?-self.w*this.nType:0);
+    this.bgBaseY = (!self.useY?-self.h*this.nType:0);
+    this.glassType = parseInt(Math.random()*6);
+    this.oExplosion = null;
+    this.soundID = 'smash'+this.glassType;
+    var panValue = xlsf.soundPan.panValue; // eg. +/- 80%
+    this.pan = parseInt(this.x<=xlsf.soundPan.mid?-panValue+((this.x/xlsf.soundPan.mid)*panValue):(this.x-xlsf.soundPan.mid)/(xlsf.soundPan.right-xlsf.soundPan.mid)*panValue);
+
+    this.initSound = function() {
+    }
+
+    this.setBGPos = function(x,y) {
+      self.o.style.backgroundPosition = ((self.bgBaseX+x)+'px '+(self.bgBaseY+y)+'px');
+    }
+
+    this.setLight = function(bOn) {
+      if (self.broken || self.state == bOn) return false;
+      if (!self.w || !self.h) self.getDimensions();
+      self.state = bOn;
+      if (self.useY) {
+        self.setBGPos(0,-this.h*(bOn?0:1));
+      } else {
+        self.setBGPos(-this.w*(bOn?0:1),0);
+      }
+    }
+
+    this.getDimensions = function() {
+      self.w = self.o.offsetWidth;
+      self.h = self.o.offsetHeight;
+      self.bgBaseX = (self.useY?-self.w*self.nType:0);
+      self.bgBaseY = (!self.useY?-self.h*self.nType:0);
+    }
+
+    this.on = function() {
+      self.setLight(1);
+    }
+
+    this.off = function() {
+      self.setLight(0);
+    }
+
+    this.flickr = function() {
+      self.setLight(Math.random()>=0.5?1:0);
+    }
+
+    this.toggle = function() {
+      self.setLight(!self.state?1:0);
+    }
+
+    this.explode = function(e) {
+      self.oExplosion.trigger(0,1); // boooom!
+    }
+
+    this.smash = function(e) {
+      if (self.broken) return false;
+      self.broken = true;
+      if (soundManager && soundManager.ok()) {
+        soundManager.play(self.soundID,{pan:self.pan});
+        // soundManager.sounds[self.soundID].play({pan:self.pan});
+        // if (self.bonusSound != null) window.setTimeout(self.smashBonus,1000);
+      }
+      self.explode(e);
+      var rndFrame = 2; // +parseInt(Math.random()*3);
+      if (self.useY) {
+        self.setBGPos(0,self.h*-rndFrame);
+      } else {
+        self.setBGPos(self.w*-rndFrame,0);
+      }
+      xlsf.lightSmashCounter++;
+    }
+
+    this.smashBonus = function() {
+      // soundManager.play(self.bonusSounds[self.bonusSound],urlBase+'sound/'+self.bonusSounds[self.bonusSound]+'.mp3');
+    }
+
+    this.reset = function() {
+      if (!self.broken) return false;
+      self.broken = false;
+      self.state = null;
+      xlsf.lightSmashCounter--;
+      self.flickr();
+    }
+
+    this.init = function() {
+      self.o.className = 'xlsf-light '+this.sizeClass+' '+this.sClass;
+      self.o.style.left = self.x+'px';
+      self.o.style.top = self.y+'px';
+      self.o.style.width = self.w+'px';
+      self.o.style.height = self.h+'px';
+      self.o.onmouseover = self.smash;
+      self.o.onclick = self.smash;
+      self.flickr();
+      xlsf.oFrag.appendChild(self.o);
+      self.oExplosion = new Explosion(self.nType,self.sClass,self.x,self.y);
+    }
+
+    this.init();
+    
+  } // Light()
+
+  this.createLight = function(sClass,nType,x,y) {
+    var oLight = new Light(self.lightClass,sClass,nType,x,y);
+    self.lightGroups[sClass].push(oLight);
+    self.lights.push(oLight);
+    return oLight;
+  }
+
+  this.rotateLights = function() {
+    self.lights[self.lightIndex==self.lights.length?self.lights.length-1:self.lightIndex].off();
+    self.lightIndex++;
+    if (self.lightIndex == self.lights.length) {
+      self.lightIndex = 0;
+    }
+    self.lights[self.lightIndex].on();
+  }
+
+  this.randomLights = function() {
+    self.lights[parseInt(Math.random()*self.lights.length)].toggle();
+  }
+
+  
+  this.destroyLights = function() {
+    self.startSequence(self.destroyLight,20);
+  }
+
+  this.destroyLight = function() {
+    var groupSize = 2; // # to smash at a time
+    if (self.lightSmashCounter<self.lights.length) {
+      var limit = Math.min(self.lightSmashCounter+groupSize,self.lights.length);
+      for (var i=self.lightSmashCounter; i<limit; i++) {
+        self.lights[self.lightSmashCounter].smash();
+      }
+    } else {
+      self.stopSequence();
+    }
+
+  }
+
+  this.uberSmash = function() {
+    // make everything explode - including your CPU.
+    self.stopSequence();
+    var ebCN = Y.D.getElementsByClassName;
+  }
+
+  this.smashGroup = function(oGroup) {
+    for (var i=oGroup.length; i--;) {
+      oGroup[i].smash();
+    }
+  }
+
+  this.startSequence = function(fSequence,nInterval) {
+    if (self.timer) self.stopSequence();
+    self.timer = window.setInterval(fSequence,(typeof nInterval != 'undefined'?nInterval:self.lightInterval));
+  }
+
+  this.stopSequence = function() {
+    if (self.timer) {
+      window.clearInterval(self.timer);
+      self.timer = null;
+    }
+  }
+
+  var i=0;
+  var j=0;
+
+  $('lights').style.display = 'block';
+
+  // start lights to the right of <h1>
+  var offset = 0; // parseInt(document.getElementsByTagName('h1')[0].offsetWidth)+16;
+
+  var jMax = Math.floor((screenX-offset-16)/self.lightXY);
+  var iMax = Math.floor((screenY-offset-16)/self.lightXY);
+
+  for (j=0; j<jMax; j++) {
+    this.createLight('top',parseInt(j/3)%4,offset+j*self.lightXY,0);
+  }
+
+  this.appendLights();
+  this.startSequence(self.randomLights);
+  
+}
+
+var xlsf = null;
+var urlBase = null;
+
+function smashInit() {
+  if (navigator.userAgent.match(/msie 6/i)) {
+    return false;
+  }
+  xlsf = new XLSF(document.getElementById('lights'),urlBase?urlBase:null);
+  if ($('loading')) {
+    $('loading').style.display = 'none';	
+  }
+  xlsf.initSounds();
+}
+
+soundManager.setup({
+  flashVersion: 9,
+  preferFlash: false,
+  url: 'lights/',
+  onready: function() {
+    smashInit();
+  },
+  ontimeout: function() {
+    smashInit();
+  }
+});
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bg-strip-dark.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bg-strip-dark.png
new file mode 100644
index 0000000..1e6e0f7
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bg-strip-dark.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/blank.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/blank.png
new file mode 100644
index 0000000..078e591
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/blank.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-32x32-top.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-32x32-top.png
new file mode 100644
index 0000000..9a1ca6e
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-32x32-top.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-fragments.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-fragments.png
new file mode 100644
index 0000000..ad26f05
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-fragments.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-top.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-top.png
new file mode 100644
index 0000000..393400b
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-50x50-top.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-64x64-top.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-64x64-top.png
new file mode 100644
index 0000000..2c54cf9
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-64x64-top.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-72x72-top.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-72x72-top.png
new file mode 100644
index 0000000..843658b
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-72x72-top.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-96x96-top.png b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-96x96-top.png
new file mode 100644
index 0000000..e59a698
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/image/bulbs-96x96-top.png
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/index.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/index.html
new file mode 100644
index 0000000..3755c40
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/index.html
@@ -0,0 +1,36 @@
+<html>
+<head>
+<title>Smashable Christmas Lights</title>
+<link rel="stylesheet" media="screen" href="christmaslights.css" />
+<script type="text/javascript" src="soundmanager2-nodebug-jsmin.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/combo?2.6.0/build/yahoo-dom-event/yahoo-dom-event.js&2.6.0/build/animation/animation-min.js"></script>
+<script type="text/javascript" src="christmaslights.js"></script>
+<script type="text/javascript">
+var urlBase = './';
+soundManager.url = './';
+</script>
+</head>
+
+<body>
+
+<div>
+
+ <div id="loading">
+  <h1>Christmas Light Smashfest 2008: Prototype</h1>
+  <h2>Rendering...</h2>
+ </div>
+
+ <div id="lights">
+  <!-- lights go here -->
+ </div>
+
+ <div style="position:absolute;bottom:3px;left:3px">
+  <a href="?size=pico">pico</a> | <a href="?size=tiny">tiny</a> | <a href="?size=small">small</a> | <a href="?size=medium">medium</a> | <a href="?size=large">large</a>
+ </div>
+
+</div>
+
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass0.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass0.mp3
new file mode 100644
index 0000000..c161c69
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass0.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass1.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass1.mp3
new file mode 100644
index 0000000..8d7d6b5
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass1.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass2.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass2.mp3
new file mode 100644
index 0000000..ef5f556
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass2.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass3.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass3.mp3
new file mode 100644
index 0000000..be7886e
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass3.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass4.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass4.mp3
new file mode 100644
index 0000000..0f328f6
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass4.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass5.mp3 b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass5.mp3
new file mode 100644
index 0000000..b54513e
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/sound/glass5.mp3
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2-nodebug-jsmin.js b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2-nodebug-jsmin.js
new file mode 100644
index 0000000..7e6a964
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2-nodebug-jsmin.js
@@ -0,0 +1,81 @@
+/** @license
+ *
+ * SoundManager 2: JavaScript Sound for the Web
+ * ----------------------------------------------
+ * http://schillmania.com/projects/soundmanager2/
+ *
+ * Copyright (c) 2007, Scott Schiller. All rights reserved.
+ * Code provided under the BSD License:
+ * http://schillmania.com/projects/soundmanager2/license.txt
+ *
+ * V2.97a.20130512+DEV
+ */
+(function(g,k){function U(U,ka){function V(b){return c.preferFlash&&v&&!c.ignoreFlash&&c.flash[b]!==k&&c.flash[b]}function q(b){return function(c){var d=this._s;return!d||!d._a?null:b.call(this,c)}}this.setupOptions={url:U||null,flashVersion:8,debugMode:!0,debugFlash:!1,useConsole:!0,consoleOnly:!0,waitForWindowLoad:!1,bgColor:"#ffffff",useHighPerformance:!1,flashPollingInterval:null,html5PollingInterval:null,flashLoadTimeout:1E3,wmode:null,allowScriptAccess:"always",useFlashBlock:!1,useHTML5Audio:!0,
+html5Test:/^(probably|maybe)$/i,preferFlash:!1,noSWFCache:!1,idPrefix:"sound"};this.defaultOptions={autoLoad:!1,autoPlay:!1,from:null,loops:1,onid3:null,onload:null,whileloading:null,onplay:null,onpause:null,onresume:null,whileplaying:null,onposition:null,onstop:null,onfailure:null,onfinish:null,multiShot:!0,multiShotEvents:!1,position:null,pan:0,stream:!0,to:null,type:null,usePolicyFile:!1,volume:100};this.flash9Options={isMovieStar:null,usePeakData:!1,useWaveformData:!1,useEQData:!1,onbufferchange:null,
+ondataerror:null};this.movieStarOptions={bufferTime:3,serverURL:null,onconnect:null,duration:null};this.audioFormats={mp3:{type:['audio/mpeg; codecs\x3d"mp3"',"audio/mpeg","audio/mp3","audio/MPA","audio/mpa-robust"],required:!0},mp4:{related:["aac","m4a","m4b"],type:['audio/mp4; codecs\x3d"mp4a.40.2"',"audio/aac","audio/x-m4a","audio/MP4A-LATM","audio/mpeg4-generic"],required:!1},ogg:{type:["audio/ogg; codecs\x3dvorbis"],required:!1},opus:{type:["audio/ogg; codecs\x3dopus","audio/opus"],required:!1},
+wav:{type:['audio/wav; codecs\x3d"1"',"audio/wav","audio/wave","audio/x-wav"],required:!1}};this.movieID="sm2-container";this.id=ka||"sm2movie";this.debugID="soundmanager-debug";this.debugURLParam=/([#?&])debug=1/i;this.versionNumber="V2.97a.20130512+DEV";this.altURL=this.movieURL=this.version=null;this.enabled=this.swfLoaded=!1;this.oMC=null;this.sounds={};this.soundIDs=[];this.didFlashBlock=this.muted=!1;this.filePattern=null;this.filePatterns={flash8:/\.mp3(\?.*)?$/i,flash9:/\.mp3(\?.*)?$/i};this.features=
+{buffering:!1,peakData:!1,waveformData:!1,eqData:!1,movieStar:!1};this.sandbox={};this.html5={usingFlash:null};this.flash={};this.ignoreFlash=this.html5Only=!1;var Ja,c=this,Ka=null,l=null,W,s=navigator.userAgent,La=g.location.href.toString(),n=document,la,Ma,ma,m,x=[],K=!1,L=!1,p=!1,y=!1,na=!1,M,w,oa,X,pa,D,E,F,Na,qa,ra,Y,sa,Z,ta,G,ua,N,va,$,H,Oa,wa,Pa,xa,Qa,O=null,ya=null,P,za,I,aa,ba,r,Q=!1,Aa=!1,Ra,Sa,Ta,ca=0,R=null,da,Ua=[],S,u=null,Va,ea,T,z,fa,Ba,Wa,t,fb=Array.prototype.slice,A=!1,Ca,v,Da,
+Xa,B,ga,Ya=0,ha=s.match(/(ipad|iphone|ipod)/i),Za=s.match(/android/i),C=s.match(/msie/i),gb=s.match(/webkit/i),ia=s.match(/safari/i)&&!s.match(/chrome/i),Ea=s.match(/opera/i);s.match(/firefox/i);var Fa=s.match(/(mobile|pre\/|xoom)/i)||ha||Za,$a=!La.match(/usehtml5audio/i)&&!La.match(/sm2\-ignorebadua/i)&&ia&&!s.match(/silk/i)&&s.match(/OS X 10_6_([3-7])/i),Ga=n.hasFocus!==k?n.hasFocus():null,ja=ia&&(n.hasFocus===k||!n.hasFocus()),ab=!ja,bb=/(mp3|mp4|mpa|m4a|m4b)/i,Ha=n.location?n.location.protocol.match(/http/i):
+null,cb=!Ha?"http://":"",db=/^\s*audio\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4||m4v|m4a|m4b|mp4v|3gp|3g2)\s*(?:$|;)/i,eb="mpeg4 aac flv mov mp4 m4v f4v m4a m4b mp4v 3gp 3g2".split(" "),hb=RegExp("\\.("+eb.join("|")+")(\\?.*)?$","i");this.mimePattern=/^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i;this.useAltURL=!Ha;var Ia;try{Ia=Audio!==k&&(Ea&&opera!==k&&10>opera.version()?new Audio(null):new Audio).canPlayType!==k}catch(ib){Ia=!1}this.hasHTML5=Ia;this.setup=function(b){var e=!c.url;b!==k&&p&&u&&c.ok();oa(b);
+b&&(e&&(N&&b.url!==k)&&c.beginDelayedInit(),!N&&(b.url!==k&&"complete"===n.readyState)&&setTimeout(G,1));return c};this.supported=this.ok=function(){return u?p&&!y:c.useHTML5Audio&&c.hasHTML5};this.getMovie=function(b){return W(b)||n[b]||g[b]};this.createSound=function(b,e){function d(){a=aa(a);c.sounds[a.id]=new Ja(a);c.soundIDs.push(a.id);return c.sounds[a.id]}var a,f=null;if(!p||!c.ok())return!1;e!==k&&(b={id:b,url:e});a=w(b);a.url=da(a.url);void 0===a.id&&(a.id=c.setupOptions.idPrefix+Ya++);if(r(a.id,
+!0))return c.sounds[a.id];if(ea(a))f=d(),f._setup_html5(a);else{if(c.html5Only||c.html5.usingFlash&&a.url&&a.url.match(/data\:/i))return d();8<m&&null===a.isMovieStar&&(a.isMovieStar=!(!a.serverURL&&!(a.type&&a.type.match(db)||a.url&&a.url.match(hb))));a=ba(a,void 0);f=d();8===m?l._createSound(a.id,a.loops||1,a.usePolicyFile):(l._createSound(a.id,a.url,a.usePeakData,a.useWaveformData,a.useEQData,a.isMovieStar,a.isMovieStar?a.bufferTime:!1,a.loops||1,a.serverURL,a.duration||null,a.autoPlay,!0,a.autoLoad,
+a.usePolicyFile),a.serverURL||(f.connected=!0,a.onconnect&&a.onconnect.apply(f)));!a.serverURL&&(a.autoLoad||a.autoPlay)&&f.load(a)}!a.serverURL&&a.autoPlay&&f.play();return f};this.destroySound=function(b,e){if(!r(b))return!1;var d=c.sounds[b],a;d._iO={};d.stop();d.unload();for(a=0;a<c.soundIDs.length;a++)if(c.soundIDs[a]===b){c.soundIDs.splice(a,1);break}e||d.destruct(!0);delete c.sounds[b];return!0};this.load=function(b,e){return!r(b)?!1:c.sounds[b].load(e)};this.unload=function(b){return!r(b)?
+!1:c.sounds[b].unload()};this.onposition=this.onPosition=function(b,e,d,a){return!r(b)?!1:c.sounds[b].onposition(e,d,a)};this.clearOnPosition=function(b,e,d){return!r(b)?!1:c.sounds[b].clearOnPosition(e,d)};this.start=this.play=function(b,e){var d=null,a=e&&!(e instanceof Object);if(!p||!c.ok())return!1;if(r(b,a))a&&(e={url:e});else{if(!a)return!1;a&&(e={url:e});e&&e.url&&(e.id=b,d=c.createSound(e).play())}null===d&&(d=c.sounds[b].play(e));return d};this.setPosition=function(b,e){return!r(b)?!1:c.sounds[b].setPosition(e)};
+this.stop=function(b){return!r(b)?!1:c.sounds[b].stop()};this.stopAll=function(){for(var b in c.sounds)c.sounds.hasOwnProperty(b)&&c.sounds[b].stop()};this.pause=function(b){return!r(b)?!1:c.sounds[b].pause()};this.pauseAll=function(){var b;for(b=c.soundIDs.length-1;0<=b;b--)c.sounds[c.soundIDs[b]].pause()};this.resume=function(b){return!r(b)?!1:c.sounds[b].resume()};this.resumeAll=function(){var b;for(b=c.soundIDs.length-1;0<=b;b--)c.sounds[c.soundIDs[b]].resume()};this.togglePause=function(b){return!r(b)?
+!1:c.sounds[b].togglePause()};this.setPan=function(b,e){return!r(b)?!1:c.sounds[b].setPan(e)};this.setVolume=function(b,e){return!r(b)?!1:c.sounds[b].setVolume(e)};this.mute=function(b){var e=0;b instanceof String&&(b=null);if(b)return!r(b)?!1:c.sounds[b].mute();for(e=c.soundIDs.length-1;0<=e;e--)c.sounds[c.soundIDs[e]].mute();return c.muted=!0};this.muteAll=function(){c.mute()};this.unmute=function(b){b instanceof String&&(b=null);if(b)return!r(b)?!1:c.sounds[b].unmute();for(b=c.soundIDs.length-
+1;0<=b;b--)c.sounds[c.soundIDs[b]].unmute();c.muted=!1;return!0};this.unmuteAll=function(){c.unmute()};this.toggleMute=function(b){return!r(b)?!1:c.sounds[b].toggleMute()};this.getMemoryUse=function(){var b=0;l&&8!==m&&(b=parseInt(l._getMemoryUse(),10));return b};this.disable=function(b){var e;b===k&&(b=!1);if(y)return!1;y=!0;for(e=c.soundIDs.length-1;0<=e;e--)Pa(c.sounds[c.soundIDs[e]]);M(b);t.remove(g,"load",E);return!0};this.canPlayMIME=function(b){var e;c.hasHTML5&&(e=T({type:b}));!e&&u&&(e=b&&
+c.ok()?!!(8<m&&b.match(db)||b.match(c.mimePattern)):null);return e};this.canPlayURL=function(b){var e;c.hasHTML5&&(e=T({url:b}));!e&&u&&(e=b&&c.ok()?!!b.match(c.filePattern):null);return e};this.canPlayLink=function(b){return b.type!==k&&b.type&&c.canPlayMIME(b.type)?!0:c.canPlayURL(b.href)};this.getSoundById=function(b,e){return!b?null:c.sounds[b]};this.onready=function(b,c){if("function"===typeof b)c||(c=g),pa("onready",b,c),D();else throw P("needFunction","onready");return!0};this.ontimeout=function(b,
+c){if("function"===typeof b)c||(c=g),pa("ontimeout",b,c),D({type:"ontimeout"});else throw P("needFunction","ontimeout");return!0};this._wD=this._writeDebug=function(b,c){return!0};this._debug=function(){};this.reboot=function(b,e){var d,a,f;for(d=c.soundIDs.length-1;0<=d;d--)c.sounds[c.soundIDs[d]].destruct();if(l)try{C&&(ya=l.innerHTML),O=l.parentNode.removeChild(l)}catch(k){}ya=O=u=l=null;c.enabled=N=p=Q=Aa=K=L=y=A=c.swfLoaded=!1;c.soundIDs=[];c.sounds={};Ya=0;if(b)x=[];else for(d in x)if(x.hasOwnProperty(d)){a=
+0;for(f=x[d].length;a<f;a++)x[d][a].fired=!1}c.html5={usingFlash:null};c.flash={};c.html5Only=!1;c.ignoreFlash=!1;g.setTimeout(function(){ta();e||c.beginDelayedInit()},20);return c};this.reset=function(){return c.reboot(!0,!0)};this.getMoviePercent=function(){return l&&"PercentLoaded"in l?l.PercentLoaded():null};this.beginDelayedInit=function(){na=!0;G();setTimeout(function(){if(Aa)return!1;$();Z();return Aa=!0},20);F()};this.destruct=function(){c.disable(!0)};Ja=function(b){var e,d,a=this,f,h,J,
+g,n,q,s=!1,p=[],u=0,x,y,v=null,z;d=e=null;this.sID=this.id=b.id;this.url=b.url;this._iO=this.instanceOptions=this.options=w(b);this.pan=this.options.pan;this.volume=this.options.volume;this.isHTML5=!1;this._a=null;z=this.url?!1:!0;this.id3={};this._debug=function(){};this.load=function(b){var e=null,d;b!==k?a._iO=w(b,a.options):(b=a.options,a._iO=b,v&&v!==a.url&&(a._iO.url=a.url,a.url=null));a._iO.url||(a._iO.url=a.url);a._iO.url=da(a._iO.url);d=a.instanceOptions=a._iO;if(!d.url&&!a.url)return a;
+if(d.url===a.url&&0!==a.readyState&&2!==a.readyState)return 3===a.readyState&&d.onload&&ga(a,function(){d.onload.apply(a,[!!a.duration])}),a;a.loaded=!1;a.readyState=1;a.playState=0;a.id3={};if(ea(d))e=a._setup_html5(d),e._called_load||(a._html5_canplay=!1,a.url!==d.url&&(a._a.src=d.url,a.setPosition(0)),a._a.autobuffer="auto",a._a.preload="auto",a._a._called_load=!0);else{if(c.html5Only||a._iO.url&&a._iO.url.match(/data\:/i))return a;try{a.isHTML5=!1,a._iO=ba(aa(d)),d=a._iO,8===m?l._load(a.id,d.url,
+d.stream,d.autoPlay,d.usePolicyFile):l._load(a.id,d.url,!!d.stream,!!d.autoPlay,d.loops||1,!!d.autoLoad,d.usePolicyFile)}catch(f){H({type:"SMSOUND_LOAD_JS_EXCEPTION",fatal:!0})}}a.url=d.url;return a};this.unload=function(){0!==a.readyState&&(a.isHTML5?(g(),a._a&&(a._a.pause(),v=fa(a._a))):8===m?l._unload(a.id,"about:blank"):l._unload(a.id),f());return a};this.destruct=function(b){a.isHTML5?(g(),a._a&&(a._a.pause(),fa(a._a),A||J(),a._a._s=null,a._a=null)):(a._iO.onfailure=null,l._destroySound(a.id));
+b||c.destroySound(a.id,!0)};this.start=this.play=function(b,e){var d,f,h,g,J;f=!0;f=null;e=e===k?!0:e;b||(b={});a.url&&(a._iO.url=a.url);a._iO=w(a._iO,a.options);a._iO=w(b,a._iO);a._iO.url=da(a._iO.url);a.instanceOptions=a._iO;if(!a.isHTML5&&a._iO.serverURL&&!a.connected)return a.getAutoPlay()||a.setAutoPlay(!0),a;ea(a._iO)&&(a._setup_html5(a._iO),n());1===a.playState&&!a.paused&&(d=a._iO.multiShot,d||(a.isHTML5&&a.setPosition(a._iO.position),f=a));if(null!==f)return f;b.url&&b.url!==a.url&&(!a.readyState&&
+!a.isHTML5&&8===m&&z?z=!1:a.load(a._iO));a.loaded||(0===a.readyState?(!a.isHTML5&&!c.html5Only?(a._iO.autoPlay=!0,a.load(a._iO)):a.isHTML5?a.load(a._iO):f=a,a.instanceOptions=a._iO):2===a.readyState&&(f=a));if(null!==f)return f;!a.isHTML5&&(9===m&&0<a.position&&a.position===a.duration)&&(b.position=0);if(a.paused&&0<=a.position&&(!a._iO.serverURL||0<a.position))a.resume();else{a._iO=w(b,a._iO);if(null!==a._iO.from&&null!==a._iO.to&&0===a.instanceCount&&0===a.playState&&!a._iO.serverURL){d=function(){a._iO=
+w(b,a._iO);a.play(a._iO)};if(a.isHTML5&&!a._html5_canplay)a.load({_oncanplay:d}),f=!1;else if(!a.isHTML5&&!a.loaded&&(!a.readyState||2!==a.readyState))a.load({onload:d}),f=!1;if(null!==f)return f;a._iO=y()}(!a.instanceCount||a._iO.multiShotEvents||a.isHTML5&&a._iO.multiShot&&!A||!a.isHTML5&&8<m&&!a.getAutoPlay())&&a.instanceCount++;a._iO.onposition&&0===a.playState&&q(a);a.playState=1;a.paused=!1;a.position=a._iO.position!==k&&!isNaN(a._iO.position)?a._iO.position:0;a.isHTML5||(a._iO=ba(aa(a._iO)));
+a._iO.onplay&&e&&(a._iO.onplay.apply(a),s=!0);a.setVolume(a._iO.volume,!0);a.setPan(a._iO.pan,!0);a.isHTML5?2>a.instanceCount?(n(),f=a._setup_html5(),a.setPosition(a._iO.position),f.play()):(h=new Audio(a._iO.url),g=function(){t.remove(h,"ended",g);a._onfinish(a);fa(h);h=null},J=function(){t.remove(h,"canplay",J);try{h.currentTime=a._iO.position/1E3}catch(b){}h.play()},t.add(h,"ended",g),void 0!==a._iO.volume&&(h.volume=Math.max(0,Math.min(1,a._iO.volume/100))),a.muted&&(h.muted=!0),a._iO.position?
+t.add(h,"canplay",J):h.play()):(f=l._start(a.id,a._iO.loops||1,9===m?a.position:a.position/1E3,a._iO.multiShot||!1),9===m&&!f&&a._iO.onplayerror&&a._iO.onplayerror.apply(a))}return a};this.stop=function(b){var c=a._iO;1===a.playState&&(a._onbufferchange(0),a._resetOnPosition(0),a.paused=!1,a.isHTML5||(a.playState=0),x(),c.to&&a.clearOnPosition(c.to),a.isHTML5?a._a&&(b=a.position,a.setPosition(0),a.position=b,a._a.pause(),a.playState=0,a._onTimer(),g()):(l._stop(a.id,b),c.serverURL&&a.unload()),a.instanceCount=
+0,a._iO={},c.onstop&&c.onstop.apply(a));return a};this.setAutoPlay=function(b){a._iO.autoPlay=b;a.isHTML5||(l._setAutoPlay(a.id,b),b&&!a.instanceCount&&1===a.readyState&&a.instanceCount++)};this.getAutoPlay=function(){return a._iO.autoPlay};this.setPosition=function(b){b===k&&(b=0);var c=a.isHTML5?Math.max(b,0):Math.min(a.duration||a._iO.duration,Math.max(b,0));a.position=c;b=a.position/1E3;a._resetOnPosition(a.position);a._iO.position=c;if(a.isHTML5){if(a._a){if(a._html5_canplay){if(a._a.currentTime!==
+b)try{a._a.currentTime=b,(0===a.playState||a.paused)&&a._a.pause()}catch(e){}}else if(b)return a;a.paused&&a._onTimer(!0)}}else b=9===m?a.position:b,a.readyState&&2!==a.readyState&&l._setPosition(a.id,b,a.paused||!a.playState,a._iO.multiShot);return a};this.pause=function(b){if(a.paused||0===a.playState&&1!==a.readyState)return a;a.paused=!0;a.isHTML5?(a._setup_html5().pause(),g()):(b||b===k)&&l._pause(a.id,a._iO.multiShot);a._iO.onpause&&a._iO.onpause.apply(a);return a};this.resume=function(){var b=
+a._iO;if(!a.paused)return a;a.paused=!1;a.playState=1;a.isHTML5?(a._setup_html5().play(),n()):(b.isMovieStar&&!b.serverURL&&a.setPosition(a.position),l._pause(a.id,b.multiShot));!s&&b.onplay?(b.onplay.apply(a),s=!0):b.onresume&&b.onresume.apply(a);return a};this.togglePause=function(){if(0===a.playState)return a.play({position:9===m&&!a.isHTML5?a.position:a.position/1E3}),a;a.paused?a.resume():a.pause();return a};this.setPan=function(b,c){b===k&&(b=0);c===k&&(c=!1);a.isHTML5||l._setPan(a.id,b);a._iO.pan=
+b;c||(a.pan=b,a.options.pan=b);return a};this.setVolume=function(b,e){b===k&&(b=100);e===k&&(e=!1);a.isHTML5?a._a&&(c.muted&&!a.muted&&(a.muted=!0,a._a.muted=!0),a._a.volume=Math.max(0,Math.min(1,b/100))):l._setVolume(a.id,c.muted&&!a.muted||a.muted?0:b);a._iO.volume=b;e||(a.volume=b,a.options.volume=b);return a};this.mute=function(){a.muted=!0;a.isHTML5?a._a&&(a._a.muted=!0):l._setVolume(a.id,0);return a};this.unmute=function(){a.muted=!1;var b=a._iO.volume!==k;a.isHTML5?a._a&&(a._a.muted=!1):l._setVolume(a.id,
+b?a._iO.volume:a.options.volume);return a};this.toggleMute=function(){return a.muted?a.unmute():a.mute()};this.onposition=this.onPosition=function(b,c,e){p.push({position:parseInt(b,10),method:c,scope:e!==k?e:a,fired:!1});return a};this.clearOnPosition=function(a,b){var c;a=parseInt(a,10);if(isNaN(a))return!1;for(c=0;c<p.length;c++)if(a===p[c].position&&(!b||b===p[c].method))p[c].fired&&u--,p.splice(c,1)};this._processOnPosition=function(){var b,c;b=p.length;if(!b||!a.playState||u>=b)return!1;for(b-=
+1;0<=b;b--)c=p[b],!c.fired&&a.position>=c.position&&(c.fired=!0,u++,c.method.apply(c.scope,[c.position]));return!0};this._resetOnPosition=function(a){var b,c;b=p.length;if(!b)return!1;for(b-=1;0<=b;b--)c=p[b],c.fired&&a<=c.position&&(c.fired=!1,u--);return!0};y=function(){var b=a._iO,c=b.from,e=b.to,d,f;f=function(){a.clearOnPosition(e,f);a.stop()};d=function(){if(null!==e&&!isNaN(e))a.onPosition(e,f)};null!==c&&!isNaN(c)&&(b.position=c,b.multiShot=!1,d());return b};q=function(){var b,c=a._iO.onposition;
+if(c)for(b in c)if(c.hasOwnProperty(b))a.onPosition(parseInt(b,10),c[b])};x=function(){var b,c=a._iO.onposition;if(c)for(b in c)c.hasOwnProperty(b)&&a.clearOnPosition(parseInt(b,10))};n=function(){a.isHTML5&&Ra(a)};g=function(){a.isHTML5&&Sa(a)};f=function(b){b||(p=[],u=0);s=!1;a._hasTimer=null;a._a=null;a._html5_canplay=!1;a.bytesLoaded=null;a.bytesTotal=null;a.duration=a._iO&&a._iO.duration?a._iO.duration:null;a.durationEstimate=null;a.buffered=[];a.eqData=[];a.eqData.left=[];a.eqData.right=[];
+a.failures=0;a.isBuffering=!1;a.instanceOptions={};a.instanceCount=0;a.loaded=!1;a.metadata={};a.readyState=0;a.muted=!1;a.paused=!1;a.peakData={left:0,right:0};a.waveformData={left:[],right:[]};a.playState=0;a.position=null;a.id3={}};f();this._onTimer=function(b){var c,f=!1,h={};if(a._hasTimer||b){if(a._a&&(b||(0<a.playState||1===a.readyState)&&!a.paused))c=a._get_html5_duration(),c!==e&&(e=c,a.duration=c,f=!0),a.durationEstimate=a.duration,c=1E3*a._a.currentTime||0,c!==d&&(d=c,f=!0),(f||b)&&a._whileplaying(c,
+h,h,h,h);return f}};this._get_html5_duration=function(){var b=a._iO;return(b=a._a&&a._a.duration?1E3*a._a.duration:b&&b.duration?b.duration:null)&&!isNaN(b)&&Infinity!==b?b:null};this._apply_loop=function(a,b){a.loop=1<b?"loop":""};this._setup_html5=function(b){b=w(a._iO,b);var c=A?Ka:a._a,e=decodeURI(b.url),d;A?e===decodeURI(Ca)&&(d=!0):e===decodeURI(v)&&(d=!0);if(c){if(c._s)if(A)c._s&&(c._s.playState&&!d)&&c._s.stop();else if(!A&&e===decodeURI(v))return a._apply_loop(c,b.loops),c;d||(v&&f(!1),c.src=
+b.url,Ca=v=a.url=b.url,c._called_load=!1)}else b.autoLoad||b.autoPlay?(a._a=new Audio(b.url),a._a.load()):a._a=Ea&&10>opera.version()?new Audio(null):new Audio,c=a._a,c._called_load=!1,A&&(Ka=c);a.isHTML5=!0;a._a=c;c._s=a;h();a._apply_loop(c,b.loops);b.autoLoad||b.autoPlay?a.load():(c.autobuffer=!1,c.preload="auto");return c};h=function(){if(a._a._added_events)return!1;var b;a._a._added_events=!0;for(b in B)B.hasOwnProperty(b)&&a._a&&a._a.addEventListener(b,B[b],!1);return!0};J=function(){var b;a._a._added_events=
+!1;for(b in B)B.hasOwnProperty(b)&&a._a&&a._a.removeEventListener(b,B[b],!1)};this._onload=function(b){var c=!!b||!a.isHTML5&&8===m&&a.duration;a.loaded=c;a.readyState=c?3:2;a._onbufferchange(0);a._iO.onload&&ga(a,function(){a._iO.onload.apply(a,[c])});return!0};this._onbufferchange=function(b){if(0===a.playState||b&&a.isBuffering||!b&&!a.isBuffering)return!1;a.isBuffering=1===b;a._iO.onbufferchange&&a._iO.onbufferchange.apply(a);return!0};this._onsuspend=function(){a._iO.onsuspend&&a._iO.onsuspend.apply(a);
+return!0};this._onfailure=function(b,c,e){a.failures++;if(a._iO.onfailure&&1===a.failures)a._iO.onfailure(a,b,c,e)};this._onfinish=function(){var b=a._iO.onfinish;a._onbufferchange(0);a._resetOnPosition(0);a.instanceCount&&(a.instanceCount--,a.instanceCount||(x(),a.playState=0,a.paused=!1,a.instanceCount=0,a.instanceOptions={},a._iO={},g(),a.isHTML5&&(a.position=0)),(!a.instanceCount||a._iO.multiShotEvents)&&b&&ga(a,function(){b.apply(a)}))};this._whileloading=function(b,c,e,d){var f=a._iO;a.bytesLoaded=
+b;a.bytesTotal=c;a.duration=Math.floor(e);a.bufferLength=d;a.durationEstimate=!a.isHTML5&&!f.isMovieStar?f.duration?a.duration>f.duration?a.duration:f.duration:parseInt(a.bytesTotal/a.bytesLoaded*a.duration,10):a.duration;a.isHTML5||(a.buffered=[{start:0,end:a.duration}]);(3!==a.readyState||a.isHTML5)&&f.whileloading&&f.whileloading.apply(a)};this._whileplaying=function(b,c,e,d,f){var h=a._iO;if(isNaN(b)||null===b)return!1;a.position=Math.max(0,b);a._processOnPosition();!a.isHTML5&&8<m&&(h.usePeakData&&
+(c!==k&&c)&&(a.peakData={left:c.leftPeak,right:c.rightPeak}),h.useWaveformData&&(e!==k&&e)&&(a.waveformData={left:e.split(","),right:d.split(",")}),h.useEQData&&(f!==k&&f&&f.leftEQ)&&(b=f.leftEQ.split(","),a.eqData=b,a.eqData.left=b,f.rightEQ!==k&&f.rightEQ&&(a.eqData.right=f.rightEQ.split(","))));1===a.playState&&(!a.isHTML5&&(8===m&&!a.position&&a.isBuffering)&&a._onbufferchange(0),h.whileplaying&&h.whileplaying.apply(a));return!0};this._oncaptiondata=function(b){a.captiondata=b;a._iO.oncaptiondata&&
+a._iO.oncaptiondata.apply(a,[b])};this._onmetadata=function(b,c){var e={},d,f;d=0;for(f=b.length;d<f;d++)e[b[d]]=c[d];a.metadata=e;a._iO.onmetadata&&a._iO.onmetadata.apply(a)};this._onid3=function(b,c){var e=[],d,f;d=0;for(f=b.length;d<f;d++)e[b[d]]=c[d];a.id3=w(a.id3,e);a._iO.onid3&&a._iO.onid3.apply(a)};this._onconnect=function(b){b=1===b;if(a.connected=b)a.failures=0,r(a.id)&&(a.getAutoPlay()?a.play(k,a.getAutoPlay()):a._iO.autoLoad&&a.load()),a._iO.onconnect&&a._iO.onconnect.apply(a,[b])};this._ondataerror=
+function(b){0<a.playState&&a._iO.ondataerror&&a._iO.ondataerror.apply(a)}};va=function(){return n.body||n.getElementsByTagName("div")[0]};W=function(b){return n.getElementById(b)};w=function(b,e){var d=b||{},a,f;a=e===k?c.defaultOptions:e;for(f in a)a.hasOwnProperty(f)&&d[f]===k&&(d[f]="object"!==typeof a[f]||null===a[f]?a[f]:w(d[f],a[f]));return d};ga=function(b,c){!b.isHTML5&&8===m?g.setTimeout(c,0):c()};X={onready:1,ontimeout:1,defaultOptions:1,flash9Options:1,movieStarOptions:1};oa=function(b,
+e){var d,a=!0,f=e!==k,h=c.setupOptions;for(d in b)if(b.hasOwnProperty(d))if("object"!==typeof b[d]||null===b[d]||b[d]instanceof Array||b[d]instanceof RegExp)f&&X[e]!==k?c[e][d]=b[d]:h[d]!==k?(c.setupOptions[d]=b[d],c[d]=b[d]):X[d]===k?a=!1:c[d]instanceof Function?c[d].apply(c,b[d]instanceof Array?b[d]:[b[d]]):c[d]=b[d];else if(X[d]===k)a=!1;else return oa(b[d],d);return a};t=function(){function b(a){a=fb.call(a);var b=a.length;d?(a[1]="on"+a[1],3<b&&a.pop()):3===b&&a.push(!1);return a}function c(b,
+e){var k=b.shift(),g=[a[e]];if(d)k[g](b[0],b[1]);else k[g].apply(k,b)}var d=g.attachEvent,a={add:d?"attachEvent":"addEventListener",remove:d?"detachEvent":"removeEventListener"};return{add:function(){c(b(arguments),"add")},remove:function(){c(b(arguments),"remove")}}}();B={abort:q(function(){}),canplay:q(function(){var b=this._s,c;if(b._html5_canplay)return!0;b._html5_canplay=!0;b._onbufferchange(0);c=b._iO.position!==k&&!isNaN(b._iO.position)?b._iO.position/1E3:null;if(b.position&&this.currentTime!==
+c)try{this.currentTime=c}catch(d){}b._iO._oncanplay&&b._iO._oncanplay()}),canplaythrough:q(function(){var b=this._s;b.loaded||(b._onbufferchange(0),b._whileloading(b.bytesLoaded,b.bytesTotal,b._get_html5_duration()),b._onload(!0))}),ended:q(function(){this._s._onfinish()}),error:q(function(){this._s._onload(!1)}),loadeddata:q(function(){var b=this._s;!b._loaded&&!ia&&(b.duration=b._get_html5_duration())}),loadedmetadata:q(function(){}),loadstart:q(function(){this._s._onbufferchange(1)}),play:q(function(){this._s._onbufferchange(0)}),
+playing:q(function(){this._s._onbufferchange(0)}),progress:q(function(b){var c=this._s,d,a,f=0,f=b.target.buffered;d=b.loaded||0;var h=b.total||1;c.buffered=[];if(f&&f.length){d=0;for(a=f.length;d<a;d++)c.buffered.push({start:1E3*f.start(d),end:1E3*f.end(d)});f=1E3*(f.end(0)-f.start(0));d=Math.min(1,f/(1E3*b.target.duration))}isNaN(d)||(c._onbufferchange(0),c._whileloading(d,h,c._get_html5_duration()),d&&(h&&d===h)&&B.canplaythrough.call(this,b))}),ratechange:q(function(){}),suspend:q(function(b){var c=
+this._s;B.progress.call(this,b);c._onsuspend()}),stalled:q(function(){}),timeupdate:q(function(){this._s._onTimer()}),waiting:q(function(){this._s._onbufferchange(1)})};ea=function(b){return!b||!b.type&&!b.url&&!b.serverURL?!1:b.serverURL||b.type&&V(b.type)?!1:b.type?T({type:b.type}):T({url:b.url})||c.html5Only||b.url.match(/data\:/i)};fa=function(b){var e;b&&(e=ia?"about:blank":c.html5.canPlayType("audio/wav")?"data:audio/wave;base64,/UklGRiYAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQIAAAD//w\x3d\x3d":
+"about:blank",b.src=e,void 0!==b._called_unload&&(b._called_load=!1));A&&(Ca=null);return e};T=function(b){if(!c.useHTML5Audio||!c.hasHTML5)return!1;var e=b.url||null;b=b.type||null;var d=c.audioFormats,a;if(b&&c.html5[b]!==k)return c.html5[b]&&!V(b);if(!z){z=[];for(a in d)d.hasOwnProperty(a)&&(z.push(a),d[a].related&&(z=z.concat(d[a].related)));z=RegExp("\\.("+z.join("|")+")(\\?.*)?$","i")}a=e?e.toLowerCase().match(z):null;!a||!a.length?b&&(e=b.indexOf(";"),a=(-1!==e?b.substr(0,e):b).substr(6)):
+a=a[1];a&&c.html5[a]!==k?e=c.html5[a]&&!V(a):(b="audio/"+a,e=c.html5.canPlayType({type:b}),e=(c.html5[a]=e)&&c.html5[b]&&!V(b));return e};Wa=function(){function b(a){var b,d=b=!1;if(!e||"function"!==typeof e.canPlayType)return b;if(a instanceof Array){g=0;for(b=a.length;g<b;g++)if(c.html5[a[g]]||e.canPlayType(a[g]).match(c.html5Test))d=!0,c.html5[a[g]]=!0,c.flash[a[g]]=!!a[g].match(bb);b=d}else a=e&&"function"===typeof e.canPlayType?e.canPlayType(a):!1,b=!(!a||!a.match(c.html5Test));return b}if(!c.useHTML5Audio||
+!c.hasHTML5)return u=c.html5.usingFlash=!0,!1;var e=Audio!==k?Ea&&10>opera.version()?new Audio(null):new Audio:null,d,a,f={},h,g;h=c.audioFormats;for(d in h)if(h.hasOwnProperty(d)&&(a="audio/"+d,f[d]=b(h[d].type),f[a]=f[d],d.match(bb)?(c.flash[d]=!0,c.flash[a]=!0):(c.flash[d]=!1,c.flash[a]=!1),h[d]&&h[d].related))for(g=h[d].related.length-1;0<=g;g--)f["audio/"+h[d].related[g]]=f[d],c.html5[h[d].related[g]]=f[d],c.flash[h[d].related[g]]=f[d];f.canPlayType=e?b:null;c.html5=w(c.html5,f);c.html5.usingFlash=
+Va();u=c.html5.usingFlash;return!0};sa={};P=function(){};aa=function(b){8===m&&(1<b.loops&&b.stream)&&(b.stream=!1);return b};ba=function(b,c){if(b&&!b.usePolicyFile&&(b.onid3||b.usePeakData||b.useWaveformData||b.useEQData))b.usePolicyFile=!0;return b};la=function(){return!1};Pa=function(b){for(var c in b)b.hasOwnProperty(c)&&"function"===typeof b[c]&&(b[c]=la)};xa=function(b){b===k&&(b=!1);(y||b)&&c.disable(b)};Qa=function(b){var e=null;if(b)if(b.match(/\.swf(\?.*)?$/i)){if(e=b.substr(b.toLowerCase().lastIndexOf(".swf?")+
+4))return b}else b.lastIndexOf("/")!==b.length-1&&(b+="/");b=(b&&-1!==b.lastIndexOf("/")?b.substr(0,b.lastIndexOf("/")+1):"./")+c.movieURL;c.noSWFCache&&(b+="?ts\x3d"+(new Date).getTime());return b};ra=function(){m=parseInt(c.flashVersion,10);8!==m&&9!==m&&(c.flashVersion=m=8);var b=c.debugMode||c.debugFlash?"_debug.swf":".swf";c.useHTML5Audio&&(!c.html5Only&&c.audioFormats.mp4.required&&9>m)&&(c.flashVersion=m=9);c.version=c.versionNumber+(c.html5Only?" (HTML5-only mode)":9===m?" (AS3/Flash 9)":
+" (AS2/Flash 8)");8<m?(c.defaultOptions=w(c.defaultOptions,c.flash9Options),c.features.buffering=!0,c.defaultOptions=w(c.defaultOptions,c.movieStarOptions),c.filePatterns.flash9=RegExp("\\.(mp3|"+eb.join("|")+")(\\?.*)?$","i"),c.features.movieStar=!0):c.features.movieStar=!1;c.filePattern=c.filePatterns[8!==m?"flash9":"flash8"];c.movieURL=(8===m?"soundmanager2.swf":"soundmanager2_flash9.swf").replace(".swf",b);c.features.peakData=c.features.waveformData=c.features.eqData=8<m};Oa=function(b,c){if(!l)return!1;
+l._setPolling(b,c)};wa=function(){};r=this.getSoundById;I=function(){var b=[];c.debugMode&&b.push("sm2_debug");c.debugFlash&&b.push("flash_debug");c.useHighPerformance&&b.push("high_performance");return b.join(" ")};za=function(){P("fbHandler");var b=c.getMoviePercent(),e={type:"FLASHBLOCK"};if(c.html5Only)return!1;c.ok()?c.oMC&&(c.oMC.className=[I(),"movieContainer","swf_loaded"+(c.didFlashBlock?" swf_unblocked":"")].join(" ")):(u&&(c.oMC.className=I()+" movieContainer "+(null===b?"swf_timedout":
+"swf_error")),c.didFlashBlock=!0,D({type:"ontimeout",ignoreInit:!0,error:e}),H(e))};pa=function(b,c,d){x[b]===k&&(x[b]=[]);x[b].push({method:c,scope:d||null,fired:!1})};D=function(b){b||(b={type:c.ok()?"onready":"ontimeout"});if(!p&&b&&!b.ignoreInit||"ontimeout"===b.type&&(c.ok()||y&&!b.ignoreInit))return!1;var e={success:b&&b.ignoreInit?c.ok():!y},d=b&&b.type?x[b.type]||[]:[],a=[],f,e=[e],h=u&&!c.ok();b.error&&(e[0].error=b.error);b=0;for(f=d.length;b<f;b++)!0!==d[b].fired&&a.push(d[b]);if(a.length){b=
+0;for(f=a.length;b<f;b++)a[b].scope?a[b].method.apply(a[b].scope,e):a[b].method.apply(this,e),h||(a[b].fired=!0)}return!0};E=function(){g.setTimeout(function(){c.useFlashBlock&&za();D();"function"===typeof c.onload&&c.onload.apply(g);c.waitForWindowLoad&&t.add(g,"load",E)},1)};Da=function(){if(v!==k)return v;var b=!1,c=navigator,d=c.plugins,a,f=g.ActiveXObject;if(d&&d.length)(c=c.mimeTypes)&&(c["application/x-shockwave-flash"]&&c["application/x-shockwave-flash"].enabledPlugin&&c["application/x-shockwave-flash"].enabledPlugin.description)&&
+(b=!0);else if(f!==k&&!s.match(/MSAppHost/i)){try{a=new f("ShockwaveFlash.ShockwaveFlash")}catch(h){a=null}b=!!a}return v=b};Va=function(){var b,e,d=c.audioFormats;if(ha&&s.match(/os (1|2|3_0|3_1)/i))c.hasHTML5=!1,c.html5Only=!0,c.oMC&&(c.oMC.style.display="none");else if(c.useHTML5Audio&&(!c.html5||!c.html5.canPlayType))c.hasHTML5=!1;if(c.useHTML5Audio&&c.hasHTML5)for(e in S=!0,d)if(d.hasOwnProperty(e)&&d[e].required)if(c.html5.canPlayType(d[e].type)){if(c.preferFlash&&(c.flash[e]||c.flash[d[e].type]))b=
+!0}else S=!1,b=!0;c.ignoreFlash&&(b=!1,S=!0);c.html5Only=c.hasHTML5&&c.useHTML5Audio&&!b;return!c.html5Only};da=function(b){var e,d,a=0;if(b instanceof Array){e=0;for(d=b.length;e<d;e++)if(b[e]instanceof Object){if(c.canPlayMIME(b[e].type)){a=e;break}}else if(c.canPlayURL(b[e])){a=e;break}b[a].url&&(b[a]=b[a].url);b=b[a]}return b};Ra=function(b){b._hasTimer||(b._hasTimer=!0,!Fa&&c.html5PollingInterval&&(null===R&&0===ca&&(R=setInterval(Ta,c.html5PollingInterval)),ca++))};Sa=function(b){b._hasTimer&&
+(b._hasTimer=!1,!Fa&&c.html5PollingInterval&&ca--)};Ta=function(){var b;if(null!==R&&!ca)return clearInterval(R),R=null,!1;for(b=c.soundIDs.length-1;0<=b;b--)c.sounds[c.soundIDs[b]].isHTML5&&c.sounds[c.soundIDs[b]]._hasTimer&&c.sounds[c.soundIDs[b]]._onTimer()};H=function(b){b=b!==k?b:{};"function"===typeof c.onerror&&c.onerror.apply(g,[{type:b.type!==k?b.type:null}]);b.fatal!==k&&b.fatal&&c.disable()};Xa=function(){if(!$a||!Da())return!1;var b=c.audioFormats,e,d;for(d in b)if(b.hasOwnProperty(d)&&
+("mp3"===d||"mp4"===d))if(c.html5[d]=!1,b[d]&&b[d].related)for(e=b[d].related.length-1;0<=e;e--)c.html5[b[d].related[e]]=!1};this._setSandboxType=function(b){};this._externalInterfaceOK=function(b){if(c.swfLoaded)return!1;c.swfLoaded=!0;ja=!1;$a&&Xa();setTimeout(ma,C?100:1)};$=function(b,e){function d(a,b){return'\x3cparam name\x3d"'+a+'" value\x3d"'+b+'" /\x3e'}if(K&&L)return!1;if(c.html5Only)return ra(),c.oMC=W(c.movieID),ma(),L=K=!0,!1;var a=e||c.url,f=c.altURL||a,h=va(),g=I(),l=null,l=n.getElementsByTagName("html")[0],
+m,p,q,l=l&&l.dir&&l.dir.match(/rtl/i);b=b===k?c.id:b;ra();c.url=Qa(Ha?a:f);e=c.url;c.wmode=!c.wmode&&c.useHighPerformance?"transparent":c.wmode;if(null!==c.wmode&&(s.match(/msie 8/i)||!C&&!c.useHighPerformance)&&navigator.platform.match(/win32|win64/i))Ua.push(sa.spcWmode),c.wmode=null;h={name:b,id:b,src:e,quality:"high",allowScriptAccess:c.allowScriptAccess,bgcolor:c.bgColor,pluginspage:cb+"www.macromedia.com/go/getflashplayer",title:"JS/Flash audio component (SoundManager 2)",type:"application/x-shockwave-flash",
+wmode:c.wmode,hasPriority:"true"};c.debugFlash&&(h.FlashVars="debug\x3d1");c.wmode||delete h.wmode;if(C)a=n.createElement("div"),p=['\x3cobject id\x3d"'+b+'" data\x3d"'+e+'" type\x3d"'+h.type+'" title\x3d"'+h.title+'" classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase\x3d"'+cb+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version\x3d6,0,40,0"\x3e',d("movie",e),d("AllowScriptAccess",c.allowScriptAccess),d("quality",h.quality),c.wmode?d("wmode",c.wmode):"",d("bgcolor",
+c.bgColor),d("hasPriority","true"),c.debugFlash?d("FlashVars",h.FlashVars):"","\x3c/object\x3e"].join("");else for(m in a=n.createElement("embed"),h)h.hasOwnProperty(m)&&a.setAttribute(m,h[m]);wa();g=I();if(h=va())if(c.oMC=W(c.movieID)||n.createElement("div"),c.oMC.id)q=c.oMC.className,c.oMC.className=(q?q+" ":"movieContainer")+(g?" "+g:""),c.oMC.appendChild(a),C&&(m=c.oMC.appendChild(n.createElement("div")),m.className="sm2-object-box",m.innerHTML=p),L=!0;else{c.oMC.id=c.movieID;c.oMC.className=
+"movieContainer "+g;m=g=null;c.useFlashBlock||(c.useHighPerformance?g={position:"fixed",width:"8px",height:"8px",bottom:"0px",left:"0px",overflow:"hidden"}:(g={position:"absolute",width:"6px",height:"6px",top:"-9999px",left:"-9999px"},l&&(g.left=Math.abs(parseInt(g.left,10))+"px")));gb&&(c.oMC.style.zIndex=1E4);if(!c.debugFlash)for(q in g)g.hasOwnProperty(q)&&(c.oMC.style[q]=g[q]);try{C||c.oMC.appendChild(a),h.appendChild(c.oMC),C&&(m=c.oMC.appendChild(n.createElement("div")),m.className="sm2-object-box",
+m.innerHTML=p),L=!0}catch(r){throw Error(P("domError")+" \n"+r.toString());}}return K=!0};Z=function(){if(c.html5Only)return $(),!1;if(l||!c.url)return!1;l=c.getMovie(c.id);l||(O?(C?c.oMC.innerHTML=ya:c.oMC.appendChild(O),O=null,K=!0):$(c.id,c.url),l=c.getMovie(c.id));"function"===typeof c.oninitmovie&&setTimeout(c.oninitmovie,1);return!0};F=function(){setTimeout(Na,1E3)};qa=function(){g.setTimeout(function(){c.setup({preferFlash:!1}).reboot();c.didFlashBlock=!0;c.beginDelayedInit()},1)};Na=function(){var b,
+e=!1;if(!c.url||Q)return!1;Q=!0;t.remove(g,"load",F);if(v&&ja&&!Ga)return!1;p||(b=c.getMoviePercent(),0<b&&100>b&&(e=!0));setTimeout(function(){b=c.getMoviePercent();if(e)return Q=!1,g.setTimeout(F,1),!1;!p&&ab&&(null===b?c.useFlashBlock||0===c.flashLoadTimeout?c.useFlashBlock&&za():!c.useFlashBlock&&S?qa():D({type:"ontimeout",ignoreInit:!0,error:{type:"INIT_FLASHBLOCK"}}):0!==c.flashLoadTimeout&&(!c.useFlashBlock&&S?qa():xa(!0)))},c.flashLoadTimeout)};Y=function(){if(Ga||!ja)return t.remove(g,"focus",
+Y),!0;Ga=ab=!0;Q=!1;F();t.remove(g,"focus",Y);return!0};M=function(b){if(p)return!1;if(c.html5Only)return p=!0,E(),!0;var e=!0,d;if(!c.useFlashBlock||!c.flashLoadTimeout||c.getMoviePercent())p=!0;d={type:!v&&u?"NO_FLASH":"INIT_TIMEOUT"};if(y||b)c.useFlashBlock&&c.oMC&&(c.oMC.className=I()+" "+(null===c.getMoviePercent()?"swf_timedout":"swf_error")),D({type:"ontimeout",error:d,ignoreInit:!0}),H(d),e=!1;y||(c.waitForWindowLoad&&!na?t.add(g,"load",E):E());return e};Ma=function(){var b,e=c.setupOptions;
+for(b in e)e.hasOwnProperty(b)&&(c[b]===k?c[b]=e[b]:c[b]!==e[b]&&(c.setupOptions[b]=c[b]))};ma=function(){if(p)return!1;if(c.html5Only)return p||(t.remove(g,"load",c.beginDelayedInit),c.enabled=!0,M()),!0;Z();try{l._externalInterfaceTest(!1),Oa(!0,c.flashPollingInterval||(c.useHighPerformance?10:50)),c.debugMode||l._disableDebug(),c.enabled=!0,c.html5Only||t.add(g,"unload",la)}catch(b){return H({type:"JS_TO_FLASH_EXCEPTION",fatal:!0}),xa(!0),M(),!1}M();t.remove(g,"load",c.beginDelayedInit);return!0};
+G=function(){if(N)return!1;N=!0;Ma();wa();!v&&c.hasHTML5&&c.setup({useHTML5Audio:!0,preferFlash:!1});Wa();!v&&u&&(Ua.push(sa.needFlash),c.setup({flashLoadTimeout:1}));n.removeEventListener&&n.removeEventListener("DOMContentLoaded",G,!1);Z();return!0};Ba=function(){"complete"===n.readyState&&(G(),n.detachEvent("onreadystatechange",Ba));return!0};ua=function(){na=!0;t.remove(g,"load",ua)};ta=function(){if(Fa&&(c.setupOptions.useHTML5Audio=!0,c.setupOptions.preferFlash=!1,ha||Za&&!s.match(/android\s2\.3/i)))ha&&
+(c.ignoreFlash=!0),A=!0};ta();Da();t.add(g,"focus",Y);t.add(g,"load",F);t.add(g,"load",ua);n.addEventListener?n.addEventListener("DOMContentLoaded",G,!1):n.attachEvent?n.attachEvent("onreadystatechange",Ba):H({type:"NO_DOM2_EVENTS",fatal:!0})}var ka=null;if(void 0===g.SM2_DEFER||!SM2_DEFER)ka=new U;g.SoundManager=U;g.soundManager=ka})(window);
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2.swf b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2.swf
new file mode 100644
index 0000000..dc383ce
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2.swf
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2_flash9.swf b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2_flash9.swf
new file mode 100644
index 0000000..a8effbb
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/lights/soundmanager2_flash9.swf
Binary files differ
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm-min.js b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm-min.js
new file mode 100644
index 0000000..900bc8c
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm-min.js
@@ -0,0 +1,29 @@
+/** @license
+
+ DHTML Snowstorm! JavaScript-based snow for web pages
+ Making it snow on the internets since 2003. You're welcome.
+ -----------------------------------------------------------
+ Version 1.44.20131208 (Previous rev: 1.44.20131125)
+ Copyright (c) 2007, Scott Schiller. All rights reserved.
+ Code provided under the BSD License
+ http://schillmania.com/projects/snowstorm/license.txt
+*/
+var snowStorm=function(g,f){function k(a,d){isNaN(d)&&(d=0);return Math.random()*a+d}function x(){g.setTimeout(function(){a.start(!0)},20);a.events.remove(m?f:g,"mousemove",x)}function y(){(!a.excludeMobile||!D)&&x();a.events.remove(g,"load",y)}this.excludeMobile=this.autoStart=!0;this.flakesMax=128;this.flakesMaxActive=64;this.animationInterval=33;this.useGPU=!0;this.className=null;this.excludeMobile=!0;this.flakeBottom=null;this.followMouse=!0;this.snowColor="#fff";this.snowCharacter="&bull;";this.snowStick=
+!0;this.targetElement=null;this.useMeltEffect=!0;this.usePixelPosition=this.usePositionFixed=this.useTwinkleEffect=!1;this.freezeOnBlur=!0;this.flakeRightOffset=this.flakeLeftOffset=0;this.flakeHeight=this.flakeWidth=8;this.vMaxX=5;this.vMaxY=4;this.zIndex=0;var a=this,q,m=navigator.userAgent.match(/msie/i),E=navigator.userAgent.match(/msie 6/i),D=navigator.userAgent.match(/mobile|opera m(ob|in)/i),r=m&&"BackCompat"===f.compatMode||E,h=null,n=null,l=null,p=null,s=null,z=null,A=null,v=1,t=!1,w=!1,
+u;a:{try{f.createElement("div").style.opacity="0.5"}catch(F){u=!1;break a}u=!0}var B=!1,C=f.createDocumentFragment();q=function(){function c(b){g.setTimeout(b,1E3/(a.animationInterval||20))}function d(a){return void 0!==h.style[a]?a:null}var e,b=g.requestAnimationFrame||g.webkitRequestAnimationFrame||g.mozRequestAnimationFrame||g.oRequestAnimationFrame||g.msRequestAnimationFrame||c;e=b?function(){return b.apply(g,arguments)}:null;var h;h=f.createElement("div");e={transform:{ie:d("-ms-transform"),
+moz:d("MozTransform"),opera:d("OTransform"),webkit:d("webkitTransform"),w3:d("transform"),prop:null},getAnimationFrame:e};e.transform.prop=e.transform.w3||e.transform.moz||e.transform.webkit||e.transform.ie||e.transform.opera;h=null;return e}();this.timer=null;this.flakes=[];this.active=this.disabled=!1;this.meltFrameCount=20;this.meltFrames=[];this.setXY=function(c,d,e){if(!c)return!1;a.usePixelPosition||w?(c.style.left=d-a.flakeWidth+"px",c.style.top=e-a.flakeHeight+"px"):r?(c.style.right=100-100*
+(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):a.flakeBottom?(c.style.right=100-100*(d/h)+"%",c.style.top=Math.min(e,s-a.flakeHeight)+"px"):(c.style.right=100-100*(d/h)+"%",c.style.bottom=100-100*(e/l)+"%")};this.events=function(){function a(c){c=b.call(c);var d=c.length;e?(c[1]="on"+c[1],3<d&&c.pop()):3===d&&c.push(!1);return c}function d(a,b){var c=a.shift(),d=[f[b]];if(e)c[d](a[0],a[1]);else c[d].apply(c,a)}var e=!g.addEventListener&&g.attachEvent,b=Array.prototype.slice,f={add:e?"attachEvent":
+"addEventListener",remove:e?"detachEvent":"removeEventListener"};return{add:function(){d(a(arguments),"add")},remove:function(){d(a(arguments),"remove")}}}();this.randomizeWind=function(){var c;c=k(a.vMaxX,0.2);z=1===parseInt(k(2),10)?-1*c:c;A=k(a.vMaxY,0.2);if(this.flakes)for(c=0;c<this.flakes.length;c++)this.flakes[c].active&&this.flakes[c].setVelocities()};this.scrollHandler=function(){var c;p=a.flakeBottom?0:parseInt(g.scrollY||f.documentElement.scrollTop||(r?f.body.scrollTop:0),10);isNaN(p)&&
+(p=0);if(!t&&!a.flakeBottom&&a.flakes)for(c=0;c<a.flakes.length;c++)0===a.flakes[c].active&&a.flakes[c].stick()};this.resizeHandler=function(){g.innerWidth||g.innerHeight?(h=g.innerWidth-16-a.flakeRightOffset,l=a.flakeBottom||g.innerHeight):(h=(f.documentElement.clientWidth||f.body.clientWidth||f.body.scrollWidth)-(!m?8:0)-a.flakeRightOffset,l=a.flakeBottom||f.documentElement.clientHeight||f.body.clientHeight||f.body.scrollHeight);s=f.body.offsetHeight;n=parseInt(h/2,10)};this.resizeHandlerAlt=function(){h=
+a.targetElement.offsetWidth-a.flakeRightOffset;l=a.flakeBottom||a.targetElement.offsetHeight;n=parseInt(h/2,10);s=f.body.offsetHeight};this.freeze=function(){if(a.disabled)return!1;a.disabled=1;a.timer=null};this.resume=function(){if(a.disabled)a.disabled=0;else return!1;a.timerInit()};this.toggleSnow=function(){a.flakes.length?(a.active=!a.active,a.active?(a.show(),a.resume()):(a.stop(),a.freeze())):a.start()};this.stop=function(){var c;this.freeze();for(c=0;c<this.flakes.length;c++)this.flakes[c].o.style.display=
+"none";a.events.remove(g,"scroll",a.scrollHandler);a.events.remove(g,"resize",a.resizeHandler);a.freezeOnBlur&&(m?(a.events.remove(f,"focusout",a.freeze),a.events.remove(f,"focusin",a.resume)):(a.events.remove(g,"blur",a.freeze),a.events.remove(g,"focus",a.resume)))};this.show=function(){var a;for(a=0;a<this.flakes.length;a++)this.flakes[a].o.style.display="block"};this.SnowFlake=function(c,d,e){var b=this;this.type=c;this.x=d||parseInt(k(h-20),10);this.y=!isNaN(e)?e:-k(l)-12;this.vY=this.vX=null;
+this.vAmpTypes=[1,1.2,1.4,1.6,1.8];this.vAmp=this.vAmpTypes[this.type]||1;this.melting=!1;this.meltFrameCount=a.meltFrameCount;this.meltFrames=a.meltFrames;this.twinkleFrame=this.meltFrame=0;this.active=1;this.fontSize=10+10*(this.type/5);this.o=f.createElement("div");this.o.innerHTML=a.snowCharacter;a.className&&this.o.setAttribute("class",a.className);this.o.style.color=a.snowColor;this.o.style.position=t?"fixed":"absolute";a.useGPU&&q.transform.prop&&(this.o.style[q.transform.prop]="translate3d(0px, 0px, 0px)");
+this.o.style.width=a.flakeWidth+"px";this.o.style.height=a.flakeHeight+"px";this.o.style.fontFamily="arial,verdana";this.o.style.cursor="default";this.o.style.overflow="hidden";this.o.style.fontWeight="normal";this.o.style.zIndex=a.zIndex;C.appendChild(this.o);this.refresh=function(){if(isNaN(b.x)||isNaN(b.y))return!1;a.setXY(b.o,b.x,b.y)};this.stick=function(){r||a.targetElement!==f.documentElement&&a.targetElement!==f.body?b.o.style.top=l+p-a.flakeHeight+"px":a.flakeBottom?b.o.style.top=a.flakeBottom+
+"px":(b.o.style.display="none",b.o.style.bottom="0%",b.o.style.position="fixed",b.o.style.display="block")};this.vCheck=function(){0<=b.vX&&0.2>b.vX?b.vX=0.2:0>b.vX&&-0.2<b.vX&&(b.vX=-0.2);0<=b.vY&&0.2>b.vY&&(b.vY=0.2)};this.move=function(){var c=b.vX*v;b.x+=c;b.y+=b.vY*b.vAmp;b.x>=h||h-b.x<a.flakeWidth?b.x=0:0>c&&b.x-a.flakeLeftOffset<-a.flakeWidth&&(b.x=h-a.flakeWidth-1);b.refresh();l+p-b.y+a.flakeHeight<a.flakeHeight?(b.active=0,a.snowStick?b.stick():b.recycle()):(a.useMeltEffect&&(b.active&&3>
+b.type&&!b.melting&&0.998<Math.random())&&(b.melting=!0,b.melt()),a.useTwinkleEffect&&(0>b.twinkleFrame?0.97<Math.random()&&(b.twinkleFrame=parseInt(8*Math.random(),10)):(b.twinkleFrame--,u?b.o.style.opacity=b.twinkleFrame&&0===b.twinkleFrame%2?0:1:b.o.style.visibility=b.twinkleFrame&&0===b.twinkleFrame%2?"hidden":"visible")))};this.animate=function(){b.move()};this.setVelocities=function(){b.vX=z+k(0.12*a.vMaxX,0.1);b.vY=A+k(0.12*a.vMaxY,0.1)};this.setOpacity=function(a,b){if(!u)return!1;a.style.opacity=
+b};this.melt=function(){!a.useMeltEffect||!b.melting?b.recycle():b.meltFrame<b.meltFrameCount?(b.setOpacity(b.o,b.meltFrames[b.meltFrame]),b.o.style.fontSize=b.fontSize-b.fontSize*(b.meltFrame/b.meltFrameCount)+"px",b.o.style.lineHeight=a.flakeHeight+2+0.75*a.flakeHeight*(b.meltFrame/b.meltFrameCount)+"px",b.meltFrame++):b.recycle()};this.recycle=function(){b.o.style.display="none";b.o.style.position=t?"fixed":"absolute";b.o.style.bottom="auto";b.setVelocities();b.vCheck();b.meltFrame=0;b.melting=
+!1;b.setOpacity(b.o,1);b.o.style.padding="0px";b.o.style.margin="0px";b.o.style.fontSize=b.fontSize+"px";b.o.style.lineHeight=a.flakeHeight+2+"px";b.o.style.textAlign="center";b.o.style.verticalAlign="baseline";b.x=parseInt(k(h-a.flakeWidth-20),10);b.y=parseInt(-1*k(l),10)-a.flakeHeight;b.refresh();b.o.style.display="block";b.active=1};this.recycle();this.refresh()};this.snow=function(){var c=0,d=null,e,d=0;for(e=a.flakes.length;d<e;d++)1===a.flakes[d].active&&(a.flakes[d].move(),c++),a.flakes[d].melting&&
+a.flakes[d].melt();c<a.flakesMaxActive&&(d=a.flakes[parseInt(k(a.flakes.length),10)],0===d.active&&(d.melting=!0));a.timer&&q.getAnimationFrame(a.snow)};this.mouseMove=function(c){if(!a.followMouse)return!0;c=parseInt(c.clientX,10);c<n?v=-2+2*(c/n):(c-=n,v=2*(c/n))};this.createSnow=function(c,d){var e;for(e=0;e<c;e++)if(a.flakes[a.flakes.length]=new a.SnowFlake(parseInt(k(6),10)),d||e>a.flakesMaxActive)a.flakes[a.flakes.length-1].active=-1;a.targetElement.appendChild(C)};this.timerInit=function(){a.timer=
+!0;a.snow()};this.init=function(){var c;for(c=0;c<a.meltFrameCount;c++)a.meltFrames.push(1-c/a.meltFrameCount);a.randomizeWind();a.createSnow(a.flakesMax);a.events.add(g,"resize",a.resizeHandler);a.events.add(g,"scroll",a.scrollHandler);a.freezeOnBlur&&(m?(a.events.add(f,"focusout",a.freeze),a.events.add(f,"focusin",a.resume)):(a.events.add(g,"blur",a.freeze),a.events.add(g,"focus",a.resume)));a.resizeHandler();a.scrollHandler();a.followMouse&&a.events.add(m?f:g,"mousemove",a.mouseMove);a.animationInterval=
+Math.max(20,a.animationInterval);a.timerInit()};this.start=function(c){if(B){if(c)return!0}else B=!0;if("string"===typeof a.targetElement&&(c=a.targetElement,a.targetElement=f.getElementById(c),!a.targetElement))throw Error('Snowstorm: Unable to get targetElement "'+c+'"');a.targetElement||(a.targetElement=f.body||f.documentElement);a.targetElement!==f.documentElement&&a.targetElement!==f.body&&(a.resizeHandler=a.resizeHandlerAlt,a.usePixelPosition=!0);a.resizeHandler();a.usePositionFixed=a.usePositionFixed&&
+!r&&!a.flakeBottom;if(g.getComputedStyle)try{w="relative"===g.getComputedStyle(a.targetElement,null).getPropertyValue("position")}catch(d){w=!1}t=a.usePositionFixed;h&&(l&&!a.disabled)&&(a.init(),a.active=!0)};a.autoStart&&a.events.add(g,"load",y,!1);return this}(window,document);
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm.js b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm.js
new file mode 100644
index 0000000..477dd6e
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/snowstorm.js
@@ -0,0 +1,666 @@
+/** @license
+ * DHTML Snowstorm! JavaScript-based snow for web pages
+ * Making it snow on the internets since 2003. You're welcome.
+ * -----------------------------------------------------------
+ * Version 1.44.20131208 (Previous rev: 1.44.20131125)
+ * Copyright (c) 2007, Scott Schiller. All rights reserved.
+ * Code provided under the BSD License
+ * http://schillmania.com/projects/snowstorm/license.txt
+ */
+
+/*jslint nomen: true, plusplus: true, sloppy: true, vars: true, white: true */
+/*global window, document, navigator, clearInterval, setInterval */
+
+var snowStorm = (function(window, document) {
+
+  // --- common properties ---
+
+  this.autoStart = true;          // Whether the snow should start automatically or not.
+  this.excludeMobile = true;      // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) Enable at your own risk.
+  this.flakesMax = 128;           // Limit total amount of snow made (falling + sticking)
+  this.flakesMaxActive = 64;      // Limit amount of snow falling at once (less = lower CPU use)
+  this.animationInterval = 33;    // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower
+  this.useGPU = true;             // Enable transform-based hardware acceleration, reduce CPU load.
+  this.className = null;          // CSS class name for further customization on snow elements
+  this.excludeMobile = true;      // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) By default, be nice.
+  this.flakeBottom = null;        // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect
+  this.followMouse = true;        // Snow movement can respond to the user's mouse
+  this.snowColor = '#fff';        // Don't eat (or use?) yellow snow.
+  this.snowCharacter = '&bull;';  // &bull; = bullet, &middot; is square on some systems etc.
+  this.snowStick = true;          // Whether or not snow should "stick" at the bottom. When off, will never collect.
+  this.targetElement = null;      // element which snow will be appended to (null = document.body) - can be an element ID eg. 'myDiv', or a DOM node reference
+  this.useMeltEffect = true;      // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it
+  this.useTwinkleEffect = false;  // Allow snow to randomly "flicker" in and out of view while falling
+  this.usePositionFixed = false;  // true = snow does not shift vertically when scrolling. May increase CPU load, disabled by default - if enabled, used only where supported
+  this.usePixelPosition = false;  // Whether to use pixel values for snow top/left vs. percentages. Auto-enabled if body is position:relative or targetElement is specified.
+
+  // --- less-used bits ---
+
+  this.freezeOnBlur = true;       // Only snow when the window is in focus (foreground.) Saves CPU.
+  this.flakeLeftOffset = 0;       // Left margin/gutter space on edge of container (eg. browser window.) Bump up these values if seeing horizontal scrollbars.
+  this.flakeRightOffset = 0;      // Right margin/gutter space on edge of container
+  this.flakeWidth = 8;            // Max pixel width reserved for snow element
+  this.flakeHeight = 8;           // Max pixel height reserved for snow element
+  this.vMaxX = 5;                 // Maximum X velocity range for snow
+  this.vMaxY = 4;                 // Maximum Y velocity range for snow
+  this.zIndex = 0;                // CSS stacking order applied to each snowflake
+
+  // --- "No user-serviceable parts inside" past this point, yadda yadda ---
+
+  var storm = this,
+  features,
+  // UA sniffing and backCompat rendering mode checks for fixed position, etc.
+  isIE = navigator.userAgent.match(/msie/i),
+  isIE6 = navigator.userAgent.match(/msie 6/i),
+  isMobile = navigator.userAgent.match(/mobile|opera m(ob|in)/i),
+  isBackCompatIE = (isIE && document.compatMode === 'BackCompat'),
+  noFixed = (isBackCompatIE || isIE6),
+  screenX = null, screenX2 = null, screenY = null, scrollY = null, docHeight = null, vRndX = null, vRndY = null,
+  windOffset = 1,
+  windMultiplier = 2,
+  flakeTypes = 6,
+  fixedForEverything = false,
+  targetElementIsRelative = false,
+  opacitySupported = (function(){
+    try {
+      document.createElement('div').style.opacity = '0.5';
+    } catch(e) {
+      return false;
+    }
+    return true;
+  }()),
+  didInit = false,
+  docFrag = document.createDocumentFragment();
+
+  features = (function() {
+
+    var getAnimationFrame;
+
+    /**
+     * hat tip: paul irish
+     * http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+     * https://gist.github.com/838785
+     */
+
+    function timeoutShim(callback) {
+      window.setTimeout(callback, 1000/(storm.animationInterval || 20));
+    }
+
+    var _animationFrame = (window.requestAnimationFrame ||
+        window.webkitRequestAnimationFrame ||
+        window.mozRequestAnimationFrame ||
+        window.oRequestAnimationFrame ||
+        window.msRequestAnimationFrame ||
+        timeoutShim);
+
+    // apply to window, avoid "illegal invocation" errors in Chrome
+    getAnimationFrame = _animationFrame ? function() {
+      return _animationFrame.apply(window, arguments);
+    } : null;
+
+    var testDiv;
+
+    testDiv = document.createElement('div');
+
+    function has(prop) {
+
+      // test for feature support
+      var result = testDiv.style[prop];
+      return (result !== undefined ? prop : null);
+
+    }
+
+    // note local scope.
+    var localFeatures = {
+
+      transform: {
+        ie:  has('-ms-transform'),
+        moz: has('MozTransform'),
+        opera: has('OTransform'),
+        webkit: has('webkitTransform'),
+        w3: has('transform'),
+        prop: null // the normalized property value
+      },
+
+      getAnimationFrame: getAnimationFrame
+
+    };
+
+    localFeatures.transform.prop = (
+      localFeatures.transform.w3 || 
+      localFeatures.transform.moz ||
+      localFeatures.transform.webkit ||
+      localFeatures.transform.ie ||
+      localFeatures.transform.opera
+    );
+
+    testDiv = null;
+
+    return localFeatures;
+
+  }());
+
+  this.timer = null;
+  this.flakes = [];
+  this.disabled = false;
+  this.active = false;
+  this.meltFrameCount = 20;
+  this.meltFrames = [];
+
+  this.setXY = function(o, x, y) {
+
+    if (!o) {
+      return false;
+    }
+
+    if (storm.usePixelPosition || targetElementIsRelative) {
+
+      o.style.left = (x - storm.flakeWidth) + 'px';
+      o.style.top = (y - storm.flakeHeight) + 'px';
+
+    } else if (noFixed) {
+
+      o.style.right = (100-(x/screenX*100)) + '%';
+      // avoid creating vertical scrollbars
+      o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px';
+
+    } else {
+
+      if (!storm.flakeBottom) {
+
+        // if not using a fixed bottom coordinate...
+        o.style.right = (100-(x/screenX*100)) + '%';
+        o.style.bottom = (100-(y/screenY*100)) + '%';
+
+      } else {
+
+        // absolute top.
+        o.style.right = (100-(x/screenX*100)) + '%';
+        o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px';
+
+      }
+
+    }
+
+  };
+
+  this.events = (function() {
+
+    var old = (!window.addEventListener && window.attachEvent), slice = Array.prototype.slice,
+    evt = {
+      add: (old?'attachEvent':'addEventListener'),
+      remove: (old?'detachEvent':'removeEventListener')
+    };
+
+    function getArgs(oArgs) {
+      var args = slice.call(oArgs), len = args.length;
+      if (old) {
+        args[1] = 'on' + args[1]; // prefix
+        if (len > 3) {
+          args.pop(); // no capture
+        }
+      } else if (len === 3) {
+        args.push(false);
+      }
+      return args;
+    }
+
+    function apply(args, sType) {
+      var element = args.shift(),
+          method = [evt[sType]];
+      if (old) {
+        element[method](args[0], args[1]);
+      } else {
+        element[method].apply(element, args);
+      }
+    }
+
+    function addEvent() {
+      apply(getArgs(arguments), 'add');
+    }
+
+    function removeEvent() {
+      apply(getArgs(arguments), 'remove');
+    }
+
+    return {
+      add: addEvent,
+      remove: removeEvent
+    };
+
+  }());
+
+  function rnd(n,min) {
+    if (isNaN(min)) {
+      min = 0;
+    }
+    return (Math.random()*n)+min;
+  }
+
+  function plusMinus(n) {
+    return (parseInt(rnd(2),10)===1?n*-1:n);
+  }
+
+  this.randomizeWind = function() {
+    var i;
+    vRndX = plusMinus(rnd(storm.vMaxX,0.2));
+    vRndY = rnd(storm.vMaxY,0.2);
+    if (this.flakes) {
+      for (i=0; i<this.flakes.length; i++) {
+        if (this.flakes[i].active) {
+          this.flakes[i].setVelocities();
+        }
+      }
+    }
+  };
+
+  this.scrollHandler = function() {
+    var i;
+    // "attach" snowflakes to bottom of window if no absolute bottom value was given
+    scrollY = (storm.flakeBottom ? 0 : parseInt(window.scrollY || document.documentElement.scrollTop || (noFixed ? document.body.scrollTop : 0), 10));
+    if (isNaN(scrollY)) {
+      scrollY = 0; // Netscape 6 scroll fix
+    }
+    if (!fixedForEverything && !storm.flakeBottom && storm.flakes) {
+      for (i=0; i<storm.flakes.length; i++) {
+        if (storm.flakes[i].active === 0) {
+          storm.flakes[i].stick();
+        }
+      }
+    }
+  };
+
+  this.resizeHandler = function() {
+    if (window.innerWidth || window.innerHeight) {
+      screenX = window.innerWidth - 16 - storm.flakeRightOffset;
+      screenY = (storm.flakeBottom || window.innerHeight);
+    } else {
+      screenX = (document.documentElement.clientWidth || document.body.clientWidth || document.body.scrollWidth) - (!isIE ? 8 : 0) - storm.flakeRightOffset;
+      screenY = storm.flakeBottom || document.documentElement.clientHeight || document.body.clientHeight || document.body.scrollHeight;
+    }
+    docHeight = document.body.offsetHeight;
+    screenX2 = parseInt(screenX/2,10);
+  };
+
+  this.resizeHandlerAlt = function() {
+    screenX = storm.targetElement.offsetWidth - storm.flakeRightOffset;
+    screenY = storm.flakeBottom || storm.targetElement.offsetHeight;
+    screenX2 = parseInt(screenX/2,10);
+    docHeight = document.body.offsetHeight;
+  };
+
+  this.freeze = function() {
+    // pause animation
+    if (!storm.disabled) {
+      storm.disabled = 1;
+    } else {
+      return false;
+    }
+    storm.timer = null;
+  };
+
+  this.resume = function() {
+    if (storm.disabled) {
+       storm.disabled = 0;
+    } else {
+      return false;
+    }
+    storm.timerInit();
+  };
+
+  this.toggleSnow = function() {
+    if (!storm.flakes.length) {
+      // first run
+      storm.start();
+    } else {
+      storm.active = !storm.active;
+      if (storm.active) {
+        storm.show();
+        storm.resume();
+      } else {
+        storm.stop();
+        storm.freeze();
+      }
+    }
+  };
+
+  this.stop = function() {
+    var i;
+    this.freeze();
+    for (i=0; i<this.flakes.length; i++) {
+      this.flakes[i].o.style.display = 'none';
+    }
+    storm.events.remove(window,'scroll',storm.scrollHandler);
+    storm.events.remove(window,'resize',storm.resizeHandler);
+    if (storm.freezeOnBlur) {
+      if (isIE) {
+        storm.events.remove(document,'focusout',storm.freeze);
+        storm.events.remove(document,'focusin',storm.resume);
+      } else {
+        storm.events.remove(window,'blur',storm.freeze);
+        storm.events.remove(window,'focus',storm.resume);
+      }
+    }
+  };
+
+  this.show = function() {
+    var i;
+    for (i=0; i<this.flakes.length; i++) {
+      this.flakes[i].o.style.display = 'block';
+    }
+  };
+
+  this.SnowFlake = function(type,x,y) {
+    var s = this;
+    this.type = type;
+    this.x = x||parseInt(rnd(screenX-20),10);
+    this.y = (!isNaN(y)?y:-rnd(screenY)-12);
+    this.vX = null;
+    this.vY = null;
+    this.vAmpTypes = [1,1.2,1.4,1.6,1.8]; // "amplification" for vX/vY (based on flake size/type)
+    this.vAmp = this.vAmpTypes[this.type] || 1;
+    this.melting = false;
+    this.meltFrameCount = storm.meltFrameCount;
+    this.meltFrames = storm.meltFrames;
+    this.meltFrame = 0;
+    this.twinkleFrame = 0;
+    this.active = 1;
+    this.fontSize = (10+(this.type/5)*10);
+    this.o = document.createElement('div');
+    this.o.innerHTML = storm.snowCharacter;
+    if (storm.className) {
+      this.o.setAttribute('class', storm.className);
+    }
+    this.o.style.color = storm.snowColor;
+    this.o.style.position = (fixedForEverything?'fixed':'absolute');
+    if (storm.useGPU && features.transform.prop) {
+      // GPU-accelerated snow.
+      this.o.style[features.transform.prop] = 'translate3d(0px, 0px, 0px)';
+    }
+    this.o.style.width = storm.flakeWidth+'px';
+    this.o.style.height = storm.flakeHeight+'px';
+    this.o.style.fontFamily = 'arial,verdana';
+    this.o.style.cursor = 'default';
+    this.o.style.overflow = 'hidden';
+    this.o.style.fontWeight = 'normal';
+    this.o.style.zIndex = storm.zIndex;
+    docFrag.appendChild(this.o);
+
+    this.refresh = function() {
+      if (isNaN(s.x) || isNaN(s.y)) {
+        // safety check
+        return false;
+      }
+      storm.setXY(s.o, s.x, s.y);
+    };
+
+    this.stick = function() {
+      if (noFixed || (storm.targetElement !== document.documentElement && storm.targetElement !== document.body)) {
+        s.o.style.top = (screenY+scrollY-storm.flakeHeight)+'px';
+      } else if (storm.flakeBottom) {
+        s.o.style.top = storm.flakeBottom+'px';
+      } else {
+        s.o.style.display = 'none';
+        s.o.style.bottom = '0%';
+        s.o.style.position = 'fixed';
+        s.o.style.display = 'block';
+      }
+    };
+
+    this.vCheck = function() {
+      if (s.vX>=0 && s.vX<0.2) {
+        s.vX = 0.2;
+      } else if (s.vX<0 && s.vX>-0.2) {
+        s.vX = -0.2;
+      }
+      if (s.vY>=0 && s.vY<0.2) {
+        s.vY = 0.2;
+      }
+    };
+
+    this.move = function() {
+      var vX = s.vX*windOffset, yDiff;
+      s.x += vX;
+      s.y += (s.vY*s.vAmp);
+      if (s.x >= screenX || screenX-s.x < storm.flakeWidth) { // X-axis scroll check
+        s.x = 0;
+      } else if (vX < 0 && s.x-storm.flakeLeftOffset < -storm.flakeWidth) {
+        s.x = screenX-storm.flakeWidth-1; // flakeWidth;
+      }
+      s.refresh();
+      yDiff = screenY+scrollY-s.y+storm.flakeHeight;
+      if (yDiff<storm.flakeHeight) {
+        s.active = 0;
+        if (storm.snowStick) {
+          s.stick();
+        } else {
+          s.recycle();
+        }
+      } else {
+        if (storm.useMeltEffect && s.active && s.type < 3 && !s.melting && Math.random()>0.998) {
+          // ~1/1000 chance of melting mid-air, with each frame
+          s.melting = true;
+          s.melt();
+          // only incrementally melt one frame
+          // s.melting = false;
+        }
+        if (storm.useTwinkleEffect) {
+          if (s.twinkleFrame < 0) {
+            if (Math.random() > 0.97) {
+              s.twinkleFrame = parseInt(Math.random() * 8, 10);
+            }
+          } else {
+            s.twinkleFrame--;
+            if (!opacitySupported) {
+              s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 'hidden' : 'visible');
+            } else {
+              s.o.style.opacity = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 0 : 1);
+            }
+          }
+        }
+      }
+    };
+
+    this.animate = function() {
+      // main animation loop
+      // move, check status, die etc.
+      s.move();
+    };
+
+    this.setVelocities = function() {
+      s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1);
+      s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1);
+    };
+
+    this.setOpacity = function(o,opacity) {
+      if (!opacitySupported) {
+        return false;
+      }
+      o.style.opacity = opacity;
+    };
+
+    this.melt = function() {
+      if (!storm.useMeltEffect || !s.melting) {
+        s.recycle();
+      } else {
+        if (s.meltFrame < s.meltFrameCount) {
+          s.setOpacity(s.o,s.meltFrames[s.meltFrame]);
+          s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';
+          s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';
+          s.meltFrame++;
+        } else {
+          s.recycle();
+        }
+      }
+    };
+
+    this.recycle = function() {
+      s.o.style.display = 'none';
+      s.o.style.position = (fixedForEverything?'fixed':'absolute');
+      s.o.style.bottom = 'auto';
+      s.setVelocities();
+      s.vCheck();
+      s.meltFrame = 0;
+      s.melting = false;
+      s.setOpacity(s.o,1);
+      s.o.style.padding = '0px';
+      s.o.style.margin = '0px';
+      s.o.style.fontSize = s.fontSize+'px';
+      s.o.style.lineHeight = (storm.flakeHeight+2)+'px';
+      s.o.style.textAlign = 'center';
+      s.o.style.verticalAlign = 'baseline';
+      s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10);
+      s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;
+      s.refresh();
+      s.o.style.display = 'block';
+      s.active = 1;
+    };
+
+    this.recycle(); // set up x/y coords etc.
+    this.refresh();
+
+  };
+
+  this.snow = function() {
+    var active = 0, flake = null, i, j;
+    for (i=0, j=storm.flakes.length; i<j; i++) {
+      if (storm.flakes[i].active === 1) {
+        storm.flakes[i].move();
+        active++;
+      }
+      if (storm.flakes[i].melting) {
+        storm.flakes[i].melt();
+      }
+    }
+    if (active<storm.flakesMaxActive) {
+      flake = storm.flakes[parseInt(rnd(storm.flakes.length),10)];
+      if (flake.active === 0) {
+        flake.melting = true;
+      }
+    }
+    if (storm.timer) {
+      features.getAnimationFrame(storm.snow);
+    }
+  };
+
+  this.mouseMove = function(e) {
+    if (!storm.followMouse) {
+      return true;
+    }
+    var x = parseInt(e.clientX,10);
+    if (x<screenX2) {
+      windOffset = -windMultiplier+(x/screenX2*windMultiplier);
+    } else {
+      x -= screenX2;
+      windOffset = (x/screenX2)*windMultiplier;
+    }
+  };
+
+  this.createSnow = function(limit,allowInactive) {
+    var i;
+    for (i=0; i<limit; i++) {
+      storm.flakes[storm.flakes.length] = new storm.SnowFlake(parseInt(rnd(flakeTypes),10));
+      if (allowInactive || i>storm.flakesMaxActive) {
+        storm.flakes[storm.flakes.length-1].active = -1;
+      }
+    }
+    storm.targetElement.appendChild(docFrag);
+  };
+
+  this.timerInit = function() {
+    storm.timer = true;
+    storm.snow();
+  };
+
+  this.init = function() {
+    var i;
+    for (i=0; i<storm.meltFrameCount; i++) {
+      storm.meltFrames.push(1-(i/storm.meltFrameCount));
+    }
+    storm.randomizeWind();
+    storm.createSnow(storm.flakesMax); // create initial batch
+    storm.events.add(window,'resize',storm.resizeHandler);
+    storm.events.add(window,'scroll',storm.scrollHandler);
+    if (storm.freezeOnBlur) {
+      if (isIE) {
+        storm.events.add(document,'focusout',storm.freeze);
+        storm.events.add(document,'focusin',storm.resume);
+      } else {
+        storm.events.add(window,'blur',storm.freeze);
+        storm.events.add(window,'focus',storm.resume);
+      }
+    }
+    storm.resizeHandler();
+    storm.scrollHandler();
+    if (storm.followMouse) {
+      storm.events.add(isIE?document:window,'mousemove',storm.mouseMove);
+    }
+    storm.animationInterval = Math.max(20,storm.animationInterval);
+    storm.timerInit();
+  };
+
+  this.start = function(bFromOnLoad) {
+    if (!didInit) {
+      didInit = true;
+    } else if (bFromOnLoad) {
+      // already loaded and running
+      return true;
+    }
+    if (typeof storm.targetElement === 'string') {
+      var targetID = storm.targetElement;
+      storm.targetElement = document.getElementById(targetID);
+      if (!storm.targetElement) {
+        throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');
+      }
+    }
+    if (!storm.targetElement) {
+      storm.targetElement = (document.body || document.documentElement);
+    }
+    if (storm.targetElement !== document.documentElement && storm.targetElement !== document.body) {
+      // re-map handler to get element instead of screen dimensions
+      storm.resizeHandler = storm.resizeHandlerAlt;
+      //and force-enable pixel positioning
+      storm.usePixelPosition = true;
+    }
+    storm.resizeHandler(); // get bounding box elements
+    storm.usePositionFixed = (storm.usePositionFixed && !noFixed && !storm.flakeBottom); // whether or not position:fixed is to be used
+    if (window.getComputedStyle) {
+      // attempt to determine if body or user-specified snow parent element is relatlively-positioned.
+      try {
+        targetElementIsRelative = (window.getComputedStyle(storm.targetElement, null).getPropertyValue('position') === 'relative');
+      } catch(e) {
+        // oh well
+        targetElementIsRelative = false;
+      }
+    }
+    fixedForEverything = storm.usePositionFixed;
+    if (screenX && screenY && !storm.disabled) {
+      storm.init();
+      storm.active = true;
+    }
+  };
+
+  function doDelayedStart() {
+    window.setTimeout(function() {
+      storm.start(true);
+    }, 20);
+    // event cleanup
+    storm.events.remove(isIE?document:window,'mousemove',doDelayedStart);
+  }
+
+  function doStart() {
+    if (!storm.excludeMobile || !isMobile) {
+      doDelayedStart();
+    }
+    // event cleanup
+    storm.events.remove(window, 'load', doStart);
+  }
+
+  // hooks for starting the snow
+  if (storm.autoStart) {
+    storm.events.add(window, 'load', doStart, false);
+  }
+
+  return this;
+
+}(window, document));
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-absolute-example.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-absolute-example.html
new file mode 100644
index 0000000..36d076d
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-absolute-example.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>DHTML SnowStorm: targetElement example</title>
+<style type="text/css">
+
+#snow-target {
+ /**
+  * absolute-positioned example, snow is appended to this element.
+  * overflow: hidden is recommended for best effect.
+  */
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 20em;
+ height: 12em;
+ margin-left: -10em;
+ margin-top: -6em;
+ background: #445566;
+ overflow: hidden;
+}
+</style>
+
+<script type="text/javascript" src="snowstorm.js"></script>
+
+<script type="text/javascript">
+
+// blue-ish snow!?
+snowStorm.snowColor = '#99ccff';
+
+// append the snow to this element (by ID or direct DOM node reference)
+snowStorm.targetElement = 'snow-target';
+
+</script>
+</head>
+
+<body style="background:#336699;font:100 1.75em helvetica neue, helvetica,arial,verdana,sans-serif;color:#fff">
+
+<h1 style="font-size:1.5em;margin:0px;font-weight:100">SnowStorm: targetElement example (absolute positioning)</h1>
+
+<div id="snow-target">
+
+ <div style="padding:0px 0.5em">
+
+  <p>
+   This example has snow moving in an absolutely-positioned &lt;div&gt; element, using <code>snowStorm.targetElement</code>. Applying CSS <code>overflow: hidden</code> to the target element is required for best effect.
+  </p>
+
+  <p>
+   View the source of this page for reference.
+  </p>
+
+ </div>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-relative-example.html b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-relative-example.html
new file mode 100644
index 0000000..8d1a930
--- /dev/null
+++ b/Main/Relax/snowstormv144_20131208/snowstormv144_20131208/target-element-relative-example.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<title>DHTML SnowStorm: targetElement example</title>
+<style type="text/css">
+
+#snow-target {
+ /**
+  * absolute-positioned example, snow is appended to this element.
+  * overflow: hidden is recommended for best effect.
+  */
+ position: relative;
+ background: #445566;
+ overflow: hidden;
+ _zoom: 1; /* IE 6 display fix */
+}
+</style>
+
+<script type="text/javascript" src="snowstorm.js"></script>
+
+<script type="text/javascript">
+
+// blue-ish snow!?
+snowStorm.snowColor = '#99ccff';
+
+// append the snow to this element (by ID or direct DOM node reference)
+snowStorm.targetElement = 'snow-target';
+
+</script>
+</head>
+
+<body style="background:#336699;font:100 1.75em helvetica neue, helvetica,arial,verdana,sans-serif;color:#fff">
+
+<h1 style="font-size:1.5em;margin:0px;font-weight:100">SnowStorm: targetElement example (relative positioning)</h1>
+
+<div id="snow-target">
+
+ <div style="padding:0px 0.5em">
+
+  <p>
+   This example has snow moving in a relatively-positioned &lt;div&gt; element, using <code>snowStorm.targetElement</code>. Applying CSS <code>overflow: hidden</code> to the target element is required for best effect.
+  </p>
+
+  <p>
+   View the source of this page for reference.
+  </p>
+
+ </div>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Main/home.php b/Main/home.php
new file mode 100644
index 0000000..daba0ab
--- /dev/null
+++ b/Main/home.php
@@ -0,0 +1,35 @@
+		
+		<div class="content">
+
+			<p class="content_para">
+				<b>Welcome</b> <br>
+				<br>
+				Hello and welcome to our site! <br>
+				Here you will find some of the pictures We, two non-professional photographers, take. <br>
+				We love photography and would like to share our passion with you. <br>
+				Enjoy your visit. <br>
+				<br>
+					- We
+			</p>
+
+			<a href="http://charleston.zapto.org/Relax">
+				<div class="content_para">
+					<b>Check out our relaxation section, too!</b>
+				</div>
+			</a>
+
+			
+		</div>
+
+		<div class="content">
+
+			<p class="content_para"> 
+			If the universe of discourse permits the possibility of time travel 
+			and of changing the past, then no time machine will be invented in that universe. <br>
+			- Niven's Law
+			</p>
+
+		</div>
+	</body>
+</html>
+
diff --git a/Main/index.php b/Main/index.php
new file mode 100644
index 0000000..2d25d11
--- /dev/null
+++ b/Main/index.php
@@ -0,0 +1,92 @@
+<html>
+	<head>
+		
+		<title> Charleston </title>
+		<meta charset="UTF-8">
+		<link rel="stylesheet" type="text/css" href="style.css" media="screen">
+		<script type="text/JavaScript" src="Gallery/gallery_script.js"></script>
+		<link rel="shortcut icon" href="Other/icon.png" />
+
+	</head>
+	<body>
+		<a href="#top"></a>
+
+
+		<div id="null_field">
+			<div id="null_l-eye"></div>
+			<div id="null_r-eye"></div>
+		</div>
+
+
+		<div id="follow_us_block">
+			<div id="follow_us_bg">
+				<a class="click" href="https://www.facebook.com/CharlieScene37" id="facebook">
+		            <img src="Other/facebook.png" class="follow_icons" alt="facebook_icon">
+				</a>
+				
+				<a href="https://twitter.com/ChScarver" id="twitter">
+					<img src="Other/twitter.png" class="follow_icons" alt="twitter_icon">
+				</a>
+
+				<a href="http://danniesaurus.deviantart.com" id="deviantart">
+					<img src="Other/deviantart.png" id="deviantart_icon" class="follow_icons" alt="deviantart_icon">
+				</a>
+
+				<a href="https://github.com/CharlieScarver" id="github">
+					<img src="Other/github.png" class="follow_icons" id="github_icon" alt="github_icon">
+				</a>
+			</div>
+		</div>
+
+
+		<a href="http://charleston.zapto.org"> 
+			<div id="header">
+				<span id="header_title"> Charleston </span>
+
+				<div id="header_eye">
+					<div class="pupils"> </div>
+				</div>
+			</div>
+		</a>
+		<?php
+			if (isset($_GET['page']) && $_GET['page'] != 'Home') {		
+				echo "
+				<style type=\"text/css\">
+					#header_eye {left: 747;}
+				</style>";
+			}
+		?>
+
+
+		<div id="menu_div">
+			<form method="GET" id="menu_form">
+				
+					<input type="submit" name="page" value="Home" >
+					<input type="submit" name="page" value="Gallery" >
+					<input type="submit" name="page" value="About" >
+
+			</form>
+		</div>	
+		
+
+		<?php
+
+		if(isset($_GET['page'])) {
+				
+			switch ($_GET['page']) {
+				case 'Home':
+					require_once 'home.php';
+					break;
+				case 'Gallery':
+					require_once 'Gallery/gallery.php';
+					break;
+				case 'About':
+					require_once 'About/about.php';
+					break;
+			}
+
+		} else {
+			require_once 'home.php';
+		}
+
+		?>
diff --git a/Main/style.css b/Main/style.css
new file mode 100644
index 0000000..1cd3553
--- /dev/null
+++ b/Main/style.css
@@ -0,0 +1,224 @@
+body {background-image: url('https://scontent-a-fra.xx.fbcdn.net/hphotos-prn2/t31.0-8/966409_757720974247070_3270446095000078830_o.jpg'); 
+	background-repeat: no-repeat; background-attachment: fixed; background-position: center;}
+a {text-decoration: none; color: #F0E68C;}
+.gal_images {margin: 15px; max-width: 750px; max-height: 550px;}
+.titles {font: bold 18px Arial, Helvetica, sans-serif; color: #CCC;}
+
+/*--------------------------- Main -------------------------------*/
+#menu_div {
+	margin: 15px auto 0px auto; 
+	height: 50px;
+	width: 500px; 
+	color: white; 
+}
+
+.content {
+	background: rgba(0,0,0,0.5); 
+	min-width: 700px;
+	max-width: 1600px;
+	min-height: 50px;
+	text-align: center;
+	overflow: hidden;
+
+	margin: 25px auto; 
+	padding: 30px 0; 
+	border-radius: 20px;
+}
+
+.content_para {
+	background-color: #F0E68C; 
+	margin: 25px 25px 40px 25px;
+	padding: 25px;
+	color: black;
+	text-align: center;
+	/*border: 5px solid black; */
+	border-radius: 30px;
+	font-size: 18px;
+}
+
+#top_anchor {
+	background-color: rgba(0,0,0,0.5);
+	padding: 15px;
+	margin: 0 15px;
+	border-radius: 20px; 
+}
+/*--------------------------------------------------------------------*/
+
+
+
+/*-------------------------- Forms-Submits --------------------------------*/
+#menu_form > input, #import_form > input, 
+#image_deletion_form > input, #normal_view_form > input 
+{
+	background-color: rgba(0,0,0,0.5);
+	text-decoration: none; 
+	font: bold 18px Arial, Helvetica, sans-serif;
+	color: #CCC;
+	border: none;
+	transition: all 0.50s linear;
+	border-radius: 20px; 
+}
+#menu_form > input {padding: 15px 0; width: 32%; }
+#import_form > input {padding: 15px;}
+#image_deletion_form > input, #normal_view_form > input 
+{padding: 10px; font-size: 14px;}
+
+#menu_form > input:hover {
+	background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.3));
+	color: #000; }
+#import_form > input:hover {
+	background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(255,255,255,0.1));}
+#image_deletion_form > input:hover {
+	background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(255,255,255,0.1));}
+#normal_view_form > input:hover {
+	background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(255,255,255,0.1));}
+
+#menu_form > input:focus, #import_form > input:focus, 
+#image_deletion_form > input:focus, #normal_view_form > input:focus 
+{outline: none;}
+
+#normal_view_form { position: absolute; top: 100px; right: 20px; }
+/*---------------------------------------------------------------*/
+
+
+
+/*------------------------- Header ----------------------------*/
+#header, #header_eye {
+	border-radius: 35px;
+}
+#header { 
+	width: 450px;
+	height: 100px; 
+	margin: 10px auto;
+	/*position: absolute;
+	top: 10px;
+	left: 725px;*/
+}
+#header_eye {
+	background-color: rgba(255,255,255,0.8); 
+	border: 1px solid #2B3856;
+	width: 20px; 
+	height: 20px; 
+	position: absolute;
+	top: 45px;
+	left: 755px;
+	animation: second_blink 5s infinite;
+	-webkit-animation: second_blink 5s infinite; /*Safari and Chrome:*/
+	animation-delay:2.5s;
+	-webkit-animation-delay:2.5s;
+}
+@keyframes second_blink { 2% { background-color: rgba(0,0,0,0.9);  } 4% { background-color: rgba(255,255,255,0.8);  } 100% {background-color: rgba(255,255,255,0.8); } }
+@-webkit-keyframes second_blink { 2% { background-color: rgba(0,0,0,0.9);  } 4% { background-color: rgba(255,255,255,0.8);  } 100% {background-color: rgba(255,255,255,0.8); } }
+
+.pupils {
+	background-color: rgba(21, 27, 141, 0.8);
+	border-radius: 20px; 
+	width: 10px; 
+	height: 10px;
+	position: relative;
+	top: 5px;
+	left: 5px;
+	animation: third_blink 5s infinite;
+	-webkit-animation: third_blink 5s infinite; /*Safari and Chrome:*/
+	animation-delay:2.5s;
+	-webkit-animation-delay:2.5s;
+}
+@keyframes third_blink { 2% { background-color: rgba(0,0,0,0.9);  } 4% { background-color: rgba(21, 27, 141, 0.8); } 100% {background-color: rgba(21, 27, 141, 0.8);} }
+@-webkit-keyframes third_blink { 2% { background-color: rgba(0,0,0,0.9);  } 4% { background-color: rgba(21, 27, 141, 0.8); } 100% {background-color: rgba(21, 27, 141, 0.8);} }
+
+#header_title {
+	font: bold 85px Arial, Helvetica, sans-serif;
+	color: #2B3856;
+}
+/*----------------------------------------------------------*/
+
+
+
+
+/*-------------------- Follow us ------------------------------- */
+.follow_icons { width: 64px; height: 64px; }
+#facebook, #twitter, #deviantart, #github { position: absolute; top: 13px; }
+#facebook {right: 200px;}
+#twitter {right: 140px;}
+#deviantart_icon {width: 84px; height: 84px;}
+#deviantart {top: 3px; right: 70px;}
+#github {right: 20px;}
+
+#follow_us_block {
+	background-color: rgba(0,0,0,0.5);
+	border-bottom-left-radius: 30px; 
+	width: 300px;
+	height: 90px;
+	position: absolute;
+	top: 0px;
+	right: 0px;
+}
+#follow_us_bg { 
+	background-color: rgba(255,255,255,0.8); border-radius: 30px;
+	width: 280px; height: 70px; margin: 10px;}
+/*---------------------------------------------------------------*/
+
+
+
+/*------------------------- Null Field ----------------------------*/
+
+#null_field, #null_r-eye, #null_l-eye { 
+	background: rgba(0,0,0,0.3); 
+	position: absolute;
+	border-radius: 10px; 
+	transition: all 0.7s linear;
+}
+#null_field {
+	width: 100px; height: 100px; 
+	top: 20px; left: 40px;
+	z-index: 1;
+}
+#null_r-eye, #null_l-eye {
+	width: 20px; height: 20px; 
+	animation: blink 3s infinite;
+	-webkit-animation: blink 3s infinite; /*Safari and Chrome:*/
+	animation-delay:1s;
+	-webkit-animation-delay:1s;
+}
+@keyframes blink { 5% { height: 0px; } 10% { height: 20px; } 100% {height: 20px;} }
+@-webkit-keyframes blink { 5% {height: 0px;} 10% {height: 20px;} 100% {height: 20px;} } 
+
+#null_r-eye {top: 20px; left: 35px;}
+#null_l-eye {top: 20px; left: 65px;}
+
+#null_field:hover { border-radius: 80px; background: rgba(102,205,0,0.7);} 
+#null_field:hover > #null_r-eye {left: 25px;}
+#null_field:hover > #null_l-eye {left: 55px;}
+/*----------------------------------------------------------*/
+
+
+
+/*------------------------- Gallery --------------------------*/
+#gallery_footer {
+	background: rgba(0,0,0,0.5);
+	width: 1600px;
+	margin: 25px auto 0 auto;
+	padding: 15px 0;
+	position: relative; 
+	top: 15px;
+	text-align: center;
+	font: bold 18px Arial, Helvetica, sans-serif;
+	color: #CCC;
+	border-top-left-radius: 20px; 
+	border-top-right-radius: 20px;
+}
+/*-----------------------------------------------------*/
+
+
+
+/*------------------------- About ----------------------------*/
+#us {border-radius: 20px;}
+#left_para {float: left; margin: 30px; }
+#right_para {float: right; margin: 30px; }
+/*---------------------------------------------------------*/
+
+
+/*------------------------- Dummies ----------------------------*/
+.hide {display: none;}
+/*---------------------------------------------------------*/
+