
/*
 * Highlights a row of a table when a box is checked and adds to google cart
 */
function highlight(box, obj)
{
     var color1 = 'yellow';
     var color2 = '';

     document.getElementById(obj).style.background = (box.checked ? color1 : color2);

/* 	 var c1 = document.getElementById("c1");
 	 var c2 = document.getElementById("c2");*/
	 var c3 = document.getElementById("c3");
	 var c4 = document.getElementById("c4"); 
//	 var c5 = document.getElementById("c5");
	 
	 
	 var num_checked = 0;
/* 	 if (c1.checked) num_checked++;
 	 if (c2.checked) num_checked++; */
	 if (c3.checked) num_checked++; 
	 if (c4.checked) num_checked++; 
/*	 if (c5.checked) num_checked = num_checked + 2; */
	 	 
 	 switch (num_checked) {
 	 case 0: // remove 48
 	 {
 	 	remove_class_card(48,0);
	 	break;
	 }
 	 case 1: // remove 88 if there, add 48
 	 {
 		remove_class_card(88,0);
// 		add_class_card("check_1",48,100);
		googlecart.addItem(googlecart.makeItemFromNode(document.getElementById("check_4")));
 		break;
     }
 	 case 2: // remove 48 if there is one, add 88 if none exist
 	 {
 	 	remove_class_card(48,0);
 	 	add_class_card("check_6",88,1);
		break;
     }
     case 3: // remove 88 if there are 2, add 48
	 {
	 	remove_class_card(88,1);
		add_class_card("check_4",48,100);
		break;
     }
     case 4: // remove 48 and add 88
     	remove_class_card(48,0);
 		add_class_card("check_6",88,100);
//     	googlecart.addItem(googlecart.makeItemFromNode(document.getElementById("check_5")));
     	break;
     default:
     	document.write("Invalid Selection");
     }
googlecart.saveCartAndRefreshWidget();

	 prev_c5 = c5.checked ? true : false;

}

function add_class_card(type, cost, max)
{
	var i = 0;
	for ( i = 0; i < googlecart.getItems().length; i++)
	{
		var item = googlecart.getItem(i);
		if (item.getPricePerUnit() == cost)
		{
			// if the class card exists and the count is below the minimum, add one more
			var count = item.getQuantity();
			if (count < max)
				item.setQuantity( ++count );
			googlecart.saveCartAndRefreshWidget();
			return;
		}
	}
	// if the class card doesn't exist, add it
	googlecart.addItem(googlecart.makeItemFromNode(document.getElementById(type)));
	googlecart.saveCartAndRefreshWidget();

}

function remove_class_card(cost, min)
{
	var i = 0;
	for ( i = 0; i < googlecart.getItems().length; i++)
	{
		var item = googlecart.getItem(i);
		if (item.getPricePerUnit() == cost)
		{
			var count = item.getQuantity();
			if (count > min) count--;
			if (!count)
			   item.markForRemoval();
			else
 				item.setQuantity( count );
			googlecart.saveCartAndRefreshWidget();
		}
	}
}

/* 
 * Cross-browser event handling, by Scott Andrew
 */
function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/* 
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }
    
    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

/* 
 * Safari doesn't support canceling events in the standard way, so we must
 * hard-code a return of false for it to work.
 */
function cancelEventSafari() {
    return false;        
}

/* 
 * Cross-browser style extraction, from the JavaScript & DHTML Cookbook
 * <http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html>
 */
function getElementStyle(elementID, CssStyleProperty) {
    var element = document.getElementById(elementID);
    if (element.currentStyle) {
        return element.currentStyle[toCamelCase(CssStyleProperty)];
    } else if (window.getComputedStyle) {
        var compStyle = window.getComputedStyle(element, '');
        return compStyle.getPropertyValue(CssStyleProperty);
    } else {
        return '';
    }
}

/* 
 * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()'
 * From <http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp>
 */
function toCamelCase(CssProperty) {
    var stringArray = CssProperty.toLowerCase().split('-');
    if (stringArray.length == 1) {
        return stringArray[0];
    }
    var ret = (CssProperty.indexOf("-") == 0)
              ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1)
              : stringArray[0];
    for (var i = 1; i < stringArray.length; i++) {
        var s = stringArray[i];
        ret += s.charAt(0).toUpperCase() + s.substring(1);
    }
    return ret;
}

/*
 * Disables all 'test' links, that point to the href '#', by Ross Shannon
 */
function disableTestLinks() {
  var pageLinks = document.getElementsByTagName('a');
  for (var i=0; i<pageLinks.length; i++) {
    if (pageLinks[i].href.match(/[^#]#$/)) {
      addEvent(pageLinks[i], 'click', knackerEvent, false);
    }
  }
}

/* 
 * Cookie functions
 */
function createCookie(name, value, days) {
    var expires = '';
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        var expires = '; expires=' + date.toGMTString();
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name) {
    var cookieCrumbs = document.cookie.split(';');
    var nameToFind = name + '=';
    for (var i = 0; i < cookieCrumbs.length; i++) {
        var crumb = cookieCrumbs[i];
        while (crumb.charAt(0) == ' ') {
            crumb = crumb.substring(1, crumb.length); /* delete spaces */
        }
        if (crumb.indexOf(nameToFind) == 0) {
            return crumb.substring(nameToFind.length, crumb.length);
        }
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, '', -1);
}
