function yg_cookie() {
	var dc = document, a = [], c = [];
	if (dc.cookie.length > 0) {
		a = dc.cookie.split("; "), cl = a.length, ca = [];
		for (var i = cl - 1; i >= 0; i--) {
			ca = a[i].split("=");
			c[ca[0]] = ca[1];
		}
	}
	this.getAll = function() {
		return a;
	};
	this.get = function(n) {
		return (c[n]) ? unescape(c[n]) : 0;
	};
	this.set = function(n, v, e, p, d, s) {
		v = escape(v);
		var today = new Date(), nv = n + "=" + v;
		var str = nv + ((e) ? "; expires=" + e : "") + ((p) ? "; path=" + p : "") + ((d) ? "; domain=" + d : "") + ((s) ? "; secure" : "");
		if ((n.length > 0 && v.length > 0) && (((e) && (e > today)) || (!e)) && (nv.length < 4000)) {
			dc.cookie = str;
			a[a.length] = nv;
			c[n] = v;
			return 1;
		} else {
			return 0;
		}
	};
	this.remove = function(n, p, d) {
		if (c[n]) {
			dc.cookie = n + "=" + ((p) ? "; path=" + p : "") + ((d) ? "; domain=" + d : "") + "; expires=Thu, 01-Jan-1970 00:00:01 GMT";
			for (var i = a.length - 1; i >= 0; i--) {
				if (a[i].indexOf(n) != -1) {
					a.splice(i, 1);
				}
			}
			c[n] = null;
			return 1;
		} else {
			return 0;
		}
	};
}
YAHOO.namespace('Tech');

$A = YAHOO.util.Anim;
$E = YAHOO.util.Event;
$D = YAHOO.util.Dom;
$C = YAHOO.util.Connect;
$ = YAHOO.util.Dom.get;
$$ = YAHOO.util.Dom.getElementsByClassName;
var ytcookie = new yg_cookie();
var expirationTime = new Date();
var killTime = new Date();
expirationTime.setTime(expirationTime.getTime() + 60 * 60 * 24 * 365 * 10000);
killTime.setTime(killTime.getTime() - 60 * 60 * 24 * 365 * 100000);
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string') {
			element = document.getElementById(element);
		}
		if (arguments.length == 1) {
			return element;
		}
		elements.push(element);
	}
	return elements;
}
var cookRV = "recViewBox";
var tmpcookie = ytcookie.get(cookRV);
if (tmpcookie) {
	$(cookRV).className = "off";
	$("recViewList").style.display = "none";
}
var cookRV = "recSerBox";
var tmpcookie = ytcookie.get(cookRV);
if (tmpcookie) {
	$(cookRV).className = "off";
	$("recSearchList").style.display = "none";
}
var agt = navigator.userAgent.toLowerCase();
var mac = agt.indexOf("mac") != -1;
var macIe = mac && document.all;
var gYOUR = 'Your ';
var gRATING = 'Rating: ';
var gYOUR_RATING = 'Your Rating: ';
var gDEFAULT_TEXT = 'Rate It: ';
function initRatings(formName) {
	if (!$) {
		return;
	}
	if (document.styleSheets) {
		if (document.styleSheets[0].disabled) {
			return;
		}
	}
	var i = 0;
	var forms = document.getElementsByName(formName);
	var form = (forms) ? forms[0] : null;
	if (!form) {
		return false;
	}
	while (i >= 0) {
		var sInputName = formName + '_rater_input' + i;
		var oInputs = document.getElementsByName(sInputName);
		if (oInputs[0]) {
			if (oInputs[0].nodeName == 'SELECT') {
				gatherSelectAttributes(oInputs[0], form);
			} else if (oInputs[0].nodeName == 'INPUT' && oInputs[0].type == 'radio') {
				gatherRadioAttributes(oInputs, form);
			}
			i++;
		} else {
			i = -1;
		}
	}
}
var legendText = new Array();
function gatherRadioAttributes(pRadios, pForm) {
	var curSelectedIndex = -1;
	var nRadioLength = pRadios.length;
	var oRadioContainer = pRadios[0].parentNode.parentNode;
	var oLegend = oRadioContainer.getElementsByTagName('LEGEND');
	var defaultText = (oLegend[0]) ? oLegend[0].innerHTML : '';
	var oRadioValuesLabels = new Array();
	var inputName = pRadios[0].name;
	var className = pRadios[0].className;
	for (var i = 0; i < nRadioLength; i++) {
		var oCurRadio = pRadios[i];
		var radioValueLength = oRadioValuesLabels.length;
		oRadioValuesLabels[radioValueLength] = new Array();
		var curRadioValues = oRadioValuesLabels[radioValueLength];
		curRadioValues['value'] = (oCurRadio.value) ? oCurRadio.value : i;
		if (!macIe) {
			curRadioValues['label'] = (oCurRadio.nextSibling.data) ? oCurRadio.nextSibling.data : gDEFAULT_TEXT;
		} else {
			curRadioValues['label'] = (oCurRadio.parentNode.innerText) ? oCurRadio.parentNode.innerText : gDEFAULT_TEXT;
		}
		if (oCurRadio.checked) {
			curSelectedIndex = i;
		}
	}
	var appendTo = oRadioContainer.parentNode;
	var ratingContainer = $("ytratingscontainer");
	appendTo.removeChild(oRadioContainer);
	createRater(inputName, ratingContainer, oRadioValuesLabels, curSelectedIndex, className, defaultText, pForm);
}

function gatherSelectAttributes(pInput, pForm) {
	var oInputOptions = pInput.getElementsByTagName('OPTION');
	var curSelectedIndex = -1;
	var defaultText = '';
	var nInputOptionLength = oInputOptions.length;
	var oOptionValuesLabels = new Array();
	var inputName = pInput.name;
	var className = pInput.className;
	for (var i = 0; i < nInputOptionLength; i++) {
		var oCurOption = oInputOptions[i];
		if (oCurOption.value != -1) {
			var optionValueLength = oOptionValuesLabels.length;
			oOptionValuesLabels[optionValueLength] = new Array();
			var curOptionValues = oOptionValuesLabels[optionValueLength];
			curOptionValues['value'] = (oCurOption.value) ? oCurOption.value : i;
			curOptionValues['label'] = (oCurOption.innerHTML) ? oCurOption.innerHTML : "";
			if (oCurOption.selected) {
				curSelectedIndex = i - 1;
			}
		} else {
			defaultText = (oCurOption.innerHTML) ? oCurOption.innerHTML : gDEFAULT_TEXT;
		}
	}
	var appendTo = pInput.parentNode;
	var ratingContainer = $("ytratingscontainer");
	appendTo.removeChild(pInput);
	createRater(inputName, ratingContainer, oOptionValuesLabels, curSelectedIndex, className, defaultText, pForm);
}

