// Open/Create cookie
var generateCookie = new Cookie(document, "cue", 240, "/", "qld.gov.au");

// Setting global variables for text size function
var currSize;
var classes = ["smallest", "smaller", "default", "larger", "largest"];

/*
	*	File:					cookie.js
	*	Description:	Functions used to store and read a cookie
	*	Date:					28 May 2004
	*	Author:				Taken from Example 16-1, JavaScript: The Definitive Guide (4th edn) 
									by David Flanagan. Copyright 2001 O'Reilly
*/

//	FUNCTION:			Cookie
//	DESCRIPTION:	Constructor function - Creates a Cookie object for the specified
// 								document, with a specified name and optional attributes.
// 	ARGUMENTS:		
//   	document:		The Document object for which the cookie is stored. Required.
//   	name:    		A string that specifies a name for the cookie. Required.
//   	hours:   		An optional number that specifies the number of hours from now
//             		after which the cookie should expire.
//   	path:    		An optional string that specifies the cookie path attribute.
//   	domain:  		An optional string that specifies the cookie domain attribute.
//   	secure:  		An optional boolean value that, if true, requests a secure cookie.
//	RETURNS:			New Cookie object
function Cookie(document, name, hours, path, domain, secure)
{
    // All the predefined properties of this object begin with '$'
    // to distinguish them from other properties, which are the values to
    // be stored in the cookie
    this.$document = document;
    this.$name = name;
    if (hours)
        this.$expiration = new Date((new Date()).getTime(  ) + hours*3600000);
    else this.$expiration = null;
    if (path) this.$path = path; else this.$path = null;
    if (domain) this.$domain = domain; else this.$domain = null;
    if (secure) this.$secure = true; else this.$secure = false;
}

//	FUNCTION:			store
//	DESCRIPTION:	This function is the store() method of the Cookie object			
// 	ARGUMENTS:		none
//	RETURNS:			nothing
Cookie.prototype.store = function (  ) {
    // First, loop through the properties of the Cookie object and
    // put together the value of the cookie. Since cookies use the
    // equals sign and semicolons as separators, we'll use colons
    // and ampersands for the individual state variables we store 
    // within a single cookie value. Note that we escape the value
    // of each state variable, in case it contains punctuation or other
    // illegal characters.
    var cookieval = "";
    for(var prop in this) {
        // Ignore properties with names that begin with '$' and also methods
        if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function')) 
            continue;
        if (cookieval != "") cookieval += '&';
        cookieval += prop + ':' + escape(this[prop]);
    }

    // Now that we have the value of the cookie, put together the 
    // complete cookie string, which includes the name and the various
    // attributes specified when the Cookie object was created
    var cookie = this.$name + '=' + cookieval;
    if (this.$expiration)
        cookie += '; expires=' + this.$expiration.toGMTString(  );
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
    if (this.$secure) cookie += '; secure';

    // Now store the cookie by setting the magic Document.cookie property
    this.$document.cookie = cookie;
}

//	FUNCTION:			load
//	DESCRIPTION:	This function is the load(  ) method of the Cookie object			
// 	ARGUMENTS:		none
//	RETURNS:			false if cookie is empty, true if successfully read cookie
Cookie.prototype.load = function(  ) { 
    // First, get a list of all cookies that pertain to this document
    // We do this by reading the magic Document.cookie property
    var allcookies = this.$document.cookie;
    if (allcookies == "") return false;

    // Now extract just the named cookie from that list
    var start = allcookies.indexOf(this.$name + '=');
    if (start == -1) return false;   // Cookie not defined for this page
    start += this.$name.length + 1;  // Skip name and equals sign
    var end = allcookies.indexOf(';', start);
    if (end == -1) end = allcookies.length;
    var cookieval = allcookies.substring(start, end);

    // Now that we've extracted the value of the named cookie, we
    // must break that value down into individual state variable 
    // names and values. The name/value pairs are separated from each
    // other by ampersands, and the individual names and values are
    // separated from each other by colons. We use the split(  ) method
    // to parse everything.
    var a = cookieval.split('&');    // Break it into an array of name/value pairs
    for(var i=0; i < a.length; i++)  // Break each pair into an array
        a[i] = a[i].split(':');

    // Now that we've parsed the cookie value, set all the names and values
    // of the state variables in this Cookie object. Note that we unescape(  )
    // the property value, because we called escape(  ) when we stored it.
    for(var i = 0; i < a.length; i++) {
        this[a[i][0]] = unescape(a[i][1]);
    }

    // We're done, so return the success code
    return true;
}

