var SUN = YAHOO.namespace("sun");
SUN.util = { };
SUN.post = { };
SUN.items = { };
SUN.lang = { };
SUN.reviews = { };
SUN.checkout = { };
SUN.widgets = { };

SUN.widgets.arrow = function(id) {
	this.id = id;
	this.overlay = null;
};

SUN.widgets.arrow.prototype = {
	render: function() {
		var dom = YAHOO.util.Dom;
		var eve = YAHOO.util.Event;
		this.overlay = new YAHOO.widget.Overlay(this.id, { });
		this.overlay.setBody("This product is eligible for<br> a bulk discount");
		this.overlay.setFooter("");
		this.overlay.render(document.body);
		dom.addClass(this.id,"arrow");
		//
		this.overlay.cfg.setProperty("context", ["bulkStr", "tl", "tr", [], [1,	-10]]);
	}
};


SUN.util = {
	init: function() {
		var eve = YAHOO.util.Event;
		var dom = YAHOO.util.Dom;
		var lan = YAHOO.lang;
		//
		SUN.items.setupToggle();
		//
		var loginButton = dom.get("loginButton");
		if (lan.isValue(loginButton)) {
			eve.addListener(loginButton, "click", function() {
				//
				var loginError = "Please check your Email or Password";
				var loginWorking = "loginWorking";
				//
				var email = dom.get("email");
				var password = dom.get("password");
				var passwordEnc = dom.get("passwordEnc");
				if (email.value == "" || password.value == "") {
					SUN.util.error(loginError);
				} else {
					//
					var callback = {
						success: function(o) {
							var resp = SUN.util.parse(o);
							if (resp.result == 1) {
								if (resp.checkout == 1) {
									window.location = "/basket/checkout";
								} else if (resp.zendesk == 1) {
									window.location = resp.zendeskurl;
								} else if (resp.affiliate == 1) {
									window.location = resp.affiliateurl;
								} else if (_sun_prev == "") {
									window.location = "/home";
								} else {
									window.location = _sun_prev;
								}
							} else {
								var workObj = dom.get(loginWorking);
								dom.setStyle(workObj,"display","none");
								//
								dom.setStyle(loginButton,"display","");
								//
								SUN.util.error(loginError);
								//

							}
						},
						failure: function(o) {
						
						}
					}
					//
					passwordEnc.value = SUN.util.encrypt(password.value);
					var tmp = password.value;
					password.value = "";
					SUN.util.send("/inc/p.php",callback,"loginForm","loginButton", loginWorking);
					password.value = tmp;
				}
				return false;
			});
		}
		//////////
		var forgotWorking = "forgotWorking";
		var forgotButton = dom.get("forgotButton");
		if (lan.isValue(forgotButton)) {
			eve.addListener(forgotButton,"click",function() {
				var email = dom.get("email");
				if (email.value == "") {
					SUN.util.error("Please enter your email address");
				} else {
					var callback = {
						success: function(o) {
							var resp = SUN.util.parse(o);
							if (resp.result == 1) {
								email.value = "";
								var workObj = dom.get(forgotWorking);
								dom.setStyle(workObj,"display","none");
								dom.setStyle(forgotButton,"display","");
								SUN.util.notice("Your password reset request has been sent. You will be receiving an email shortly.");

							} else {
								var workObj = dom.get(forgotWorking);
								dom.setStyle(workObj,"display","none");
								dom.setStyle(forgotButton,"display","");
								SUN.util.error("Your email address was not found");
							}
						},
						failure: function(o) { }
					}
					//
					var handleYes = function(e) {
						SUN.util.send("/inc/p.php",callback,"forgotForm","forgotButton", forgotWorking);
						this.hide();
					};
					//
					var handleNo = function() {
						this.hide();
					};
					//
					SUN.util.simpleDlg("Are you sure you want to reset your password?", "Password Reset" ,handleYes, handleNo);

				}
			});
		}
		//////////
		var registerButton = dom.get("regButton");
		if (lan.isValue(registerButton)) {
			eve.addListener(registerButton,"click",function() {
				var dom = YAHOO.util.Dom;
				var lan = YAHOO.lang;
				var regErr1 = "Please verify your email and password";
				var regErr2 = "Please verify your passwords are equal";
				//
				var regErr3 = regErr2;
				var regErr4 = regErr1;
				var regErr5 = "The email you entered is not valid";
				var regErr6 = "The email you entered is already associated with an account";
				var regErr7 = "Please ensure your password is 6 to 12 characters long and contains no spaces";
				//
				var regWorking = "regWorking";
				//
				var rp1 = dom.get("rp1");
				var rp1Enc = dom.get("rp1Enc");
				var rp2 = dom.get("rp2");
				var rp2Enc = dom.get("rp2Enc");
				if (dom.get("re").value == "" || rp1.value == "" || rp2.value == "") {
					SUN.util.error(regErr1);
				} else if (rp1.value != rp2.value) {
					SUN.util.error(regErr2);
				} else {
					var regCallback = {
						success: function(o) {
							var resp = SUN.util.parse(o);
							if (resp.result == 1) {
								if (lan.isValue(resp.checkout)) {
									if (resp.checkout == 1) {
										window.location = "/basket/checkout";
									} else {
										window.location = "/home";
									}
								} else {
									window.location = "/home";
								}
							} else {
								if (resp.result == -3) {
									SUN.util.error(regErr3);
								} else if (resp.result == -4) {
									SUN.util.error(regErr4);
								} else if (resp.result == -5) {
									SUN.util.error(regErr5);
								} else if (resp.result == -6) {
									SUN.util.error(regErr6);
								} else if (resp.result == -7) {
									SUN.util.error(regErr7);
								} else {
									SUN.util.error(regErr1);
								}
								var workObj = dom.get(regWorking);
								dom.setStyle(workObj,"display","none");
								dom.setStyle(registerButton,"display","");
							}
						},
						failure: function(o) {
						
						}
					}
					//
					rp1Enc.value = SUN.util.encrypt(rp1.value);
					rp2Enc.value = SUN.util.encrypt(rp2.value);

					var rp1Tmp = rp1.value;
					var rp2Tmp = rp2.value;
					rp1.value = "";
					rp2.value = "";
					SUN.util.send("/inc/p.php",regCallback,"regForm","regButton",regWorking);
					rp1.value = rp1Tmp;
					rp2.value = rp2Tmp;
				}
				return false;
			});		
		}
		//
		var resetButton = dom.get("resetButton");
		if (lan.isValue(resetButton)) {
			eve.addListener(resetButton,"click",function() {
				var dom = YAHOO.util.Dom;
				var regErr1 = "Please verify your email and password";
				var regErr2 = "Please verify your passwords are equal";
				var regErr3 = regErr2;
				var regErr4 = regErr1;
				var regErr5 = "The email you entered is not valid";
				var regErr6 = "The email you entered is not associated with an account";
				var regErr7 = "Please ensure your password is 6 to 12 characters long and contains no spaces";
				//
				var resetWorking = "resetWorking";
				//
				var rp1 = dom.get("rp1");
				var rp1Enc = dom.get("rp1Enc");
				var rp2 = dom.get("rp2");
				var rp2Enc = dom.get("rp2Enc");
				if (dom.get("re").value == "" || rp1.value == "" || rp2.value == "") {
					SUN.util.error(regErr1);
				} else if (rp1.value != rp2.value) {
					SUN.util.error(regErr2);
				} else {
					var callback = {
						success: function(o) {
							var resp = SUN.util.parse(o);
							if (resp.result == 1) {
								SUN.util.notice("Your password was successfully changed.  You can go ahead and login.");
								var workObj = dom.get(resetWorking);
								dom.setStyle(workObj,"display","none");
								dom.setStyle(resetButton,"display","");
								rp1.value = "";
								rp2.value = "";
								dom.get("re").value = "";
							} else {
								if (resp.result == -3) {
									SUN.util.error(regErr3);
								} else if (resp.result == -4) {
									SUN.util.error(regErr4);
								} else if (resp.result == -5) {
									SUN.util.error(regErr5);
								} else if (resp.result == -6) {
									SUN.util.error(regErr6);
								} else if (resp.result == -7) {
									SUN.util.error(regErr7);
								} else {
									SUN.util.error(regErr1);
								}
								var workObj = dom.get(resetWorking);
								dom.setStyle(workObj,"display","none");
								dom.setStyle(resetButton,"display","");
							}
						},
						failure: function(o) { }
					}
					//
					rp1Enc.value = SUN.util.encrypt(rp1.value);
					rp2Enc.value = SUN.util.encrypt(rp2.value);
					var rp1Tmp = rp1.value;
					var rp2Tmp = rp2.value;
					rp1.value = "";
					rp2.value = "";
					SUN.util.send("/inc/p.php",callback,"resetForm","resetButton",resetWorking);
					rp1.value = rp1Tmp;
					rp2.value = rp2Tmp;
				}
				return false;
			});		
		}

	},
	encrypt: function(s) {
		setMaxDigits(19);
		var key = new RSAKeyPair("34e4114082cc8320ed92c2da7be310b9", "", "782db5f6aaec512828b145c5f23e526f");
		var sl = s.length;
		var i = 0;
		var j = 1;
		var a = "";
		while (i < sl) {
			if ((i+1) % key.chunkSize == 0) {
				a += "\x01";
				j++;
			}
			a += s.charAt(i);
			i++;
		}
		if ((i+1) % key.chunkSize != 0 || (i+1) == (key.chunkSize * j)) {
			a += "\x01";
		}
		return encryptedString(key,a);
	},
	error: function(msg) {
		try {
			var errorId = "errorBox";
			var errorId2 = "errorBox2";
			var lan = YAHOO.lang;
			var dom = YAHOO.util.Dom;
			if (lan.isValue(msg)) {
				var errorObj = dom.get(errorId);
				if (msg == "") {
					dom.setStyle(errorObj,"display","none");
				} else {
					errorObj.innerHTML = "<p>" + msg + "</p>";
					dom.setStyle(errorObj,"display","block");
				}
				var errorObj2 = dom.get(errorId2);
				if (lan.isValue(errorObj2)) {
					if (msg == "") {
						dom.setStyle(errorObj2,"display","none");
					} else {
						errorObj2.innerHTML = "<p>" + msg + "</p>";
						dom.setStyle(errorObj2,"display","block");
					}
				}
			}
		} catch (e) { }
	},
	notice: function(msg) {
		var noticeId = "noticeBox";
		var lan = YAHOO.lang;
		var dom = YAHOO.util.Dom;
		if (lan.isValue(msg)) {
			var noticeObj = dom.get(noticeId);
			if (msg == "") {
				dom.setStyle(noticeObj,"display","none");
			} else {
				noticeObj.innerHTML = "<p>" + msg + "</p>";
				dom.setStyle(noticeObj,"display","block");
			}
		}
	},
	parse: function(o) {
		var resp = [];
		if(o.responseText !== undefined){
			try {
				resp = YAHOO.lang.JSON.parse(o.responseText);
				YAHOO.log(o.responseText);
			} catch (x) {
				YAHOO.log("json parse failed","error");
				resp = null;
			}
		} else {
			YAHOO.log("con-wait: blank response","warn");
			resp = null;
		}
		return resp;
	},
	send: function(url, callback, formId, buttonId, workId) {
		//
		var dom = YAHOO.util.Dom;
		var con = YAHOO.util.Connect;
		con.initHeader('X-Signature', _sun_sid);
		//
		SUN.util.error("");
		//
		if (YAHOO.lang.isValue(workId)) {
			var workObj = dom.get(workId);
			dom.setStyle(workObj,"display","inline");
		}
		//
		if (YAHOO.lang.isValue(buttonId)) {
			var butObj = dom.get(buttonId);
			dom.setStyle(butObj,"display","none");
		}
		//
		var cBackSend = null;
		if (YAHOO.lang.isValue(callback)) {
			cBackSend = callback;
		}
		//
		if (YAHOO.lang.isValue(formId)) {
			var formObject = document.getElementById(formId);
			con.setForm(formObject);
		}
		//
		var cObj = con.asyncRequest('GET', url, cBackSend);
	},
	simpleDlg: function(dlgText, dlgTitle, handleYes, handleNo) {
		//
		var dom = YAHOO.util.Dom;
		var dlgName = "simpleDlg";
		var dlg = new YAHOO.widget.SimpleDialog(dlgName, 
			{	width: "400px", fixedcenter: true, visible: false, modal: true, draggable: false,
				close: true, 
				text: dlgText, 
				icon: YAHOO.widget.SimpleDialog.ICON_HELP,
				constraintoviewport: true, 
				buttons: [ 
					{ text:"Yes", handler:handleYes },
					{ text:"No",  handler:handleNo, isDefault:true }
				]
			} );
		//
		var workObj = dom.get("simpleDlgWork");
		dom.setStyle(workObj,"display","none");
		//
		dlg.setHeader(dlgTitle);
		dlg.render();
		dom.setStyle(dlgName + "_c","z-index", 5);
		dlg.show();
	}
};

