/*****************************************************************************
Copyright 2003, Structured Solutions
All rights reserved. The software and associated documentation supplied
hereunder are the proprietary information of Structured Solutions,
Portland, Oregon. The contents of this file is protected by United States
copyright law. Its use or disclosure in whole or in part without the
expressed written permission of Structured Solutions is expressly
prohibited.
 
CartList Control www.sfaddons.com

   Date     Modification
==========  ============
2003-06-11  Changed logic to find form to accomodate frmBot.
****************************************************************************/
function toggleCart(cartId) {
	// Convert IDs to ASP.NET format
	var bodylinkCellId = (cartId + ":BodyCell").split(":").join("_");
	var linkCellId = (cartId + ":ShrinkCell").split(":").join("_");
	// Get a reference to elements that change
	var bodyCell;
	var linkCell;
	if (document.all) {
		bodyCell = document.all[bodylinkCellId];
		linkCell = document.all[linkCellId];
	}
	else if (document.layers) {
		bodyCell = document.layers[bodylinkCellId];
		linkCell = document.layers[linkCellId];
	}
	else if (document.getElementById) {
		bodyCell = document.getElementById(bodylinkCellId);
		linkCell = document.getElementById(linkCellId);
	}
	// If still no reference, then leave cleanly
	if (!bodyCell || !linkCell) {
		return;
	}
	// Get reference to the main form on the page
	var theform;
	if (document.forms) {
		theform = document.forms[0];
	}
	else {
		return;
	}
	// Get references to the hidden fields with source
	var collapsedBodySource = theform.elements[cartId + ":CollapsedBodyHTML"];
	var expandedBodySource = theform.elements[cartId + ":ExpandedBodyHTML"];
	var collapsedLinkSource = theform.elements[cartId + ":CollapsedLinkHTML"];
	var expandedLinkSource = theform.elements[cartId + ":ExpandedLinkHTML"];
	if (!collapsedBodySource || !expandedBodySource || !collapsedLinkSource || !expandedLinkSource) {
		return;
	}
	// Toggle the contents of the cart
	var theswitch = WM_readCookie(cartId);
	if (theswitch == 1) {
		linkCell.innerHTML = collapsedLinkSource.value;
		bodyCell.innerHTML = collapsedBodySource.value;
		WM_setCookie(cartId, 0);
	}
	else {
		linkCell.innerHTML = expandedLinkSource.value;
		bodyCell.innerHTML = expandedBodySource.value;
		WM_setCookie(cartId, 1);
	}
}

/*
WM_setCookie(), WM_readCookie(), WM_killCookie()
A set of functions that eases the pain of using cookies.

Source: Webmonkey Code Library
(http://www.hotwired.com/webmonkey/javascript/code_library/)

Author: Nadav Savio
Author Email: nadav@wired.com
*/

// This next little bit of code tests whether the user accepts cookies.
var WM_acceptsCookies = false;
if(document.cookie == '') {
    document.cookie = 'WM_acceptsCookies=yes'; // Try to set a cookie.
    if(document.cookie.indexOf('WM_acceptsCookies=yes') != -1) {
	WM_acceptsCookies = true; 
    }// If it succeeds, set variable
} else { // there was already a cookie
  WM_acceptsCookies = true;
}


function WM_setCookie (name, value, hours, path, domain, secure) {
    if (WM_acceptsCookies) { // Don't waste your time if the browser doesn't accept cookies.
	var not_NN2 = (navigator && navigator.appName 
		       && (navigator.appName == 'Netscape') 
		       && navigator.appVersion 
		       && (parseInt(navigator.appVersion) == 2))?false:true;

	if(hours && not_NN2) { // NN2 cannot handle Dates, so skip this part
	    if ( (typeof(hours) == 'string') && Date.parse(hours) ) { // already a Date string
		var numHours = hours;
	    } else if (typeof(hours) == 'number') { // calculate Date from number of hours
		var numHours = (new Date((new Date()).getTime() + hours*3600000)).toGMTString();
	    }
	}
	document.cookie = name + '=' + escape(value) + ((numHours)?(';expires=' + numHours):'') + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:'') + ((secure && (secure == true))?'; secure':''); // Set the cookie, adding any parameters that were specified.
    }
} // WM_setCookie


function WM_readCookie(name) {
    if(document.cookie == '') { // there's no cookie, so go no further
	return false; 
    } else { // there is a cookie
	var firstChar, lastChar;
	var theBigCookie = document.cookie;
	firstChar = theBigCookie.indexOf(name);	// find the start of 'name'
	var NN2Hack = firstChar + name.length;
	if((firstChar != -1) && (theBigCookie.charAt(NN2Hack) == '=')) { // if you found the cookie
	    firstChar += name.length + 1; // skip 'name' and '='
	    lastChar = theBigCookie.indexOf(';', firstChar); // Find the end of the value string (i.e. the next ';').
	    if(lastChar == -1) lastChar = theBigCookie.length;
	    return unescape(theBigCookie.substring(firstChar, lastChar));
	} else { // If there was no cookie of that name, return false.
	    return false;
	}
    }	
} // WM_readCookie

function WM_killCookie(name, path, domain) {
  var theValue = WM_readCookie(name); // We need the value to kill the cookie
  if(theValue) {
      document.cookie = name + '=' + theValue + '; expires=Fri, 13-Apr-1970 00:00:00 GMT' + ((path)?';path=' + path:'') + ((domain)?';domain=' + domain:''); // set an already-expired cookie
  }
} // WM_killCookie
