var expDays = 30;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function killDefault( e ) {
	if (e && e.preventDefault) {
		e.preventDefault();
	} else {
		e = e || window.event;
		e.returnValue = false;
	}
}

function getCookieVal(offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1)    
	endstr = document.cookie.length;  
	return unescape(document.cookie.substring(offset, endstr));
}

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;
}

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;  
	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" : "");
}

function DeleteCookie(name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

function setMemberCookie(e) {
	var obj = document.getElementById('membercode');
	var code;
	if (obj) {
		if (obj.value != '') {
			code = obj.value;
			SetCookie('membercode', code);
			obj.disabled = true;
		} else {
			DeleteCookie('membercode');
			obj.disabled = false;
		}
	}

	obj = document.getElementById('memberdiscount');
	if (obj && code) with (obj) {
		checked = true;
		setAttribute('name', code)
	}
	
	if ((typeof memberOnly !== 'undefined') && memberOnly && !code) {
		killDefault(e);
		alert('You must enter your member code to order this product.');
		obj = document.getElementById('membercode');
		if (obj) obj.focus();
	}
}

function setAllMemberDiscounts(code) {
	var code = code ? code : GetCookie('membercode');
	var objs = document.getElementsByTagName('input');
	var re = new RegExp('memberdiscount', 'i');
	for (var i = 0, j = objs.length; i < j; i++)
		if (objs[i].className.match(re)) with (objs[i]) {
			if (code) {
				objs[i].checked = true;
				setAttribute('name', code);
			} else objs[i].checked = false;
		}
	if (!code) {
		re = new RegExp('memberonly', 'i');
		for (var i = 0, j = objs.length; i < j; i++)
			if (objs[i] && objs[i].className.match(re))
				objs[i].parentNode.removeChild(objs[i]);
	}
}

function memberCode() {
	var code = GetCookie('membercode');
	var obj = document.getElementById('membercode');
	if (code && obj) with (obj) {
		value = code;
		style.display = 'none';
		disabled = true;
		if (!document.getElementById('membercodeText')) {
			var a = document.createElement('span');
			a.setAttribute('id', 'membercodeText');
			a.appendChild(document.createTextNode(code));
			parentNode.appendChild(a);
			var a = document.createElement('a');
			a.appendChild(document.createTextNode('[change]'));
			/* Minor Silliness - IE Does It's Own Thing Sometimes */
			a.style.cursor = 'pointer';
			a.onclick = function () {
				with (document.getElementById('membercode')) {
					style.display = 'block';
					disabled = false;
					focus();
				}

				// document.getElementById('membercodeText').style.display = 'none';
				var temp = document.getElementById('membercodeText');
				if (temp) temp.parentNode.removeChild(temp);

				this.style.display = 'none';

				a = document.getElementById('memberdiscount');
				if (a) a.checked = false;
			}
			parentNode.appendChild(a);
		}
	}
	if (obj) {
		var a = obj.parentNode;
		while (a.tagName != 'FORM' && a.parentNode) a = a.parentNode;
		if (a) addListener(a, 'submit', setMemberCookie);
		obj.onblur = function () {
			setAllMemberDiscounts(this.value);
		}
	}
	
	obj = document.getElementById('memberdiscount');
	if (obj && code) with (obj) {
		checked = true;
		setAttribute('name', code)
	}
	obj = document.getElementById('memberpricehint');
	if (obj && !code) obj.style.display = 'block';

	setAllMemberDiscounts();
}

var addListener = function () {
    if (window.addEventListener) {
	return function (el, type, fn) {
		el.addEventListener(type, fn, false);
	};
    } else if (window.attachEvent) {
	return function (el, type, fn) {
		var f = function () {
			fn.call(el, window.event);
		};
		el.attachEvent("on" + type, f);
	};
    } else {
	return function (el, type, fn) {
		element["on" + type] = fn;
	};
    }
}();

/*
addListener(window, "load", memberCode);
*/

memberCode();

function createMemberLinks() {
	var obj = document.getElementById('memberClose');
	if (obj) obj.onclick = function () {
		this.parentNode.parentNode.style.display = 'none';
		setMemberCookie();
		setAllMemberDiscounts();
	}
	obj = document.getElementById('membercode');
	if (obj) obj.onblur = function () {
		setMemberCookie();
		setAllMemberDiscounts();
	}
	var objs = document.getElementsByTagName('*');
	for (var i = 0, j = objs.length; i < j; i++)
		if (objs[i].className && objs[i].className.match(/\bmember-number\b/)) with (objs[i]) {
			while (firstChild) removeChild(firstChild);
			var a = document.createElement('a');
			a.href = 'javascript:void(0)';
			a.onclick = function () {
				var obj = document.getElementById('memberCodeContainer');
				if (obj) {
					this.parentNode.appendChild(obj);
					var f = this.parentNode;
					while (f && f.tagName.toLowerCase() !== 'form') f = f.parentNode;
					if (f) f.onsubmit = function () {
						setMemberCookie();
						setAllMemberDiscounts();
					}

					memberCode();
					obj.style.display = 'block';
				}
			}
			a.appendChild(document.createTextNode('Enter Member Code'));
			appendChild(a);
		}
}

if (document.getElementById('memberCodeContainer')) createMemberLinks();
