/*
 * jQuery Autocomplete plugin 1.1
 *
 * Copyright (c) 2009 Jörn Zaefferer
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
 */
(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?10:150},options);options.highlight=options.highlight||function(value){return value;};options.formatMatch=options.formatMatch||options.formatItem;return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);var blockSubmit;$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false;}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){hasFocus=1;lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}
break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}
break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}
break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}
break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:if(selectCurrent()){event.preventDefault();blockSubmit=true;return false;}
break;case KEY.ESC:select.hide();break;default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i<data.length;i++){if(data[i].result.toLowerCase()==q.toLowerCase()){result=data[i];break;}}}
if(typeof fn=="function")fn(result);else $input.trigger("result",result&&[result.data,result.value]);}
$.each(trimWords($input.val()),function(i,value){request(value,findValueCallback,findValueCallback);});}).bind("flushCache",function(){cache.flush();}).bind("setOptions",function(){$.extend(options,arguments[1]);if("data"in arguments[1])cache.populate();}).bind("unautocomplete",function(){select.unbind();$input.unbind();$(input.form).unbind(".autocomplete");});function selectCurrent(){var selected=select.selected();if(!selected)return false;var v=selected.result;previousValue=v;if(options.multiple){var words=trimWords($input.val());if(words.length>1){var seperator=options.multipleSeparator.length;var cursorAt=$(input).selection().start;var wordAt,progress=0;$.each(words,function(i,word){progress+=word.length;if(cursorAt<=progress){wordAt=i;return false;}
progress+=seperator;});words[wordAt]=v;v=words.join(options.multipleSeparator);}
v+=options.multipleSeparator;}
$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}
function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}
var currentValue=$input.val();if(!skipPrevCheck&&currentValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value)return[""];if(!options.multiple)return[$.trim(value)];return $.map(value.split(options.multipleSeparator),function(word){return $.trim(value).length?$.trim(word):null;});}
function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);if(words.length==1)return words[0];var cursorAt=$(input).selection().start;if(cursorAt==value.length){words=trimWords(value)}else{words=trimWords(value.replace(value.substring(cursorAt),""));}
return words[words.length-1];}
function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$(input).selection(previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}else{$input.val("");$input.trigger("result",null);}}});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){row=row.split("|");parsed[parsed.length]={data:row,value:row[0],result:options.formatResult&&options.formatResult(row,row[0])||row[0]};}}
return parsed;};function stopLoading(){$input.removeClass(options.loadingClass);};};$.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(row){return row[0];},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(value,term){return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(options.matchContains=="word"){i=s.toLowerCase().search("\\b"+sub.toLowerCase());}
if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}
if(!data[q]){length++;}
data[q]=value;}
function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i<ol;i++){var rawValue=options.data[i];rawValue=(typeof rawValue=="string")?[rawValue]:rawValue;var value=options.formatMatch(rawValue,i+1,options.data.length);if(value===false)continue;var firstChar=value.charAt(0).toLowerCase();if(!stMatchSets[firstChar])stMatchSets[firstChar]=[];var row={value:value,data:rawValue,result:options.formatResult&&options.formatResult(rawValue)||value};stMatchSets[firstChar].push(row);if(nullData++<options.max){stMatchSets[""].push(row);}};$.each(stMatchSets,function(i,value){options.cacheLength++;add(i,value);});}
setTimeout(populate,25);function flush(){data={};length=0;}
return{flush:flush,add:add,populate:populate,load:function(q){if(!options.cacheLength||!length)return null;if(!options.url&&options.matchContains){var csub=[];for(var k in data){if(k.length>0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}
return csub;}else
if(data[q]){return data[q];}else
if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}
return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("<div/>").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("<ul/>").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)element.css("width",options.width);needsInit=false;}
function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}
function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset<list.scrollTop()){list.scrollTop(offset);}}};function movePosition(step){active+=step;if(active<0){active=listItems.size()-1;}else if(active>=listItems.size()){active=0;}}
function limitNumberOfItems(available){return options.max&&options.max<available?options.max:available;}
function fillList(){list.empty();var max=limitNumberOfItems(data.length);for(var i=0;i<max;i++){if(!data[i])continue;var formatted=options.formatItem(data[i].data,i+1,max,data[i].value,term);if(formatted===false)continue;var li=$("<li/>").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}
listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}
if($.fn.bgiframe)list.bgiframe();}
return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.fn.selection=function(start,end){if(start!==undefined){return this.each(function(){if(this.createTextRange){var selRange=this.createTextRange();if(end===undefined||start==end){selRange.move("character",start);selRange.select();}else{selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}}else if(this.setSelectionRange){this.setSelectionRange(start,end);}else if(this.selectionStart){this.selectionStart=start;this.selectionEnd=end;}});}
var field=this[0];if(field.createTextRange){var range=document.selection.createRange(),orig=field.value,teststring="<->",textLength=range.text.length;range.text=teststring;var caretAt=field.value.indexOf(teststring);field.value=orig;this.selection(caretAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}else if(field.selectionStart!==undefined){return{start:field.selectionStart,end:field.selectionEnd}}};})(jQuery);
/*
 * jQuery Color Animations
 * Copyright 2007 John Resig
 * Released under the MIT and GPL licenses.
 */
