var DefaultPage='News';
var IsIE=false;
function IsInternetExplorer()
{

  if (navigator.appName == 'Microsoft Internet Explorer')
  {
	return true;
  }
  return false;
}

function InitStatic()
{
	var argv = Init.arguments;
	
	if(argv!=null)
	{
		var argc = argv.length;
		
		if(argc>0)
		{
			DefaultPage  = argv[0];
		}
	}
	
	IsIE = IsInternetExplorer();
	PageContent = document.getElementById('pagecontent');

	GetAdminConsole(DefaultPage)
	
	FadeInContent()
}

function Init()
{
	var argv = Init.arguments;
	
	if(argv!=null)
	{
		var argc = argv.length;
		
		if(argc>0)
		{
			DefaultPage  = argv[0];
		}
	}
	IsIE = IsInternetExplorer();
	PageContent = document.getElementById('pagecontent');
	GetNavBar();
	GotoPage(DefaultPage);
	
	
}

var HomeText="Welcome to Gray Fin Studios. Please enjoy your visit"
var GameText="When we've released a game, this page will tell you all about it!"
var AppText="When we've released an app, his page will tell you all about how great it is!"
var AboutText="Gray Fin Studios is the new kid on the block"

var PostPrefix="<div class=\"contentbox\"><div class=\"contentboxheader\"></div><div class=\"contentboxbody\"><p>"

var PostPostfix="</p></div><div class=\"contentboxfooter\"></div></div>"
			
var PageContent=null;

function IsEmailAddress(str)
{
	var email_pattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
	return email_pattern.test(str);  
}

function ClearText( text )
{	
	//document.getElementById('pagecontent').innerHTML = "";	
	if(!IsIE)
	{
		FadeOutContent();
	}
}

function ChangeText( text )
{	
	ContentOpacity = 0.0;
	if(!IsIE)
	{
		FadeInContent();
	}
	PageContent.innerHTML = text;	
	
}

function ClearPostText( text )
{	
}

function ChangePostText(element,text)      
{
	element.innerHTML = text;	
}

var ContentOpacity=1.0;
var FadeInDelta=0.4;
var FadeOutDelta=0.3;
var FadeOutTimer;
var FadeInTimer;

function FadeInContent()
{
	clearTimeout(FadeOutTimer);
	ContentOpacity = ContentOpacity+FadeInDelta;
	if(ContentOpacity>1.0)
	{
		ContentOpacity = 1.0;		
	}
	else
	{
		FadeInTimer=setTimeout(FadeInContent,100);
	}
	PageContent.style.opacity = ContentOpacity;
}

function FadeOutContent()
{
	clearTimeout(FadeInTimer);
	ContentOpacity = ContentOpacity-FadeOutDelta;
	if(ContentOpacity<0.0)
	{
		ContentOpacity = 0.0;		
	}
	else
	{
		FadeOutTimer=setTimeout(FadeOutContent,100);
	}
	PageContent.style.opacity = ContentOpacity;
}

