// **************** Checkbox cookie processing routines ***********************************
// Include this file in the header
// The following should be placed near the bottom of the file to initialise the checkboxes and array
//
//	cooks = document.cookie.substr(document.cookie.indexOf('=')+1).split(';');
//	myArray = cooks[0].split(',');
//	forEachProc(myArray); // init checkboxes
//
//

//This prototype is provided by the Mozilla foundation and
//is distributed under the MIT license.
//http://www.ibiblio.org/pub/Linux/LICENSES/mit.license
// this deletes the cookie when called

// ok added this bit coz of ie crap
function getElement (id) {

if (document.getElementById) {
return document.getElementById(id);
}

else if (document.all) {
return window.document.all[id];
}

else if (document.layers) {
return window.document.layers[id];
}
}
// ---------------------------------------------------------

function Delete_Cookie( name, path, domain ) {
if ( Get_Cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );


		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}

function clickProc (theArray, what) {
		if (document.getElementById(what).checked) addItem (theArray, what );
		else removeItem (theArray, what );
}
	
function removeByElement(arrayName,arrayElement)
 {
    for(var i=0; i<arrayName.length;i++ )
     { 
        if(arrayName[i]==arrayElement)
            arrayName.splice(i,1); 
      } 
  }
  
 function addItem (cookArray, itemtoAdd ) {
 	removeByElement(cookArray, itemtoAdd); // If its already there remove it
	cookArray.push (itemtoAdd);
// 	document.cookie = "servSel="+cookArray.toString();
	Set_Cookie( 'servSel', cookArray.toString(), '', '/', '', '' );
 }
 
function removeItem (cookArray, itemtoAdd) {
	var answer = confirm ("Do you want to remove this selection ?")
	if (answer) {
		removeByElement(cookArray, itemtoAdd);
// 	document.cookie = "servSel="+cookArray.toString();
		Set_Cookie( 'servSel', cookArray.toString(), '', '/', '', '' );
	} else	document.getElementById(itemtoAdd).checked= true;
}

function ArraySho (myAr) {
var theSource = myAr.toString() 

document.writeln(theSource);
// alert (theSource);
}

function isSelected (myAr, what) {
	return (myAr.indexOf(what)!=-1)? true:false;
}

function forEachProc (myArray) {

	for (var i=0; i<myArray.length; i++) { 
//		document.writeln(myArray[i]+"<br>");
//		document.getElementById(myArray[i]).checked=isSelected(myArray,myArray[i]) ;
		if (getElement(myArray[i])) {
			getElement(myArray[i]).checked=isSelected(myArray,myArray[i]) ;
		}
	}

}
var myArray = [];