/*  Prototype JavaScript framework, version 1.5.0_rc1
 *  (c) 2005 Sam Stephenson <sam@conio.net>
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://prototype.conio.net/
 *
/*--------------------------------------------------------------------------*/

var Prototype = {
  Version: '1.5.0_rc1',
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',

  emptyFunction: function() {},
  K: function(x) {return x}
}

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

var Abstract = new Object();

Object.extend = function(destination, source) {
  for (var property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Object.extend(Object, {
  inspect: function(object) {
    try {
      if (object == undefined) return 'undefined';
      if (object == null) return 'null';
      return object.inspect ? object.inspect() : object.toString();
    } catch (e) {
      if (e instanceof RangeError) return '...';
      throw e;
    }
  },

  keys: function(object) {
    var keys = [];
    for (var property in object)
      keys.push(property);
    return keys;
  },

  values: function(object) {
    var values = [];
    for (var property in object)
      values.push(object[property]);
    return values;
  },

  clone: function(object) {
    return Object.extend({}, object);
  }
});

Function.prototype.bind = function() {
  var __method = this, args = $A(arguments), object = args.shift();
  return function() {
    return __method.apply(object, args.concat($A(arguments)));
  }
}

Function.prototype.bindAsEventListener = function(object) {
  var __method = this, args = $A(arguments), object = args.shift();
  return function(event) {
    return __method.apply(object, [( event || window.event)].concat(args).concat($A(arguments)));
  }
}

Object.extend(Number.prototype, {
  toColorPart: function() {
    var digits = this.toString(16);
    if (this < 16) return '0' + digits;
    return digits;
  },

  succ: function() {
    return this + 1;
  }
});

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0; i < arguments.length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

Object.extend(String.prototype, {
  gsub: function(pattern, replacement) {
    var result = '', source = this, match;
    replacement = arguments.callee.prepareReplacement(replacement);

    while (source.length > 0) {
      if (match = source.match(pattern)) {
        result += source.slice(0, match.index);
        result += (replacement(match) || '').toString();
        source  = source.slice(match.index + match[0].length);
      } else {
        result += source, source = '';
      }
    }
    return result;
  },

  sub: function(pattern, replacement, count) {
    replacement = this.gsub.prepareReplacement(replacement);
    count = count === undefined ? 1 : count;

    return this.gsub(pattern, function(match) {
      if (--count < 0) return match[0];
      return replacement(match);
    });
  },

  scan: function(pattern, iterator) {
    this.gsub(pattern, iterator);
    return this;
  },

  truncate: function(length, truncation) {
    length = length || 30;
    truncation = truncation === undefined ? '...' : truncation;
    return this.length > length ?
      this.slice(0, length - truncation.length) + truncation : this;
  },

  strip: function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  },

  toArray: function() {
    return this.split('');
  },

  camelize: function() {
    var oStringList = this.split('-');
    if (oStringList.length == 1) return oStringList[0];

    var camelizedString = this.indexOf('-') == 0
      ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)
      : oStringList[0];

    for (var i = 1, len = oStringList.length; i < len; i++) {
      var s = oStringList[i];
      camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
    }

    return camelizedString;
  },

  inspect: function(useDoubleQuotes) {
    var escapedString = this.replace(/\\/g, '\\\\');
    if (useDoubleQuotes)
      return '"' + escapedString.replace(/"/g, '\\"') + '"';
    else
      return "'" + escapedString.replace(/'/g, '\\\'') + "'";
  }
});

String.prototype.gsub.prepareReplacement = function(replacement) {
  if (typeof replacement == 'function') return replacement;
  var template = new Template(replacement);
  return function(match) { return template.evaluate(match) };
}

String.prototype.parseQuery = String.prototype.toQueryParams;

var Template = Class.create();
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
Template.prototype = {
  initialize: function(template, pattern) {
    this.template = template.toString();
    this.pattern  = pattern || Template.Pattern;
  },

  evaluate: function(object) {
    return this.template.gsub(this.pattern, function(match) {
      var before = match[1];
      if (before == '\\') return match[2];
      return before + (object[match[3]] || '').toString();
    });
  }
}

var $break    = new Object();
var $continue = new Object();

var Enumerable = {
  each: function(iterator) {
    var index = 0;
    try {
      this._each(function(value) {
        try {
          iterator(value, index++);
        } catch (e) {
          if (e != $continue) throw e;
        }
      });
    } catch (e) {
      if (e != $break) throw e;
    }
  },

  all: function(iterator) {
    var result = true;
    this.each(function(value, index) {
      result = result && !!(iterator || Prototype.K)(value, index);
      if (!result) throw $break;
    });
    return result;
  },

  any: function(iterator) {
    var result = false;
    this.each(function(value, index) {
      if (result = !!(iterator || Prototype.K)(value, index))
        throw $break;
    });
    return result;
  },

  collect: function(iterator) {
    var results = [];
    this.each(function(value, index) {
      results.push(iterator(value, index));
    });
    return results;
  },

  detect: function (iterator) {
    var result;
    this.each(function(value, index) {
      if (iterator(value, index)) {
        result = value;
        throw $break;
      }
    });
    return result;
  },

  findAll: function(iterator) {
    var results = [];
    this.each(function(value, index) {
      if (iterator(value, index))
        results.push(value);
    });
    return results;
  },

  grep: function(pattern, iterator) {
    var results = [];
    this.each(function(value, index) {
      var stringValue = value.toString();
      if (stringValue.match(pattern))
        results.push((iterator || Prototype.K)(value, index));
    })
    return results;
  },

  include: function(object) {
    var found = false;
    this.each(function(value) {
      if (value == object) {
        found = true;
        throw $break;
      }
    });
    return found;
  },

  inject: function(memo, iterator) {
    this.each(function(value, index) {
      memo = iterator(memo, value, index);
    });
    return memo;
  },

  invoke: function(method) {
    var args = $A(arguments).slice(1);
    return this.collect(function(value) {
      return value[method].apply(value, args);
    });
  },

  partition: function(iterator) {
    var trues = [], falses = [];
    this.each(function(value, index) {
      ((iterator || Prototype.K)(value, index) ?
        trues : falses).push(value);
    });
    return [trues, falses];
  },

  pluck: function(property) {
    var results = [];
    this.each(function(value, index) {
      results.push(value[property]);
    });
    return results;
  },

  reject: function(iterator) {
    var results = [];
    this.each(function(value, index) {
      if (!iterator(value, index))
        results.push(value);
    });
    return results;
  },

  sortBy: function(iterator) {
    return this.collect(function(value, index) {
      return {value: value, criteria: iterator(value, index)};
    }).sort(function(left, right) {
      var a = left.criteria, b = right.criteria;
      return a < b ? -1 : a > b ? 1 : 0;
    }).pluck('value');
  },

  toArray: function() {
    return this.collect(Prototype.K);
  },

  inspect: function() {
    return '#<Enumerable:' + this.toArray().inspect() + '>';
  }
}

Object.extend(Enumerable, {
  map:     Enumerable.collect,
  find:    Enumerable.detect,
  select:  Enumerable.findAll,
  member:  Enumerable.include,
  entries: Enumerable.toArray
});
var $A = Array.from = function(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) {
    return iterable.toArray();
  } else {
    var results = [];
    for (var i = 0; i < iterable.length; i++)
      results.push(iterable[i]);
    return results;
  }
}

Object.extend(Array.prototype, Enumerable);

if (!Array.prototype._reverse)
  Array.prototype._reverse = Array.prototype.reverse;

Object.extend(Array.prototype, {
  _each: function(iterator) {
    for (var i = 0; i < this.length; i++)
      iterator(this[i]);
  },

  clear: function() {
    this.length = 0;
    return this;
  },

  first: function() {
    return this[0];
  },

  last: function() {
    return this[this.length - 1];
  },

  compact: function() {
    return this.select(function(value) {
      return value != undefined || value != null;
    });
  },

  flatten: function() {
    return this.inject([], function(array, value) {
      return array.concat(value && value.constructor == Array ?
        value.flatten() : [value]);
    });
  },

  without: function() {
    var values = $A(arguments);
    return this.select(function(value) {
      return !values.include(value);
    });
  },

  indexOf: function(object) {
    for (var i = 0; i < this.length; i++)
      if (this[i] == object) return i;
    return -1;
  },

  reverse: function(inline) {
    return (inline !== false ? this : this.toArray())._reverse();
  },

  reduce: function() {
    return this.length > 1 ? this : this[0];
  },

  uniq: function() {
    return this.inject([], function(array, value) {
      return array.include(value) ? array : array.concat([value]);
    });
  },

  inspect: function() {
    return '[' + this.map(Object.inspect).join(', ') + ']';
  }
});
var Hash = {
  _each: function(iterator) {
    for (var key in this) {
      var value = this[key];
      if (typeof value == 'function') continue;

      var pair = [key, value];
      pair.key = key;
      pair.value = value;
      iterator(pair);
    }
  },

  keys: function() {
    return this.pluck('key');
  },

  values: function() {
    return this.pluck('value');
  },

  merge: function(hash) {
    return $H(hash).inject($H(this), function(mergedHash, pair) {
      mergedHash[pair.key] = pair.value;
      return mergedHash;
    });
  },

//   toQueryString: function() {
//     return this.map(function(pair) {
//       return pair.map(encodeURIComponent).join('=');
//     }).join('&');
//   },

  inspect: function() {
    return '#<Hash:{' + this.map(function(pair) {
      return pair.map(Object.inspect).join(': ');
    }).join(', ') + '}>';
  }
}

function $H(object) {
  var hash = Object.extend({}, object || {});
  Object.extend(hash, Enumerable);
  Object.extend(hash, Hash);
  return hash;
}

function $() {
  var results = [], element;
  for (var i = 0; i < arguments.length; i++) {
    element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    results.push(Element.extend(element));
  }
  return results.reduce();
}

document.getElementsByClassName = function(className, parentElement) {
  var children = ($(parentElement) || document.body).getElementsByTagName('*');
  return $A(children).inject([], function(elements, child) {
    if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
      elements.push(Element.extend(child));
    return elements;
  });
}

if (!window.Element)
  var Element = new Object();

Element.extend = function(element) {
  if (!element) return;
  if (_nativeExtensions || element.nodeType == 3) return element;

  if (!element._extended && element.tagName && element != window) {
    var methods = Object.clone(Element.Methods), cache = Element.extend.cache;



    for (var property in methods) {
      var value = methods[property];
      if (typeof value == 'function')
        element[property] = cache.findOrStore(value);
    }
  }

  element._extended = true;
  return element;
}

Element.extend.cache = {
  findOrStore: function(value) {
    return this[value] = this[value] || function() {
      return value.apply(null, [this].concat($A(arguments)));
    }
  }
}