SUN.post = {
	login: function(email, password) {
		var errorId = "errorBox";
		var lan = YAHOO.lang;
		var dom = YAHOO.util.Dom;
		if (lan.isValue(msg)) {
			var errorObj = dom.get(errorId);
			if (msg == "") {
				dom.setStyle(errorObj,"display","none");
			} else {
				errorObj.innerHTML = "<p>" + msg + "</p>";
				dom.setStyle(errorObj,"display","block");
			}
		}
	}
};

SUN.account = {
	requireLogin: function() {
		var handleYes = function(e) {
			window.location = '/account'
			this.hide();
		};
		//
		var handleNo = function() {
			this.hide();
		};
		//
		SUN.util.simpleDlg("This action requires you to login. Would you like to login now?", "Login Required" ,handleYes, handleNo);
	},
	changePassword: function() {
		//
		var eng = SUN.lang.en;
		var dom = YAHOO.util.Dom;
		var eve = YAHOO.util.Event;
		//
		var curPass = dom.get("curPass");
		var curPassEnc = dom.get("curPassEnc");
		var newPass1 = dom.get("newPass1");
		var newPass1Enc = dom.get("newPass1Enc");
		var newPass2 = dom.get("newPass2");
		var newPass2Enc = dom.get("newPass2Enc");
		//
		if (curPass.value == '' || newPass1.value == '' || newPass2.value == '') {
			SUN.util.error(eng.passErr);
		} else if (newPass1.value != newPass2.value) { 
			SUN.util.error(eng.passSame);
		} else if (newPass1.value.length <= 5 || newPass1.value.length > 12) {
			SUN.util.error(eng.passBad);
		} else {
			//
			var handleYes = function(e) {
				dlg = this;
				var tar = eve.getTarget(e);
				tar.disabled = true;
				//
				var callback = {
					success: function(o) {
						var resp = SUN.util.parse(o);
						if (resp.result == 1) {
							SUN.util.notice(eng.passSucc);
							// clear what was there
							curPass.value = '';
							newPass1.value = '';
							newPass2.value = '';
						} else if (resp.result == -2) {
							SUN.util.error(eng.error);
						} else if (resp.result == -3) { 
							SUN.util.error(eng.passInco);
						} else if (resp.result == -4) { 
							SUN.util.error(eng.passBad);
						} else if (resp.result == -5) { 
							SUN.util.error(eng.error);
						} else {
							SUN.util.error(eng.error);
						}
						dlg.hide();
					},
					failure: function(o) {
						dlg.hide();
					}
				}
				//
				curPassEnc.value = SUN.util.encrypt(curPass.value);
				newPass1Enc.value = SUN.util.encrypt(newPass1.value);
				newPass2Enc.value = SUN.util.encrypt(newPass2.value);
				//
				var tmpCurr = curPass.value;
				var tmpPas1 = newPass1.value;
				var tmpPas2 = newPass2.value;
				//
				curPass.value = '';
				newPass1.value = '';
				newPass2.value = ''
				//
				SUN.util.send("/inc/p.php",callback,"passForm",null, "simpleDlgWork");
				//
				curPass.value = tmpCurr;
				newPass1.value = tmpPas1;
				newPass2.value = tmpPas2;

			};
			//
			var handleNo = function() {
				this.hide();
			};
			//
			SUN.util.simpleDlg("Are you sure you want to change your password?", "Password Change" ,handleYes, handleNo);
		}
	},
	changeEmail: function() {
		var eng = SUN.lang.en;
		var dom = YAHOO.util.Dom;
		var eve = YAHOO.util.Event;
		//
		var password = dom.get("password");
		var passwordEnc = dom.get("passwordEnc");
		//
		if (dom.get("email").value == '' && password.value == '') {
			SUN.util.error(eng.emailPassInv);
		} else {
			//
			var handleYes = function(e) {
				dlg = this;
				var tar = eve.getTarget(e);
				tar.disabled = true;
				//
				var callback = {
					success: function(o) {
						var resp = SUN.util.parse(o);
						if (resp.result == 1) {
							SUN.util.notice(eng.emailSucc);
							// clear what was there
							dom.get("email").value = '';
							dom.get("password").value = '';
						} else if (resp.result == -2) {
							SUN.util.error(eng.error);
						} else if (resp.result == -3) { 
							SUN.util.error(eng.emailPassInco);
						} else if (resp.result == -4) { 
							SUN.util.error(eng.emailBad);
						} else {
							SUN.util.error(eng.error);
						}
						dlg.hide();
					},
					failure: function(o) {
						dlg.hide();
					}
				}
				//
				passwordEnc.value = SUN.util.encrypt(password.value);
				var tmpPass = password.value;
				password.value = '';
				SUN.util.send("/inc/p.php",callback,"emailForm",null, "simpleDlgWork");	
				password.value = tmpPass;
			};
			//
			var handleNo = function() {
				this.hide();
			};
			//
			SUN.util.simpleDlg("Are you sure you want to change your email?", "Email Change" ,handleYes, handleNo);
		}

	}

};

