﻿<!--

var selectedList = "";
var imagesSelectedList = "";
var cookieName = "_GW_Cookie";
var CookieListName = "_GW_XZX_Selection";
var CookieListID = '';


var carSep = 'x-x';

var expDays = 100;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));




//setup cookie name
function setupCookie(name) {
	//alert("Cookie = " + name);
	cookieName = name;
}


//setup cookie name
function setupCookieList(name) {
	//alert("Cookie = " + name);
	CookieListName = name;
}



//setup cookie list IDs
function setupCookieListID(list) {
	CookieListID = list;
}



// save login cookie everytime autologin checkbox is changed
function autoLogin(prefix,formName) {  
	checkAutoLogin = document[formName].elements[2].checked;
	if ( checkAutoLogin === true) {
		//alert ("autologin=true =" + checkAutoLogin);
	} else {
		//alert ("autologin=false =" + checkAutoLogin);
	}
	cookieForms('save',prefix,cookieName);
}



// clear all fields in form
function clearForm(formName) {  
	for(i=0; i<document[formName].elements.length; i++) {
		fieldType = document[formName].elements[i].type;
		fieldName = document[formName].elements[i].name;
		fieldValue = document[formName].elements[i].value;
		if(fieldType != 'submit' && fieldType != 'reset' && fieldType != 'hidden' && fieldValue != '+++') { document[formName].elements[i].value = ""; }
	}
	alert ("The form has been cleared.");
	deleteCookie(formName);
}




// open/save cookie
// arg[0] = mode = open => read cookie & fill form fields values
//                           save => save form fields values in cookie

function cookieForms() {  
	//alert("read/save cookie");
	var mode = cookieForms.arguments[0];
	var dbName = cookieForms.arguments[1];
	for(f=2; f<cookieForms.arguments.length; f++) {
		formName = cookieForms.arguments[f];
		cookieName = dbName + formName;
		if(mode == 'open') {	
			cookieValue = GetCookie(cookieName);
			//alert("read cookie " + cookieName + " with value = " + cookieValue);
			if(cookieValue != null) {
				var cookieArray = cookieValue.split(carSep);
					for(i=0; i<document[formName].elements.length; i++) {
						if(cookieArray[i].substring(0,6) == 'select') { document[formName].elements[i].options.selectedIndex = cookieArray[i].replace("select",""); }
						else if((cookieArray[i] == 'cbtrue') || (cookieArray[i] == 'rbtrue')) { document[formName].elements[i].checked = true; }
						else if((cookieArray[i] == 'cbfalse') || (cookieArray[i] == 'rbfalse')) { document[formName].elements[i].checked = false; }
						else if(cookieArray[i] == 'button') { ; }
						else { document[formName].elements[i].value = (cookieArray[i]) ? cookieArray[i] : ''; }
						//alert ("field:" + document[formName].elements[i].name + " = " + document[formName].elements[i].value);
					}
			}
		}
		if(mode == 'save') {	
			//alert("save cookie " + cookieName + " with value = ");
			cookieValue = '';
			for(i=0; i<document[formName].elements.length; i++) {
				fieldType = document[formName].elements[i].type;
				//alert(document[formName].elements[i].name + " [" + fieldType + "] : " + document[formName].elements[i].value);
				if(fieldType == 'password') { passValue = document[formName].elements[i].value; } // was passValue = '';
				else if(fieldType == 'button' | fieldType == 'submit') { passValue = 'button'; }
				else if(fieldType == 'checkbox') { passValue = 'cb'+document[formName].elements[i].checked; }
				else if(fieldType == 'radio') { passValue = 'rb'+document[formName].elements[i].checked; }
				else if(fieldType == 'select-one') { passValue = 'select'+document[formName].elements[i].options.selectedIndex; }
				else { passValue = document[formName].elements[i].value; }
				cookieValue = cookieValue + passValue + carSep;
			}
			cookieValue = cookieValue.substring(0, cookieValue.length-carSep.length); // remove last delimiter
			SetCookie(cookieName, cookieValue, exp);	
		}	
	}
}



// save cookie without form when cookie values are know

