
			var quotes = [ "quote0.png" , "quote1.png" , "quote2.png" , "quote3.png" , "quote4.png" , "quote5.png" ];

			(function($) {
				var cache = [];
				$.preLoadImages = function() {
					var args_len = arguments.length;
					for (var i = args_len; i--;) {
						var cacheImage = document.createElement('img');
						cacheImage.src = arguments[i];
						cache.push(cacheImage);
					}
				}
			})(jQuery);

			jQuery.preLoadImages("/images/logosml.png", "/images/logo.jpg", "/images/quote.png", "/images/x.png");

			(function($) {
				var cache2 = [];
				$.preLoadQuotes = function() {
					var args_len2 = arguments.length;
					for (var i = args_len2; i--;) {
						var cacheImage2 = document.createElement('img');
						cacheImage2.src = "/images/" + arguments[i];
						cache2.push(cacheImage2);
					}
				}
			})(jQuery);

			(function($) {

				$.extend({
					ImportBasePath: '',
					__WaitingTasks: new Object(),
					__loadedSuccessfully: function(taskId){
						if (taskId in $.__WaitingTasks){
							if (($.__WaitingTasks[taskId].loading -= 1) < 1){
								var callback = $.__WaitingTasks[taskId].task;
								if (typeof callback == 'function') {
									callback();
								}
								delete $.__WaitingTasks[taskId];
							}
						}
					},
					fileinfo:	function(data){
			            data = data.replace(/^\s|\s$/g, "");
						var m;
			            if (/\.\w+$/.test(data)) {
			                m = data.match(/([^\/\\]+)\.(\w+)$/);
			                if (m) {
								if (m[2] == 'js') {
									return {
										filename: m[1],
										ext: m[2],
										tag: 'script'
									};
								}
								else
									if (m[2] == 'css') {
										return {
											filename: m[1],
											ext: m[2],
											tag: 'link'
										};
									}
									else {
										return {
											filename: m[1],
											ext: m[2],
											tag: null
										};
									}
							}
							else {
								return {
									filename: null,
									ext: null
								};
							}
			            } else {
			                m = data.match(/([^\/\\]+)$/);
			                if (m) {
								return {
									filename: m[1],
									ext: null,
									tag: null
								};
							}
							else {
								return {
									filename: null,
									ext: null,
									tag: null
								};
							}
			            }
			        },
					fileExist: function(filename,filetype,attrCheck) {
						var elementsArray = document.getElementsByTagName(filetype);
						for(var i=0;i<elementsArray.length;i++) {
							if(elementsArray[i].getAttribute(attrCheck)==$.ImportBasePath+filename) {
								return true;
							}
						}
						return false;
					},
					createElement: function(filename,filetype) {
						switch(filetype) {
							case 'script' :
							if (!$.fileExist(filename, filetype, 'src')) {
								var scriptTag = document.createElement(filetype);
								scriptTag.setAttribute('language', 'javascript');
								scriptTag.setAttribute('type', 'text/javascript');
								scriptTag.setAttribute('src', $.ImportBasePath + filename);
								return scriptTag;
							} else {
								return false;
							}
							break;
							case 'link' :
							if (!$.fileExist(filename, filetype, 'href')) {
								var styleTag = document.createElement(filetype);
								styleTag.setAttribute('type', 'text/css');
								styleTag.setAttribute('rel', 'stylesheet');
								styleTag.setAttribute('href', $.ImportBasePath + filename);
								return styleTag;
							} else {
								return false;
							}
							break;

							default :
								return false;
							break;
						}
					},
					cssReady: function(index, taskId) {
						function check() {
							if(document.styleSheets[index]){
								window.clearInterval(checkInterval);
								$.__loadedSuccessfully(taskId);
							}
						}
						var checkInterval = window.setInterval(check,200);
					},
					include: function(file,callback) {
						var headerTag = document.getElementsByTagName('head')[0];
						var fileArray = [];
						typeof file=='string' ? fileArray[0] = file : fileArray = file;
						var taskId = new Date().getTime().toString();
						$.__WaitingTasks[taskId] = {'loading': fileArray.length, 'task': callback};
						for (var i = 0; i < fileArray.length; i++) {
							var elementTag = $.fileinfo(fileArray[i]).tag;
							var el = [];
							if (elementTag !== null) {
								el[i] = $.createElement(fileArray[i], elementTag);
								if (el[i]) {
									headerTag.appendChild(el[i]);
									if ($.browser.msie) {
										el[i].onreadystatechange = function(){
											if (this.readyState === 'loaded' || this.readyState === 'complete') {
												$.__loadedSuccessfully(taskId);
											}
										};
									}
									else {
										if (elementTag == 'link') {
											$.cssReady(i, taskId);
										}
										else {
			                                if (/WebKit/i.test(navigator.userAgent)) {
			                                    var _timer = setInterval(function(){
			                                        if (/loaded|complete/.test(document.readyState)) {
			                                            $.__loadedSuccessfully(taskId); // call of the call
			                                        }
			                                    }, 100);
			                                }
											el[i].onload = function(){
												$.__loadedSuccessfully(taskId);
											};
										}
									}
								}else{
									$.__loadedSuccessfully(taskId);
								}
							} else {
								return false;
							}
						}
					}
				});

			})(jQuery);


			(function ($) {

				$.extend({
					selectedMenuItem: '',
					pageCache: [],
					copyrightShown: false,
					menuShown: false,
					randQuote: document.createElement('img'),
					simplemodalLoaded: 0,
					responseContent: "",
					menuItems: [ "Home", "Bio", "Photos", "Gigs", "Music", "Contact", "Fanclub", "News" ],
					menuPositions: [ 161, 241, 322, 412, 495, 600, 717, 822 ],
					currentMenuPosition: 0,
					submitting: null,

					pageLoadDo: function(IDname)
					{
						if (IDname == 'Photos')
						{
							if ($("a.Screenshot"))
							{
								$("a.Screenshot").fancybox({
									'overlayShow'	: false,
									'transitionIn'	: 'elastic',
									'transitionOut'	: 'elastic'
								});
							}
							if ($("div.Gallery"))
							{
								$("div.Gallery").find("img").hover(function() {
									$(this).animate({ backgroundColor: "#9f1007" }, 300);
								},function() {
									$(this).animate({ backgroundColor: "#222222" }, 400);
								});
							}
						}
					},

					showpage: function(IDname,noanimate)
					{
						var fast = 'fast';
						var slow = 'slow';
						if (noanimate) { fast = null; slow = null; }
						var IDname = IDname.substr(0,1).toUpperCase() + IDname.substr(1).toLowerCase();
						var IDnameExtra = IDname.split('_');
						var IDname = IDnameExtra[0];
						IDnameExtra = (IDnameExtra[1] ? '_' + IDnameExtra[1] : '');

						if ($.copyrightShown == false)
						{
							$.copyrightShown = true;
							if ($("div#Copyright")) $("div#Copyright").fadeIn(slow);
						}

						if ($.pageCache[IDname + IDnameExtra])
						{
							if (IDname == 'Home') $("div#LogoSmall").hide(fast); else $("div#LogoLarge").hide(fast);
							if (IDname == 'Home') $("div#LogoLarge").show(fast); else $("div#LogoSmall").show(fast);
							if (IDname == 'Home') $("div#Content div").hide(); else $("div#Content div").hide(slow);
							$("div#Content").html($.pageCache[IDname + IDnameExtra]);
							if ($("div."+IDname+"Content"))
							{
								document.location.hash = IDname.toLowerCase() + IDnameExtra;

								$.pageLoadDo(IDname);
								if (IDname == 'Home')
								{
									$("div#Quote").hide();
									$("div."+IDname+"Content").show();
								}
								else
									$("div."+IDname+"Content").show(slow);
							}

							$.currentMenuPosition = $.menuindex(IDname);
							$("div#menuhighlight").stop(true, false).animate({left: $.menuPositions[$.currentMenuPosition]});

							if (IDname == 'Home')
							{
								$("#QuoteImage").attr("src",$.randQuote.src);
								$("div#Quote").fadeIn(3500);
							}
							if (IDname == 'Contact')
							{
								$("div.ContactContent").find("div").show();
								setTimeout('$.showMailbox()', 500);
							}
							if (IDname == 'Fanclub')
							{
								$("div.FanclubContent").find("div").show();
							}
							if (IDname == 'News')
							{
								$("div.NewsContent").find("div").show();
							}
						}
						$.selectedMenuItem = IDname;
					},

					slidedivs: function(div,noanimate)
					{
						var noanimateArg = '';
						if (noanimate) { noanimateArg = '&noanimate=1'; }

						var IDname = div.substr(0,1).toUpperCase() + div.substr(1).toLowerCase();
						var IDnameExtra = IDname.split('_');
						var IDname = IDnameExtra[0];
						var IDnameExtraArg = (IDnameExtra[1] ? '&subPage=' + IDnameExtra[1] : '');
						IDnameExtra = (IDnameExtra[1] ? '_' + IDnameExtra[1] : '');

						var currentPath = $.getpathname();
						if (currentPath)
						{
							document.location = '/#' + IDname.toLowerCase() + IDnameExtra;
							return false;
						}
						if ($("a."+IDname) && $("div."+IDname+"Content"))
						{
//							if ($.selectedMenuItem != IDname || IDnameExtra != '')
//							{
								if (IDname == 'Home')
								{
									$.randQuote = document.createElement('img');
									$.randQuote.src = '/images/quote' + Math.floor(Math.random()*quotes.length) + '.png';
								}
								if (!$.pageCache[IDname + IDnameExtra])
								{
									$.ajax({
										url: "http://www.perfectenvy.com/?page=" + IDname + noanimateArg + IDnameExtraArg,
										dataType: 'json',
										success: function(data) {
											if (data.Content && data.Page)
											{
												data.Page = (data.SubPage ? data.Page + '_' + data.SubPage : data.Page);
												$.pageCache[data.Page] = data.Content;
												noanimateArg = (data.noanimate && data.noanimate == 'true' ? true : false);
												$.showpage(data.Page,noanimateArg);
											}
										}
									});
								}
								else
								{
									$.showpage(IDname + IDnameExtra,noanimate);
								}
//							}
						}
						return false;
					},

					gethash: function()
					{
						var getHash = unescape(document.location.hash);
						getHash = getHash.replace('%23', '#');
						getHash = getHash.split('#');
						getHash = (getHash.length > 1 && getHash[getHash.length -1].length > 0 ? getHash[getHash.length -1] : '');
						getHash = getHash.replace('#', '');
						if (getHash == '' || getHash == '/')
						{
							getHash = 'Home';
						}
						return getHash;
					},

					getSubpage: function(div,returnIDname)
					{
						var IDname = div.substr(0,1).toUpperCase() + div.substr(1).toLowerCase();
						var IDnameExtra = IDname.split('_');
						var IDname = IDnameExtra[0];
						if (returnIDname) return IDnameExtra[0];
						return (IDnameExtra[1] ? IDnameExtra[1] : '');
					},

					getpathname: function()
					{
						var getPathname = unescape(document.location.pathname);
						getPathname = getPathname.replace('%23', '#');
						getPathname = getPathname.split('#');
						getPathname = getPathname[0].split('/');
						getPathname = getPathname[1].split('.');
						var getExt = (getPathname.length > 1 && getPathname[getPathname.length -1].length > 0 ? getPathname[getPathname.length -1] : '');
						var getName = (getPathname.length > 1 && getPathname[0].length > 0 ? getPathname[0] : '');
						return getName;
					},

					specialCharCleanup: function(specialchartext,htmlAllowed)
					{
						specialchartext = escape(specialchartext);
						if (htmlAllowed)
						{
							specialchartext = specialchartext.replace(/%u201C/g, "&ldquo;");
							specialchartext = specialchartext.replace(/%u201D/g, "&rdquo;");
							specialchartext = specialchartext.replace(/%u2018/g, "&lsquo;");
							specialchartext = specialchartext.replace(/%u2019/g, "&rsquo;");
							specialchartext = specialchartext.replace(/%u2026/g, "&hellip;");

							specialchartext = specialchartext.replace(/%u2013/g, "&ndash;");
							specialchartext = specialchartext.replace(/%u2014/g, "&mdash;");
							specialchartext = specialchartext.replace(/%A9/g, "&copy;");
							specialchartext = specialchartext.replace(/%AE/g, "&reg;");
							specialchartext = specialchartext.replace(/%u2122/g, "&trade;");
						}
						else
						{
							specialchartext = specialchartext.replace(/%u201C/g, "\"");
							specialchartext = specialchartext.replace(/%u201D/g, "\"");
							specialchartext = specialchartext.replace(/%u2018/g, "'");
							specialchartext = specialchartext.replace(/%u2019/g, "'");
							specialchartext = specialchartext.replace(/%u2026/g, "...");

							specialchartext = specialchartext.replace(/%u2013/g, "-");
							specialchartext = specialchartext.replace(/%u2014/g, "-");
							specialchartext = specialchartext.replace(/%A9/g, "(c)");
							specialchartext = specialchartext.replace(/%AE/g, "(r)");
							specialchartext = specialchartext.replace(/%u2122/g, "(tm)");
						}
						specialchartext = unescape(specialchartext);
						return specialchartext;
					},

					clearSubmit: function(nodialog)
					{
						if ($.submitting)
						{
							window.clearTimeout($.submitting);
							$.submitting = null;
							if (!nodialog)
							{
								//
							}
						}
					},


					submitForm: function(page,fields,responseContainer,successContainer)
					{
						if (!$.submitting)
						{
							var params = {};
							var args = fields.split(',');
							for(var i=0;i<args.length;i++)
							{
								params['form['+args[i]+']'] = $.specialCharCleanup(document.getElementById(args[i]).value);
							}
							params = params;
							$.responseContent = "";
							successContainer = (successContainer && successContainer.length > 0 ? '&successContainer='+successContainer : '');
							$.submitting = window.setTimeout($.clearSubmit, 10000);
							$.ajax({
								type: "POST",
								url: "http://www.perfectenvy.com/?page=" + page + '&responseContainer=' + responseContainer + successContainer,
								dataType: 'json',
								data: params,
								success: function(data) {
									$.clearSubmit(true);
									if (data.Content && data.responseContainer)
									{
										if ($('#'+data.responseContainer))
										{
											$.responseContent = data.Content;
											if (data.Success)
											{
												if (data.successContainer && $(data.successContainer))
												{
													$(data.successContainer).hide();
													$(data.successContainer).html($.responseContent);
													$(data.successContainer).fadeIn('slow');
												}
											}
											else
											{
												if ($.simplemodalLoaded == 0)
												{
													$.include('/js/jquery.simplemodal.js',function(){
														$.simplemodalLoaded = 1;
														$('#'+data.responseContainer).hide();
														$('#'+data.responseContainer).html($.responseContent);
														$.modal(document.getElementById(data.responseContainer));
													});
												}
												else
												{
													$('#'+data.responseContainer).hide();
													$('#'+data.responseContainer).html($.responseContent);
													$.modal(document.getElementById(data.responseContainer));
												}
											}
										}
									}
								}
							});
						}
						return false;
					},

					showMailbox: function(noanimate)
					{
						var pathName = $.getpathname();
						pathName = pathName.toLowerCase();
						var hashName = $.gethash();
						if ((pathName == 'contact' || hashName.toLowerCase() == 'contact'))
						{
							if ($("#Mailbox"))
							{
								if (noanimate)
									$("#Mailbox").show();
								else
									$("#Mailbox").fadeIn('slow');
							}
						}
					},

					menuindex: function(page)
					{
						var menuIndexReturn = $.currentMenuPosition;
						for(var i=0;i<$.menuItems.length;i++)
						{
							if (page.toLowerCase() == $.menuItems[i].toLowerCase())
							{
								menuIndexReturn = i;
								$.currentMenuPosition = i;
								break;
							}
						}
						return menuIndexReturn;
					},

					menuslide: function(page,out)
					{
						if ($("div#menuhighlight")) $("div#menuhighlight").stop().animate({left: $.menuPositions[(out ? $.currentMenuPosition : page)]});
					},

					buildMenu: function(items)
					{
						if (items.length > -1)
						{
							for(var i=0;i<items.length;i++)
							{
								eval('if ($("a.'+items[i]+'")) $("a.'+items[i]+'").click(function(){return $.slidedivs(items['+i+']);});');
								eval('if ($("a.'+items[i]+'")) $("a.'+items[i]+'").mouseover(function(){return $.menuslide('+i+');});');
								eval('if ($("a.'+items[i]+'")) $("a.'+items[i]+'").mouseout(function(){return $.menuslide('+i+',true);});');
							}
						}
					}
				});
			})(jQuery);

			$(document).ready(function(){
				$("div#LogoLarge").hide();
				$("div#LogoSmall").hide();
				$("div#Menubar").hide();
				$("div#Quote").hide();
				$("div#Copyright").hide();

				$.buildMenu($.menuItems);

				$("div#Menu a").click(function() {return false;});

				$("div#Copyright").find("a").click(function() {
					window.open($(this).attr("href"),'_blank');
					return false;
				});

				var pathName = $.getpathname();
				pathName = pathName.toLowerCase();
				var hashName = $.gethash();
				var subPage = $.getSubpage(hashName);
				if (subPage.length > 0) hashName = $.getSubpage(hashName,true);
				if (pathName != '')
				{
					subPage = $.getSubpage(pathName);
					if (subPage.length > 0) pathName = $.getSubpage(pathName,true);
					$.pageCache[pathName + (subPage.length > 0 ? '_' + subPage : '')] = $("div#Content").html();
				}

				if ((pathName == '' && hashName.toLowerCase() == 'home') || pathName == 'home')
				{
					$("div#LogoLarge").show();
					$("div#Quote").fadeIn('slow');
				}
				else
				{
					$("div#LogoSmall").show();
					if (pathName == 'contact' || hashName.toLowerCase() == 'contact')
					{
						$.showMailbox(true);
					}
				}


				if ($.menuShown == false)
				{
					$.menuShown = true;
					if ($("div#Menubar")) $("div#Menubar").fadeIn('slow');
				}
				if (pathName == '')
				{
					$.slidedivs((subPage.length > 0 ? hashName + '_' + subPage : hashName),true);
				}
				else
				{
					$.currentMenuPosition = $.menuindex(pathName);
					$.pageLoadDo(pathName);
				}

				if ($("highlight")) $("highlight").show();

				$.preLoadQuotes(quotes);
			});