function createRater(pName, pAppendTo, pOptionValuesLabels, pCurSelectedIndex, pClassName, pDefaultText, pForm) {
	var oContainer = document.createElement('DIV');
	oContainer.className = pClassName;
	oContainer.id = pName + '_container';
	oContainer.labelsValues = pOptionValuesLabels;
	oContainer.selectedIndex = pCurSelectedIndex;
	oContainer.form = pForm;
	var nElemsToAdd = pOptionValuesLabels.length;
	var textP = document.createElement('P');
	var hiddenField;
	if (!macIe) {
		hiddenField = document.createElement('INPUT');
		hiddenField.type = 'hidden';
	} else {
		hiddenField = document.createElement('<INPUT type="hidden">');
	}
	hiddenField.name = pName;
	var legendWords = pDefaultText;
	textP.innerHTML = (pCurSelectedIndex >= 0) ? gYOUR + legendWords + gRATING + pOptionValuesLabels[pCurSelectedIndex]['label'] : pDefaultText;
	oContainer.textElem = textP;
	oContainer.appendChild(textP);
	oContainer.defaultText = pDefaultText;
	var oElements = new Array();
	for (var i = 0; i < nElemsToAdd; i++) {
		var oElem = document.createElement('A');
		oElem.href = "#";
		oElem.onmouseover = raterMouseOver;
		oElem.onfocus = raterMouseOver;
		oElem.onmouseout = raterMouseOut;
		oElem.onblur = raterMouseOut;
		oElem.onclick = raterClick;
		oElem.container = oContainer;
		oElem.innerHTML = pOptionValuesLabels[i]['label'];
		oElem.index = i;
		var className = '';
		if (pCurSelectedIndex != -1 && i <= pCurSelectedIndex) {
			className = 'selected';
		}
		var separator = (className != '') ? ' ' : '';
		var classNamePrefix = (i % 2) ? 'odd' + separator : 'even' + separator;
		oElem.className = classNamePrefix + className;
		oContainer.appendChild(oElem);
		oElements[oElements.length] = oElem;
	}
	if (pCurSelectedIndex >= 0) {
		hiddenField.value = pOptionValuesLabels[pCurSelectedIndex]['value'];
	} else {
		hiddenField.value = pCurSelectedIndex;
	}
	oContainer.hiddenField = hiddenField;
	oContainer.ratingElements = oElements;
	oContainer.appendChild(hiddenField);
	var clearDiv = document.createElement('DIV');
	clearDiv.className = 'clr';
	oContainer.appendChild(clearDiv);
	pAppendTo.appendChild(oContainer);
}

function raterMouseOver() {
	var container = this.container;
	var numElements = container.ratingElements.length;
	for (var i = 0; i < numElements; i++) {
		var curElem = container.ratingElements[i];
		var selectedIndex = container.selectedIndex;
		var className = '';
		if (selectedIndex > -1) {
			if (i <= selectedIndex && i <= this.index) {
				className = 'selectedover';
			} else if (i <= selectedIndex && i > this.index) {
				className = 'selectedless';
			} else if (i > selectedIndex && i <= this.index) {
				className = 'over';
			} else if (i > selectedIndex && i > this.index) {
				className = '';
			}
		} else {
			if (i <= this.index) {
				className = 'over';
			}
		}
		var separator = (className != '') ? ' ' : '';
		var classNamePrefix = (i % 2) ? 'odd' + separator : 'even' + separator;
		curElem.className = classNamePrefix + className;
	}
	container.textElem.innerHTML = container.labelsValues[this.index]['label'];
}
function raterMouseOut() {
	var container = this.container;
	var numElements = container.ratingElements.length;
	for (var i = 0; i < numElements; i++) {
		var curElem = container.ratingElements[i];
		var selectedIndex = container.selectedIndex;
		var className = (selectedIndex != -1 && selectedIndex >= i) ? 'selected' : '';
		var separator = (className != '') ? ' ' : '';
		var classNamePrefix = (i % 2) ? 'odd' + separator : 'even' + separator;
		curElem.className = classNamePrefix + className;
	}
	var legendWords = container.defaultText;
	container.textElem.innerHTML = (container.selectedIndex > -1) ? gYOUR + legendWords + gRATING + container.labelsValues[selectedIndex]['label'] : container.defaultText;
}
function raterClick() {
	var container = this.container;
	container.selectedIndex = this.index;
	var numElements = container.ratingElements.length;
	for (var i = 0; i < numElements; i++) {
		var curElem = container.ratingElements[i];
		var className = (i <= this.index) ? 'selectedover' : '';
		var separator = (className != '') ? ' ' : '';
		var classNamePrefix = (i % 2) ? 'odd' + separator : 'even' + separator;
		curElem.className = classNamePrefix + className;
	}
	var legendWords = container.defaultText;
	container.textElem.innerHTML = (container.selectedIndex > -1) ? gYOUR + legendWords + gRATING + container.labelsValues[container.selectedIndex]['label'] : container.defaultText;
	container.hiddenField.value = container.labelsValues[container.selectedIndex]['value'];
	return false;
}

//$E.addListener(window, 'load', function () {
//	initRatings('rater0');
//	initRatings('rater1');
//});
function toggle(targetId) {
	if ($) {
		target = $(targetId);
		if (target.style.display != "none") {
			target.style.display = "none";
		} else {
			target.style.display = "block";
		}
	}
}

function commentPaging(comstart, comtotal, blog, post) {
	var pages = Math.ceil((comtotal - 5) / 20) + 1;
	var paging = "";
	var cs = 1;
	for (var i = 1; i < pages + 1; i++) {
		var cc = (i == 1) ? 5 : 20;
		if (i == 2) {
			cs = 6;
		}
		if (i > 2) {
			cs = cs + 20;
		}
		var to = cs + cc - 1;
		var stro = " ";
		var strc = " ";
		if (comstart == cs) {
			stro = " <strong>";
			strc = "</strong> ";
		}
		paging += stro + "<a href='/blogs/" + blog + "/" + post + "?comment_start=" + cs + "&amp;comment_count=" + cc + "#see_comments' title='Comments: " + cs + " to " + to + "'>" + i + "</a>" + strc;
	}
	var ecnavp = $('bcmtpages');
	ecnavp.innerHTML = paging;
}
function postPaging(poststart, posttotal, blog) {
	var pages = Math.ceil((comtotal - 5) / 20) + 1;
	var paging = "";
	var ps = 1;
	for (var i = 1; i < pages + 1; i++) {
		var pc = (i == 1) ? 5 : 20;
		if (i == 2) {
			cs = 6;
		}
		if (i > 2) {
			cs = cs + 20;
		}
		var to = cs + cc - 1;
		var stro = " ";
		var strc = " ";
		if (comstart == cs) {
			stro = " <strong>";
			strc = "</strong> ";
		}
		paging += stro + "<a href='/blogs/" + blog + "/" + post + "?post_start=" + ps + "&amp;post_count=" + pc + "' title='Comments: " + ps + " to " + pc + "'>" + i + "</a>" + strc;
	}
	document.write(paging);
}
function blogComPagInit() {
	if ($('ecnav')) {
		eptCmt();
	}
}

$E.addListener(window, 'load', blogComPagInit);
function rrPaging(thisURL) {
	alert(thisURL);
	var pages = Math.ceil((comtotal - 5) / 20) + 1;
	var paging = "";
	var ps = 1;
	for (var i = 1; i < pages + 1; i++) {
		var pc = (i == 1) ? 5 : 20;
		if (i == 2) {
			cs = 6;
		}
		if (i > 2) {
			cs = cs + 20;
		}
		var to = cs + cc - 1;
		var stro = " ";
		var strc = " ";
		if (comstart == cs) {
			stro = " <strong>";
			strc = "</strong> ";
		}
		paging += stro + "<a href='/blogs/" + blog + "/" + post + "?post_start=" + ps + "&amp;post_count=" + pc + "' title='Comments: " + ps + " to " + pc + "'>" + i + "</a>" + strc;
	}
	document.write(paging);
}
$E.addListener(window, 'load', privacyToggleInit);
function privacyToggleInit() {
	var privlinks = document.getElementsByName("privtoggle");
	for (var i = 0; i < privlinks.length; i++) {
		$E.addListener(privlinks[i], 'click', privacyToggle);
	}
	return false;
}
function privacyToggle(e) {
	$E.preventDefault(e);
	var parnode = this.parentNode;
	while (parnode) {
		if (parnode.nodeName == "DIV") {
			var onoffbox = parnode;
		}
		if (parnode.nodeName == "H3") {
			var header3 = parnode;
			break;
		}
		parnode = parnode.parentNode;
	}
	var sibs = header3.nextSibling;
	var i = 0;
	var sibsarr = new Array();
	while (sibs) {
		sibsarr[i++] = sibs;
		sibs = sibs.nextSibling;
	}
	for (var z = 0; z < sibsarr.length; z++) {
		removeElement(sibsarr[z]);
	}
	if (onoffbox.className == "off") {
		ytcookie.remove(onoffbox.id, '/');
		onoffbox.className = "";
	} else {
		ytcookie.set(onoffbox.id, 1, expirationTime, '/');
		onoffbox.className = "off";
	}
	var togglelink = this.href;
	var callback = {success:0, failure:0, argument:1, scope:this};
	var cObj = $C.asyncRequest('GET', togglelink, callback, null);
}
function checkMtQuickCompare(e) {
	var href = this.href;
	var isok = href.indexOf("/;");
	if (isok > 0) {
		$E.preventDefault(e);
		var which = (this.id == "mtRecViewCompare") ? "view" : "save";
		alert("You need to " + which + " at least 2 products to use this feature.");
		return false;
	}
}