function resetCookie(cookieName,cookieValue) { 
	//alert("reset cookie " + cookieName + " with value = " + cookieValue);
	SetCookie(cookieName, cookieValue, exp);
}



// toggle mark check box for ONE item in a list
// read already selected list of items marked from cookie (if any)
// check if new item marked is already in the list
// if not add item marked to the list and save cookie
// ATTENTION checkItem = document[formName].elements[i].checked; was i-1 before???

function toggleMark(cookieName,formName,i,itemID) {
	selectedList = GetCookie(cookieName);
	if (selectedList == null) { selectedList = ""; }
	//alert ("COOKIE (previous value) [" + cookieName + "] : " + selectedList);
	checkItem = document[formName].elements[i].checked;
	//alert ("VALUE " + i + " / " + itemID + " = " + document[formName].elements[i].name + " - " + checkItem);
	if ( checkItem === true) {
		if ( selectedList == "" ) { // add first value with delimiter "," before & after
			selectedList = "," + itemID + ","; 
		} else { // add value to list with delimiter "," only after
			selectedList = selectedList + itemID + ",";
		}
	} else {
		itemID = "," + itemID + ",";
		ListTemp = "x" + selectedList;
		while (ListTemp.search(itemID) > 0) {
			selectedList = selectedList.replace(itemID, ","); // remove itemID
			selectedList = selectedList.replace(",,", ","); // remove double delimiter (,) if any
			ListTemp = "x" + selectedList;
		}
	}
	//alert("COOKIE (new value) " + selectedList);
	SetCookie(cookieName,selectedList);
}



// read cookie, add/delete Image_Id in ImagesList and save cookie
function toggleMarkList(i,image_ID) {
	imagesSelectedList = GetCookie(CookieListName);
	if (imagesSelectedList == null) { imagesSelectedList = ""; }
	//alert ("COOKIE " + imagesSelectedList);
	//alert ("VALUE " + i + " / " + image_ID + " = " + document['Form_Selection'].elements[i-1].name + " - " + document['Form_Selection'].elements[i-1].checked);
	checkImage = document['Form_Selection'].elements[i-1].checked;
	if (checkImage === true) {
		imagesSelectedList = imagesSelectedList + image_ID + " ";
	} else {
		//replaceImage = image_ID /gi;
		imagesSelectedList = imagesSelectedList.replace(image_ID + " ", "");
	}
	//alert("LIST=" + imagesSelectedList);
	SetCookie(CookieListName,imagesSelectedList);
}


// toggle filename of icon (0->1 or 1->0) for ONE item in a list
// read already selected list of items marked from cookie (if any)
// check if new item marked is already in the list
// if not add item marked to the list and save cookie

function toggleEmailFlag(cookieName,itemID) {
	selectedList = GetCookie(cookieName);
	if (selectedList == null) { selectedList = ""; }
	//alert ("COOKIE (previous value) [" + cookieName + "] : " + selectedList);
	fileName = document.images[itemID].src;
	if (fileName.search("0.html") > 0) { // not checked yet
		newFileName = fileName.replace("0.html", "1.html"); // toggle filename 0 -> 1
		if (selectedList == "") { // add first value with delimiter "," before & after
			selectedList = "," + itemID + ","; 
		} else { // add value to list with delimiter "," only after
			selectedList = selectedList + itemID + ",";
		}
		// remove counterpart of itemID if exists
		searchItemID = ",U" + itemID + ","; // add U before
		ListTemp = "x" + selectedList;
		while (ListTemp.search(searchItemID) > 0) {
			selectedList = selectedList.replace(searchItemID, ","); // remove itemID
			selectedList = selectedList.replace(",,", ","); // remove double delimiter (,) if any
			ListTemp = "x" + selectedList;
		}
	} else { // already checked
		newFileName = fileName.replace("1.html", "0.html");  // toggle filename 1 -> 0
		if (selectedList == "") { // add first value with delimiter "," before & after
			selectedList = ",U" + itemID + ","; // add U before
		} else { // add value to list with delimiter "," only after
			selectedList = selectedList + "U" + itemID + ","; // add U before
		}
		// remove itemID if exists
		searchItemID = "," + itemID + ",";
		ListTemp = "x" + selectedList;
		while (ListTemp.search(searchItemID) > 0) {
			selectedList = selectedList.replace(searchItemID, ","); // remove itemID
			selectedList = selectedList.replace(",,", ","); // remove double delimiter (,) if any
			ListTemp = "x" + selectedList;
		}
	}
	//alert ("VALUE " + itemID + " " + fileName + " " + newFileName);
	changeImage(itemID,newFileName);
	//alert("COOKIE (new value) " + selectedList);
	SetCookie(cookieName,selectedList);
}



