﻿// JScript 文件


var Prototype = 
{
  Version: '1.6.0.3',

  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  }
};


/* Based on Alex Arnell's inheritance implementation. */
var Class = {
  create: function() 
  {
  
    function klass() 
    {
      this.initialize.apply(this, arguments);
    }

    Object.extend(klass, Class.Methods);
    klass.superclass = parent;
    klass.subclasses = [];

    return klass;
  }
};

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

Object.extend(Object, {

  isFunction: function(object) 
  {
    return typeof object == "function";
  },

  isString: function(object) {
    return typeof object == "string";
  },

  isNumber: function(object) {
    return typeof object == "number";
  },

  isUndefined: function(object) {
    return typeof object == "undefined";
  }
});


/*--------------------------------------------------------------------------*/


function $A(iterable) 
{
  if (!iterable) return [];
  if (iterable.toArray) return iterable.toArray();
  var length = iterable.length || 0, results = new Array(length);
  while (length--) results[length] = iterable[length];
  return results;
}

function $(element) 
{
  if (Object.isString(element))
    element = document.getElementById(element);
  return Element.extend(element);
}



/*--------------------------------------------------------------------------*/


(function()
{
  var element = this.Element;
  this.Element = function(tagName, attributes) 
  {

  };
}).call(window);

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 = $(element);
    element.style.display = 'none';
    return element;
  },

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

Element._insertionTranslations = {
  tags: 
  {
    TABLE:  ['<table>',                '</table>',                   1],
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
    SELECT: ['<select>',               '</select>',                  1]
  }
};

Element.Methods.Simulated = {};

Element.Methods.ByTag = { };

Object.extend(Element, Element.Methods);


Element.extend = (function() {

  var extend = Object.extend(function(element) 
  {   
    return element;
  },  
  {
    refresh: function() 
    {

    }
  });

  extend.refresh();
  return extend;
})();