$E.addListener(["mtMySaveCompare", "mtRecViewCompare"], 'click', checkMtQuickCompare);
$E.addListener(window, 'load', startSaveBox);
function startSaveBox(e) {
	var stps = document.getElementsByName("saveThisProduct");
	var csbs = document.getElementsByName("closesavebox");
	for (var i = 0; i < stps.length; i++) {
		var thisstp = stps[i].id;
		var thiscsb = csbs[i].id;
		var parnode = csbs[i].parentNode;
		while (parnode) {
			if (parnode.className == "sharePageOptions") {
				var thisspo = parnode.id;
				var spo = parnode;
				break;
			}
			parnode = parnode.parentNode;
		}
		startSave(thisspo, thisstp, thiscsb, spo);
	}
	function startSave(spo, stp, csb, sposel) {
		savebox = new YAHOO.widget.Overlay(spo, {width:"170px", context:[stp, 'tl', 'bl'], zIndex:2000, iframe:true});
		var closelink = [csb];
		var triggerlink = [stp];
		$E.addListener(closelink, 'click', showHideBox);
		$E.addListener(triggerlink, 'click', showHideBox);
		function showHideBox(e) {
			$E.preventDefault(e);
			sposel.style.visibility = (sposel.style.visibility == "hidden") ? "visible" : "hidden";
		}
	}
}
$E.addListener(window, 'load', shoplistInit);
function shoplistInit(e) {
	var linkflags = "shoplist";
	var hijaxlinks = document.getElementsByName(linkflags);
	var linkcount = hijaxlinks.length;
	for (var i = 0; i < linkcount; i++) {
		$E.addListener(hijaxlinks[i], 'click', addToLists);
	}
	return;
}
function addToLists(e) {
	var targetlist = "wishlist";
	var targetels = "LI";
	var targetpos = "first";
	$E.preventDefault(e);
	if (this.id == "addtomt" || this.id == "addtoown" || this.className == "ytprodsave" || this.className == "addtomt yltasis" || this.className == "addtoown yltasis") {
		this.innerHTML = "<strong>Saving...</strong>";
	}
	var getajax = this.href;
	var posa = getajax.indexOf("prod=") + 5;
	var posb = getajax.indexOf("&title");
	var prodid = getajax.substring(posa, posb);
	var mtimgurl = this.rel;
	function failure(o) {
		if (o.status == 403) {
			var defercookie = o.argument.thelink;
			deferAjaxSetCookie(defercookie);
			location.href = 'http://www.minagricultura.gov.co?.src=tech&.intl=us&.done=' + escape(location.href);
		} else {
			var newText = document.createElement('SPAN');
			newText.innerHTML = "<strong>Already in your Lists</strong>";
			this.parentNode.replaceChild(newText, this);
		}
		return false;
	}
	function success(o) {
		var rpcmsg = o.responseText;
		var iserr = rpcmsg.indexOf("</error>");
		var thelink = o.argument.thelink;
		var prodid = o.argument.prodid;
		var mtimgurl = o.argument.mtimgurl;
		if (this.id == "addtomt" || this.className == "addtomt yltasis") {
			if (iserr < 0) {
				var wish = $(targetlist);
				if (wish) {
					var items = wish.getElementsByTagName(targetels);
					var getel = (targetpos == "first") ? items[0] : items[items.length - 1];
					var getelxy = $D.getXY(getel);
					var getelw = getel.offsetWidth;
					var getelh = getel.offsetHeight;
					var thisxy = $D.getXY(this);
					var tmpdiv = document.createElement("DIV");
					tmpdiv.setAttribute("class", "saveanim");
					tmpdiv.style.position = "absolute";
					tmpdiv.style.width = this.offsetWidth + "px";
					tmpdiv.style.height = this.offsetHeight + "px";
					var stupid = document.getElementsByTagName("BODY");
					var thebody = stupid[0];
					thebody.appendChild(tmpdiv);
					$D.setXY(tmpdiv, thisxy);
					var attributes = {points:{to:getelxy}, width:{to:getelw}, height:{to:getelh}};
					var saveAnim = new YAHOO.util.Motion(tmpdiv, attributes, .85, YAHOO.util.Easing.easeOut);
					saveAnim.animate();
					saveAnim.onComplete.subscribe(function () {
						removeElement(tmpdiv);
					});
					var tmpitem = document.createElement(targetels);
					var tmppra = document.createElement('A');
					var tmpimg = document.createElement('IMG');
					tmpitem.appendChild(tmppra);
					tmppra.href = "/pr/" + prodid;
					tmpimg.src = mtimgurl;
					tmppra.appendChild(tmpimg);
					var tmpem = document.createElement('EM');
					var tmpa = document.createElement('A');
					tmpa.href = "/sl?listname=My+Saved+Tech+Products&prod=" + prodid + "&remove=1";
					tmpa.name = "shoplist";
					tmpa.className = "ytprodremove " + prodid;
					tmpa.innerHTML = "remove";
					tmpa.prodid = prodid;
					tmpem.appendChild(tmpa);
					$E.addListener(tmpa, 'click', addToLists);
					tmpitem.appendChild(tmpem);
					removeElement(items[items.length - 1]);
					items[0].parentNode.insertBefore(tmpitem, items[0]);
					var comparebtn = $("mtMySaveCompare");
					var comparehref = comparebtn.href;
					var bits = comparehref.split("/pc/");
					comparebtn.href = bits[0] + "/pc/" + prodid + "," + bits[1];
				}
				innerText = "Saved in My Tech List";
			} else {
				innerText = "Already in My Tech List";
			}
			var newText = document.createElement('SPAN');
			newText.innerHTML = "<strong>" + innerText + "</strong>";
			this.parentNode.replaceChild(newText, this);
			if (iserr < 0) {
				newText.parentNode.parentNode.parentNode.style.visibility = "hidden";
			}
		} else if (this.className == "ytprodsave") {
			if (iserr < 0) {
				innerText = "Saved";
			} else {
				innerText = "Already Saved";
			}
			var newText = document.createElement('SPAN');
			newText.innerHTML = "<strong>" + innerText + "</strong>";
			this.parentNode.replaceChild(newText, this);
		} else if (this.id == "addtoown yltasis" || this.className == "addtoown yltasis") {
			if (iserr < 0) {
				innerText = "Saved in Stuff I Own";
			} else {
				innerText = "Already Saved in Stuff I Own";
			}
			var newText = document.createElement('SPAN');
			newText.innerHTML = "<strong>" + innerText + "</strong>";
			this.parentNode.replaceChild(newText, this);
			if (iserr < 0) {
				newText.parentNode.parentNode.parentNode.style.visibility = "hidden";
			}
		} else {
			if (thelink.indexOf("remove") > 0) {
				var hijaxlinks = document.getElementsByName("shoplist");
				for (var i = 0; i < hijaxlinks.length; i++) {
					var testlink = hijaxlinks[i];
					var prodbox = testlink.parentNode.parentNode;
					if (testlink.href.indexOf(prodid) > 0) {
						if (prodbox.nodeName == "DL") {
							removeElement(prodbox);
						} else if (prodbox.nodeName == targetels) {
							var comparebtn = $("mtMySaveCompare");
							var comparehref = comparebtn.href;
							comparebtn.href = comparehref.replace(prodid + ",", "");
							prodbox.innerHTML = '<img src="" alt="" width="58" height="58"/>';
						}
					}
				}
			}
		}
	}
	var thelink = getajax;
	var callback = {success:success, failure:failure, argument:{prodid:prodid, mtimgurl:mtimgurl, thelink:thelink}, scope:this};
	var cObj = $C.asyncRequest('GET', thelink, callback, null);
	return false;
}
function removeElement(el) {
	el.parentNode.removeChild(el);
}
function checkAll(f) {
	var thisform = document.forms[f];
	var inputs = thisform.getElementsByTagName('INPUT');
	var checks = new Array();
	var z = 0;
	for (var i = 0; i < inputs.length; i++) {
		var testchild = inputs[i];
		if (testchild.nodeName == "INPUT" && testchild.type == "checkbox") {
			checks[z++] = testchild;
		}
		testchild = testchild.nextSibling;
	}
	for (var i = 0; i < checks.length; i++) {
		checks[i].checked = true;
	}
	return false;
}
function checkCompare(formname) {
	var inputs = document.forms[formname].getElementsByTagName("INPUT");
	var prod = new Array();
	var fType = $('fType');
	var z = 0;
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "checkbox" && inputs[i].checked) {
			prod[z++] = inputs[i];
		}
	}
	if (prod.length > 6) {
		alert("Please select 6 products or less to compare.");
		return false;
	} else if (prod.length <= 1) {
		alert("Please select at least 2 products to compare.");
		return false;
	} else {
		fType.value = 'compare';
		document.forms[formname].submit();
	}
}
function checkEmail(formname) {
	var inputs = document.forms[formname].getElementsByTagName("INPUT");
	var prod = new Array();
	var fType = $('fType');
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "checkbox" && inputs[i].checked) {
			prod[i] = inputs[i];
		}
	}
	if (prod.length < 1) {
		alert("Please select at least 1 product to email.");
		return false;
	}
	fType.value = 'email';
	document.forms[formname].submit();
}
function checkSearchCompare(formname) {
	var inputs = document.forms[formname].getElementsByTagName("INPUT");
	var prod = new Array();
	var z = 0;
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "checkbox" && inputs[i].checked) {
			prod[z++] = inputs[i];
		}
	}
	if (prod.length > 6) {
		alert("Please Select Only 6 Products or Less for Comparing. ");
		return false;
	} else if (prod.length <= 1) {
		alert("Please Select at least 2 products for Comparing.");
		return false;
	} else {
		document.forms[formname].submit();
	}
}
function validReview(form) {
	var revA = $('identity');
	var revB = $('title');
	var revC = $('pros');
	var revD = $('cons');
	var revE = $('reviewtext');
	if (revB.value == "") {
		revB.value = "Please Enter a Review Title";
		revB.select();
		return (false);
	}
	if (revB.value == "Please Enter a Review Title") {
		revB.value = "Please Enter a Review Title";
		revB.select();
		return (false);
	}
	if (revC.value == "") {
		revC.value = "Please Enter a Pros Comment";
		revC.select();
		return (false);
	}
	if (revC.value == "Please Enter a Pros Comment") {
		revC.value = "Please Enter a Pros Comment";
		revC.select();
		return (false);
	}
	if (revD.value == "") {
		revD.value = "Please Enter a Review Title";
		revD.select();
		return (false);
	}
	if (revD.value == "Please Enter a Review Title") {
		revD.value = "Please Enter a Review Title";
		revD.select();
		return (false);
	}
	if (revE.value == "") {
		revE.value = "Please Enter a Full Review";
		revE.select();
		return (false);
	}
	if (revE.value == "Please Enter a Full Review") {
		revE.value = "Please Enter a Full Review";
		revE.select();
		return (false);
	}
	return (true);
}
function validSearch(form) {
	var prodInput = $('prod');
	var searchMessage = $('searchMessage');
	if (prodInput.value == "") {
		prodInput.value = "Please Enter a Search Term Here";
		prodInput.select();
		return (false);
	}
	if (prodInput.value == "Please Enter a Search Term Here") {
		prodInput.value = "Please Enter a Search Term Here";
		prodInput.select();
		return (false);
	}
	return (true);
}
function validBlogSearch(form) {
	var prodInput = $('prod1');
	if (prodInput.value == "") {
		prodInput.value = "Please Enter a Search Term Here";
		prodInput.select();
		return (false);
	}
	if (prodInput.value == "Please Enter a Search Term Here") {
		prodInput.value = "Please Enter a Search Term Here";
		prodInput.select();
		return (false);
	}
	return (true);
}
function validProdQASearch(form) {
	var prodInput = $('prod2');
	if (prodInput.value == "") {
		prodInput.value = "Please Enter a Question Here";
		prodInput.select();
		return (false);
	}
	if (prodInput.value == "Please Enter a Question Here") {
		prodInput.value = "Please Enter a Question Here";
		prodInput.select();
		return (false);
	}
	return (true);
}
function PreventFirefoxFromSelectText(e) {
	if (e.target.tagName == "BODY") {
		setTimeout((function () {
			window.getSelection().collapse(e.target, 0);
		}), 0);
		$E.stopEvent(e);
		return false;
	}
}
if (document.getBoxObjectFor) {
	$E.addListener(document, 'mousedown', PreventFirefoxFromSelectText);
}
function P7_JumpMenu(selObj, restore) {
	var theFullString = selObj.options[selObj.selectedIndex].value;
	if (restore) {
		selObj.selectedIndex = 0;
	}
	var theLength = theFullString.length;
	var endPos = theFullString.lastIndexOf("~");
	var theUrl, theTarget, theParent;
	if (endPos > 0) {
		theUrl = theFullString.substring(0, endPos);
	} else {
		theUrl = theFullString;
	}
	endPos++;
	if (endPos < theLength) {
		theTarget = theFullString.substring(endPos, theLength);
	} else {
		theTarget = "window:Main";
	}
	if (theTarget == "window:New") {
		window.open(theUrl);
	} else if (theTarget == "window:Main") {
		eval("parent.location='" + theUrl + "'");
	} else {
		eval("parent.frames[\'" + theTarget + "\'].location='" + theUrl + "'");
	}
}
$E.addListener(window, 'load', function () {
	if (navigator.userAgent.indexOf("Firefox/1.0") != -1) {
		$('adLrec').style.position = "absolute";
	}
});
function rrSortReviews(theform) {
	var opttext = theform.sortby.options[theform.sortby.selectedIndex].innerHTML;
	if (opttext.indexOf("Lowest") > -1 || opttext.indexOf("Least") > -1) {
		theform.dir.value = "REVERSE";
	}
	theform.submit();
	return false;
}
$E.addListener(window, 'load', deferAjaxCheck);
function deferAjaxCheck() {
	var deferredAjaxCookie = ytcookie.get("ytechDefer");
	if (deferredAjaxCookie) {
		ytcookie.remove("ytechDefer");
		function success(o) {
			alert(o.argument.msg);
			if (o.argument.msg.indexOf("vote") < 0 || o.argument.msg.indexOf("review") < 0 || o.argument.msg.indexOf("blog") < 0 || o.argument.msg.indexOf("article") < 0) {
				window.location.reload(false);
			}
		}
		function failure(o) {
			if (o.status == 403) {
				alert("Please login to use this functionality.");
			} else {
				alert("You have already done this.");
			}
			return;
		}
		if (deferredAjaxCookie.indexOf("|") > 0) {
			var formstuff = deferredAjaxCookie.split("|");
			var formName = formstuff[0];
			var posturl = formstuff[1];
			var quickrate = formstuff[2];
			var inputs = document.forms[formName].getElementsByTagName("INPUT");
			for (var i = 0; i < inputs.length; i++) {
				if (inputs[i].name == "rater0_rater_input0") {
					inputs[i].value = quickrate;
				}
			}
			YAHOO.util.Connect.setForm(formName);
			var callback = {success:success, failure:failure, argument:{msg:"Thank you. Your rating has been saved."}, scope:this};
			var cObj = $C.asyncRequest('POST', posturl, callback);
		} else {
			var templink = deferredAjaxCookie;
			templink.replace("%3A", ":");
			templink.replace("%3B", ";");
			templink.replace("%3D", "=");
			templink.replace("%3F", "?");
			templink.replace("%26", "&");
			var temparr = templink.split("&.crumb=");
			ajaxlink = temparr[0] + "&.crumb=" + mycrumb;
			var themsg = "Click OK to finish rating this article.";
			if (deferredAjaxCookie.indexOf("blogpost") > 0) {
				themsg = "Click OK to finish rating this blog post.";
			} else if (deferredAjaxCookie.indexOf("review") > 0) {
				themsg = "Click OK to finish rating this review.";
			} else if (deferredAjaxCookie.indexOf("listname") > 0) {
				themsg = "Click OK to finish saving this product to your list.";
			} else if (deferredAjaxCookie.indexOf("YTechHotProduct") > 0) {
				themsg = "Click OK to finish saving this vote";
			}
			var callback = {success:success, failure:failure, argument:{msg:themsg}, scope:this};
			var cObj = $C.asyncRequest('GET', ajaxlink, callback, null);
		}
	}
	return;
}
function deferAjaxSetCookie(tempdata) {
	ytcookie.set("ytechDefer", tempdata);
	return;
}

