var Page = new Object(); 
var _curPage 	= -1; 
var _curSubPage = -1; 

Page.HomeBase 		= 0; 
Page.TemplateBase 	= 1; 

Page.User 			= 100; 
Page.ContentPage	= 101; 
Page.UserLogin 		= 102; 
Page.Home 			= 103; 
Page.Subscribe      = 201;
Page.Forward        = 301;
Page.Unsubscribe    = 401;

Page.CurrentPageAlias = ""; 

function GoToPage(page, subpage, subpage2, arg1, arg2, arg3, arg4, arg5)
{	
    //Globals.URLParams = null;
    Globals.UI.Navigation.Reset(); 
    Globals.ShowSpinner("MiddleBody", "Loading...", true)        
	LocalResetUI(); 
	
	switch(page)
	{
		case Page.Home:		
		case Page.HomeBase:
		{
			Page.CurrentPageAlias = "Home";
			dhtmlHistory.add("p" + Page.HomeBase + Globals.URLParamsToString());		
			HomePage.Load(subpage); 
			break; 
		}
		case Page.User:
		{
			dhtmlHistory.add("p" + Page.User + Globals.URLParamsToString());		
			UserPage.Load(subpage, subpage2, arg1, arg2, arg3, arg4); 
			break; 
		}
		case Page.UserLogin:
		{
			dhtmlHistory.add("p" + Page.UserLogin + Globals.URLParamsToString(), subpage);		
			UserLoginPage.LoadPage(subpage, arg1, arg2, arg3, arg4, arg5); 
			break; 
		}
		case Page.ContentPage:
		{
			Page.CurrentPageAlias = subpage;
			dhtmlHistory.add("p" + Page.ContentPage + "|" + subpage + Globals.URLParamsToString(), subpage);			
			ContentPages.LoadPage(subpage); 
			break; 
		}
		default:
		{
			Error.DebugWrite("Cannot load page: " + page + ". This is most likely caused from a missing definition in the Page.enum."); 
		}		
	}
	setTimeout("Globals.SetAnalytics()", 100);
}

HandleHistory = function(page, data) 
{
	Globals.UI.Navigation.Reset(); 
	LocalResetUI(); 
	page = unescape(page);
	var pageObj = page.split("|"); 
	var pageData = null;
	var arg1 = null;
	if(pageObj.length > 1)
	{
		page = pageObj[0];
		data = pageObj[1];
		var dataObj = pageObj[1].split("?");
		pageData = dataObj[0];
		arg1 = dataObj[1];
		
		if(Layouts.Get(pageData) != null && !Layouts.Get(pageData).Loaded)
		{
			//Globals.ShowSpinner("spinnerSpan",HomePage.ProgressCount + " Loading Templates..."); 
			setTimeout("HandleHistory(\"" + page + "|" + data + "\")", 40); 
			return; 
		}
	}
	
 	switch(page)
	{
		case "p" + Page.HomeBase:
		{
			GoToPage(Page.HomeBase, pageData, null, arg1);
			break; 
		}
		case "p" + Page.UserLogin:
		{
			GoToPage(Page.User, pageData, null, arg1);
			break; 
		}
		case "p" + Page.UserLogin:
		{
			GoToPage(Page.UserLogin, pageData, null, arg1);
			break; 
		}
		case "p" + Page.ContentPage:
		{
			GoToPage(Page.ContentPage, pageData, null, arg1);
			break; 
		}		
	}
}

function LocalResetUI()
{
	$("LeftMenuDiv").innerHTML = '' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'News\');" class="biglink">News Articles</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'January2009Newsletter\');" class="biglink">January Newsletter</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'NewsletterArchives\');" class="biglink">Newsletter Archive</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Facts\');" class="biglink">Vending Facts</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Faqs\');" class="biglink">FAQ\'s</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Presentation\');" class="biglink">U-Turn Opportunity</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Letter\');" class="biglink">Letter from U-Turn</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Calculate\');" class="biglink">Calculate Earnings</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Video\');" class="biglink">U-Turn Video</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Mission\');" class="biglink">Mission Statement</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Survey\');" class="biglink">Company Survey</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Testimonials\');" class="biglink">Testimonials</a>' + 
						'<img src="imgs/border_leftsbline.gif" style="margin-top:3px;margin-bottom:3px;"/><br />' + 
						'<a href="javascript:GoToPage(Page.ContentPage,\'Foreign\');" class="biglink">Outside the US</a><br /><br />';
	//$("_centerContainer").style.border = "solid 1px #cfcfcf";
	//$(Globals.UI.Navigation.MiddleBodyId).style.height = "";	
}

Page._pages = new Array(); 

Page.Get = function(page)
{
	for(var i = 0; i < Page._pages.length; i++)
	{
		if(Page._pages[i].Name == page)
		{
			return Page._pages[i]; 
		}
	}
	
	return null; 
}

Page.Add = function(pageName, pageCategory, pageTitle, crumbText, url)
{
	Page._pages[Page._pages.length] = new PageObject(pageName, pageCategory, pageTitle, crumbText, url); 
}

function PageObject(pageName, pageCategory, pageTitle, crumbText, url )
{
	this.Name = pageName; 
	this.Category = pageCategory; 
	this.Title = pageTitle; 
	this.CrumbText = crumbText; 
	this.URL = url; 
	
	Layouts.AddURL(this.Name, this.URL); 
	
	this.GetContent = function()
	{
		var layout = Layouts.Get(this.Name); 
		return layout.Content; 
	};
	
	this.SetContent = function(newContent)
	{
		var layout = Layouts.Get(this.Name); 
		layout.Content = newContent; 
	};
}

