/*
 * Snooth Sidebar Search Module Activation Javascript v1.0
 * -------------------------------------------------------
 * copyright snooth, inc. 2006-2008
 */

(function(){

	var css = document.createElement('link');
	css.rel = 'stylesheet';
	css.type = 'text/css';
	css.href = 'http://www.snooth.com/template/css/snooth_sidebar.css';
	css.media = 'screen';
	document.getElementsByTagName('head')[0].appendChild(css)

	var ssform = document.getElementById('ssform');
	var sssrch = document.getElementById('sssrch');
	if(window.addEventListener) {
		ssform.addEventListener("submit", go_snooth, true);
		sssrch.addEventListener("focus", addfocus, true);
	}
	else {
		ssform.attachEvent("onsubmit", go_snooth);
		sssrch.attachEvent("onsubmit", addfocus);
	}

})()

function ssURLEncode(clearString) {
	var output = '';
	var x = 0;
	clearString = clearString.toString();
	var regex = /(^[a-zA-Z0-9_.]*)/;
	while (x < clearString.length) {
		var match = clearString.substr(x).match(regex);
		if (match != null && match.length > 1 && match[1] != '') {
			output += match[1];
			x += match[1].length;
		} else {
			if (clearString.charAt(x) == ' ')
				output += '+';
			else {
				var charCode = clearString.charCodeAt(x);
				var hexVal = charCode.toString(16);
				output += '%' + hexVal.toUpperCase();
			}
			x++;
		}
	}
	return output;
}

function ssstrip_accents(str) {
	var regex = [ /[\u2019]/g, /[\u201C-\u201D]/g,
	    /[\xC0-\xC2]/g, /[\xE0-\xE2]/g,
	    /[\xC8-\xCA]/g, /[\xE8-\xEB]/g,
	    /[\xCC-\xCE]/g, /[\xEC-\xEE]/g,
	    /[\xD2-\xD4]/g, /[\xF2-\xF6]/g,
	    /[\xD9-\xDB]/g, /[\xF9-\xFC]/g,
	    /[\xD1]/g, /[\xF1]/g,
	    /[\xC7]/g, /[\xE7]/g,
	    /[\xDF]/g];

	var unaccented = ['\'','"','A','a','E','e','I','i','O','o','U','u','N','n','C','c','ss'];

	for(var i = 0; i < regex.length; i++) {
		str = str.replace(regex[i], unaccented[i]);
	}

	return str;
}

function sstrim(str) {
	return str.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
}

function ssprepare_search(str) {
	return sstrim(ssURLEncode(sstrim(ssstrip_accents(str).replace(/#/,'').replace(/\//g, ' '))));
}

function go_snooth() {
	var srch = document.getElementById('sssrch').value;
	var dest = "http://www.snooth.com/wines/";
	if (srch != 'Search for Wine...') { 
		dest += ssprepare_search(srch) + "/";
	}
	var saff = document.getElementById('sssaff');
	if(saff != null) { dest += "?saff=" + saff.value; }
	window.location = dest;
	(arguments[0].preventDefault) ? arguments[0].preventDefault() : arguments[0].returnValue = false;
}

function addfocus() {
	var sssrch = document.getElementById('sssrch');
	sssrch.style.color = '#424242';
	if(sssrch.value == 'Search for Wine...') { sssrch.value = ''; }
}