YAHOO.Tech.Scroller = function(args) {
	args = args || {};
	
	this.viewableArea = $(args.viewableArea) || 'ynscrollviewable';
	this.scrollerContainer = args.scrollerContainer || 'ynscroll';
	this.indicatorContainer = args.indicatorContainer || 'ynindcont';
	this.scrollButtonContainer = args.scrollButtonContainer || 'scrollButtonContainer';
	this.delayTime = args.delayTime || 10000;
	this.currentPane = 0;
	this.autoScroll = null;
	this.autoScrollOn = true;
	this.sclBtnLft = "sclBtnLft";
	this.sclBtnRgt = "sclBtnRgt";
	this.sclBtnClassOff = "buttonOff";
	this.sclBtnClassOn = "buttonOn";
	this.indicatorClassOff = "off";
	this.indicatorClassOn = "on";
	this.w = this.viewableArea.offsetWidth;
	this.viewableArea.scrollLeft = '0px';
	var gettabs = $(this.scrollerContainer);
	var getdiv = gettabs.getElementsByTagName("div");
	var countPanes = 0;
	var dl = getdiv.length;
	
	for (var x = 0; x < dl; x++) {
		var classkey = getdiv[x].getAttribute("name");
		if ((x === 0) && (classkey == "container")) {
			var getFirst = getdiv[x];
		}
		if (classkey == "container") {
			var idstring = getdiv[x].id;
			countPanes++;
		}
	}
	this.maxpanes = countPanes - 1;
	this.max_width = this.w * this.maxpanes;
	var duplicate = getFirst.cloneNode(true);
	duplicate.removeAttribute("id");
	duplicate.setAttribute("name", "duplicate");
	$(this.scrollerContainer).appendChild(duplicate);
	document.write('<div id="' + this.scrollButtonContainer + '">');
	document.write('<div class="fscleft">');
	document.write('<a href="/" class="' + this.sclBtnClassOff + '"><strong>Left</strong></a>');
	document.write('</div>');
	document.write('<div class="fscright">');
	if (this.maxpanes > 0) {
		document.write('<a href="/" class="' + this.sclBtnClassOn + '"><strong>Right</strong></a>');
	} else if (this.maxpanes == 0) {
		document.write('<a href="/" class="' + this.sclBtnClassOff + '"><strong>Right</strong></a>');
	}
	document.write('</div>');
	document.write('</div>');
	document.write('<div id="' + this.indicatorContainer + '" class="dots">');
	for (x = 0; x <= this.maxpanes; x++) {
		if (x == 0) {
			document.write('<a href="/" id="' + this.indicatorContainer + x + '" class="' + this.indicatorClassOn + '"><strong>Pane ' + x + '</strong>&nbsp;</a>');
		} else {
			document.write('<a href="/" id="' + this.indicatorContainer + x + '" class="' + this.indicatorClassOff + '"><strong>Pane ' + x + '</strong>&nbsp;</a>');
		}
	}
	document.write('</div>');
	$E.onAvailable(this.scrollerContainer, this.init, this, true);
};
YAHOO.Tech.Scroller.prototype = {init:function () {
	if (!$('techTicker')) {
		return false;
	}
	var getContainer = $(this.scrollButtonContainer);
	var getanchor = getContainer.getElementsByTagName("a");
	var al = getanchor.length;
	for (var x = 0; x < al; x++) {
		if (x == 0) {
			var getLeft = getanchor[x];
			$E.addListener(getLeft, 'click', this.prev, this, true);
		} else if (x == 1) {
			var getRight = getanchor[x];
			$E.addListener(getRight, 'click', this.next, this, true);
		}
	}
	var getcont = $(this.indicatorContainer);
	var getAnchor = getcont.getElementsByTagName('a');
	var il = getAnchor.length;
	for (var n = 0; n < il; n++) {
		getAnchor[n].cp = n;
		$E.addListener(getAnchor[n], 'click', this.indicators, this, true);
	}
	if (this.maxpanes != 0) {
		this.autoStart();
	}
}, indicators:function (e) {
	if (this.maxpanes != 0) {
		this.stopInterval();
		this.currentPane = $E.getTarget(e).cp;
		this.scrollToPane(this.currentPane);
	}
	$E.preventDefault(e);
}, prev:function (e) {
	if (this.currentPane < 0) {
		this.currentPane = 0;
		$E.preventDefault(e);
		return;
	}
	this.stopInterval();
	this.currentPane--;
	this.scrollToPane(this.currentPane);
	$E.preventDefault(e);
}, next:function (e) {
	if (this.currentPane == this.maxpanes) {
		this.currentPane = this.maxpanes;
		$E.preventDefault(e);
		return;
	}
	this.stopInterval();
	this.currentPane++;
	this.scrollToPane(this.currentPane);
	$E.preventDefault(e);
}, changeStates:function (currentPane) {
	if (currentPane == 0) {
		this.changeButtons('f');
	} else {
		this.changeButtons('m');
	}
	if (currentPane > 0) {
		this.changeButtons('m');
	}
	if (currentPane == this.maxpanes) {
		this.changeButtons('l');
	}
	var count = 0;
	while (count <= this.maxpanes) {
		var a = this.indicatorContainer + count;
		var setIndiOff = $(a);
		setIndiOff.className = this.indicatorClassOff;
		setIndiOff.setAttribute("class", this.indicatorClassOff);
		count++;
	}
	if (currentPane > this.maxpanes) {
		currentPane = 0;
		this.currentPane = 0;
		this.changeButtons('f');
	}
	var temp = this.indicatorContainer + currentPane;
	var setIndiOn = $(temp);
	setIndiOn.className = this.indicatorClassOn;
	setIndiOn.setAttribute("class", this.indicatorClassOn);
}, changeButtons:function (m) {
	switch (m) {
	case "f" :
		this.bgPos(this.sclBtnLft, "off");
		this.bgPos(this.sclBtnRgt, "on");
		break;
	case "m" :
		this.bgPos(this.sclBtnLft, "on");
		this.bgPos(this.sclBtnRgt, "on");
		break;
	case "l" :
		this.bgPos(this.sclBtnLft, "on");
		this.bgPos(this.sclBtnRgt, "off");
		break;
	default :
		this.bgPos(this.sclBtnLft, "off");
		this.bgPos(this.sclBtnRgt, "on");
	}
}, bgPos:function (classNm, state) {
	var getContainer = $(this.scrollButtonContainer);
	var getanchor = getContainer.getElementsByTagName("a");
	if (classNm == this.sclBtnLft) {
		var button = getanchor[0];
	} else if (classNm == this.sclBtnRgt) {
		var button = getanchor[1];
	}
	if (state == "off") {
		button.className = this.sclBtnClassOff + " " + this.classNm;
		button.setAttribute("class", this.sclBtnClassOff + " " + this.classNm);
	} else if (state == "on") {
		button.className = this.sclBtnClassOn + " " + classNm;
		button.setAttribute("class", this.sclBtnClassOn + " " + this.classNm);
	}
}, scrollToPane:function (currentPane) {
	if (currentPane == -1) {
		return;
	}
	this.currentPane = currentPane;
	this.animate(currentPane);
	this.changeStates(currentPane);
}, animate:function (currentPane) {
	var move = currentPane * this.w;
	var attributes = {scroll:{to:[move, 0]}};
	var anim = new YAHOO.util.Scroll(this.viewableArea, attributes, 0.5, YAHOO.util.Easing.easeOut);
	if ((this.autoScrollOn === true) && (currentPane > this.maxpanes)) {
		anim.onComplete.subscribe(this.setToZero);
		this.stopInterval();
		this.currentPane = 0;
		this.changeStates(this.currentPane);
	}
	anim.animate();
	return false;
}, setToZero:function () {
	var el = this.getEl();
	el.scrollLeft = 0;
}, autoStart:function () {
	if (this.autoScrollOn) {
		var doit = function (self) {
			return function () {
				self.scrollToPane(self.currentPane + 1);
				self.autoStart();
			};
		};
		clearTimeout(this.autoScroll);
		this.autoScroll = setTimeout(doit(this), this.delayTime);
	}
}, stopInterval:function () {
	if (this.autoScrollOn === true) {
		clearTimeout(this.autoScroll);
		this.autoScrollOn = false;
	}
}};
YAHOO.Tech.onMenuBarAvailable = function(p_oEvent) {
	var oAnim;
	function setupMenuAnimation(p_oMenu) {
		if (!p_oMenu.animationSetup) {
			var aItems = p_oMenu.getItemGroups();
			if (aItems && aItems[0]) {
				var i = aItems[0].length - 1;
				var oSubmenu;
				do {
					oSubmenu = p_oMenu.getItem(i).cfg.getProperty("submenu");
					if (oSubmenu) {
						oSubmenu.beforeShowEvent.subscribe(onMenuBeforeShow, oSubmenu, true);
						oSubmenu.showEvent.subscribe(onMenuShow, oSubmenu, true);
					}
				} while (i--);
			}
			p_oMenu.animationSetup = true;
		}
	}
	function onMenuBeforeShow(p_sType, p_sArgs, p_oMenu) {
		if (oAnim && oAnim.isAnimated()) {
			oAnim.stop();
			oAnim = null;
		}
		$D.setStyle(this.element, "overflow", "hidden");
		$D.setStyle(this.body, "marginTop", ("-" + this.body.offsetHeight + "px"));
	}
	function onMenuShow(p_sType, p_sArgs, p_oMenu) {
		oAnim = new YAHOO.util.Anim(this.body, {marginTop:{to:0}}, 0.5, YAHOO.util.Easing.easeOut);
		oAnim.animate();
		var me = this;
		function onTween() {
			me.cfg.refireEvent("iframe");
		}
		function onAnimationComplete() {
			$D.setStyle(me.body, "marginTop", ("0px"));
			$D.setStyle(me.element, "overflow", "visible");
			setupMenuAnimation(me);
		}
		if (this.cfg.getProperty("iframe") == true) {
			oAnim.onTween.subscribe(onTween);
		}
		oAnim.onComplete.subscribe(onAnimationComplete);
	}
	function onMenuRender(p_sType, p_sArgs, p_oMenu) {
		setupMenuAnimation(p_oMenu);
	}
	var oMenuBar = new YAHOO.widget.MenuBar("navbar", {autosubmenudisplay:true, hidedelay:750, lazyload:true});
	oMenuBar.renderEvent.subscribe(onMenuRender, oMenuBar, true);
	oMenuBar.render();
};
$E.onAvailable("navbar", YAHOO.Tech.onMenuBarAvailable);
$E.addListener(window, 'load', startWhatcontainer);
var whatwords;
function startWhatcontainer() {
	whatwords = new YAHOO.widget.Overlay('tagdefine', {width:"165px", context:['gettagdefine', 'tl', 'bl'], zIndex:100, iframe:true});
	var closelink = ['closethisbox'];
	var triggerlink = ['gettagdefine'];
	$E.addListener(triggerlink, 'click', showWhatcontainer);
	$E.addListener(closelink, 'click', hideWhatcontainer);
}
function showWhatcontainer(e) {
	$E.preventDefault(e);
	whatwords.show();
	$E.removeListener(this, 'click', showWhatcontainer);
	$E.addListener(this, 'click', hideWhatcontainer);
}
function hideWhatcontainer(e) {
	var triggerlink = ['gettagdefine'];
	$E.addListener(triggerlink, 'click', showWhatcontainer);
	$E.preventDefault(e);
	whatwords.hide();
}
$E.addListener(window, 'load', startSendcontainer);
var sendbox;
function startSendcontainer() {
	sendbox = new YAHOO.widget.Overlay('sendToOptions', {width:"160px", context:['sendThisProduct', 'tr', 'br'], zIndex:100});
	var closelink = ['closesendbox'];
	var triggerlink = ['sendThisProduct'];
	$E.addListener(triggerlink, 'click', showSendcontainer);
	$E.addListener(closelink, 'click', hideSendcontainer);
}
function showSendcontainer(e) {
	$E.preventDefault(e);
	sendbox.show();
	$E.removeListener(this, 'click', showSendcontainer);
	$E.addListener(this, 'click', hideSendcontainer);
}
function hideSendcontainer(e) {
	$E.preventDefault(e);
	sendbox.hide();
	$E.removeListener(this, 'click', hideSendcontainer);
	$E.addListener(this, 'click', showSendcontainer);
}
var sendbox2;
function startSendcontainer2() {
	sendbox2 = new YAHOO.widget.Overlay('sendToOptions2', {width:"160px", context:['sendThisProduct2', 'tr', 'br'], zIndex:100});
	var closelink = ['closesendbox2'];
	var triggerlink = ['sendThisProduct2'];
	$E.addListener(triggerlink, 'click', showSendcontainer2);
	$E.addListener(closelink, 'click', hideSendcontainer2);
}
function showSendcontainer2(e) {
	$E.preventDefault(e);
	sendbox2.show();
	$E.removeListener(this, 'click', showSendcontainer2);
	$E.addListener(this, 'click', hideSendcontainer2);
}
function hideSendcontainer2(e) {
	$E.preventDefault(e);
	sendbox2.hide();
	$E.removeListener(this, 'click', hideSendcontainer2);
	$E.addListener(this, 'click', showSendcontainer2);
}