Element.Methods = {
  visible: function(element) {
    return $(element).style.display != 'none';
  },

  toggle: function(element) {
    element = $(element);
    Element[Element.visible(element) ? 'hide' : 'show'](element);
    return element;
  },

  hide: function(element) {
    $(element).style.display = 'none';
    return element;
  },

  show: function(element) {
    $(element).style.display = '';
    return element;
  },

  inspect: function(element) {
    element = $(element);
    var result = '<' + element.tagName.toLowerCase();
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
      var property = pair.first(), attribute = pair.last();
      var value = (element[property] || '').toString();
      if (value) result += ' ' + attribute + '=' + value.inspect(true);
    });
    return result + '>';
  },

  recursivelyCollect: function(element, property) {
    element = $(element);
    var elements = [];
    while (element = element[property])
      if (element.nodeType == 1)
        elements.push(Element.extend(element));
    return elements;
  },

  match: function(element, selector) {
    element = $(element);
    if (typeof selector == 'string')
      selector = new Selector(selector);
    return selector.match(element);
  },

  getElementsBySelector: function() {
    var args = $A(arguments), element = $(args.shift());
    return Selector.findChildElements(element, args);
  },

  getElementsByClassName: function(element, className) {
    element = $(element);
    return document.getElementsByClassName(className, element);
  },

  getHeight: function(element) {
    element = $(element);
    return element.offsetHeight;
  },

  classNames: function(element) {
    return new Element.ClassNames(element);
  },

  hasClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).include(className);
  },

  addClassName: function(element, className) {
    if (!(element = $(element))) return;
    Element.classNames(element).add(className);
    return element;
  },

  removeClassName: function(element, className) {
    if (!(element = $(element))) return;
    Element.classNames(element).remove(className);
    return element;
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element = $(element);
    var node = element.firstChild;
    while (node) {
      var nextNode = node.nextSibling;
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
        element.removeChild(node);
      node = nextNode;
    }
    return element;
  },

  empty: function(element) {
    return $(element).innerHTML.match(/^\s*$/);
  },

  childOf: function(element, ancestor) {
    element = $(element), ancestor = $(ancestor);
    while (element = element.parentNode)
      if (element == ancestor) return true;
    return false;
  },

  getStyle: function(element, style) {
    element = $(element);
    var value = element.style[style.camelize()];
    if (!value) {
      if (document.defaultView && document.defaultView.getComputedStyle) {
        var css = document.defaultView.getComputedStyle(element, null);
        value = css ? css.getPropertyValue(style) : null;
      } else if (element.currentStyle) {
        value = element.currentStyle[style.camelize()];
      }
    }

    if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
      if (Element.getStyle(element, 'position') == 'static') value = 'auto';

    return value == 'auto' ? null : value;
  },

  setStyle: function(element, style) {
    element = $(element);
    for (var name in style)
      element.style[name.camelize()] = style[name];
    return element;
  },

  getDimensions: function(element) {
    element = $(element);
    if (Element.getStyle(element, 'display') != 'none')
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = '';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = 'none';
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  makePositioned: function(element) {
    element = $(element);
    var pos = Element.getStyle(element, 'position');
    if (pos == 'static' || !pos) {
      element._madePositioned = true;
      element.style.position = 'relative';
      // Opera returns the offset relative to the positioning context, when an
      // element is position relative but top and left have not been defined
      if (window.opera) {
        element.style.top = 0;
        element.style.left = 0;
      }
    }
    return element;
  },

  undoPositioned: function(element) {
    element = $(element);
    if (element._madePositioned) {
      element._madePositioned = undefined;
      element.style.position =
        element.style.top =
        element.style.left =
        element.style.bottom =
        element.style.right = '';
    }
    return element;
  },

  makeClipping: function(element) {
    element = $(element);
    if (element._overflow) return;
    element._overflow = element.style.overflow || 'auto';
    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
      element.style.overflow = 'hidden';
    return element;
  },

  undoClipping: function(element) {
    element = $(element);
    if (!element._overflow) return;
    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
    element._overflow = null;
    return element;
  }
}


Object.extend(Element, Element.Methods);

var _nativeExtensions = false;

if (!window.HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
  /* Emulate HTMLElement, HTMLFormElement, HTMLInputElement, HTMLTextAreaElement,
     and HTMLSelectElement in Safari */
  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {
    var klass = window['HTML' + tag + 'Element'] = {};
    klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__;
  });
}

Element.addMethods = function(methods) {
  Object.extend(Element.Methods, methods || {});

  function copy(methods, destination) {
    var cache = Element.extend.cache;
    for (var property in methods) {
      var value = methods[property];
      destination[property] = cache.findOrStore(value);
    }
  }

  if (typeof HTMLElement != 'undefined') {
    copy(Element.Methods, HTMLElement.prototype);

    _nativeExtensions = true;
  }
}

var Toggle = new Object();
Toggle.display = Element.toggle;

Abstract.Insertion = function(adjacency) {
  this.adjacency = adjacency;
}

Abstract.Insertion.prototype = {
  initialize: function(element, content) {
    this.element = $(element);
    this.content = content.stripScripts();

    if (this.adjacency && this.element.insertAdjacentHTML) {
      try {
        this.element.insertAdjacentHTML(this.adjacency, this.content);
      } catch (e) {
        var tagName = this.element.tagName.toLowerCase();
        if (tagName == 'tbody' || tagName == 'tr') {
          this.insertContent(this.contentFromAnonymousTable());
        } else {
          throw e;
        }
      }
    } else {
      this.range = this.element.ownerDocument.createRange();
      if (this.initializeRange) this.initializeRange();
      this.insertContent([this.range.createContextualFragment(this.content)]);
    }

    setTimeout(function() {content.evalScripts()}, 10);
  },

  contentFromAnonymousTable: function() {
    var div = document.createElement('div');
    div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
    return $A(div.childNodes[0].childNodes[0].childNodes);
  }
}

Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
  initialize: function(element) {
    this.element = $(element);
  },

  _each: function(iterator) {
    this.element.className.split(/\s+/).select(function(name) {
      return name.length > 0;
    })._each(iterator);
  },

  set: function(className) {
    this.element.className = className;
  },

  add: function(classNameToAdd) {
    if (this.include(classNameToAdd)) return;
    this.set(this.toArray().concat(classNameToAdd).join(' '));
  },

  remove: function(classNameToRemove) {
    if (!this.include(classNameToRemove)) return;
    this.set(this.select(function(className) {
      return className != classNameToRemove;
    }).join(' '));
  },

  toString: function() {
    return this.toArray().join(' ');
  }
}

Object.extend(Element.ClassNames.prototype, Enumerable);
var Selector = Class.create();
Selector.prototype = {
  initialize: function(expression) {
    this.params = {classNames: []};
    this.expression = expression.toString().strip();
    this.parseExpression();
    this.compileMatcher();
  },

  parseExpression: function() {
    function abort(message) { throw 'Parse error in selector: ' + message; }

    if (this.expression == '')  abort('empty expression');

    var params = this.params, expr = this.expression, match, modifier, clause, rest;
    while (match = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)) {
      params.attributes = params.attributes || [];
      params.attributes.push({name: match[2], operator: match[3], value: match[4] || match[5] || ''});
      expr = match[1];
    }

    if (expr == '*') return this.params.wildcard = true;

    while (match = expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {
      modifier = match[1], clause = match[2], rest = match[3];
      switch (modifier) {
        case '#':       params.id = clause; break;
        case '.':       params.classNames.push(clause); break;
        case '':
        case undefined: params.tagName = clause.toUpperCase(); break;
        default:        abort(expr.inspect());
      }
      expr = rest;
    }

    if (expr.length > 0) abort(expr.inspect());
  },

  buildMatchExpression: function() {
    var params = this.params, conditions = [], clause;

    if (params.wildcard)
      conditions.push('true');
    if (clause = params.id)
      conditions.push('element.id == ' + clause.inspect());
    if (clause = params.tagName)
      conditions.push('element.tagName.toUpperCase() == ' + clause.inspect());
    if ((clause = params.classNames).length > 0)
      for (var i = 0; i < clause.length; i++)
        conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')');
    if (clause = params.attributes) {
      clause.each(function(attribute) {
        var value = 'element.getAttribute(' + attribute.name.inspect() + ')';
        var splitValueBy = function(delimiter) {
          return value + ' && ' + value + '.split(' + delimiter.inspect() + ')';
        }

        switch (attribute.operator) {
          case '=':       conditions.push(value + ' == ' + attribute.value.inspect()); break;
          case '~=':      conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break;
          case '|=':      conditions.push(
                            splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect()
                          ); break;
          case '!=':      conditions.push(value + ' != ' + attribute.value.inspect()); break;
          case '':
          case undefined: conditions.push(value + ' != null'); break;
          default:        throw 'Unknown operator ' + attribute.operator + ' in selector';
        }
      });
    }

    return conditions.join(' && ');
  },

  compileMatcher: function() {
    this.match = new Function('element', 'if (!element.tagName) return false; \
      return ' + this.buildMatchExpression());
  },

  findElements: function(scope) {
    var element;

    if (element = $(this.params.id))
      if (this.match(element))
        if (!scope || Element.childOf(element, scope))
          return [element];

    scope = (scope || document).getElementsByTagName(this.params.tagName || '*');

    var results = [];
    for (var i = 0; i < scope.length; i++)
      if (this.match(element = scope[i]))
        results.push(Element.extend(element));

    return results;
  },

  toString: function() {
    return this.expression;
  }
}

Object.extend(Selector, {
  matchElements: function(elements, expression) {
    var selector = new Selector(expression);
    return elements.select(selector.match.bind(selector));
  },

  findElement: function(elements, expression, index) {
    if (typeof expression == 'number') index = expression, expression = false;
    return Selector.matchElements(elements, expression || '*')[index || 0];
  },

  findChildElements: function(element, expressions) {
    return expressions.map(function(expression) {
      return expression.strip().split(/\s+/).inject([null], function(results, expr) {
        var selector = new Selector(expr);
        return results.inject([], function(elements, result) {
          return elements.concat(selector.findElements(result || element));
        });
      });
    }).flatten();
  }
});

function $$() {
  return Selector.findChildElements(document, $A(arguments));
}

Element.addMethods();



