			var pageTracker = null;
			// Functions for bootstrapping yast

			function cookiesEnabled(){
				//Test if cookies are accepted
				var g_cookesEnabled = true;
				var tmpcookie = new Date()
				chkcookie = (tmpcookie.getTime() + '');
				document.cookie = "chkcookie=" + chkcookie + "; path=/";
				if (document.cookie.indexOf(chkcookie,0) == -1) {
					g_cookesEnabled = false;
				} else {
					g_cookesEnabled = true;
				}

				return g_cookesEnabled;

			}


			function ijs2(jsFile){
				var head = document.getElementsByTagName("head")[0];
				var script = document.createElement("script");
				script.type = "text/javascript";
				script.src = jsFile;
				head.appendChild(script);
			}
	
			// Poll this variable to wait for assets
			var g_assetsLoaded = false;
			var g_assetsLoading = false;

			var g_assetsCallbacks = [];

			// Sub assets
			var g_languageLoaded = false;
			var g_volatileLoaded = false;
			var g_codebaseLoaded = false;

			function loadAssets(cb){
		
				var callback = cb;

				// Requre jquery to be loaded
				$(window).ready(function(){
					if(g_assetsLoaded){
						if(callback) callback();
						return;
					}
					
					// Que the callback
					if(callback){
						g_assetsCallbacks.push(callback);
					}

					// Already started loading
					if(g_assetsLoading){
						return;
					}

					g_assetsLoading = true;

					
					setTimeout(function(){
						if(!window.location.href.match('/timetracker/')){
							ActivityIndicator.show("Please wait , searching for Answer to Life, the Universe, and Everything");
						}
						// Load css
						var head = document.getElementsByTagName("head")[0];
						var link = document.createElement("link");
						link.rel = "stylesheet";
						link.type = "text/css";
						link.href = 'css/css_c-1329190315.css'
						//head.appendChild(link);
						head.insertBefore(link, head.firstChild);
						
						// Load language pack
						ijs2('js/strings_en-1329190315.js');

						// Load volatile js data
						ijs2('js/volatile.js.php');
						
						// Load codebase
						// wait for language strings
						var g_langTimer = setInterval(function(){
								if(g_languageLoaded){
									ijs2('js/js_c-1329190315.js');
									clearInterval(g_langTimer);
								}
							}, 100);

						// Wait for everything to finish
						var g_assetsTimer = setInterval(function(){
								if(g_codebaseLoaded && g_volatileLoaded && g_languageLoaded){
									// Hide activity indicator
									ActivityIndicator.hide();
									// Set curstom error handler

									var crashKit = false;
									
									if(!crashKit){
										window.onerror = function(msg, url, linenumber){
										
										// Check if there's any information at all
										if((typeof(msg) == 'undefined' || msg.length == 0) && (typeof(url) == 'undefined' || url.length == 0) && (typeof(linenumber) == 'undefined' || linenumber.length == 0)){
											// No info at all. What to do?
											return true;
										}

										if(typeof(msg) == 'string' && (msg.match(/NS_ERROR_DOM_BAD_URI/) || msg.match(/XMLHttpRequest.open/))){
											// Firefox domain error
											return true;
										}

										// Ignore chrome script error
										if((typeof(msg) == 'object' || msg.length == 0) && (typeof(url) == 'undefined' || url.length == 0) && (typeof(linenumber) == 'undefined' || linenumber.length == 0)){
											if(typeof(msg.target) == 'object'){
												if(typeof(msg.target.src) == 'string'){
													if(msg.target.src.match(/socket\.io/)){
													
 														debugString('Supressing error 1');
														// Don't care 
														return true;

														}
													}
												}
											}

											// Ignore ff3/ff4 script error
											if(typeof(url) == 'string'){
												if(url.match(/socket\.io/)){
												
													debugString('Supressing error 2');
													// Don't care 
													return true;

												}
											}

											// If set to true a bugreport dialog is displayed to the user.
											enableErrorReport = true;
											
											// If set to true no error will be reportet to browser
											supressError = true;
											
											if(enableErrorReport){
												var reportBugDlg = new DlgReportBug(msg, url, linenumber);
												reportBugDlg.create();
												reportBugDlg.show();
											}

											return supressError;
										}
									}else{


										// Ignore IE9 x-domain error
										if(typeof(msg) == 'string' && msg.match(/Access\ is\ denied/)){
											// IE9 domain error
											return true;
										}


										// If set to true a bugreport dialog is displayed to the user.
										enableErrorReport = true;
										
										// include crashkit
// 										ijs2('http://crashkitapp.appspot.com/static/javascript/crashkit-javascript.js?yast/yastweb');
//										ijs2('js/lib/crashkit-javascript.js');


									}
									
								
									g_assetsLoaded = true;
									g_assetsLoading = false;
									if(g_assetsTimer){
										clearInterval(g_assetsTimer);
										for(var k=0; k<g_assetsCallbacks.length; k++){
											(g_assetsCallbacks[k])();
										}
									}
								}else{
								}
							}, 100);
					},1);		

				});
			}
			
			function die(){
				undefinedFunction();
			}

			$(document).ready(function(){

				// Set the correct price
				$('.ui-price').text('$6');
				$('.ui-priceCurrency').text('USD');
				$('.ui-priceCurrencySymbol').text('$');
				$('.ui-priceAmount').text('6');

				// wire up register button
				$('.sign-up > a, .SignUpFree, .SignUpPremium').click(function(){
					
					var buy = false;
					if ($(this).hasClass('SignUpPremium')){
						buy = true;
					}

					// Load yast assets
					loadAssets(function(){
						
						// Loaded from php
						var isGuestUser = true;
						
						if(isGuestUser){
							var dlg = new DlgRegisterUser();
							dlg.create();
							dlg.show();
						}else{
							g_loginManager.login();
						}

						// Do stuff when we're logged in
						var registerRedirected = false;
						g_loginManager.registerUserInfoListener(function(){
								if (g_loginManager.m_state != g_loginManager.STATE_LOGGED_IN){
									return;
								}
								if(registerRedirected){
									return;
								}
								

								if(!(g_loginManager.m_user.m_flags & User.prototype.FLAG_TEMP_USER)){
									// Hide buttons
									$('.LiveDemoSignUp').slideUp();
									$('.sign-up, .SignUpFree, .SignUpPremium, #login-form').fadeOut();

									// user registered
									// check if we are on timetracker, if not, redirect
									if (!window.location.href.match("/timetracker/")){
										if (buy){
											window.location.href = "/timetracker/#upgradeDetails";		
										} else {
											window.location.href = "/timetracker/";		
										}
									}
								}

								registerRedirected = true;

							});

					});	

					return false;
				});
			});

			var errorMsg = '';
			/** Function to update the login status message, requires Yast assats to be loaded */
			var updateLoginStatus = function(){
					switch (g_loginManager.m_state) {
						case g_loginManager.STATE_LOGGED_IN:  

							$('#loginStatus').hide();
							$('#login-form').fadeOut();
							if(!(g_loginManager.m_user.m_flags & User.prototype.FLAG_TEMP_USER)){
								break;
							}

																// Hide activity indicator
																 									ActivityIndicator.hide();
																

						case g_loginManager.STATE_LOGGED_OUT:
							
							$('#loginStatus').hide();
							// Show form
							$('#login-form').fadeIn()

 							//Add error message if an error message exist
 							$('.ErrorMsg').remove();
 							if (errorMsg.length > 0)
 								new GuiInfoBox({msg: errorMsg}).create().appendTo($('#login-form')).addClass('ErrorMsg').hide().fadeIn(300);
 							
 							break; 
						case g_loginManager.STATE_LOGGING_IN:

							// Show status
 								$('#login-form').hide();
 								$('#loginStatus').text(langStr('LoginBox.loggingIn'));
								break;

							case g_loginManager.STATE_LOGGING_OUT:
								break
						}

					}		
						
			$(document).ready(function(){
						
				// wire up login box
				var doLogin = function(){
						loadAssets(function(){

							// Listen for error messages
							g_ajaxManager.registerListener('ResponseLogin', function(msg) {
									ActivityIndicator.hide();
									if (msg[0].m_failure) {
										errorMsg = langStr('ResponseLogin.longError');
										
										//Temporary hack.. fix later 
										if (typeof errorMsg == 'object') {
											errorMsg = errorMsg[0];
										}
										
									}
									else {
										errorMsg = '';
									}
									updateLoginStatus();
								});
							
							g_loginManager.registerLoginListener(updateLoginStatus);
							g_loginManager.registerUserInfoListener(updateLoginStatus);
							g_loginManager.login($('input#user-name').val(), $('input#password').val(), true);
							
							// Do stuff when we're logged in
							var redirected = false;
							g_loginManager.registerUserInfoListener(function(){
									if (g_loginManager.m_state != g_loginManager.STATE_LOGGED_IN){
										return;
									}
									if(redirected){
										return;
									}
									

									if(!(g_loginManager.m_user.m_flags & User.prototype.FLAG_TEMP_USER)){
										$('.LiveDemoSignUp').slideUp();
										$('.sign-up, .SignUpFree, .SignUpPremium, #login-form').fadeOut();

										// Successful login
										if (!window.location.href.match("/timetracker/")){
											window.location.href = "/timetracker/";		
										}
									}

									redirected = true;

								});
						});


						return false;
				}

				$('#login-form form').bind('submit', function(e){
					e.preventDefault();

					ActivityIndicator.show();

					doLogin();
				});
						
			});

	var loadTour = function(){
		$.ajax({
			url: "tour/",
			success: function(html){
				var all = $('<div></div>'); 

				var idxStart = html.lastIndexOf('<body');
				var idxEnd = html.lastIndexOf('</body>');
				var bodyString = html.substring(idxStart,idxEnd);
// 				all.get(0).innerHTML = bodyString;

				var jqBody = $('body');
				var classesArray = bodyString.match('<body class="(.*?)"');
				if(classesArray && classesArray.length > 0 && classesArray[1]){
					jqBody.removeClass();
					jqBody.addClass(classesArray[1]);
				}

				var bodyTagLength = bodyString.match('<body .*?>')[0].length;
				bodyString=bodyString.substring(bodyTagLength);

				jqBody.empty().html(bodyString);
			}
		});
	}










				function moveNaviation(){
					var links = $('#main-navigation');
					/*
					var w = links.width();
					var h = links.height();
					var p = links.position();

					var leftOffset = links.parent().width() - w;

					links.css({position: 'absolute',width: w+'px', height: h+'px', left: p.left+'px', top: p.top+'px'});
					links.animate({left: leftOffset+'px'});
					*/

					links.fadeOut(function(){
						$(this).addClass('right');
						$(this).fadeIn();
					});
				}

				function loadYast(){

					// Check cookies again
					var container = $('.ContentContainer-yast');
					if(!(false  && true)){
						container.load('incompatible.php'+"?strip");
					}else if(!cookiesEnabled() || false ){
						container.load('nocookies.php'+"?strip");
					}else{

						// Replace content with a loading screen
						var loader = $('<div />').appendTo('.ContentContainer-yast');
						loader.addClass('YastLoading').css({textAlign: 'center', marginTop: '100px', marginBottom: '100px'});

						$('<img src=\'images/listloader.gif\' />').appendTo(loader);
						$('<div />').text('Please wait').appendTo(loader);
						
						// Load assets
						loadAssets(function(){
							
								g_loginManager.registerUserInfoListener(function(){
									if(!(g_loginManager.m_user.isGuest())){
										// Move links
// 										moveLinks();
// 										$('.SignUp').remove();
										
										if (g_loginManager.m_user.getPremiumSubscription(1)){
											$('#ButtonTryIt').hide();
										}
									}else{
										/*
										// Check if signupbutton already exists
										if ($('#ButtonSignUpYast').size() == 0){
											// Show signup link
											var signupLink = $('<div id="ButtonSignUpYast"><div class="corner-all SignUp" style="position:relative; margin: 20px; margin-left: auto;margin-right:auto; width:350px;"><span class="Text1">Sign up </span><span class="Text2">for Free</span><div class="Text3">it takes about 8 seconds</div></div></div>').prependTo('.ContentContainer-yast');
											signupLink.click(function() {
													// Show signup dialog
													loadAssets(function(){
														
														var dlg = new DlgRegisterUser();
														dlg.create();
														dlg.show();

													});
													return false;
												});	
											signupLink.fadeIn(300);
										}
										*/

									}
								});
								
								// Start yast when assets are loaded
								//ijs2('js/layout.js');
								ijs2('js/layout2-1329190315.js');
								// her

							});
							
					}
					

						
				} // END loadYast()


			$(document).ready(function(){

				// Attach event to forgot password
				$('.Forgot').click(function(){
				
					$('.Forgot').text('Loading...');


					loadAssets(function(){
						$('.Forgot').text('Forgot Password?');


						// For linux clients
						$('#yastVideo').hide();
						
						var dlg = new DlgForgotPassword();
						dlg.create();
						dlg.show();

					});

					return false;

				});

				// Attach event to google login
				$('.GoogleLogin').click(function(){
				
					$('.GoogleLogin').text('Loading...');

					loadAssets(function(){
						$('.GoogleLogin').html('Use google');

						// For linux clients
						$('#yastVideo').hide();
						
						var dlg = new DlgLogin();
						dlg.create();
						dlg.show();

					});

					return false;

				});
			
			});