$E.addListener(window, 'load', startSendcontainer2);
$E.addListener(window, 'load', iminit);
document.write('<object classid="clsid:41695A8E-6414-11D4-8FB3-00D0B7730277" id="Ymsgr"  width="1" height="1"><span id="not_Ymsgr"></span></object>');
var immsg = "From Yahoo! Tech ";
function iminit(altimmsg) {
	if (altimmsg) {
		immsg = altimmsg;
	}
	var w, v;
	if (document.all) {
		v = document.all.not_Ymsgr;
	} else {
		v = $("not_Ymsgr");
	}
	if (v) {
		w = $("Ymsgr");
		if (w && w.offsetHeight) {
			msgr_installed = 1;
			msgr_version = "5";
			msgr_platform = "w32";
		} else {
			msgr_installed = 1;
		}
	} else {
		msgr_installed = 1;
		msgr_version = "5";
		msgr_platform = "w32";
	}
	if (navigator.mimeTypes && navigator.mimeTypes.length) {
		for (i = 0; i < navigator.mimeTypes.length; i++) {
			if (navigator.mimeTypes[i].suffixes.indexOf("yps") > -1) {
				msgr_installed = 1;
				msgr_version = "";
				msgr_platform = "";
				break;
			}
		}
	}
}
function hasMsgr() {
	var a = document.cookie;
	var b = a.split("; ");
	for (c = 0; c < b.length; c++) {
		var d = b[c].indexOf("=");
		var e = b[c].substring(0, d);
		var f = b[c].substring(d + 1);
		if (e == "C") {
			alert(f);
			var g = f.split("& ");
			for (h = 0; h < g.length; h++) {
				var i = g[h].indexOf("=");
				var j = g[h].substring(0, i);
				var k = g[h].substring(i + 1);
				if (j == "mg" && k == "1") {
					return true;
				}
			}
		}
	}
	return false;
}
function imStory(storyheadline, storylink) {
	var immsg = "Check this out from Yahoo Tech ";
	if (msgr_installed) {
		location.href = "ymsgr:im?msg=" + immsg + "+" + storyheadline + "+" + storylink;
	} else {
		if (confirm("")) {
			location.href = "http://testing;";
		}
	}
	return false;
}
function rrPaging(thisURL, pages, thispage, perpage, itemcount) {
	pages = 5;
	thispage = 2;
	var paging = "";
	for (var i = 1; i < pages + 1; i++) {
		var stro = " ";
		var strc = " ";
		if (thispage == i) {
			stro = " <strong>";
			strc = "</strong> ";
		}
		paging += stro + "<a href='" + thisURL + "'>" + i + "</a>" + strc;
	}
	document.write(paging);
}