String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));}
Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');}
Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');}
Element.setContentZoom=function(element,percent){element=$(element);Element.setStyle(element,{fontSize:(percent/100)+'em'});if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);}
Element.getOpacity=function(element){var opacity;if(opacity=Element.getStyle(element,'opacity'))
return parseFloat(opacity);if(opacity=(Element.getStyle(element,'filter')||'').match(/alpha\(opacity=(.*)\)/))
if(opacity[1])return parseFloat(opacity[1])/100;return 1.0;}
Element.setOpacity=function(element,value){element=$(element);if(value==1){element.style.opacity=(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:null;if(/MSIE/.test(navigator.userAgent))
Element.setStyle(element,{filter:Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});}else{if(value<0.00001)value=0;element.style.opacity=value;if(/MSIE/.test(navigator.userAgent))
Element.setStyle(element,{filter:Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')'});}}
Element.getInlineOpacity=function(element){return $(element).style.opacity||'';}
Element.childrenWithClassName=function(element,className,findFirst){var classNameRegExp=new RegExp("(^|\\s)"+className+"(\\s|$)");var results=$A($(element).getElementsByTagName('*'))[findFirst?'detect':'select'](function(c){return(c.className&&c.className.match(classNameRegExp));});if(!results)results=[];return results;}
Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};Array.prototype.call=function(){var args=arguments;this.each(function(f){f.apply(this,args)});}
var Effect={multiple:function(element,effect){var elements;if(((typeof element=='object')||(typeof element=='function'))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};var Effect2=Effect;Effect.Transitions={}
Effect.Transitions.linear=Prototype.K;Effect.Transitions.sinoidal=function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;}
Effect.Transitions.reverse=function(pos){return 1-pos;}
Effect.Transitions.flicker=function(pos){return((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;}
Effect.Transitions.wobble=function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;}
Effect.Transitions.pulse=function(pos){return(Math.floor(pos*10)%2==0?(pos*10-Math.floor(pos*10)):1-(pos*10-Math.floor(pos*10)));}
Effect.Transitions.none=function(pos){return 0;}
Effect.Transitions.full=function(pos){return 1;}
Effect.ScopedQueue=Class.create();Object.extend(Object.extend(Effect.ScopedQueue.prototype,Enumerable),{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=(typeof effect.options.queue=='string')?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),40);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();this.effects.invoke('loop',timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(typeof queueName!='string')return queueName;if(!this.instances[queueName])
this.instances[queueName]=new Effect.ScopedQueue();return this.instances[queueName];}}
Effect.Queue=Effect.Queues.get('global');Effect.DefaultOptions={transition:Effect.Transitions.sinoidal,duration:1.0,fps:25.0,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'}
Effect.Base=function(){};Effect.Base.prototype={position:null,start:function(options){this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/(this.finishOn-this.startOn);var frame=Math.round(pos*this.options.fps*this.options.duration);if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},render:function(pos){if(this.state=='idle'){this.state='running';this.event('beforeSetup');if(this.setup)this.setup();this.event('afterSetup');}
if(this.state=='running'){if(this.options.transition)pos=this.options.transition(pos);pos*=(this.options.to-this.options.from);pos+=this.options.from;this.position=pos;this.event('beforeUpdate');if(this.update)this.update(pos);this.event('afterUpdate');}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(typeof this.options.queue=='string'?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){return'#<Effect:'+$H(this).inspect()+',options:'+$H(this.options).inspect()+'>';}}
Effect.Parallel=Class.create();Object.extend(Object.extend(Effect.Parallel.prototype,Effect.Base.prototype),{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Opacity=Class.create();Object.extend(Object.extend(Effect.Opacity.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);if(/MSIE/.test(navigator.userAgent)&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Scale=Class.create();Object.extend(Object.extend(Effect.Scale.prototype,Effect.Base.prototype),{initialize:function(element,percent){this.element=$(element)
var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=Math.round(width)+'px';if(this.options.scaleY)d.height=Math.round(height)+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
this.element.setStyle(d);}});Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide();effect.element.setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from);effect.element.show();}},arguments[1]||{});return new Effect.Opacity(element,options);}
Effect.SlideDown=function(element){element=$(element);element.cleanWhitespace();var oldInnerBottom=$(element.firstChild).getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.firstChild.makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping();effect.element.setStyle({height:'0px'});effect.element.show();},afterUpdateInternal:function(effect){effect.element.firstChild.setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping();if(/MSIE/.test(navigator.userAgent)){effect.element.undoPositioned();effect.element.firstChild.undoPositioned();}else{effect.element.firstChild.undoPositioned();effect.element.undoPositioned();}
effect.element.firstChild.setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));}
Effect.SlideUp=function(element){element=$(element);element.cleanWhitespace();var oldInnerBottom=$(element.firstChild).getStyle('bottom');return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,restoreAfterFinish:true,beforeStartInternal:function(effect){effect.element.makePositioned();effect.element.firstChild.makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping();effect.element.show();},afterUpdateInternal:function(effect){effect.element.firstChild.setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide();effect.element.undoClipping();effect.element.firstChild.undoPositioned();effect.element.undoPositioned();effect.element.setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom','collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(function(f){Element.Methods[f]=Element[f];});Element.Methods.visualEffect=function(element,effect,options){s=effect.gsub(/_/,'-').camelize();effect_class=s.charAt(0).toUpperCase()+s.substring(1);new Effect[effect_class](element,options);return $(element);};Element.addMethods();


var HORIZONTAL=0;var VERTICAL=1;var STRIPE_BELOW_MAIN_ITEMS=0;var DROPDOWN_BELOW_MAIN_ITEMS=1;var DROPDOWN_BETWEEN_ITEMS=2;var DROPDOWN_AT_RIGHT=3;var SELECTED_CLASS_NAME='sel';var CURRENT_CLASS_NAME='cur';var FIRST_BUTTON_CLASS_NAME=' fmBtnFst ';var LAST_BUTTON_CLASS_NAME=' fmBtnLst ';


var SKSliderTimeouts={};var SKSliderOptions={};var SKSlider={};SKSlider.timer={};var SKSliders={};SKSliderOptions.DEFAULT={window_width:160,width:500,step:10};var SKTwoWaySlider=Class.create();SKTwoWaySlider.prototype={initialize:function(element,slider_name,props){this.element=element;this.window_width=(props&&props.window_width)?props.window_width:SKSliderOptions.DEFAULT.window_width;this.timeout_wait=(typeof props.timeout_wait!='undefined')?props.timeout_wait:SKMenuOptions.slider.DEFAULT.wait;this.width=props.org_width;this.step=(props&&props.step>0)?props.step:3;this.name=slider_name;this.Init();},Init:function(){this.height=$(this.element).getStyle('height').replace("px","");this.slide_offset=this.width-this.window_width;this.left_offset=0;this.slide_start=0;this.slide_end=this.slide_start+this.slide_offset;this.slide_pos=this.slide_start;this.user_direction=1;this.finished=false;this.right_cycle_finished=false;this.timer;this.direction=1;this.count=10;this.counter=0;},ResetSlide:function(){if(this.timer)clearTimeout(this.timer);this.height=$(this.element).getStyle('height').replace("px","");this.slide_offset=this.width-this.window_width;this.left_offset=0;this.slide_start=0;this.slide_end=this.slide_start+this.slide_offset;this.slide_pos=this.slide_start;this.finished=false;this.right_cycle_finished=false;this.counter=0;this.direction=1;this.ClipLayer();this.SetPositon();},ClipLayer:function(){var right=this.slide_pos+this.window_width;var left=this.slide_pos;var clip_str="rect("+0+"px "+right+"px "+this.height+"px "+left+"px)";this.element.style.clip=clip_str;},SetPositon:function(){var offset=(-1)*this.left_offset;this.element.style.left=offset+"px";},Slide:function(direction){if(typeof direction=='unedefined'){direction=this.direction;}
this.user_direction=direction;if(this.user_direction==-1){this.right_cycle_finished=false;this.direction=-1;}
if(this.user_direction==1&&this.right_cycle_finished==true){return;}
this.SlideByStep();if(this.user_direction==-1){this.direction=1;}},SlideByStep:function(){var direction=this.direction;var new_pos=this.slide_pos+this.step*direction;if(this.user_direction==-1&&this.slide_pos==this.slide_start&&new_pos<this.slide_start){this.finished=true;return;}else{this.finished=false;}
if(new_pos<this.slide_start){if(this.user_direction==1){this.right_cycle_finished=true;}
else
{this.right_cycle_finished=false;}
return;}
if(new_pos>this.slide_end&&this.user_direction==1){if(this.counter<this.count){this.counter++;}
else{this.counter=0;this.ChangeDirection();}
return;}
this.left_offset+=this.step*direction;this.slide_pos=new_pos;this.ClipLayer();this.SetPositon();},ChangeDirection:function(){this.direction=(-1)*this.direction;},SetWindowWidth:function(new_window_width){if(new_window_width>=0){this.window_width=new_window_width;}},SetTimeoutWait:function(new_timeout_wait){if(new_timeout_wait>=0){this.timeout_wait=new_timeout_wait;}},SetStep:function(new_step){if(new_step>=0){this.step=step;}},SetOrgWidth:function(new_org_width){if(new_org_width>=0){this.width=new_org_width;}},SetName:function(new_name){if(new_name>=0){this.name=new_name;}}};SKEffectsFactory.Slider={};SKEffectsFactory.Slider.timer={};SKEffectsFactory.Slider.Start=function(slider){slider.Slide(2);var timeout_wait=slider.timeout_wait;if(SKEffectsFactory.Slider.timer[slider.name]){clearTimeout(SKEffectsFactory.Slider.timer[slider.name]);}
SKEffectsFactory.Slider.timer[slider.name]=setTimeout(function(){SKEffectsFactory.Slider.Start(slider);},timeout_wait);}
SKEffectsFactory.Slider.TwoWaySlide=function(slider,direction){if(typeof slider=="undefined"||slider==null||slider.window_width>=slider.width)return;slider.Slide(direction);var timeout_wait=slider.timeout_wait;if(slider.timer)clearTimeout(slider.timer);if(!slider.finished){slider.timer=setTimeout(function(){SKEffectsFactory.Slider.TwoWaySlide(slider,direction);},timeout_wait);}}
SKSlider.Start=function(slider){slider.Slide(2);var timeout_wait=slider.timeout_wait;if(SKSlider.timer[slider.name]){clearTimeout(SKSlider.timer[slider.name]);}
SKSlider.timer[slider.name]=setTimeout(function(){SKSlider.Start(slider);},timeout_wait);}
SKSlider.TwoWaySlide=function(slider,direction){if(typeof slider=="string"&&eval("typeof "+slider)!='undefined')slider=eval(slider);if(typeof slider=="undefined"||slider==null||slider.window_width>=slider.width)return;slider.Slide(direction);var timeout_wait=slider.timeout_wait;if(slider.timer)clearTimeout(slider.timer);if(!slider.finished){slider.timer=setTimeout(function(){SKSlider.TwoWaySlide(slider,direction);},timeout_wait);}}


var SKMenuOptions={};SKMenuOptions.behaviors={};SKMenuOptions.events={};SKMenuOptions.timeouts={};SKMenuOptions.slider={};SKMenuOptions.element={};var SKDesigns={};var SKAnimations={};var SKAnimationHolder={};var SKAnimation=Class.create();SKAnimation.prototype={initialize:function(id){this.id=id;this.state='idle';this.running=false;this.proceed=false;this.hiding=false;this.effect=null;this.follow=null;this.Register();},Register:function(){SKAnimationHolder[this.id]=this;},Reset:function(){this.running=false;this.proceed=false;this.follow=false;},SetEffect:function(effect){this.effect=effect;this.Register();}}
var SKAnimationCallbacks={"finish_show":function(object,animation_type){var animation=SKAnimationHolder[object.id];if(typeof animation=='undefined')return;if(animation.proceed==true){var e=new Effect[animation_type.effect.hide](object.element,animation_type.effect.options);e.options.id=object.id;e.options.element=object.element;SKUtils.ExtendMethod(e.options,'afterFinishInternal',animation_type["finish_hide"]);animation.SetEffect(e);animation.hiding=true;animation.proceed=false;}else{animation.running=false;}},"finish_hide":function(object,animation_type){var animation=SKAnimationHolder[object.id];if(typeof animation=='undefined')return;if(animation.follow==true){var e=new Effect[animation_type.effect.show](object.element,animation_type.effect.options);e.options.id=object.id;e.options.element=object.element;SKUtils.ExtendMethod(e.options,'afterFinishInternal',animation_type["finish_show"]);animation.SetEffect(e);animation.hiding=false;animation.follow=false;}else{animation.running=false;animation.hiding=false;SKEffectsFactory.Synchronization[object.id]=false;}}};SKAnimations.SLIDE={"effect":{"show":"SlideDown","hide":"SlideUp","options":{duration:0.2}},"finish_show":function(){SKAnimationCallbacks.finish_show(this,SKAnimations.SLIDE);},"finish_hide":function(){SKAnimationCallbacks.finish_hide(this,SKAnimations.SLIDE);}}
SKAnimations.FADE={"effect":{"show":"Appear","hide":"Fade","options":{duration:0.4}},"finish_show":function(){SKAnimationCallbacks.finish_show(this,SKAnimations.FADE);},"finish_hide":function(){SKAnimationCallbacks.finish_hide(this,SKAnimations.FADE);}}
SKAnimations.DEFAULT={"custom":true,"show":function(menu_item){var menu_obj=menu_item.SubMenu();if(typeof menu_obj!='undefined'){var holder=menu_obj.GetHolder();if(typeof holder!='undefined'){Element.show($(holder));}}},"hide":function(menu_item){var menu_obj=menu_item.SubMenu();if(typeof menu_obj!='undefined'){var holder=menu_obj.GetHolder();if(typeof holder!='undefined'){Element.hide($(holder));}}},"reset":function(menu_item){var menu_obj=menu_item.SubMenu();if(typeof menu_obj!='undefined'){var holder=menu_obj.GetHolder();if(typeof holder!='undefined'){Element.show($(holder));}}}}
SKMenuOptions.behaviors.DEFAULT={"onhide":function(menu_item){var menu_obj;if(typeof menu_item.ParentMenuItem!='undefined'){var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){menu_item.SubSynchronized(true,1);var slider_name=menu_item.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,-1);},200);}
return;}
else{SKEffectsFactory.SubSynchronization[menu_item.element.id]+=1;menu_item.Synchronized(false);}}
var id=menu_item.element.id;if(typeof menu_item.SubMenu!='undefined'){menu_item.HideAnimation();}
menu_item.UnsetSelected();},"onshow":function(menu_item){var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){menu_item.SubSynchronized(true);var slider_name=menu_item.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,1);},200);}
menu_item.ResetAnimation();return;}else{if(!menu_item.Synchronized()){menu_item.Synchronized(true);}
else{return;}}
var id=menu_item.element.id;menu_item.HideSiblings();menu_item.SetSelected();menu_item.root_obj.SetSubmenuPosition(menu_item);menu_item.ShowAnimation();menu_item.Synchronized(true);}};SKMenuOptions.behaviors.CLICK={"onhide":function(menu_item){var menu_obj;if(typeof menu_item.ParentMenuItem!='undefined'){var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){menu_item.SubSynchronized(true,1);var slider_name=menu_item.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,-1);},200);}
return;}
else{SKEffectsFactory.SubSynchronization[menu_item.element.id]+=1;menu_item.Synchronized(false);}}
menu_item.UnsetSelected();},"onshow":function(menu_item){var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){menu_item.SubSynchronized(true);var slider_name=menu_item.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,1);},200);}
return;}else{if(!menu_item.Synchronized()){menu_item.Synchronized(true);}
else{return;}}
var id=menu_item.element.id;menu_item.HideSiblings();menu_item.SetSelected();menu_item.root_obj.SetSubmenuPosition(menu_item);menu_item.Synchronized(true);},"onclick":function(menu_item){var link_obj=SKElement.GetFirstElementByTag(menu_item.element,'A');if(link_obj.href.indexOf('javascript:void(null)')==-1)
return;var menu_obj;if($(menu_item.element.id+'_')){menu_obj=new SKMenu($(menu_item.element.id+'_'),menu_item.root_obj);}else{menu_obj=menu_item.SubMenu();}
if(!menu_obj||typeof menu_obj=='undefined')return;var holder=menu_obj.GetHolder();var animation=SKAnimationHolder[menu_item.element.id];if(typeof animation=='undefined'){animation=new SKAnimation(menu_item.element.id);}
if($(holder).style.display!='none'||animation.running){menu_item.HideAnimation();if(menu_item.state_marker_element){menu_item.state_marker_element.className=SELECTED_CLASS_NAME;}}else{if(menu_item.state_marker_element){menu_item.state_marker_element.className='';}
menu_item.ShowAnimation();}}};SKMenuOptions.events.DEFAULT={"mouseover":"show","mouseout":"hide"}
SKMenuOptions.events.CLICK={"mouseover":"show","mouseout":"hide","click":"click"}
SKMenuOptions.timeouts.DEFAULT={show:0,hide:50,hide_no_sub:50,show_sub:0,hide_sub:0,rollover_next:50,click:0};SKMenuOptions.dimensions={};SKMenuOptions.dimensions.DEFAULT={first_level:{visible_window_width:140},subitems:{visible_window_width:160,stretch_increment:100},menu_padding:20,dft_si_height:15,wce_icon_width:10};SKMenuOptions.slider.DEFAULT={start:300,end:300,wait:50,step:3}
SKMenuOptions.callbacks={};SKMenuOptions.callbacks.DEFAULT={after_traverse:function(menu_item){var submenu_layout=main_menu.submenu_layout;var container_id="container_menu";SKUtils.PrepareMenuContainer(container_id,submenu_layout);SKUtils.RemoveElement(container_id);Element.show(main_menu.menu.element);},before_traverse:function(menu_item){}}
SKMenuOptions.helpers={};SKMenuOptions.holders={};SKMenuOptions.holders.DEFAULT={submenu:[{"tagName":"div","class":"effects_wrapper"},{"tagName":"div","class":"effects_holder","style":{"display":"none"}},{"tagName":"div","class":"subNav"}],item:[]}
SKDesigns.Default={behavior_type:SKMenuOptions.behaviors.DEFAULT,scroll:false,holders:SKMenuOptions.holders.DEFAULT,timeout:SKMenuOptions.timeouts.DEFAULT,slider:SKMenuOptions.slider.DEFAULT,dimensions:SKMenuOptions.dimensions.DEFAULT,callbacks:SKMenuOptions.callbacks.DEFAULT}