SUN.refund = {
	process: function(t, butn) {
		var dom = YAHOO.util.Dom;
		var eve = YAHOO.util.Event;
		//
		var handleYes = function(e) {
			refundDlg = this;
			var tar = eve.getTarget(e);
			tar.disabled = true;
			//
			var callback = {
				success: function(o) {
					var resp = SUN.util.parse(o);
					if (resp.result == 1) {
						butn.disabled = true;
						SUN.util.notice("Your refund for Order " + t + " has been sent.   An email with details will be sent to you shortly.");
					} else {
						SUN.util.error("An error occured.  Please contact us.");
					}
					refundDlg.hide();
				},
				failure: function(o) {
					refundDlg.hide();
				}
			}
			//
			SUN.util.send("/inc/p.php?type=refund&order=" + t,callback,null,null,"simpleDlgWork");
		};
		var handleNo = function() {
			this.hide();
		};
		//
		SUN.util.simpleDlg("Are you sure you want to refund order " + t + "?", "Refund Order Confirmation", handleYes, handleNo);
	}
};

SUN.items = {
	setupToggle: function() {
		var dom = YAHOO.util.Dom;
		var eve = YAHOO.util.Event;
		var elements = dom.getElementsByClassName("toggleDesc", "div", null, null, null, null);
		for (var i=0; i < elements.length; i++) {
			
			eve.on(elements[i],"click",function(tgt) {
				var elTarget = eve.getTarget(tgt);
				var isLink = false;
				while (elTarget.className != "toggleDesc") {
					if (elTarget.nodeName.toUpperCase() == "A") {
						isLink = true;
					}
					elTarget = elTarget.parentNode;
				}
				if (isLink) {
					var longSpan = null;
					var shortSpan = null;
					var moreSpan = null;
					var lessSpan = null;
					var children = elTarget.childNodes;
					for (var j=0; j < children.length; j++) {
						var cn = children[j].className;
						if (cn == "long") {
							longSpan = children[j]
						} else if (cn == "short") {
							shortSpan = children[j]
						} else if (cn == "more") {
							moreSpan = children[j]
						} else if (cn == "less") {
							lessSpan = children[j]
						}
						//
					}
					//dom.setStyle(shortSpan,"display","none");
					if (dom.getStyle(lessSpan,"display") == "none") {
						dom.setStyle(longSpan,"display","block");
						dom.setStyle(lessSpan,"display","block");
						dom.setStyle(moreSpan,"display","none");
					} else {
						
						dom.setStyle(longSpan,"display","none");
						dom.setStyle(lessSpan,"display","none");
						dom.setStyle(moreSpan,"display","block");
					}
				}
			});
		}
	}
};

