//flexTPS - flexible TelePresense System
//Copyright (c) 2003-2005  Christopher Stanton
//
//Visit: http://flextps.org
//
//This program is free software; you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation; either version 2 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307USA

// Data stored in cookie
// FEED:STREAM_ID, SIZE, XPOS, YPOS, ZINDEX, VISIBILITY, FPS

var loading = false;
var parameterDivider = "\t";
var streamDivider = "\n";

function writeCookie() {
	if (loading) {
		return;
	}

	var cookieString = topzindex + parameterDivider + videoBoxesLayedOut + streamDivider;
	for (var i=0; i<streams.length; i++) {
		var index = getNameFromIndex(i);

		cookieString += index + parameterDivider;
		cookieString += streams[index].SIZE + parameterDivider;
		cookieString += streams[index].XPOS + parameterDivider;
		cookieString += streams[index].YPOS + parameterDivider;
		cookieString += streams[index].ZINDEX + parameterDivider;
		cookieString += streams[index].VISIBILITY + parameterDivider;
		cookieString += streams[index].FPS + parameterDivider;
		if (i < streams.length-1) {
			cookieString += streamDivider;
		}

	}

	var expiresDate = new Date ("January 1, 2038");
	var expiresString = "; expires=" + expiresDate.toGMTString();

	var pathString = "; path=/";

	document.cookie = "streams=" + escape(cookieString) + expiresString + pathString;
}

function readCookie() {
	var streamCookie = null;

	var cookies = document.cookie.split("; ");
	for (var i=0; i<cookies.length; i++) {
		var cookie = cookies[i].split("=");
		if (cookie[0] == "streams") {
			streamCookie = unescape(cookie[1]);
		}
	}

	if (streamCookie == null) {
		return;
	}

	var streamStrings = streamCookie.split(streamDivider);
	var options = streamStrings[0].split(parameterDivider);
	topzindex = options[0];
	videoBoxesLayedOut = options[1];

	for (var i=1; i<streamStrings.length; i++) {
		var parameters = streamStrings[i].split(parameterDivider);
		var index = parameters[0];
		if (streams[index] != null) {
			streams[index].SIZE = parameters[1];
			streams[index].XPOS = parameters[2];
			streams[index].YPOS = parameters[3];
			streams[index].ZINDEX = parameters[4];
			streams[index].VISIBILITY = parameters[5]=="true"?true:false;
			streams[index].FPS = parameters[6];
		}
	}
}

function deleteCookie() {
	var expiresDate = new Date ();
	expiresDate.setTime(expiresDate.getTime() - (1 * 24 * 60 * 60 * 1000)); 
	var expiresString = "; expires=" + expiresDate.toGMTString();
	var pathString = "; path=/";
	document.cookie = "streams=null" + expiresString + pathString;
}

function showConfiguration() {
	loading = true;

	for (var i=0; i<streams.length; i++) {
		var index = getNameFromIndex(i);

		if (streams[index].VISIBILITY) {
			streamVideo(index);
			if (streams[index].ROBOTIC_ENABLED == true) {
				configure_controls(index);
			}
			showVideoBox(index);
		} else {
			hideVideoBox(index);
		}
	}

	loading = false;
}