var requestDiv = null;
Page.RequestInfoFirstNameControl = null; 
Page.RequestInfoLastNameControl = null; 
Page.RequestInfoEmailControl = null; 
Page.RequestInfoPhoneControl = null; 
Page.RequestInfoCommentsControl = null; 
Page.RequestInfoForm = null; 

Page.RequestMoreInfoForm = function()
{
	if(requestDiv == null)
	{
		var d = document.createElement('div');
		d.id = "RequestFormDiv"; 		
		document.body.appendChild(d); 
		d.style.position = "absolute";
		d.style.zIndex = "10";
		d.style.top = "100px";
		d.style.left = "400px";
		d.style.backgroundColor = "#ffffff";
		d.style.border = "solid 2px #666666";
		d.style.height = "";
		d.style.width = "350px";
		d.style.padding = "20px";
		d.innerHTML = '<div style="text-align:right;"><a href="javascript:Page.HideRequestMoreInfoForm();">Close [X]</a></div>' + 		
		'<p>' + 
			'Use the form below to request information.' + 
		'</p>' + 
		'<div id="RequestMoreInfoFormDiv">' +
		'<div id="firstname"></div>' + 
		'<div id="lastname"></div>' + 
		'<div id="email"></div>' + 
		'<div id="phone"></div>' + 
		'<div id="comments"></div>' + 
		'<hr /><button onclick="Page.RequestInfoSubmit();">Submit</button></div>';	

		Page.RequestInfoFirstNameControl = new UIControls.TextControl("AUTO_First_Name", $("firstname")); 
		Page.RequestInfoFirstNameControl.Label = "First Name:";
		Page.RequestInfoFirstNameControl.Required = false; 
		Page.RequestInfoFirstNameControl.ValidationErrorWriteOut = false; 
		Page.RequestInfoFirstNameControl._onEnterF = Page.RequestInfoSubmit; 
		Page.RequestInfoFirstNameControl.Render(); 

		Page.RequestInfoLastNameControl = new UIControls.TextControl("AUTO_Last_Name", $("lastname")); 
		Page.RequestInfoLastNameControl.Label = "Last Name:";
		Page.RequestInfoLastNameControl.Required = false; 
		Page.RequestInfoLastNameControl.ValidationErrorWriteOut = false; 
		Page.RequestInfoLastNameControl._onEnterF = Page.RequestInfoSubmit; 
		Page.RequestInfoLastNameControl.Render(); 
		
		Page.RequestInfoEmailControl = new UIControls.EmailControl("AUTO_Email", $("email")); 
		Page.RequestInfoEmailControl.Label = "Email:";
		Page.RequestInfoEmailControl.Required = false; 
		Page.RequestInfoEmailControl.ValidationErrorWriteOut = false; 
		Page.RequestInfoEmailControl._onEnterF = Page.RequestInfoSubmit; 
		Page.RequestInfoEmailControl.Render(); 
	
		Page.RequestInfoPhoneControl = new UIControls.TextControl("AUTO_Phone", $("phone")); 
		Page.RequestInfoPhoneControl .Label = "Phone:";
		Page.RequestInfoPhoneControl .Required = false; 
		Page.RequestInfoPhoneControl .ValidationErrorWriteOut = false; 
		Page.RequestInfoPhoneControl ._onEnterF = Page.RequestInfoSubmit; 
		Page.RequestInfoPhoneControl .Render(); 

		Page.RequestInfoCommentsControl = new UIControls.TextArea("AUTO_Comments", $("comments")); 
		Page.RequestInfoCommentsControl.Label = "Comments:";
		Page.RequestInfoCommentsControl.Required = false; 
		Page.RequestInfoCommentsControl.ValidationErrorWriteOut = false; 
		Page.RequestInfoCommentsControl._onEnterF = Page.RequestInfoSubmit; 
		Page.RequestInfoCommentsControl.Render(); 



		Page.RequestInfoForm = new HtmlForm.Control("RequestMoreInfoFormDiv");
		Page.RequestInfoForm.AddObject(Page.RequestInfoFirstNameControl);
		Page.RequestInfoForm.AddObject(Page.RequestInfoLastNameControl);
		Page.RequestInfoForm.AddObject(Page.RequestInfoEmailControl);
		Page.RequestInfoForm.AddObject(Page.RequestInfoPhoneControl );
		Page.RequestInfoForm.AddObject(Page.RequestInfoCommentsControl);
		
		requestDiv = d; 	
	}		
	
	setPos(requestDiv, findPos($("RequestInfoLink"))); 
	requestDiv.style.display = "block";
};

Page.RequestInfoSubmit = function()
{
	Page.HideRequestMoreInfoForm(); 
	var serverData = new ServerData.SenderObject("request_info_form", null, Globals.Location.ASHX.FormEmail, Page.RequestInfoForm.GetURIFormat() + "&CurrentPage=" + Page.CurrentPageAlias + "&" + Globals.URLParamsString);             
	serverData.SendData(function()
	{
	    GoToPage(Page.ContentPage, "ContactUsReturn"); 
	});
};

Page.HideRequestMoreInfoForm = function()
{
	requestDiv.style.display = "none";	
};

function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) 
	{
		do 
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} 
		while (obj = obj.offsetParent);
	}		
	return [curleft,curtop];
}


function setPos(obj, point) 
{
	obj.style.left = (point[0] - 350); 
	obj.style.top = (point[1] + 15); 
}
		