
/*
 * Superfish v1.4.8 - jQuery menu widget
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */

;(function($){
 $.fn.superfish = function(op){

 var sf = $.fn.superfish,
 c = sf.c,
 $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
 over = function(){
 var $$ = $(this), menu = getMenu($$);
 clearTimeout(menu.sfTimer);
 $$.showSuperfishUl().siblings().hideSuperfishUl();
 },
 out = function(){
 var $$ = $(this), menu = getMenu($$), o = sf.op;
 clearTimeout(menu.sfTimer);
 menu.sfTimer=setTimeout(function(){
 o.retainPath=($.inArray($$[0],o.$path)>-1);
 $$.hideSuperfishUl();
 if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
 },o.delay); 
 },
 getMenu = function($menu){
 var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
 sf.op = sf.o[menu.serial];
 return menu;
 },
 addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
 
 return this.each(function() {
 var s = this.serial = sf.o.length;
 var o = $.extend({},sf.defaults,op);
 o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
 $(this).addClass([o.hoverClass,c.bcClass].join(' '))
 .filter('li:has(ul)').removeClass(o.pathClass);
 });
 sf.o[s] = sf.op = o;
 
 $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
 if (o.autoArrows) addArrow( $('>a:first-child',this) );
 })
 .not('.'+c.bcClass)
 .hideSuperfishUl();
 
 var $a = $('a',this);
 $a.each(function(i){
 var $li = $a.eq(i).parents('li');
 $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
 });
 o.onInit.call(this);
 
 }).each(function() {
 var menuClasses = [c.menuClass];
 if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
 $(this).addClass(menuClasses.join(' '));
 });
 };

 var sf = $.fn.superfish;
 sf.o = [];
 sf.op = {};
 sf.IE7fix = function(){
 var o = sf.op;
 if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
 this.toggleClass(sf.c.shadowClass+'-off');
 };
 sf.c = {
 bcClass : 'sf-breadcrumb',
 menuClass : 'sf-js-enabled',
 anchorClass : 'sf-with-ul',
 arrowClass : 'sf-sub-indicator',
 shadowClass : 'sf-shadow'
 };
 sf.defaults = {
 hoverClass : 'sfHover',
 pathClass : 'overideThisToUse',
 pathLevels : 1,
 delay : 800,
 animation : {opacity:'show'},
 speed : 'normal',
 autoArrows : true,
 dropShadows : true,
 disableHI : false, // true disables hoverIntent detection
 onInit : function(){}, // callback functions
 onBeforeShow: function(){},
 onShow : function(){},
 onHide : function(){}
 };
 $.fn.extend({
 hideSuperfishUl : function(){
 var o = sf.op,
 not = (o.retainPath===true) ? o.$path : '';
 o.retainPath = false;
 var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
 .find('>ul').hide().css('visibility','hidden');
 o.onHide.call($ul);
 return this;
 },
 showSuperfishUl : function(){
 var o = sf.op,
 sh = sf.c.shadowClass+'-off',
 $ul = this.addClass(o.hoverClass)
 .find('>ul:hidden').css('visibility','visible');
 sf.IE7fix.call($ul);
 o.onBeforeShow.call($ul);
 $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
 return this;
 }
 });

})(jQuery);


/*
 * Supersubs v0.2b - jQuery plugin
 * Copyright (c) 2008 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 *
 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
 * their longest list item children. If you use this, please expect bugs and report them
 * to the jQuery Google Group with the word 'Superfish' in the subject line.
 *
 */

;(function($){ // $ will refer to jQuery within this closure

 $.fn.supersubs = function(options){
 var opts = $.extend({}, $.fn.supersubs.defaults, options);
 // return original object to support chaining
 return this.each(function() {
 // cache selections
 var $$ = $(this);
 // support metadata
 var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
 // get the font size of menu.
 // .css('fontSize') returns various results cross-browser, so measure an em dash instead
 var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
 'padding' : 0,
 'position' : 'absolute',
 'top' : '-999em',
 'width' : 'auto'
 }).appendTo($$).width(); //clientWidth is faster, but was incorrect here
 // remove em dash
 $('#menu-fontsize').remove();
 // cache all ul elements
 $ULs = $$.find('ul');
 // loop through each ul in menu
 $ULs.each(function(i) { 
 // cache this ul
 var $ul = $ULs.eq(i);
 // get all (li) children of this ul
 var $LIs = $ul.children();
 // get all anchor grand-children
 var $As = $LIs.children('a');
 // force content to one line and save current float property
 var liFloat = $LIs.css('white-space','nowrap').css('float');
 // remove width restrictions and floats so elements remain vertically stacked
 var emWidth = $ul.add($LIs).add($As).css({
 'float' : 'none',
 'width' : 'auto'
 })
 // this ul will now be shrink-wrapped to longest li due to position:absolute
 // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
 .end().end()[0].clientWidth / fontsize;
 // add more width to ensure lines don't turn over at certain sizes in various browsers
 emWidth += o.extraWidth;
 // restrict to at least minWidth and at most maxWidth
 if (emWidth > o.maxWidth) { emWidth = o.maxWidth; }
 else if (emWidth < o.minWidth) { emWidth = o.minWidth; }
 emWidth += 'em';
 // set ul to width in ems
 $ul.css('width',emWidth);
 // restore li floats to avoid IE bugs
 // set li width to full width of this ul
 // revert white-space to normal
 $LIs.css({
 'float' : liFloat,
 'width' : '100%',
 'white-space' : 'normal'
 })
 // update offset position of descendant ul to reflect new width of parent
 .each(function(){
 var $childUl = $('>ul',this);
 var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
 $childUl.css(offsetDirection,emWidth);
 });
 });
 
 });
 };
 // expose defaults
 $.fn.supersubs.defaults = {
 minWidth : 9, // requires em unit.
 maxWidth : 25, // requires em unit.
 extraWidth : 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
 };
 
})(jQuery); // plugin code ends

var LiveChatPeriodUpdater = null;

String.prototype.trim = function()
{
 return this.replace(/(?:^\s+|\s+$)/g, "");
}

function SendMessage()
{
 var customermessage = document.getElementById('textmessage').value.trim();
 document.getElementById('textmessage').value = '';
 if (customermessage != '')
 {
 var img = document.getElementById('livachat_ajax_loader');
 if (img != null)
 {
 img.style.display = 'inline';
 }
 var request = new Ajax.Updater(
 'livechat_messages',
 urlSendMessage,
 {
 method: 'get',
 parameters: { message: customermessage },
 onSuccess: function(transport, json) {
 var img = document.getElementById('livechat_ajax_loader');
 if (img != null) {
 img.style.display = 'none';
 }
 SetUpdater();
 },
 insertion: Insertion.Bottom
 }
 );
 }
}

function SetUpdater()
{
 //alert(LiveChatPeriodUpdater);
 if (LiveChatPeriodUpdater == null)
 {
 LiveChatPeriodUpdater = new Ajax.PeriodicalUpdater(
 'livechat_messages',
 urlUpdater,
 {
 frequency: frequency,
 decay: decay
 }
 );
 }
}

function LiveChatKeyPress(e) {
 if (e.keyCode == 13) {
 SendMessage();
 }
}