// toggle mark check box for ALL item in a list
// read already selected list of items marked from cookie (if any)
// check if new item marked is already in the list
// if not add item marked to the list and save cookie

function toggleAllMark(cookieName,mode,listOfItem) {
	//alert ("COOKIE = " + cookieName);
	selectedList = GetCookie(cookieName);
	if (listOfItem == 'all') { listOfItem = CookieListID; }
	if (selectedList == null) { selectedList = ","; }
	//alert ("LIST_0 = " + selectedList);
	if ( mode == 1) { // mode = 1 => add coma separated list of images to cookie
		selectedList = selectedList + listOfItem + ","; // add listOfItem
		selectedList = selectedList.replace(",,", ","); // remove double delimiter (,) if any
		//alert ("LIST_1 = " + selectedList);
		SetCookie(cookieName,selectedList);
	} else if ( mode == -1) { // mode = -1 => remove coma separated list of images from cookie
		arrayOfImages = listOfItem.split(",")
		for (var i=0; i < arrayOfImages.length; i++) {
			selectedList = selectedList.replace("," + arrayOfImages[i] + ",", ","); // remove itemID
		}
		selectedList = selectedList.replace(",,", ","); // remove double delimiter (,) if any
		//alert ("LIST_-1 = " + selectedList);
		SetCookie(cookieName,selectedList);
	} else {
		//replaceImage = itemID /gi;
		//selectedList = selectedList.replace(itemID, ""); // remove listOfItem
		deleteCookie(cookieName);
	}
}



// get cookie value

function getCookieVal (offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1) { endstr = document.cookie.length; }
	return unescape(document.cookie.substring(offset, endstr));
}



// get cookie content

function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg) return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}



// write cookie with values to local disk with expiration time/date stamp

function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	// var path = (argc > 3) ? argv[3] : null;  
	// try defining path as "/" - seems to work in Safari and on pc???
	var path = (argc > 3) ? argv[3] : "/";  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}



// delete cookie from local disk
// in fact this writes a new cookie with a past time/date stamp

function deleteCookie() {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (-1200 * 60 * 60 * 1000));
	//alert("Deleting cookie : " + cookieName);
	document.cookie = cookieName + "=" + escape ('') + "; expires=" + expdate.toGMTString() + "; path=/";
	//document.cookie = cookieName + "=" + escape ('') + "; expires=" + expdate.toGMTString();
	//alert("The selection of items has been clear.");
	// Bug with IE on PC when path is mentionned
	// try defining path as "/" - seems to work in Safari and on pc???
}

function deleteThisCookie(thisCookie) {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (-1200 * 60 * 60 * 1000));
	//alert("Deleting cookie : " + thisCookie);
	document.cookie = thisCookie + "=" + escape ('') + "; expires=" + expdate.toGMTString() + "; path=/";
	//document.cookie = cookieName + "=" + escape ('') + "; expires=" + expdate.toGMTString();
	//alert("The selection of items has been clear.");
	// Bug with IE on PC when path is mentionned
	// try defining path as "/" - seems to work in Safari and on pc???
}

function deleteCookieList() {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (-1200 * 60 * 60 * 1000));
	//alert("Deleting cookie : " + cookieName);
	document.cookie = CookieListName + "=" + escape ('') + "; expires=" + expdate.toGMTString() + "; path=/";
	//document.cookie = cookieName + "=" + escape ('') + "; expires=" + expdate.toGMTString();
	//alert("The selection has been clear.");
	// Bug with IE on PC when path is mentionned
	// try defining path as "/" - seems to work in Safari and on pc???
}

function deleteCookieName() {
	deleteCookie();
}





//-->