$E.addListener(window, 'load', function () {
	var pops = document.getElementsByName("prodimg");
	var bigpopbox = $("slidebigimg");
	var thmstrip = $("allthumbs");
	if (thmstrip) {
		fadebox(0);
		bigpops = bigpopbox.getElementsByTagName("IMG");
		thms = thmstrip.getElementsByTagName("A");
		for (var i = 0; i < pops.length; i++) {
			$E.addListener(pops[i], 'click', wtf);
			if (pops[i].parentNode.className != "hd") {
				pops[i].i = i;
			}
		}
		for (var i = 0; i < thms.length; i++) {
			thms[i].i = i;
			bigpops[i].setAttribute("ID", "bigpop" + i);
			fadeimg(bigpops[i], 0);
		}
	}
});

function wtf() {
	var slidepop = $("slidepop");
	if (slidepop.style.display != "block" || this.parentNode.id == "allthumbs" || this.parentNode.id == "moreimgs") {
		fadebox(1);
		for (var i = 0; i < bigpops.length; i++) {
			bigpops[i].style.display = "none";
			fadeimg(bigpops[i], 0);
		}
		fadeimg(bigpops[this.i], 1);
	} else {
		if (this.parentNode.id != "allthumbs") {
			fadebox(0);
		}
	}
}
function fadebox(show) {
	f = $("slidepop");
	if (show) {
		f.style.display = "block";
	}
	justonce = false;
	attributes = (show) ? {opacity:{to:1}} : {opacity:{to:0}};
	boxanim = new $A(f, attributes, .4, YAHOO.util.Easing.easeOut);
	boxanim.onComplete.subscribe(function () {
		if (!justonce) {
			if (!show) {
				f.style.display = "";
			}
		}
	});
	boxanim.animate();
}
function fadeimg(el, show) {
	f = el;
	if (show) {
		f.style.display = "block";
	}
	attributes = (show) ? {opacity:{to:1}} : {opacity:{to:0}};
	var time = (show) ? .4 : .1;
	boxanim = new $A(f, attributes, time, YAHOO.util.Easing.easeOut);
	boxanim.animate();
}
var lastcolor;
var lastlen;
function checklength(obj, len, id) {
	var color = "#393";
	var count = "";
	if (obj.value.length >= len) {
		color = "red";
		obj.value = obj.value.substring(0, len);
	}
	if (obj.value.length != lastlen) {
		count = len - obj.value.length;
		$(id).innerHTML = count;
	}
	$(id).style.color = color;
	return;
}
function validZipCode(form) {
	var zipinput = $('zip');
	if (zipinput.value == "") {
		alert('Please enter a valid zip code');
		zipinput.select();
		return (false);
	}
	return (true);
}
function topratedInit() {
	var topcontainerID = "topPop";
	var tabflagsNAME = "CRtab";
	var contentcontainerID = "panels";
	var topbox = $(topcontainerID);
	if (topbox) {
		function swapPanels(e) {
			$E.preventDefault(e);
			for (var i = 0; i < tabs.length; i++) {
				tabs[i].parentNode.className = "";
			}
			var checkpanel = $(contentcontainerID).firstChild;
			while (checkpanel) {
				if (checkpanel.nodeName == "DIV") {
					checkpanel.style.display = "none";
				}
				checkpanel = checkpanel.nextSibling;
			}
			this.parentNode.className = "on";
			$(this.rel).style.display = "block";
			$("subset").innerHTML = this.innerHTML;
			return false;
		}
		var tabs = document.getElementsByName(tabflagsNAME);
		for (var i = 0; i < tabs.length; i++) {
			tabs[i].panelid = tabs[i].rel;
			$E.addListener(tabs[i], 'click', swapPanels);
		}
	}
}