(function(jQuery){jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(fx.state==0){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);}
fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)
return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];return colors[jQuery.trim(color).toLowerCase()];}
function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))
break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};var colors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]};})(jQuery);function animateBorderColor(element,color,speed)
{element.animate({borderTopColor:color},speed);element.animate({borderLeftColor:color},speed);element.animate({borderRightColor:color},speed);element.animate({borderBottomColor:color},speed);}
jQuery.fn.outerHTML = function() {
    return $('<div></div>').append( this.clone() ).html();
}
/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
/*
 * jQuery resize event - v1.1 - 3/14/2010
 * http://benalman.com/projects/jquery-resize-plugin/
 *
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);


/*
* RC Willey home grown
* Copyright 2010 RC Willey Home Furnishings
*/
function showFadingMessageWindow(message,duration,opacity)
{
    if(!document.getElementById||
	!document.createElement||
	!document.getElementsByTagName){
	return;
    }
    var i,j;
    var messageWindow = document.getElementById("messageWindow");
    if (messageWindow == null)
    {
	messageWindow=document.createElement('div');
	messageWindow.id='messageWindow';
	document.getElementsByTagName('body')[0].appendChild(messageWindow);
    }
    messageWindow.innerHTML=message;
    messageWindow.style.top='0';
    var width = Math.min(400,$(document).width()*.7);
    messageWindow.style.width=width + "px";
    messageWindow.style.left=(($(document).width()-width)/2) + "px";
    messageWindow.style.opacity=opacity/100;
    messageWindow.style.filter="alpha(opacity:"+opacity+")";
    messageWindow.style.visibility='visible';
    window.setTimeout("fadeElement('"+messageWindow.id+"',-.02, 0)",duration);
}
var fadeOutEndFunction=null;
var fadeInEndFunction=null;
function fadeElement(id,step,stopAt,startAt)
{
    var element=document.getElementById(id);
    if(startAt==null)
    {
	startAt=element.style.opacity;
    }
    if(step>0)
    {
	if(startAt==0)
	{
	    element.style.visibility="visible";
	}
	if(startAt>=stopAt)
	{
	    if(fadeInEndFunction!=null)
	    {
		fadeInEndFunction();
	    }
	    return;
	}
    }
    else
    {
	if(startAt<=stopAt)
	{
	    if(stopAt==0)
	    {
		element.style.visibility="hidden";
		if(fadeOutEndFunction!=null)
		{
		    fadeOutEndFunction();
		}
	    }
	    return;
	}
    }
    startAt+=step;
    element.style.opacity=startAt;
    element.style.filter="alpha(opacity:"+(element.style.opacity*100)+")";
    window.setTimeout("fadeElement('"+id+"',"+step+","+
	stopAt+","+startAt+")",20);
}
function ajaxGet(url)
{
    var xmlHttp;
    try
    {
	xmlHttp=new XMLHttpRequest();
    }
    catch(e)
    {
	try
	{
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
	    try
	    {
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    catch(e)
	    {
		alert("Your browser does not support AJAX!");
		return false;
	    }
	}
    }
    xmlHttp.onreadystatechange=function()
    {
	if(xmlHttp.readyState==4)
	{
	    ajaxGetResponse=xmlHttp.responseText;
	}
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}
function formatCurrency(amount)
{
    var i=parseFloat(amount);
    if(isNaN(i)){
	i=0.00;
    }
    var minus='';
    if(i<0){
	minus='-';
    }
    i=Math.abs(i);
    i=parseInt((i+.005)*100);
    i=i/100;
    s=new String(i);
    if(s.indexOf('.')<0){
	s+='.00';
    }
    if(s.indexOf('.')==(s.length-2)){
	s+='0';
    }
    s=minus+s;
    return s;
}
var menuCloseTimer=null;
var menuOpenTimer=null;
var openMenu=null;
var menuEventTarget=null;
function menuHover(event)
{
    cancelLeftTimer();
    if(menuEventTarget)
    {
	if ($.browser.mozilla)
	{
	    $(menuEventTarget).css("background-position",
		$(menuEventTarget).css("background-position").replace("-74px","-41px"));
	}
	else
	{
	    $(menuEventTarget).css("background-position-y", "-41px");
	}
		
    }
    menuEventTarget=event.target;
    if(!menuEventTarget)
    {
	menuEventTarget=event.srcElement;
    }
    if(openMenu!=null||menuCloseTimer!=null)
    {
	showMenu();
    }
    else if(menuOpenTimer==null)
    {
	menuOpenTimer=window.setTimeout(showMenu,400);
    }
}
function showMenu()
{
    menuOpenTimer=null;
    var newMenu=document.getElementById(menuEventTarget.id+'Menu');
    if(newMenu)
    {
	if(openMenu)
	    $('#'+openMenu.id).hide();
	$(newMenu).css("left", $(menuEventTarget).position().left);
	$('#'+menuEventTarget.id+'Menu').fadeTo(100,.92);
	if ($.browser.mozilla)
	{
	    $(menuEventTarget).css("background-position",
		$(menuEventTarget).css("background-position").replace("-41px","-74px"));
	}
	else
	{
	    $(menuEventTarget).css("background-position-y", "-74px");
	}
	openMenu=newMenu;
    }
}
function hideMenu()
{
    if(openMenu)
    {
	$('#'+openMenu.id).fadeOut(300);
	if ($.browser.mozilla)
	{
	    $(menuEventTarget).css("background-position",
		$(menuEventTarget).css("background-position").replace("-74px","-41px"));
	}
	else
	{
	    $(menuEventTarget).css("background-position-y", "-41px");
	}
	openMenu=null;
    }
}
function leftMenu()
{
    window.clearTimeout(menuOpenTimer);
    menuOpenTimer=null;
    menuCloseTimer=window.setTimeout(hideMenu,500);
}
function cancelLeftTimer()
{
    if(menuCloseTimer)
    {
	window.clearTimeout(menuCloseTimer);
	menuCloseTimer=null;
    }
}
document.onclick=hideMenu;
$(document).unload(function()
{
    if('${kiosk}'!='')
    {
	var i;
	for(i=0;(i<document.forms.length);i++){
	    document.forms[i].reset();
	}
    }
});
$().ready(function(){
    var sb = $("#searchBox");
    try{
	sb.autocomplete('/SearchAutoCompleteAction.jsp',{
	    matchContains:false,
	    minChars:1,
	    selectFirst:false,
	    width:170
	})
    }
    catch(ex)
    {}
});
function startProductSuggestions(count, vertical)
{
    // Wait for slow layouts
    $("#productSuggestionArea").animate({
	'pause':0
    },200,
    function(){
	layoutProductSuggestions(count,vertical)
    });
}
function layoutProductSuggestions(count, vertical)
{
    var topPad =
    parseInt($("#productSuggestionArea").css("paddingTop")
	.replace('px',''));
    var suggestHeight = $("#suggestionTemplate").height() + (vertical?10:0)
    var suggestWidth = $("#suggestionTemplate").width();
    if (count == null)
    {
	var h = $("#productSuggestionContainer").height() -
	$("#productSuggestionHeader").height();
	count = Math.min(Math.floor((h-topPad)/suggestHeight),20);
    }
    var html = '';
    for(var i=0;i<count;i++)
    {
	html += '<div id="suggestion' + i + '" class="suggestion"';
	if (vertical)
	    html += ' style="top:' + (i*suggestHeight+topPad) + 'px'
	else
	    html += ' style="left:' + (i*suggestWidth) + 'px'
	if (i == count-1)
	    html += ';border:0 !important'
	html += '"></div>\n';
    }
    $("#productSuggestionAreaBorder").html(html)
    refreshProductSuggestions(count);
}
function refreshProductSuggestions(count)
{
    if (productSuggestionRefreshCount > 0)
    {
	productSuggestionRefreshCount--;
	$.getJSON("/GetProductSuggestions.jsp?count=" + count,
	{},function(data,status)
	{
	    if(status=='success')
	    {
		handleProductSuggestions(data);
		$("#productSuggestionArea").animate({
		    'pause':0
		},15000,
		function(){
		    refreshProductSuggestions(count)
		});
	    }
	})
    }
}
function recordSuggestionClick(link, sku)
{
    _gat._getTracker("UA-166447-1")._trackEvent("homeProductSuggestion", "sku-" + sku);
    setTimeout('document.location = "' + link.href + '"', 100);
    return false;
}
function handleProductSuggestions(data)
{
    for(var i in data.suggestions)
    {
	var p=data.suggestions[i];
	var name=p.name;
	if(name.length>30)
	{
	    name=name.substr(0,30);
	    name=name.substr(0,name.lastIndexOf(" "));
	}
	html='<a class="prodLink" href="'+
	p.detailsURL+'" onclick="return recordSuggestionClick(this,' + p.sku + ')" id="'+
	p.sku+'"><img src="'+
	p.imageURL+'" border="0" width="75" height="75" /><br/><span class="name">'+
	name+'</span></a>';
	if(!p.listPrice&&!p.price)
	{
	    html+='<div id="inStorePurchase">Call for Price</div>'
	}
	else if(p.hasMAPPrice)
	{
	    if(p.isCartPricing)
	    {
		if (p.listPrice != '')
		{
		    html += '<div id="ourPrice" style="text-decoration: line-through">' + p.listPrice +
		    '</div>';
		}
		html += '<div class="clickPrice"><a href="' + p.detailsURL +
		'">Show Details</a></div>'
	    }
	    else
	    {
		html+='<div class="salePrice"><a href="javascript:showPricePopup('+
		p.sku+')">Click to see price</a></div>';
	    }
	}
	else if(p.isClearance && p.specialPrice)
	{
	    html+='<div class="clearancePrice">Clearance: $'+
	    formatCurrency(p.specialPrice)+'</div>';
	}
	else if(p.isOnSale&&p.specialPrice)
	{
	    html+='<div class="salePrice">Sale: $'+
	    formatCurrency(p.specialPrice)+'</div>';
	}
	else if(p.price)
	{
	    html+='<div class="ourPrice">$'+
	    formatCurrency(p.price)+'</div>';
	}
	else if(p.listPrice)
	{
	    html+='<div class="ourPrice">$'+
	    formatCurrency(p.listPrice)+'</div>';
	}
	if(p.hasCurrentRebate)
	{
	    var descToks=p.rebateDesc.split("|");
	    html+='<div class="prodRebate" align="center"><span>Rebate:</span> &nbsp;<a href="/RebateCenter.jsp">'+
	    descToks[0]+'</a><br>valid: '+descToks[1]+'</div>'
	}
	changeProductSuggestion(i,html);
    }
}
function changeProductSuggestion(i,html)
{
    var element=$("#suggestion"+i);
    element.animate({
	delay:1
    },i*50).fadeTo(150,0,function(){
	changeProductSuggestion2(element,html)
    });
}
function changeProductSuggestion2(element,html)
{
    element.html(html).fadeTo(300,1);
}
function showPricePopup(productSku)
{
    document.getElementById("priceTipFrame").src=
    "/ProductPricePopup.jsp?sku="+productSku;
    setRelativeLocation(document.getElementById('priceTip'),productSku);
    fadeElement('priceTip',.1,.8,0);
}
function setRelativeLocation(element,productSku)
{
    var pos = $("#"+productSku).offset();
    $(element).css( {
	"left": Math.max(25,(pos.left-40)) + "px",
	"top":pos.top + "px"
    } );
}
var kioskResetTimer=null;
function resetKiosk()
{
    if(kioskResetTimer==null)
    {
	$("body").append('<div id="ktw" class="popupQuery" style="display:block"><div class="errorPopupTitle">Kiosk Reset Warning</div><div class="popupQueryBody"><p class="bodyText" align="left"> Click this window to continue using this page? If not this kiosk will be reset in <span id="cd">10</span> seconds. </p><br/><div align="center"><input type="button" value="Stay On This Page" onclick="setKioskTimer()" /></div></div></div>');
	kioskResetTimer=window.setInterval(function(){
	    resetKiosk()
	},1000);
    }
    else
    {
	var count=parseInt($("#cd").html());
	count--;
	if(count==0)
	{
	    top.location.href="/";
	}
	$("#cd").html(count);
    }
}
var kioskMode = false;
function setKioskTimer()
{
    if(kioskMode&&window.location.pathname!="/")
    {
	if(kioskResetTimer!=null)
	{
	    window.clearInterval(kioskResetTimer);
	    kioskResetTimer=null;
	    $("#ktw").remove();
	}
	window.setTimeout(function(){
	    resetKiosk()
	},240000);
    }
}
$().ready(function(){
    setKioskTimer()
});
var popupMenuCloseTimer=null;
var popupMenu=null;
function showPopupMenu(element,menuId,toRight,toTop)
{
    popupMenu=$("#"+menuId);
    var pos=$(element).offset();
    popupMenu.css({
	left:pos.left+(toRight?$(element).width():0),
	top:pos.top+(toTop?0:$(element).height())
    }).fadeIn(500);
}
function hidePopupMenu()
{
    if(popupMenu!=null)
    {
	popupMenu.fadeOut(300);
	popupMenu=null;
    }
}
function leftPopupMenu()
{
    popupMenuCloseTimer=window.setTimeout(hidePopupMenu,500);
}
function cancelPopupMenuLeftTimer()
{
    if(popupMenuCloseTimer)
    {
	window.clearTimeout(popupMenuCloseTimer);
	popupMenuCloseTimer=null;
    }
}
function showNewWishListPopup(moveSku)
{
    $("body").append('<div id="newWishListQuery" class="popupQuery" style="height:150px;display:block">\
<div class="popupQueryTitle">New List Name</div>\
<div class="popupQueryBody">\
<form method="POST" action="/UpdateProductList.jsp">\
<p class="blogBody">Enter the name for the new list</p>\
<div style="margin-top:10px;">\
<input type="hidden" id="newListMoveSku" name="id" value="'+moveSku+'"/>\
<input name="listName" id="newListName" value ="" class="bodyCopy" style="padding:2px;width:100%"></div>\
<div style="margin-top:10px" align="right">\
<input style="width:100px" type="button" value="Cancel" onclick="$(\'#newWishListQuery\').remove()" />\
<input style="width:100px" type="submit" value="'+
	(moveSku==null?"Create":"Add Item")+'"/>\
</div></form></div></div>');
    $("#newListName").focus();
}
function confirmActionPopup(title,question,okText,cancelText,action)
{
    $("body").append('<div id="confirmPopup" class="popupQuery" style="height:150px;display:block">\
<div class="popupQueryTitle">'+title+'</div>\
<div class="popupQueryBody">\
<p class="blogBody" style="height:50px">'+question+'</p>\
<div align="right">\
<input style="width:100px;margin-right:10px" type="button" value="'+cancelText+'" onclick="$(\'#confirmPopup\').remove()" />\
<input style="width:100px" type="submit" value="'+okText+'" onclick="'+action+'"/>\
</div></div></div>');
}
function showDisclosurePopup()
{
    confirmActionPopup("Notification of Charge Account Changes",
	"The R.C. Willey Truth-In-Lending Disclosure Statement has been updated.  Would you like to view it?",
	"View","No Thanks","showDisclosures()");
}
function showDisclosures()
{
    var height=$(window).height();
    $('#confirmPopup').remove()
    $("body").append('<div class="iframePopup" id="popup" style="height:'+(height*.9)+'px;top:'+(height*.05)+'px"><div style="float:right"><a href="#" onClick="$(window.parent.document.getElementById(\'popup\')).remove()" class="closeX">X</a></div><div class="iframePopupTitle">R.C. Willey Truth-In-Lending Disclosure Statement</div>\<iframe \
style="height:'+(height*.9-46)+'px" src="https://www.rcwilley.com/forms/RevolvingChargeSecurityAgreement.pdf"\
</iframe><div class="iframePopupInfo"><a href="https://www.rcwilley.com/forms/RevolvingChargeSecurityAgreement.pdf" target="_blank">Click here to view this document in a new window.</a> -- Viewing this document requires Adobe Reader. \
<a href="http://get.adobe.com/reader/" target="_blank">Click here to download it for free.</a></div></div>')
    $("#popup").fadeIn(500);
}

function enableTooltips(topOffset, leftOffset)
{
    $('[tooltipText]').bind(
    {
	mouseover: function() {
	    if ($('#tooltip').length == 0)
		$('body').append('<div id="tooltip"></div>')
	    var o = $(this).offset()
			o.top += topOffset;o.left += leftOffset
	    $('#tooltip').css(o).html($(this).attr('tooltipText'))
	    .stop(true).animate({
		n:0
	    },200).fadeTo(200,1)
	    .animate({
		n:0
	    },5000).fadeTo(500,0)
	},
	mouseout: function() {
	    $('#tooltip').stop(true).animate({
		nothing:0
	    },500).fadeTo(500,0)
	}
    });
}

function keepSessionAlive()
{
    setInterval(function()
    {
	$.get("GeneralSuccessNoTemplate.jsp")
    }, 1000*60*15);
}
function consoleLog(message){
    window.console ? console.log(message) : alert(message);
};

function handleImageLinkClick(linkName, index, link)
{
    _gat._getTracker("UA-166447-1").
    _trackEvent("imageLink-" + linkName, index, link);
    setTimeout('document.location = "' + link + '"', 100);
}

//jQuery Message by Seth Tippetts <seth.tippetts@rcwilley.com>
(function($){var i=0;var e=false;var f={timeOut:7500,defaultType:"info"};var g={init:function(b){if(e==false){$("body").append("<div id=\"messageBox\"></div>");e=true}if(b){$.extend(f,b)}$.get("/styles/message.css",function(a){if($("style").length>0){$("style").append(a)}else{$("head").append("<style type=\"text/css\">"+a+"</style>")}})},message:function(a,b,c){if(e==false){g["init"]()}var d=$("<div id=\"m"+i+"\"></div>");if(!b){b=f.defaultType}if(b=="warn"){d.addClass("messageWarn");$("img",d).attr("href","warning.png")}else if(b=="error"){d.addClass("messageError")}else if(b=="info"){d.addClass("messageInfo")}else if(b=="status"){d.addClass("messageStatus")}else{}if(typeof c=="number"){if(c==0){d.click(function(){$(this).remove()})}else{d.delay(c).fadeOut(function(){$(this).remove()})}}else{d.delay(f.timeOut).fadeOut(function(){$(this).remove()})}d.append("<div class=\"messageIcon\"></div><div class=\"messageText\">"+a+"</div><div class=\"messageClose\"></div></div>");$("#messageBox").append(d);i++}};$.message=function(a){if(typeof a==="string"){return g.message.apply(this,arguments)}else if(typeof a==='object'||!a){return g.init.apply(this,arguments)}else{$.error("Unknown method")}}})(jQuery);