YAHOO.util.Event.onDOMReady(function() {
	var dom = YAHOO.util.Dom;
	var eve = YAHOO.util.Event;
	var lan = YAHOO.lang;
	//
	var closeBoxShip = YAHOO.util.Dom.get("closeBoxShip");
	if (lan.isValue(closeBoxShip)) {
		YAHOO.util.Event.addListener("closeBoxShip","click", function (e) {
			dom.setStyle("freeShipBoxDiv","display","none");
			var callback = {
				success: function(o) { }, failure: function(o) { }
			}
			SUN.util.send("/inc/p.php?type=property&key=closeBoxShip&val=off",callback,null,null,null);
		});
	}
});

YAHOO.util.Event.onDOMReady(function() {
	var dom = YAHOO.util.Dom;
	var eve = YAHOO.util.Event;
	var lan = YAHOO.lang;
	//
	var closeBoxShip = YAHOO.util.Dom.get("closeBoxOffer");
	if (lan.isValue(closeBoxShip)) {
		YAHOO.util.Event.addListener("closeBoxOffer","click", function (e) {
			dom.setStyle("closeBoxCampOffer","display","none");
		});
	}
});

YAHOO.util.Event.onDOMReady(function() {
	var eve = YAHOO.util.Event;
	var dom = YAHOO.util.Dom;
	var lan = YAHOO.lang;
	//
	//var myLogReader = new YAHOO.widget.LogReader();
	SUN.util.init();
	favicon.change("/static/trees.ico");
	//
	var noticeBox = YAHOO.util.Dom.get("noticeBox");
	if (lan.isValue(noticeBox)) {
		if (!dom.hasClass(noticeBox,"stop")) {
			var attributes = {opacity: {from: 1, to: 0 }};
			var myAnim = new YAHOO.util.Anim(noticeBox, attributes);
			myAnim.onComplete.subscribe(function() {
				dom.setStyle(noticeBox,"display","none");
			});
			setTimeout(function() {
				myAnim.animate();
			},20000);
		}
	}
});
	