function SKResizeContainer(id,options)
{var container=document.getElementById(id);SKResizeContainerObject(container,options);}
function SKResizeContainerObject(container,options)
{if(typeof options=='undefined'){options={};}
if(typeof options.ResizeIfShorter=='undefined'){options.ResizeIfShorter=1;}
if(typeof options.ResizeAlways=='undefined'){options.ResizeAlways=0;}
var children=container.childNodes;var children_width=0;for(var i=0;i<children.length;i++){var w=parseInt(children[i].offsetWidth);if(!isNaN(w)){var margin_left=parseInt(children[i].style.marginLeft);var margin_right=parseInt(children[i].style.marginRight);var padding_left=parseInt(children[i].style.paddingLeft);var padding_right=parseInt(children[i].style.paddingRight);if(isNaN(margin_left)){margin_left=0;}
if(isNaN(margin_right)){margin_right=0;}
if(isNaN(padding_left)){padding_left=0;}
if(isNaN(padding_right)){padding_right=0;}
children_width+=w+margin_left+margin_right+padding_left+padding_right;}}
if(options.ResizeAlways==1||(options.ResizeIfShorter==1&&parseInt(container.offsetWidth)<children_width)){container.style.width=children_width+"px";}}


function SKElement(){};function SKUtils(){};var SKMenu=Class.create();var hashFirstElementMap=[];var ITEMS_CACHE=[];SKMenu.prototype={initialize:function(element,root_obj){this.element=element;if(typeof root_obj!='undefined'){this.root_obj=root_obj;}
this.width=0;this.height=0;this.icon_width=this.root_obj.icon_width;},Items:function(){if(typeof this.menu_items=='undefined'){this.menu_items=[];var list_items=new Array();var element=this.element;if(!element||typeof element.tagName=='undefined')return;if(element.tagName.toUpperCase()=='UL'){list_items=SKElement.GetChildrenByTag(element,'LI');}
if(element.tagName.toUpperCase()=='TABLE'){var oTBody=null;for(var i=0;i<element.childNodes.length;i++)
if(element.childNodes[i].tagName&&element.childNodes[i].tagName.toUpperCase()=='TBODY')
oTBody=element.childNodes[i];var arrTableRows=oTBody.childNodes;for(var i=0;i<arrTableRows.length;i++){var arrTableCells=SKElement.GetChildrenByTag(arrTableRows[i],'TD');list_items=list_items.concat(arrTableCells);}}
for(var i=0;i<list_items.length;i++){var menu_item=new SKMenuItem(list_items[i],{parent_id:this.element.id,position:i,root_obj:this.root_obj});this.menu_items.push(menu_item);}}
return this.menu_items;},ParentMenu:function(){var parent=SKElement.ParentListElement(this.element);return new SKMenu(parent,this.root_obj);},ParentMenuItem:function(){var parent_item;var parent_element=SKElement.GetParentByTag(this.element,"LI");if(typeof parent_element=='undefined')
parent_element=SKElement.GetParentByTag(this.element,"TD");if(typeof parent_element!='undefined')
parent_item=new SKMenuItem($(parent_element),{root_obj:this.root_obj});return parent_item;},CalculatePositionRelativeToMainMenu:function(orientation,submenu_layout){var bTableLayout=0;var effects_wrapper=SKElement.GetParentByClassName($(this.element),'effects_wrapper');if(typeof effects_wrapper=='undefined')return;var effects_holder=SKElement.GetParentByClassName($(this.element),'effects_holder');if(typeof effects_holder=='undefined')return;var submenu_width=effects_holder.getStyle("width");if(typeof submenu_width!='undefined'&&submenu_width!=null){submenu_width=SKUtils.SizeToNumber(submenu_width);}else{if(effects_holder.getStyle("display")=='none'){effects_wrapper.style.left='';effects_wrapper.style.position='relative';effects_wrapper.style.position='absolute';effects_wrapper.addClassName('tmp');effects_holder.setStyle({display:'block'});submenu_width=effects_holder.offsetWidth;effects_holder.setStyle({display:'none'});effects_wrapper.removeClassName('tmp');}else{submenu_width=effects_holder.offsetWidth;}}
if(submenu_width<=0)return;var main_menu=SKElement.GetParentByTag($(this.element),'UL');var main_menu_wrapper=SKElement.GetParentByTag(main_menu,'DIV');if(typeof main_menu=='undefined'){main_menu=SKElement.GetParentByTag($(this.element),'TABLE');main_menu_wrapper=SKElement.GetParentByTag(main_menu,'TD');bTableLayout=1;}
var main_menu_width=this.root_obj.menu_width;if(main_menu.offsetWidth>main_menu_width)
main_menu_width=main_menu.offsetWidth;if(main_menu_wrapper.offsetWidth>main_menu_width)
main_menu_width=main_menu_wrapper.offsetWidth;var left_offset=null;var layer=SKElement.GetParentByClassName($(this.element),'effects_wrapper');if(!bTableLayout){var main_menu_list_item=SKElement.GetParentByTag($(this.element),'LI');var main_menu_left_x=SKElement.GetFirstElementByTag(main_menu,'LI').offsetLeft;var main_menu_right_x=main_menu_width;var menu_item_left_x=main_menu_list_item.offsetLeft-main_menu_left_x;if(main_menu_right_x-menu_item_left_x>submenu_width){left_offset=0;}else{left_offset=main_menu_right_x-submenu_width-menu_item_left_x;}}
if(bTableLayout){var main_menu_table_cell=SKElement.GetParentByTag($(this.element),'TD');var menu_wrapper_left=main_menu_wrapper.offsetLeft;var menu_left=main_menu.offsetLeft;var menu_item_width=main_menu_table_cell.offsetWidth;var menu_item_left=main_menu_table_cell.offsetLeft;if(document.all){var menu_wrapper_border=SKElement.GetBorderWidth(main_menu_wrapper);if(menu_wrapper_border)
menu_left+=menu_wrapper_border.left;}
var main_menu_wrapper_right_x=menu_wrapper_left+main_menu_width;var menu_item_left_x=menu_item_left+menu_left;if(main_menu_wrapper_right_x-menu_item_left_x>submenu_width){left_offset=layer.offsetLeft;}else{left_offset=layer.offsetLeft-(submenu_width-(main_menu_wrapper_right_x-menu_item_left_x));if(orientation==HORIZONTAL){var margin_left=(-1)*(submenu_width-(main_menu_wrapper_right_x-menu_item_left_x));$(layer).setStyle({'margin-left':margin_left+"px"});return;}}
if(submenu_layout==DROPDOWN_AT_RIGHT){var margin_top=(-1)*main_menu_table_cell.offsetHeight;var margin_left=main_menu_table_cell.offsetWidth;$(layer).setStyle({'margin-left':margin_left+"px"});$(layer).setStyle({'margin-top':margin_top+"px"});return;}}
$(layer).setStyle({left:left_offset+"px"});},CalculateWidth:function(){var items=this.Items();var padding=(typeof this.padding!='undefined')?this.padding:0;var total_width=0;for(var i=0;i<items.length;i++){var item=items[i];var anchor_element=item.FirstLink();if(typeof anchor_element!='undefined'&&anchor_element!=null){var anchor_width=SKUtils.SizeToNumber($(anchor_element).getStyle("width"));if(typeof anchor_width=='undefined'||anchor_width==null||anchor_width==0)
anchor_width=$(anchor_element).offsetWidth;if(typeof anchor_width!='undefined'&&anchor_width!=null)
total_width+=anchor_width;if(!document.all){var anchor_pl=SKUtils.SizeToNumber($(anchor_element).getStyle("padding-left"));var anchor_pr=SKUtils.SizeToNumber($(anchor_element).getStyle("padding-right"));var anchor_ml=SKUtils.SizeToNumber($(anchor_element).getStyle("margin-left"));var anchor_mr=SKUtils.SizeToNumber($(anchor_element).getStyle("margin-right"));if(typeof anchor_pl!='undefined'&&anchor_pl!=null)total_width+=anchor_pl;if(typeof anchor_pr!='undefined'&&anchor_pr!=null)total_width+=anchor_pr;if(typeof anchor_ml!='undefined'&&anchor_ml!=null)total_width+=anchor_ml;if(typeof anchor_mr!='undefined'&&anchor_mr!=null)total_width+=anchor_mr;}}}
if(total_width>0){total_width+=padding;this.width=total_width;}},StretchAdmin:function(current_layout,icon_width){if(typeof current_layout=='undefined'){current_layout=this.root_obj.submenu_layout;}
if(typeof icon_width=='undefined'){icon_width=this.root_obj.icon_width;}
if(this.root_obj.admin){var items_count=(this.Items()).length;var count=(current_layout==0)?items_count:1;if(this.width==0||typeof this.width=='undefined'||this.width==null){this.width=$(this.element).getStyle("width");this.width=SKUtils.SizeToNumber(this.width)-0;}
this.width+=(count*icon_width);this.SetHolderWidth(this.width);this.SetMenuWidth(this.width);}},SetMenuWidth:function(new_width){var type_str=typeof new_width;if(type_str!="undefined"&&(type_str=="string"||type_str=="number")){$(this.element).setStyle({width:new_width+"px"});}},SetHolderWidth:function(new_width){var holder=this.GetHolder();if(holder){$(holder).setStyle({width:new_width+"px"});}},GetHolder:function(){var holder;var parent_menu=this.ParentMenuItem();if(typeof parent_menu!='undefined'){var parent_id=parent_menu.element.id;var key="#"+parent_id+" .effects_holder";if(!ITEMS_CACHE[key]){ITEMS_CACHE[key]=new Object();var layers=$$(key);if(layers.length>0){holder=layers[0];}
ITEMS_CACHE[key]=holder;}else{holder=ITEMS_CACHE[key];}}
return holder;}};Object.extend(SKMenu.prototype,SKElement.prototype);var SKMenuItem=Class.create();SKMenuItem.prototype={initialize:function(element,props){this.element=element;this.state_marker_element=null;if(typeof props!='undefined'){this.parent_id=props.parent_id;this.position=props.position;this.root_obj=props.root_obj;}
var first_div=SKElement.GetFirstElementByTag(this.element,'DIV');if(first_div&&first_div.id.indexOf('state_marker')!=-1){this.state_marker_element=first_div;}},SubMenu:function(){var element=this.element;var sub_menu_element=SKElement.GetFirstElementByTag(this.element,"UL");if(typeof sub_menu_element=='undefined')
sub_menu_element=SKElement.GetFirstElementByTag(this.element,"TABLE");if(typeof sub_menu_element!='undefined'){var sub_menu=new SKMenu(sub_menu_element,this.root_obj);return sub_menu;}},SiblingsIds:function(){var ids=[];var parent_menu=this.ParentMenu();if(!parent_menu||typeof parent_menu=='undefined')return ids;var id=this.element.id;var menu_items=parent_menu.Items();if(!menu_items||typeof menu_items=='undefined')return ids;for(var i=0;i<menu_items.length;i++){var menu_item_id=menu_items[i].element.id;if(menu_item_id!=id){ids.push(menu_item_id);}}
return ids;},Siblings:function(){var parent_menu=this.ParentMenu();var id=this.element.id;var menu_items=parent_menu.Items();var siblings=[];for(var i=0;i<menu_items.length;i++){var sibling=menu_items[i];if(sibling.element.id!=id){siblings.push(sibling);}}
return siblings;},MenuNephews:function(){var siblings=this.SiblingsIds();var nephews=[];for(var i=0;i<siblings.length;i++){var menu_item=new SKMenuItem($(siblings[i]),{root_obj:this.root_obj});var list;if($(menu_item.element.id+'_')){list=new SKMenu($(menu_item.element.id+'_'),menu_item.root_obj);}else{list=menu_item.SubMenu();}
if(typeof list!='undefined'){nephews.push(list);}}
return nephews;},Nephews:function(){var menu_nephews=this.MenuNephews();var nephews=[];for(var j=0;j<menu_nephews.length;j++){var menu_nephew=menu_nephews[j];var items=menu_nephew.Items();for(var i=0;i<items.length;i++){var item=items[i];if(typeof item!='undefined'){nephews.push(item);}}}
return nephews;},FirstLink:function(){var first_link=SKElement.GetFirstElementByTag(this.element,'A');if(first_link.className.indexOf('menu_contents')!=-1||SKElement.ContainsElementOfClass(first_link,'menu_contents'))
{return first_link;}},GetContentsElement:function(){var contents_element;var id=this.element.id;var key="#"+id+" .menu_contents";if(!ITEMS_CACHE[key]){ITEMS_CACHE[key]=new Object();var layers=$$(key);if(layers.length>0){contents_element=layers[0];}
ITEMS_CACHE[key]=contents_element;}else{contents_element=ITEMS_CACHE[key];}
return contents_element;},ParentMenu:function(){var parent=SKElement.ParentListElement(this.element);return new SKMenu(parent,this.root_obj);},ParentMenuItem:function(){var parent_item;var parent_element=SKElement.GetParentByTag(this.element,"LI");if(typeof parent_element!='undefined'){parent_item=new SKMenuItem($(parent_element),{root_obj:this.root_obj});}
return parent_item;},IsSubItem:function(){var parent_item=this.ParentMenuItem();return(typeof parent_item!='undefined');},SetSelected:function(){if(this.state_marker_element&&this.state_marker_element.className!=CURRENT_CLASS_NAME)
{this.state_marker_element.className=SELECTED_CLASS_NAME;}
this.FlipImages(0);var slider_name=this.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,1);},200);}},UnsetSelected:function(){if(this.state_marker_element&&this.state_marker_element.className!=CURRENT_CLASS_NAME)
{this.state_marker_element.className='';}
this.FlipImages(1);var slider_name=this.element.id+"_slider";var slider=SKSliders[slider_name];if(slider){window.setTimeout(function(){SKSlider.TwoWaySlide(slider,-1);},200);}},IsSelected:function(){if(this.state_marker_element){var class_name=this.state_marker_element.className;class_name=class_name.toString();return(class_name.indexOf(SELECTED_CLASS_NAME)!=-1);}},FlipImages:function(image_index){if(image_index!=0)image_index=1;var other_index=(image_index==0)?1:0;var contents_element=this.GetContentsElement();if(typeof contents_element!='undefined'){var image_elements=SKElement.GetChildrenByTag(contents_element,"IMG",true);if(image_elements.length==2){Element.hide(image_elements[other_index]);Element.show(image_elements[image_index]);}}},HideSiblings:function(){var siblings=this.Siblings();for(var i=0;i<siblings.length;i++){var sibling=siblings[i];if(sibling.IsSelected()){SKEffectsFactory.ForceHide(sibling);}}},Synchronized:function(flag){var id=this.element.id;var new_value;var old_value=SKEffectsFactory.Synchronization[id];new_value=(typeof flag!='undefined')?flag:((typeof old_value=='undefined')?false:old_value)
SKEffectsFactory.Synchronization[id]=new_value;return new_value;},SynchronizeSiblings:function(flag){var siblings=this.Siblings()
for(var i=0;i<siblings.length;i++){var id=siblings[i].element.id;SKEffectsFactory.Synchronization[id]=false;}},SubSynchronized:function(child,increment){var id;if(typeof child=='undefined'||child==false){return(SKEffectsFactory.SubSynchronization[this.element.id]<2);}
else{var parent_item=this.ParentMenuItem();if(typeof parent_item=='undefined'){return(SKEffectsFactory.SubSynchronization[this.element.id]<2);}
id=parent_item.element.id;}
var old_value=SKEffectsFactory.SubSynchronization[id];var new_value;if(typeof increment!='undefined'){if(typeof old_value=='undefined'){new_value=0;}
new_value+=increment;}
else{new_value=(typeof old_value=='undefined')?1:0;}
SKEffectsFactory.SubSynchronization[id]=new_value;return new_value;},ShowAnimation:function(){var menu_obj;if($(this.element.id+'_')){menu_obj=new SKMenu($(this.element.id+'_'),this.root_obj);}else{menu_obj=this.SubMenu();}
var id=this.element.id;var animation_props=this.root_obj.animation_props;if(typeof menu_obj!='undefined'){if(typeof animation_props!='undefined'&&animation_props.custom==true){animation_props.show(this)}
else{var holder=menu_obj.GetHolder();Element.show(menu_obj.element.id);var animation=SKAnimationHolder[id];if(typeof animation=='undefined'){animation=new SKAnimation(id);}
if(!animation.running){animation.running=true;animation.proceed=false;var e=new Effect[animation_props.effect.show](holder,animation_props.effect.options);e.options.element=e.element;e.options.id=id;SKUtils.ExtendMethod(e.options,'afterFinishInternal',animation_props.finish_show);animation.hiding=false;animation.follow=false;animation.SetEffect(e);}
else{animation.follow=true;}}}},HideAnimation:function(){var menu_obj;if($(this.element.id+'_')){menu_obj=new SKMenu($(this.element.id+'_'),this.root_obj);}else{menu_obj=this.SubMenu();}
var id=this.element.id;var animation_props=this.root_obj.animation_props;if(typeof menu_obj!='undefined'){if(typeof animation_props!='undefined'&&animation_props.custom==true){animation_props.hide(this)}
else{var holder=menu_obj.GetHolder();var animation=SKAnimationHolder[id];if(typeof animation=='undefined'){animation=new SKAnimation(id);}
if($(holder).style.display!='none'||animation.running){if(!animation.running){animation.running=true;var e=new Effect[animation_props.effect.hide](holder,animation_props.effect.options);e.options.element=e.element;e.options.id=id;SKUtils.ExtendMethod(e.options,'afterFinishInternal',animation_props.finish_hide);animation.hiding=true;animation.SetEffect(e);}
else{animation.proceed=true;}}}}},ResetAnimation:function(){var parent_item=this.ParentMenuItem();var id=parent_item.element.id;if(typeof animation_props!='undefined'&&animation_props.custom==true){animation_props.reset(this)}
else{var animation=SKAnimationHolder[id];if(typeof animation=='undefined'){animation=new SKAnimation(id);}
if(animation.running&&!animation.hiding){animation.Reset();var sub_menu=this.ParentMenu();if(typeof sub_menu!="undefined"){animation.effect.finishOn=0;animation.effect.options.afterFinishInternal(animation.effect);}}}}};Object.extend(SKMenuItem.prototype,SKElement.prototype);var SKMainMenu=Class.create();Object.extend(SKMainMenu.prototype,SKMenu.prototype);Object.extend(SKMainMenu.prototype,{initialize:function(id,props){this.root_id=id;this.element=$(id);this.menu;this.queue={};this.queue.name=Effect.Queues.get(id);this.callbacks={};this.slider={};this.scroll=true;this.timeout={};this.width;this.admin=false;this.queue.options={scope:id,posion:"end"};this.submenu_layout=0;this.orientation=0;this.style=0;this.icon_width=12;this.animation_props={};this.holders={}
if(typeof props=='undefined'){props={};}
if(typeof props.design!='undefined'){props=SKUtils.MergeHashes(props.design,props);}
this.dimensions={};this.menu_width=$(this.element).getStyle('width');if(typeof this.menu_width=='string'&&this.menu_width!=null){this.menu_width=SKUtils.SizeToNumber(this.menu_width);}
this.InitializeProperty(this.menu_width,props,"menu_width",this.menu_width);if(this.menu_width>0){$(this.element).setStyle({width:this.menu_width});}
this.queue.options={position:"end",scope:id};if(typeof props.event_type!='undefined'){this.events=props.event_type;}
else{this.InitializeSubProperties(this.events,props,"events",SKMenuOptions.events.DEFAULT);}
if(typeof props.behavior_type!='undefined'){this.behaviors=props.behavior_type;}
else{this.InitializeProperty(this.behaviors,props,"behaviors",SKMenuOptions.behaviors.DEFAULT);}
if(typeof props.timeout!='undefined'){this.timeout=props.timeout;}
else{this.InitializeSubProperties(this.timeout,props,"timeout",SKMenuOptions.timeouts.DEFAULT);}
this.InitializeSubProperties(this.slider,props,"slider",SKMenuOptions.slider.DEFAULT);this.InitializeSubProperties(this.callbacks,props,"callbacks",SKMenuOptions.callbacks.DEFAULT);this.InitializeProperty(this.scroll,props,"scroll",this.scroll);this.InitializeProperty(this.admin,props,"admin",this.admin);this.InitializeProperty(this.submenu_layout,props,"submenu_layout",this.submenu_layout);this.InitializeProperty(this.orientation,props,"orientation",this.orientation);this.InitializeProperty(this.style,props,"style",this.style);this.InitializeProperty(this.icon_width,props,"icon_width",this.icon_width);this.InitializeProperty(this.animation_props,props,"animation_props",SKAnimations.DEFAULT);this.dimensions=(typeof props.dimensions!='undefined')?props.dimensions:SKMenuOptions.dimensions.DEFAULT;this.holders=(typeof props.holders!='undefined')?props.holders:SKMenuOptions.holders.DEFAULT;this.helpers=(typeof props.helpers!='undefined')?props.helpers:{};},InitializeProperty:function(property,props,property_name,default_value){if(props&&typeof props[property_name]!='undefined'){property=props[property_name];}
else{property=default_value;}
this[property_name]=property;},InitializeSubProperties:function(property,props,property_name,default_value){var properties;if(props&&typeof props[property_name]!='undefined'){properties=props[property_name];for(var sub_property in default_value){if(typeof properties[sub_property]!='undefined'){property[sub_property]=properties[sub_property];}
else{property[sub_property]=default_value[sub_property];}}}
else{property=default_value;}
this[property_name]=property;},SetSubmenuPosition:function(item){if(this.orientation==VERTICAL&&this.submenu_layout==DROPDOWN_BETWEEN_ITEMS){return;}
var sub_menu;if($(item.element.id+'_')){sub_menu=new SKMenu($(item.element.id+'_'),item.root_obj);}else{sub_menu=item.SubMenu();}
if(typeof sub_menu!='undefined'){sub_menu.CalculatePositionRelativeToMainMenu(this.orientation,this.submenu_layout);}},traverse:function(callback){var id=this.element.id;this.menu=new SKMenu($(id),this);if(typeof callback!='undefined'){callback(id);}
if(this.callbacks["before_traverse"])
this.callbacks["before_traverse"](this);var menu_items=this.menu.Items();if(!menu_items||typeof menu_items=='undefined')return;for(var i=0;i<menu_items.length;i++){var menu_item=menu_items[i];SKEffectsFactory.TraverseMenuItem(menu_item);}
for(var i=0;i<menu_items.length;i++){var item=menu_items[i];SKEffectsFactory.ApplyMenuItemEffects(item,this);}
if(this.callbacks["after_traverse"]){this.callbacks["after_traverse"](this);}}});SKElement.GetChildrenByTag=function(element,tag,recursively){if(!element||typeof element=='undefined'||!tag||typeof tag=='undefined'||!element.childNodes||typeof element.childNodes=='undefined')return;var arrChildren=new Array();var arrTempChildren=element.childNodes;if(recursively)
arrTempChildren=SKElement.GetDOMChildren(element);for(var i=0;i<arrTempChildren.length;i++){var child=arrTempChildren[i];if(typeof child.tagName!='undefined'&&child.tagName.toUpperCase()==tag){arrChildren.push(child);}}
return arrChildren;}
SKElement.GetDOMChildren=function(oRoot){var arrChildren=[oRoot];var i=0;while(i<arrChildren.length){if(arrChildren[i].childNodes&&arrChildren[i].childNodes.length>0){for(var j=0;j<arrChildren[i].childNodes.length;j++)
arrChildren.push(arrChildren[i].childNodes[j])}
i++;}
return arrChildren;}
SKElement.ParentListElement=function(element){if(!element||typeof element=='undefined')return null;var parent;while(element.parentNode){parent=element.parentNode;if(typeof parent.tagName=='undefined')break;var tag_name=parent.tagName.toUpperCase();if(tag_name=="UL"||tag_name=="OL"||tag_name=="TABLE"){break;}
element=parent;}
element=parent;return element;}
SKElement.GetFirstElementByTag=function(element,tag){if(typeof element.id!='undefined'&&element.id!=''&&typeof hashFirstElementMap[element.id]!='undefined'&&typeof hashFirstElementMap[element.id][tag]!='undefined'){return hashFirstElementMap[element.id][tag];}
var iPointer=0;var arrChildNodes=[];arrChildNodes.push(element);while(iPointer<arrChildNodes.length){if(arrChildNodes[iPointer]&&arrChildNodes[iPointer].childNodes)
{arrTemp=arrChildNodes[iPointer].childNodes;for(var i=0;i<arrTemp.length;i++){if(typeof arrTemp[i].tagName!='undefined'&&arrTemp[i].tagName.toUpperCase()==tag){if(typeof hashFirstElementMap[element.id]=='undefined')
hashFirstElementMap[element.id]=[];hashFirstElementMap[element.id][tag]=arrTemp[i];return arrTemp[i];}else{arrChildNodes.push(arrTemp[i]);}}}
iPointer++;}}
SKElement.GetParentByTag=function(element,tag){if(!element||typeof element=='undefined')return;var parent;var found=false;while(element.parentNode){parent=element.parentNode;if(parent.tagName&&parent.tagName.toUpperCase()==tag){found=true;break;}
element=parent;}
var not_found;element=(found)?parent:not_found;return element;}
SKElement.GetParentByClassName=function(element,sClassName){var parent;var found=false;while(element.parentNode){parent=element.parentNode;if(parent.className&&parent.className.indexOf(sClassName)!=-1){found=true;break;}
element=parent;}
var not_found;element=(found)?parent:not_found;return element;}
SKElement.GetAbsolutePosition=function(element){var pos=new Object();pos.left=0;pos.top=0;var tmp_element=element;while(tmp_element&&typeof(tmp_element)!='undefined'&&typeof(tmp_element.offsetLeft)!='undefined'){if(tmp_element.nodeName){var node_name=tmp_element.nodeName.toUpperCase();if(node_name!="DIV"&&node_name!="TBODY"&&node_name!="TR"&&node_name!="CENTER"&&node_name!="P"&&node_name!="UL"&&node_name!="OL")
{pos.left+=tmp_element.offsetLeft;pos.top+=tmp_element.offsetTop;if(document.all){var oBorderWidth=SKElement.GetBorderWidth(tmp_element);pos.left+=oBorderWidth.left;pos.top+=oBorderWidth.top;}}}
tmp_element=tmp_element.parentNode;}
return pos;}
SKElement.GetBorderWidth=function(element){var oBorderWidth=new Object();oBorderWidth.top=0;oBorderWidth.right=0;oBorderWidth.bottom=0;oBorderWidth.left=0;if(typeof element.getStyle=='undefined')
return null;sCSSAttributeValue=element.getStyle("border-width");if(!sCSSAttributeValue||typeof sCSSAttributeValue=='undefined')
return null;if(sCSSAttributeValue=='thin'||sCSSAttributeValue=='medium'||sCSSAttributeValue=='thick')
return null;var arrBorderWidth=new Array();arrBorderWidth=sCSSAttributeValue.split(' ');if(!arrBorderWidth||typeof arrBorderWidth=='undefined')
return null;switch(arrBorderWidth.length){case 1:oBorderWidth.top=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.right=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.bottom=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.left=SKUtils.SizeToNumber(arrBorderWidth[0]);break;case 2:oBorderWidth.top=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.right=SKUtils.SizeToNumber(arrBorderWidth[1]);oBorderWidth.bottom=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.left=SKUtils.SizeToNumber(arrBorderWidth[1]);break;case 3:oBorderWidth.top=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.right=SKUtils.SizeToNumber(arrBorderWidth[1]);oBorderWidth.bottom=SKUtils.SizeToNumber(arrBorderWidth[2]);oBorderWidth.left=SKUtils.SizeToNumber(arrBorderWidth[1]);break;case 4:oBorderWidth.top=SKUtils.SizeToNumber(arrBorderWidth[0]);oBorderWidth.right=SKUtils.SizeToNumber(arrBorderWidth[1]);oBorderWidth.bottom=SKUtils.SizeToNumber(arrBorderWidth[2]);oBorderWidth.left=SKUtils.SizeToNumber(arrBorderWidth[3]);break;default:return null;}
return oBorderWidth;}
SKElement.MoveChild=function(container,child){var container=$(container);container.appendChild($(child));}
SKElement.ContainsElementOfClass=function(element,class_name){var children=element.childNodes;var result=false;for(var i=0;i<children.length;i++){var child=children[i];if(typeof child.tagName!='undefined'){if($(child).hasClassName(class_name)){return true;}
result=SKElement.ContainsElementOfClass(child,class_name);if(result==true){return true;}}}
return false;}
SKUtils.SizeToNumber=function(size){if(typeof size=='undefined'||size==null)return 0;var result=size;if(typeof size=='string'){result=size.replace("px","");result.replace("pt","");}
result-=0;return result;}
SKUtils.SetOnLoad=function(callback){var old_func=null;if(typeof window.onload=='function'){old_func=window.onload;window.onload=function(){old_func();callback();}}
else{window.onload=function(){callback();}};}
SKUtils.ExtendMethod=function(object,method,ext){var old=object[method];object[method]=function(arg){if(old){object._=old;object._(arg);}
object._=ext;object._(arg);}}
SKUtils.PrepareMenuContainer=function(container_id,submenu_layout){var class_name=container_id+"_"+submenu_layout;if(!$(container_id)){container_element=document.createElement("div");container_element.id=container_id;var body=document.getElementsByTagName("body")[0]
body.insertBefore(container_element,body.firstChild)}
$(container_id).addClassName(class_name);$(container_id).removeClassName(container_id+"_"+submenu_layout);}
SKUtils.RemoveElement=function(container_id){if($(container_id)){var parent_element=$(container_id).parentNode;parent_element.removeChild($(container_id))}}
SKUtils.MergeHashes=function(org_hash,new_hash){var result=$H(org_hash);return result.merge($H(new_hash));}
SKUtils.GetCurrentPageUrl=function(){return document.location.href;}