function CreateHTTPRequest()
{
	http_request = false;
	if (window.XMLHttpRequest) 
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
			//http_request.overrideMimeType('text/xml');
			http_request.overrideMimeType('text/html');
		} 
	}
	else if (window.ActiveXObject) 
	{ // IE
		try 
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try 
			{
			   http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
	
	if (!http_request)
	{
		alert('Cannot create XMLHTTP instance');
		return null;
	}
	
	return http_request;
}

function makeGetRequest(url, parameters, callback, http_request) 
{
	http_request.onreadystatechange = callback;
	http_request.open('GET', url+"?"+parameters, true);
	http_request.send(null);
}

function makePostRequest(url, parameters, callback, http_request) 
{
	http_request.onreadystatechange = callback;
	http_request.open('POST', url, true);
	http_request.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	//http_request.setRequestHeader("content-length", parameters.length);
	//http_request.setRequestHeader("connection", "close");
	http_request.send(parameters);
}

var page_http_request = false;
function GotLatestPageUpdate(page)
{
	if (page_http_request.readyState == 4) 
	{
		if (page_http_request.status == 200) 
		{
			//alert(http_request.responseText);
			result = page_http_request.responseText;
			ChangeText(result)          
		} 
		//else if (http_request.status==404) alert("URL doesn't exist!")
		//else alert("Status is "+http_request.status)
	}
}

var CurrentPage='';

function UpdateNavBarSelection(page)
{
	oldpage_navbar_element = document.getElementById('navbar_button_'+CurrentPage);
	page_navbar_element = document.getElementById('navbar_button_'+page);
		
	if(oldpage_navbar_element!=null)
	{
		oldpage_navbar_element.setAttribute("class", "navbutton")
		oldpage_navbar_element.setAttribute("className", "navbutton")
	}
	
	if(page_navbar_element!=null)
	{
		page_navbar_element.setAttribute("class", "navbutton_selected")
		page_navbar_element.setAttribute("className", "navbutton_selected")

	}
}
function GotoPage()
{
	var argv = GotoPage.arguments;
	var argc = argv.length;
	
	if(argc>0)
	{
		page = argv[0];
		
		if((page==CurrentPage)&&(argc==1))
		{
			return;
		}
		
		ClearText();
		page_title_element = document.getElementById('pagetitle');
		if(page_title_element)
		{
			page_title_element.innerHTML = page;
		}
			
		UpdateNavBarSelection(page);
		CurrentPage = page;
		
		var parameters = "page="+page;
		parameters = parameters +"&prefix="+PostPrefix;
		parameters = parameters +"&postfix="+PostPostfix;
		
		
		if(argc>1)
		{			
			parameters = parameters + "&post="+argv[1];
			//parameters = parameters + "&comments_id="+argv[1];				
		}
		page_http_request = CreateHTTPRequest();
		makeGetRequest("/getpagecontent",parameters,GotLatestPageUpdate,page_http_request);
		
		GetAdminConsole(page)
	}
}

var	PostElement=null;
var post_http_request = false;
function GotPostUpdate()
{
	if (post_http_request.readyState == 4) 
	{
		if (post_http_request.status == 200) 
		{
			//alert(http_request.responseText);
			result = post_http_request.responseText;
			ChangePostText(PostElement,result)          
		} 
		//else if (http_request.status==404) alert("URL doesn't exist!")
		//else alert("Status is "+http_request.status)
	}
}
function UpdatePost()
{
	var argv = UpdatePost.arguments;
	var argc = argv.length;
	
	if(argc>0)
	{
		post_id = argv[0];
		 
		var get_comments=false;
		if(argc>1)
		{
			get_comments = argv[1];
		}
		
		PostElement = document.getElementById(post_id);
			
		if(PostElement)
		{
			ClearPostText(PostElement);
				 
			var parameters = "id="+post_id;
			if(get_comments)
			{
				parameters = parameters+"&showcomments=true";
			}

			post_http_request = CreateHTTPRequest();
			makeGetRequest("/getpostcontent",parameters,GotPostUpdate,post_http_request);
		
		}
	}
}
var SubmitPostHTTPRequest=null;
var	CommentPostElement=null;
function GotCommentSubmitResponse()
{
	if (SubmitPostHTTPRequest.readyState == 4) 
	{
		if (SubmitPostHTTPRequest.status == 200) 
		{
			//alert(http_request.responseText);
			result = SubmitPostHTTPRequest.responseText;
			ChangePostText(CommentPostElement,result)          
		} 
		//else if (http_request.status==404) alert("URL doesn't exist!")
		//else alert("Status is "+http_request.status)
	}
}
function SubmitComment()
{
	var argv = SubmitComment.arguments;
	var argc = argv.length;
	
	if(argc>1)
	{
		post_id = argv[0];
		form_id = argv[1];
		
		form_element = document.getElementById(form_id);		
		CommentPostElement = document.getElementById(post_id);
		
		author_element =  document.getElementById(form_id+"_author");
		email_element = document.getElementById(form_id+"_email");
		content_element = document.getElementById(form_id+"_content");
		if(!IsEmailAddress(email_element.value))
		{
			alert("You must enter a valid email address to post a comment. Don't worry, we won't give it to anyone else, and it won't be displayed!");
			return;
		}
		
		if(content_element.value.length<3)
		{
			alert("You must enter a sensible comment");
			return;
		}
		var parameters = "post_id="+post_id +
				"&author=" + encodeURIComponent( author_element.value ) +
				"&email=" + encodeURIComponent(email_element.value ) +
				 "&content=" + encodeURIComponent( content_element.value ) ;
				 
		SubmitPostHTTPRequest = CreateHTTPRequest();
		makePostRequest("/submitpostcomment",parameters,GotCommentSubmitResponse,SubmitPostHTTPRequest);
  
	}
	
}
var adminconsole_http_request = false;
function GotAdminConsole()
{
	if (adminconsole_http_request.readyState == 4) 
	{
		if (adminconsole_http_request.status == 200) 
		{
			//alert(http_request.responseText);
			result = adminconsole_http_request.responseText;
			document.getElementById('adminconsole').innerHTML = result;          
		} 
		//else if (http_request.status==404) alert("URL doesn't exist!")
		//else alert("Status is "+http_request.status)
	}
}
function GetAdminConsole(page)
{
	parameters = "page="+page;
	adminconsole_http_request = CreateHTTPRequest();
	makeGetRequest("/getadminconsole",parameters,GotAdminConsole,adminconsole_http_request);
}


var navbar_http_request = false;
function GotNavBar()
{
	if ( navbar_http_request.readyState == 4) 
	{
		if ( navbar_http_request.status == 200) 
		{
			//alert(http_request.responseText);
			result =  navbar_http_request.responseText;
			document.getElementById('navbar').innerHTML = result;      

			page_navbar_element = document.getElementById('navbar_button_'+CurrentPage);
		
			if(page_navbar_element!=null)
			{
				page_navbar_element.setAttribute("class", "navbutton_selected")
				page_navbar_element.setAttribute("className", "navbutton_selected")
			}				
		} 
		//else if (http_request.status==404) alert("URL doesn't exist!")
		//else alert("Status is "+http_request.status)
	}
}
function GetNavBar(page)
{
	
	navbar_http_request = CreateHTTPRequest();
	var parameters = "staticlinks=1"
	makeGetRequest("/getnavbar",parameters,GotNavBar,navbar_http_request);
}