YAHOO.util.Event.onDOMReady(function() {
    var Dom = YAHOO.util.Dom;
	var Env = YAHOO.env.ua;
	//
	var enterKey = new YAHOO.util.KeyListener("search",{keys:13},handleSearch);
	enterKey.enable();
	YAHOO.util.Event.addListener("searchBtn","click", handleSearch);
	//
	var input = YAHOO.util.Dom.get("search");
	var isClicked = false;
	var initTxt = "Enter Keyword";
	YAHOO.util.Event.addListener(input,"click", function() {
		if (input.value == "Search High Park Nutrition") {
			input.value = "";
			isClicked = true;
		}
	});
	//
	YAHOO.util.Event.addListener(input,"focusin", function() {
		if (input.value == "Search High Park Nutrition") {
			input.value = "";
			isClicked = true;
		}
	});
	//
	YAHOO.util.Event.addListener(input,"focusout", function() {
		if (input.value == "") {
			input.value = initTxt;
			isClicked = false;
		}
	});
	//
	//var myLogReader = new YAHOO.widget.LogReader();
	var oDS = new YAHOO.util.XHRDataSource("/inc/s.php"); 
    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_JSON;
    oDS.responseSchema = {
        resultsList : "ResultSet.Result",
        fields : ["Title", "Type", "Id"]
    };
    var oAC = new YAHOO.widget.AutoComplete("search", "searchAutoComp", oDS);
    oAC.queryDelay = .1;
	oAC.maxResultsDisplayed = 12;
	if (Env.ie == 6) {
		oAC.useIFrame = true;
	}
	//
    oAC.generateRequest = function(sQuery) {
        return "?query=" + sQuery ;
    };
	//
	oAC.itemSelectEvent.subscribe(function(sType, aArgs) {
		var data = aArgs[2];
		var title = data[0];
		var type = data[1];
		var id = data[2];
		if (type == 1) {
			window.location = "/search/category/" + id;
		} else if (type == 2) {
			window.location = "/search/brand/" + id;
		}
		return false;
	});
	//
	oAC.doBeforeExpandContainer = function() {		
		if (Env.ie > 0) {
			Dom.setStyle("searchAutoComp", "left", Dom.getX("headSearchDiv"));
		} else {
			Dom.setStyle("searchAutoComp", "left", "");
		}
		return true;
		
	};

	oAC.itemSelectEvent.subscribe(function() {
		handleSearch();
	}); 
	//
	oAC.autoHighlight = false;
	oAC.forceSelection = false;
	oAC.typeAhead = false;
	
	oAC.formatResult = function(oResultData, sQuery, sResultMatch) {
		var result = "";
        var query = sQuery.toLowerCase();
		var title = oResultData[0];
		var type = oResultData[1];
		var id = oResultData[2];
		var matchIndex = title.toLowerCase().indexOf(query);
		if (matchIndex > -1 && type == 0) {
			result = highlightMatch(title, query, matchIndex);
		} else {
			if (type == 1) {
				result = "<span class='auto-label'>Go to category</span> " + title;
			} else if (type == 2) {
				result = "<span class='auto-label'>Go to brand</span> " + title;
			} else {
				result = title;
			}
		}
		return result;
	};

    // Helper function for the formatter
    var highlightMatch = function(full, snippet, matchindex) {
        return "<span class='auto-full'>" + full.substring(0, matchindex) + 
                "<span class='auto-match'>" + 
                full.substr(matchindex, snippet.length) + 
                "</span>" +
                full.substring(matchindex + snippet.length) + "</span>";
    };
	
	//
	function handleSearch() {
		var url = "/search/";
		var org = url;
		var term = input.value;
		if (term == initTxt) {
			term = "";
		}
		var temp = new Array();
		temp = term.split(" ");
		for (var i = 0; i < temp.length; i++) {
			url = url + Url.encode(temp[i]) + "+";
		}
		if (url != org) {
			url = url.substring(0,url.length - 1);
		}
		window.location = url;
		return false;
	}
});

function fbs_click() {
	u=location.href;
	t=document.title;
	window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
	return false;
}

/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/
 
var Url = {
 
	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},
 
	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},
 
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}

SUN.lang.en = {
	passSucc: "Your password was successfully changed, happy shopping!",
	passInco: "The existing password you entered is incorrect.  Please try again.",
	passBad: "Your new password must be between 6 to 12 characters long and contain only letters/numbers",
	passSame: "Please verify your new password is re-typed correctly",
	passErr: "Please verify your passwords",
	//
	error: "An error occured.  Please contact us.",
	//
	emailPassInco: "The password you entered is incorrect",
	emailBad: "The email address you entered is not valid",
	emailSucc: "Your email address was successfully changed, happy shopping!",
	emailPassInv: "Please enter your new email address and existing password",
	//
	reviewFill: "Please fill in the fields to submit your review",
	reviewSent: "Good stuff, your review has been submited and will appear shortly",
	//
	couponErr: "The coupon code you entered is invalid"
};