var EFFECTS_FACTORY_CACHE=[];function SKEffectsFactory(){this.timeout=100;this.handles={};this.visible_items={};this.menu_items;};var SKEffectsFactoryObj=new SKEffectsFactory();SKEffectsFactory.Synchronization={};SKEffectsFactory.SubSynchronization={};function SKMenuBehaviors(){};SKMenuBehaviors.behaviors={};SKMenuBehaviors.events={};SKMenuBehaviors.timeouts={};SKMenuBehaviors.types={};SKEffectsFactory.Hide=function(item,callback,timeout){if(typeof item=="undefined")return;var id=item.element.id;if(typeof callback=="undefined"){callback=SKMenuBehaviors.types.DEFAULT["onhide"];}
this.CancelTimeout(id)
if(item.IsSubItem()||timeout==0){callback(item);}
else{SKEffectsFactoryObj.handles[id]=window.setTimeout(function(){callback(item);},timeout);}}
SKEffectsFactory.ForceHide=function(menu_item){if(typeof menu_item=="undefined")return;var id=menu_item.element.id;var root_obj=menu_item.root_obj;var callback=root_obj.behaviors["onhide"];var timeout=root_obj.timeout.rollover_next;this.CancelTimeout(id);SKEffectsFactoryObj.handles[id]=window.setTimeout(function(){callback(menu_item);},timeout);}
SKEffectsFactory.KeepVisible=function(item){if(typeof item=="undefined")return;var id=item.element.id;this.CancelTimeout(id);}
SKEffectsFactory.CancelTimeout=function(id){if(typeof id=="undefined")return;if(typeof SKEffectsFactoryObj.handles[id]!='undefined'&&SKEffectsFactoryObj.handles[id]){window.clearTimeout(SKEffectsFactoryObj.handles[id]);SKEffectsFactoryObj.handles[id]=null;}}
SKEffectsFactory.KeepVisibleMany=function(items){if(typeof items=="undefined")return;for(var i=0;i<items.length;i++){var item=items[i];SKEffectsFactory.KeepVisible(item);}}
SKEffectsFactory.ApplyMenuItemEffects=function(menu_item){var list_item=menu_item.element;var root_obj=menu_item.root_obj;var sub_list;if($(menu_item.element.id+'_')){sub_list=new SKMenu($(menu_item.element.id+'_'),menu_item.root_obj);}else{sub_list=menu_item.SubMenu();}
var menu_obj=sub_list;var callback_show=root_obj.behaviors["onshow"];var callback_hide=root_obj.behaviors["onhide"];var callback_click=root_obj.behaviors["onclick"];var timeout_show=root_obj.timeout.show;var timeout_hide=root_obj.timeout.hide;var timeout_click=root_obj.timeout.click;if(menu_item.IsSubItem()){timeout_show=root_obj.timeout.show_sub;timeout_hide=root_obj.timeout.hide_sub;}
else{if(typeof root_obj.timeout.hide_no_sub!='undefined'&&typeof sub_list=='undefined'){timeout_hide=root_obj.timeout.hide_no_sub;}}
var behavior={};behavior.show={'show':[],'hide':[]};behavior.hide={'show':[],'hide':[]};behavior.click={'click':[]};if(typeof sub_list!="undefined"){behavior.show['show'].push(sub_list);behavior.click['click'].push(sub_list);}
var parent_menu=menu_item.ParentMenu();if(typeof parent_menu!="undefined"){behavior.show['show'].push(parent_menu);behavior.click['click'].push(parent_menu);}
var nephews=menu_item.Nephews();behavior.hide['hide'].push(menu_item);var event={};event.show=function(){var id=menu_item.element.id;var menu_obj;if($(menu_item.element.id+'_')){menu_obj=new SKMenu($(menu_item.element.id+'_'),menu_item.root_obj);}else{menu_obj=menu_item.SubMenu();}
if(!menu_item.IsSubItem()&&menu_item.SubSynchronized()){return;}
else{menu_item.SubSynchronized(true);}
if(typeof SKEffectsFactoryObj.handles[id]!='undefined'){window.clearTimeout(SKEffectsFactoryObj.handles[id]);}
var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){window.clearTimeout(SKEffectsFactoryObj.handles[parent_item.element.id]);}
SKEffectsFactoryObj.handles[id]=window.setTimeout(function(){callback_show(menu_item);SKEffectsFactory.KeepVisibleMany(behavior.show['show']);},timeout_show);};event.hide=function(){if(menu_item.IsSubItem()){menu_item.SubSynchronized(true,1);}
else{if(SKEffectsFactory.SubSynchronization[menu_item.element.id]>=1){SKEffectsFactory.SubSynchronization[menu_item.element.id]=2;}}
SKEffectsFactory.Hide(menu_item,callback_hide,timeout_hide);};event.click=function(e){var event_obj;if(e.target){event_obj=e.target;}else{event_obj=e.srcElement;}
var event_obj_parent_anchor;if(event_obj&&typeof event_obj!='undefined'){if(event_obj.tagName.toUpperCase()=='A'){event_obj_parent_anchor=event_obj;}else{event_obj_parent_anchor=SKElement.GetParentByTag(event_obj,'A');}}
if(event_obj_parent_anchor&&typeof event_obj_parent_anchor!='undefined'){if(typeof event_obj_parent_anchor.className!='undefined'&&event_obj_parent_anchor.className.indexOf('subItem')!=-1)
return;}
var id=menu_item.element.id;var menu_obj;if($(menu_item.element.id+'_')){menu_obj=new SKMenu($(menu_item.element.id+'_'),menu_item.root_obj);}else{menu_obj=menu_item.SubMenu();}
if(!menu_item.IsSubItem()&&menu_item.SubSynchronized()){return;}
else{menu_item.SubSynchronized(true);}
if(typeof SKEffectsFactoryObj.handles[id]!='undefined'){window.clearTimeout(SKEffectsFactoryObj.handles[id]);}
var parent_item=menu_item.ParentMenuItem();if(typeof parent_item!='undefined'){window.clearTimeout(SKEffectsFactoryObj.handles[parent_item.element.id]);}
SKEffectsFactoryObj.handles[id]=window.setTimeout(function(){callback_click(menu_item);SKEffectsFactory.KeepVisibleMany(behavior.click['click']);},timeout_click);}
var event_conf=root_obj.events;var is_IE=(list_item.addEventListener)?false:1;SKEffectsFactory.AddEventListeners(list_item,event_conf,event,is_IE);}
SKEffectsFactory.AddEventListeners=function(element,event_conf,event,is_IE){var AddListener;if(typeof is_IE=='undefined'||!is_IE){AddListener=function(event_name,event_handler){element.addEventListener(event_name,event_handler,false);}}
else{AddListener=function(event_name,event_handler){element.attachEvent("on"+event_name,event_handler);}}
for(var event_name in event_conf){var callback_name=event_conf[event_name];if(typeof callback_name!='undefined'){AddListener(event_name,event[callback_name]);}}}
SKEffectsFactory.TraverseMenuItem=function(menu_item){var parent_id=menu_item.parent_id;var count=menu_item.position;var root_obj=menu_item.root_obj;menu_item.element.id=parent_id+"_"+count;var contents=menu_item.GetContentsElement();if(typeof root_obj.holders.item!='undefined'&&typeof contents!='undefined'){SKEffectsFactory.GenerateHolders(contents,root_obj.holders.item)}
var sub_menu=menu_item.SubMenu();if(typeof sub_menu!='undefined'){sub_menu.element.id=menu_item.element.id+"_";if(!EFFECTS_FACTORY_CACHE[sub_menu.element.id])
EFFECTS_FACTORY_CACHE[sub_menu.element.id]=new Object();if(!EFFECTS_FACTORY_CACHE[sub_menu.element.id].width)
EFFECTS_FACTORY_CACHE[sub_menu.element.id].width=0;if(!EFFECTS_FACTORY_CACHE[sub_menu.element.id].height)
EFFECTS_FACTORY_CACHE[sub_menu.element.id].height=0;if(typeof root_obj.holders.submenu!='undefined'){SKEffectsFactory.GenerateHolders(sub_menu.element,root_obj.holders.submenu)}
var sub_items=sub_menu.Items();var sub_count=0;if(typeof contents!='undefined'){for(var j=0;j<sub_items.length;j++){var sub_item=sub_items[j];sub_item.element.id=sub_menu.element.id+"_"+sub_count;sub_count++;contents=sub_item.GetContentsElement();var oDummy=contents.cloneNode(true);oDummy.className=(root_obj.submenu_layout==0)?contents.className+'__dummy_0':contents.className+'__dummy_1';document.body.appendChild(oDummy)
var iWidth=oDummy.offsetWidth;var iHeight=oDummy.offsetHeight;if(iHeight==0)
iHeight=root_obj.dimensions.dft_si_height;if(root_obj.submenu_layout==0){EFFECTS_FACTORY_CACHE[sub_menu.element.id].width+=iWidth+root_obj.dimensions.menu_padding;EFFECTS_FACTORY_CACHE[sub_menu.element.id].height=(iHeight>EFFECTS_FACTORY_CACHE[sub_menu.element.id].height)?iHeight:EFFECTS_FACTORY_CACHE[sub_menu.element.id].height;}else{iWidth+=root_obj.dimensions.menu_padding;EFFECTS_FACTORY_CACHE[sub_menu.element.id].width=(iWidth>EFFECTS_FACTORY_CACHE[sub_menu.element.id].width)?iWidth:EFFECTS_FACTORY_CACHE[sub_menu.element.id].width;EFFECTS_FACTORY_CACHE[sub_menu.element.id].height+=iHeight+root_obj.dimensions.menu_padding/2;}
oDummy=document.body.removeChild(oDummy);}}}}
SKEffectsFactory.AddScrollLayersItems=function(menu_item){var link_element=menu_item.FirstLink();var window_width=$(link_element).getStyle("width");window_width=SKUtils.SizeToNumber(window_width);var real_width=window_width;var real_height=$(menu_item.element).getStyle("height");real_height=SKUtils.SizeToNumber(real_height);var anchor_element=menu_item.FirstLink();var layer=SKElement.GetFirstElementByTag($(link_element),"SPAN");if(typeof layer!='undefined'){window_width=$(layer).getStyle('width');window_width=SKUtils.SizeToNumber(window_width);var second_layer=SKElement.GetFirstElementByTag($(layer),"SPAN");if(typeof second_layer!='undefined'){real_width=$(second_layer).getStyle("width");real_width=SKUtils.SizeToNumber(real_width);}}
if(typeof link_element!='undefined'&&real_width>window_width){var scroll_layer=SKElement.GetChildrenByTag(link_element,"SPAN");if(typeof scroll_layer!='undefined'&&typeof scroll_layer[0]!='undefined'){scroll_layer=scroll_layer[0];scroll_layer=SKElement.GetChildrenByTag(scroll_layer,"SPAN")[0];var slider_name=menu_item.element.id+"_slider";var timeout_wait=menu_item.root_obj.slider.wait;var slider_step=menu_item.root_obj.slider.step;SKSliders[slider_name]=new SKTwoWaySlider(scroll_layer,slider_name,{org_width:real_width,window_width:window_width,timeout_wait:timeout_wait,step:slider_step});}}}
SKEffectsFactory.GenerateHolders=function(element,holders_props){var parent_node=$(element).parentNode;var current_parent=parent_node
for(var i=0;i<holders_props.length;i++){var holder_props=holders_props[i];var holder_element=document.createElement(holder_props.tagName);for(var property in holder_props){var value=holder_props[property];switch(property)
{case"style":$(holder_element).setStyle(value);break;case"class":$(holder_element).addClassName(holder_props[property])
break;}}
current_parent.appendChild(holder_element);current_parent=holder_element;}
current_parent.appendChild(element);}