// This function is the remove(  ) method of the Cookie object
Cookie.prototype.remove = function(  ) {
    var cookie;
    cookie = this.$name + '=';
    if (this.$path) cookie += '; path=' + this.$path;
    if (this.$domain) cookie += '; domain=' + this.$domain;
    cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';

    this.$document.cookie = cookie;
}

// --- scnews selections ---

function original() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/default-layout.css\" type=\"text/css\">";
	generateCookie.store();
	window.location.reload();
}

function learningspace() {
	generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/learningspace.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/learningspace.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
	generateCookie.store();
	window.location.reload();
}

function digitalped() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/digitalped.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/digitalped.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
	generateCookie.store();
	window.location.reload();
}

function digitallearning() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/digitallearning.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/digitallearning.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
	generateCookie.store();
	window.location.reload();
}

function oneschool() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/oneschool.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/oneschool.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
	generateCookie.store();
	window.location.reload();
}

function enterpriseplatform() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/enterpriseplatform.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/enterpriseplatform.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function administrators() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/administrators.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/administrators.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function teachers() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/teachers.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/teachers.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function schoolsupport() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/schoolsupport.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/schoolsupport.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function communities() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/communities.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/communities.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function parentsguardians() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/parentsguardians.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/parentsguardians.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}

function students() {
    generateCookie.scnews = "<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/students.css\" type=\"text/css\">";
	generateCookie.sclink = "<a href=\"/smartclassrooms/rss/students.xml\"><img src=\"/smartclassrooms/img/newsfeeds.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" /></a>";
    generateCookie.store();
    window.location.reload();
}


// --- Loads the news feed if present, otherwise imports the generic include. ---
function importNewsFeed() {

		if (generateCookie.load()) {

			if (generateCookie.scnews) {
				document.write(generateCookie.scnews);
			} else {
				document.write("<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/default-layout.css\" type=\"text/css\">");
			}
		} else {
			document.write("<link rel=\"stylesheet\" href=\"/smartclassrooms/css/newsfeeds/default-layout.css\" type=\"text/css\">");
		}
}

function importNewsLink() {

		if (generateCookie.load()) {

			if (generateCookie.sclink) {
				document.write(generateCookie.sclink);
			} else {
				document.write("<img src=\"/smartclassrooms/img/newsclose.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" />");
			}
		} else {
			document.write("<img src=\"/smartclassrooms/img/newsclose.gif\" align=\"right\" alt=\"RSS Feeds\" width=\"22\" height=\"22\" border=\"0\" />");
		}
}

// --- End scnews selections ---


// Text size functions

function smallestSize(){
	currSize = 0;
	document.body.className = classes[currSize];
	generateCookie.textSize = 0;
	generateCookie.store();
}


function smallerSize(){
	currSize = 1;
	document.body.className = classes[currSize];
	generateCookie.textSize = 1;
	generateCookie.store();
}

function defaultSize(){
	currSize = 2;
	document.body.className = classes[currSize];
	generateCookie.textSize = 2;
	generateCookie.store();
}

function largerSize(){
	currSize = 3;
	document.body.className = classes[currSize];
	generateCookie.textSize = 3;
	generateCookie.store();
}


function largestestSize(){
	currSize = 4;
	document.body.className = classes[currSize];
	generateCookie.textSize = 4;
	generateCookie.store();
}


function delete_cookie_text()
{

if (!generateCookie.load()) {
	window.location = "/help/delete_cookie.html";
}
else
{
// not pretty - find another way to remove the parameter completely.
	generateCookie.textSize = false;
	generateCookie.store();
	window.location = "/help/delete_cookie.html";

}
}


// --- Imports the textsize style if present ---
function importTextStyleSheet() {

	if (generateCookie.load()) {
		
		if (generateCookie.textSize == 0) {
			document.write("<link rel=\"stylesheet\" href=\"/css/textSize/0.css\" type=\"text/css\">");
		} else if (generateCookie.textSize == 1) {
			document.write("<link rel=\"stylesheet\" href=\"/css/textSize/1.css\" type=\"text/css\">");
		} else if (generateCookie.textSize == 2) {
			document.write("<link rel=\"stylesheet\" href=\"/css/textSize/2.css\" type=\"text/css\">");		
		} else if (generateCookie.textSize == 3) {
			document.write("<link rel=\"stylesheet\" href=\"/css/textSize/3.css\" type=\"text/css\">");	
		} else if (generateCookie.textSize == 4) {
			document.write("<link rel=\"stylesheet\" href=\"/css/textSize/4.css\" type=\"text/css\">");	
		} else {}
	} 

}