function switchUp() {
	var basics = $('ytBasics');
	if (basics.className != 'wii') {
		basics.className = 'wii';
	} else {
		basics.className = 'ps3';
	}
	var switchUp = $('switchUp');
	$D.removeClass(switchUp, 'close');
	if (switchUp.className != 'open') {
		switchUp.className = 'open';
	} else {
		switchUp.className = 'close';
	}
}
$E.addListener(['ytResBasicToggle', 'rcCloseBasics'], 'click', switchUp);
function pageLoaders() {
	topratedInit();
}
$E.addListener(window, 'load', pageLoaders);
if (!YAHOO.ULT) {
	YAHOO.ULT = {};
}
if (!YAHOO.ULT.CONF) {
	YAHOO.ULT.CONF = {};
}
if (!YAHOO.ULT.BEACON) {
	YAHOO.ULT.BEACON = "http://geo.geo/";
}
if (!YAHOO.ULT.IMG) {
	YAHOO.ULT.IMG = new Image();
}
if (typeof (YAHOO.ULT.DEBUG) === "undefined") {
	YAHOO.ULT.DEBUG = 0;
}

YAHOO.ULT.DELIMITERS = {'/':'P',';':'1','?':'P','&':'1'};

(function () {
	var YLT = YAHOO.ULT;
	YLT.debug = function(m) {
		if (YLT.DEBUG) {
			if (!YLT.dwin || YLT.dwin.closed) {
				YLT.dwin = window.open("", "ult_debug_win", "scrollbars=yes,resizable=yes,height=600,width=800");
				YLT.dwin.name = "ult_debug_win";
				YLT.dwin.document.open("text/html");
				YLT.dwin.document.writeln("<pre>");
			}
			YLT.dwin.document.writeln("Y.ULT: " + m);
			YLT.dwin.scrollTo(0, 9e9);
		}
	};
	YLT.set_href = function(el, data, keyname) {
		if (data.html) {
			el.href = data[keyname];
			el.innerHTML = data.html;
		} else {
			el.href = data[keyname];
		}
	};
	YLT.strip_rd = function(u, data) {
		YLT.debug("strip rd " + u);
		var idx = u.indexOf('/**');
		if (idx != -1) {
			data.clean = u.substr(idx + 3);
			data.clean = decodeURIComponent(data.clean);
			YLT.debug("rd dest=" + data.clean);
		}
		return data;
	};
	YLT.strip = function(u) {
		var delims = YLT.DELIMITERS;
		var data = {url:u, clean:'', cookie:'', keys:[]};
		YLT.debug("strip: <code>" + u + "</code>");
		var loop = 0;
		var idx = 0;
		while (u.indexOf('_yl', idx) != -1) {
			var start = u.indexOf('_yl', idx);
			YLT.debug("strip: -----------------------------------------------------");
			YLT.debug("strip: *START* idx=" + idx + ", start=" + start);
			if (idx < start) {
				data.clean += u.slice(idx, start - 1);
			}
			idx = start + 3;
			YLT.debug("strip: clean=" + data.clean);
			YLT.debug("strip: start index=" + start);
			YLT.debug("strip: idx now=" + idx);
			YLT.debug("strip: start-1=" + u.charAt(start - 1));
			YLT.debug("strip: start+4=" + u.charAt(start + 4));
			if (delims[u.charAt(start - 1)] && u.charAt(start + 4) === '=') {
				data.ult = 1;
				var key = "_yl" + u.charAt(start + 3);
				YLT.debug("strip: key=" + key);
				var value = "";
				for (start = start + 5; start < u.length && !delims[u.charAt(start)]; start++) {
					YLT.debug("strip: ++++++ idx=" + idx + ", start=" + start);
					value += u.charAt(start);
					YLT.debug("strip: val=" + value);
				}
				data.keys.push(key);
				data[key] = value;
				if (key != '_ylv') {
					data.cookie += "&" + key + "=" + value;
				}
				if (delims[u.charAt(start)] && delims[u.charAt(start)] == 'P') {
					data.clean += u.charAt(start);
				}
				idx = start + 1;
			} else {
				data.clean += u.slice(start - 1, idx);
			}
			YLT.debug("strip: clean=" + data.clean);
			YLT.debug("strip: *END* idx=" + idx + ", start=" + start);
		}
		if (data.ult) {
			data.cookie = data.cookie.substr(1);
			data.clean += u.substr(idx);
			YLT.strip_rd(u, data);
		}
		return data;
	};
	YLT.clnclk = function(e, data) {
		var el = e.target || e.srcElement;
		YLT.debug("clnclk: =====================================================");
		YLT.debug("clnclk: " + data.cookie + ", ylv=" + data._ylv);
		YLT.debug("clnclk: dest " + data.clean);
		YLT.debug("clnclk: target " + data.target);
		if (el.target) {
			YLT.debug("clnclk: target property is " + el.target);
		}
		if (data._ylv == 3) {
			var cook = "D=" + data.cookie + "; Max-Age=10; Path=/; Domain=.yahoo.com";
			YLT.debug("clnclk: cookie=" + data.cookie);
			document.cookie = cook;
		} else {
			var src = YLT.BEACON + "?" + data.cookie + '&t=' + Math.random();
			YLT.debug("clnclk: beacon=" + src);
			if (e.altKey || e.ctrlKey || e.shiftKey || data.target == "_blank") {
				YLT.debug("clnclk: modifier key clicked or target set -> plain beacon");
			} else {
				YLT.IMG.onerror = YLT.IMG.onload = function () {
					YLT.debug(">>>>>>>>>>>>>>>>> image onload handler <<<<<<<<<<<<");
					location = data.clean;
				};
				YAHOO.util.Event.preventDefault(e);
			}
			YLT.IMG.src = src;
		}
	};
	YLT.clicked = function(e, data) {
		var el = e.target || e.srcElement;
		if (el.nodeName !== "A") {
			YLT.debug("clicked: parent nodeName " + el.parentNode.nodeName);
			if (el.parentNode.nodeName === "A") {
				el = el.parentNode;
			} else {
				YLT.debug("clicked: parent element not anchor!");
			}
		}
		YLT.debug("clicked: =====================================================");
		YLT.debug("clicked: " + data.cookie + ", ylv=" + data._ylv);
		YLT.debug("clicked: dest " + data.clean);
		YLT.debug("clicked: target " + data.target);
		if (el.target) {
			YLT.debug("clicked: target property is " + el.target);
		}
		if (data._ylv == 3) {
			YLT.set_href(el, data, "clean");
			var cook = "D=" + data.cookie + "; Max-Age=10; Path=/; Domain=.yahoo.com";
			YLT.debug("clicked: cookie=" + data.cookie);
			document.cookie = cook;
		} else if (e.altKey || e.ctrlKey || e.shiftKey) {
			YLT.debug("clicked: modifier key clicked, doing nothing");
		} else if (data._ylv == 8 || data._ylv == 9) {
			YLT.debug("clicked: respecting force redirect!!!");
			YLT.debug("clicked: dest " + data.url);
		} else {
			var src = YLT.BEACON + "?" + data.cookie + '&t=' + Math.random();
			YLT.debug("clicked: beacon=" + src);
			if (data.target == "_blank") {
				YLT.set_href(el, data, "clean");
			} else {
				YLT.IMG.onerror = YLT.IMG.onload = function () {
					YLT.debug(">>>>>>>>>>>>>>>>> image onload handler <<<<<<<<<<<<");
					location = data.clean;
				};
				YAHOO.util.Event.preventDefault(e);
			}
			YLT.IMG.src = src;
		}
	};
	YLT.revert = function(e, data) {
		YLT.debug("revert: ===================================================");
		YLT.debug("revert: switching to old url " + data.url);
		var el = e.target || e.srcElement;
		YLT.debug("revert: nodeName " + el.nodeName);
		if (el.nodeName === "A") {
			YLT.set_href(el, data, "url");
		} else {
			YLT.debug("revert: parent nodeName " + el.parentNode.nodeName);
			if (el.parentNode.nodeName === "A") {
				el.parentNode.href = data.url;
			} else {
				YLT.debug("revert: unable to reset url!");
			}
		}
	};
	YLT.clean = function() {
		YLT.debug("*************************** INIT *****************************");
		YLT.isSafari = '';
		YLT.isIE = '';
		YLT.isIE = (typeof (ActiveXObject) == 'function');
		if (navigator.userAgent.toLowerCase().indexOf("safari") != -1) {
			YLT.isSafari = true;
		}
		YLT.debug("isIE = " + YLT.isIE);
		YLT.debug("isSafari = " + YLT.isSafari);
		for (var i = 0; i < document.links.length; i++) {
			var el = document.links[i];
			YLT.debug("######################### NEW LINK #########################");
			YLT.debug("cleaning " + el);
			YLT.debug("classnames = " + el.className);
			if (el.className.indexOf('yltasis') != -1) {
				YLT.debug("   --- leaving link AS-IS per class config");
				continue;
			}
			YLT.debug(">              el.href=" + el.href);
			YLT.debug("> getAttribute(href,1)=" + el.getAttribute('href', 1));
			YLT.debug("> getAttribute(href,2)=" + el.getAttribute('href', 2));
			var data = YLT.strip(el.getAttribute('href', 2));
			var name;
			for (name in data) {
				YLT.debug("clean: data[" + name + "] = " + data[name]);
			}
			if (!data.ult) {
				YLT.debug("clean: NOT A ULT URL!!!");
				continue;
			} else if (YLT.isSafari && data._ylv != 3) {
				YLT.debug("clean: SAFARI and not able to use cookie, skipping!");
				continue;
			}
			for (name = 0; name < data.keys.length; name++) {
				if (data.keys[name] != '_ylv') {
					delete data[data.keys[name]];
				}
			}
			delete data.keys;
			delete data.ult;
			data.target = el.target;
			if (YLT.isIE && (el.innerHTML.indexOf('http') === 0 || el.className.indexOf('yltiefix') != -1)) {
				YLT.debug("IE hack for URL in innerHTML");
				data.html = el.innerHTML;
			}
			for (name in data) {
				YLT.debug(" * cleaned up: data[" + name + "] = " + data[name]);
			}
			YLT.set_href(el, data, "clean");
			if (YLT.CONF.cleanest) {
				YLT.debug("clean: CLEANEST URLs");
				YAHOO.util.Event.addListener(el, 'click', YLT.clnclk, data);
			} else {
				YAHOO.util.Event.addListener(el, 'click', YLT.clicked, data);
				YAHOO.util.Event.addListener(el, 'mousedown', YLT.revert, data);
			}
		}
	};
})();
YAHOO.ULT.clean();