var SELECTED_ITEM_SUFFIX='_sel';var SELECTED_ITEM_CLASS='sel';var CURRENT_ITEM_SUFFIX='_cur';var CURRENT_ITEM_CLASS='cur';var IMAGEN_PARAM_OVER='over=1';var IMAGEN_PARAM_COLOR='color=';


var main_menu=null;function LoadMainMenu(admin){if($('ft_menu')){main_menu=new SKMainMenu("ft_menu",{design:SKDesigns.Default,admin:admin,scroll:false,animation_props:SKAnimations.FADE});$('ft_menu').style.width='auto';main_menu.traverse();}}
function FTSecMenuSetOver(obj){if(obj.className.indexOf(CURRENT_ITEM_SUFFIX)==-1)
obj.className+=SELECTED_ITEM_SUFFIX;}
function FTSecMenuSetOut(obj){if(obj.className.indexOf(SELECTED_ITEM_SUFFIX)!=-1)
obj.className=obj.className.substr(0,obj.className.length-SELECTED_ITEM_SUFFIX.length);}
function FTSecMenuSetCurrent(obj,isCurrentItem){if(!isCurrentItem)
return;if(obj.className.indexOf(SELECTED_ITEM_SUFFIX)==-1)
obj.className+=CURRENT_ITEM_SUFFIX;}
function FTPrepMenuItem(sMarkerID,arrIDs,color,isCurrentItem){if(isCurrentItem){var state_marker_obj=document.getElementById(sMarkerID);state_marker_obj.className=CURRENT_ITEM_CLASS;for(var i=0;i<arrIDs.length;i++){var oImg=$(arrIDs[i]);if(oImg.src.indexOf(IMAGEN_PARAM_OVER)==-1){oImg.src+='&'+IMAGEN_PARAM_OVER;}
if(oImg.src.indexOf(IMAGEN_PARAM_COLOR)==-1){oImg.src+='&'+IMAGEN_PARAM_COLOR+color;}}}}


