
/*
 * 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();
 }
}