function FutureTechPageOnload(){}


function PrintPreview(){var print_params=document.location.href.indexOf('?')==-1?'?print=true':'&print=true';var width=800;var height=600;var left=(screen.width-width)/2;var top=(screen.height-height)/2;window.open(document.location.href+print_params,'','width='+width+',height='+height+',left='+left+',top='+top+',menubar=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes');}


function getStyle(el,styleProp)
{var x=el;var y=new String;;if(x.currentStyle){y=x.currentStyle[styleProp];}
else if(window.getComputedStyle){y=document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);}
return y;}
function SetHomePageImageURL(sWrapperID,sImgID){var oCell=document.getElementById(sWrapperID);var oImg=document.getElementById(sImgID);var sSrc=getStyle(oCell,(document.all)?'backgroundImage':'background-image');var arrSrc=sSrc.split('/');var x=(document.all)?2:1;var sFileName=arrSrc[arrSrc.length-1].substr(0,arrSrc[arrSrc.length-1].length-x);oImg.src+='/image=%22'+sFileName+'%22';}


function SKResizeContainer(id,options)
{var container=document.getElementById(id);SKResizeContainerObject(container,options);}
function SKResizeContainerObject(container,options)
{if(typeof options=='undefined'){options={};}
if(typeof options.ResizeIfShorter=='undefined'){options.ResizeIfShorter=1;}
if(typeof options.ResizeAlways=='undefined'){options.ResizeAlways=0;}
var children=container.childNodes;var children_width=0;for(var i=0;i<children.length;i++){var w=parseInt(children[i].offsetWidth);if(!isNaN(w)){var margin_left=parseInt(children[i].style.marginLeft);var margin_right=parseInt(children[i].style.marginRight);var padding_left=parseInt(children[i].style.paddingLeft);var padding_right=parseInt(children[i].style.paddingRight);if(isNaN(margin_left)){margin_left=0;}
if(isNaN(margin_right)){margin_right=0;}
if(isNaN(padding_left)){padding_left=0;}
if(isNaN(padding_right)){padding_right=0;}
children_width+=w+margin_left+margin_right+padding_left+padding_right;}}
if(options.ResizeAlways==1||(options.ResizeIfShorter==1&&parseInt(container.offsetWidth)<children_width)){container.style.width=children_width+"px";}}

