亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? window.js

?? ajax窗體技術,有許多漂亮的窗體,實現漂亮的客戶端
?? JS
?? 第 1 頁 / 共 5 頁
字號:
// Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
// 
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
// 
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// VERSION 1.3

var Window = Class.create();

Window.keepMultiModalWindow = false;
Window.hasEffectLib = (typeof Effect != 'undefined');
Window.resizeEffectDuration = 0.4;

Window.prototype = {
  // Constructor
  // Available parameters : className, blurClassName, title, minWidth, minHeight, maxWidth, maxHeight, width, height, top, left, bottom, right, resizable, zIndex, opacity, recenterAuto, wiredDrag
  //                        hideEffect, showEffect, showEffectOptions, hideEffectOptions, effectOptions, url, draggable, closable, minimizable, maximizable, parent, onload
  //                        add all callbacks (if you do not use an observer)
  //                        onDestroy onStartResize onStartMove onResize onMove onEndResize onEndMove onFocus onBlur onBeforeShow onShow onHide onMinimize onMaximize onClose
  
  initialize: function() {
    var id;
    var optionIndex = 0;
    // For backward compatibility like win= new Window("id", {...}) instead of win = new Window({id: "id", ...})
    if (arguments.length > 0) {
      if (typeof arguments[0] == "string" ) {
        id = arguments[0];
        optionIndex = 1;
      }
      else
        id = arguments[0] ? arguments[0].id : null;
    }
    
    // Generate unique ID if not specified
    if (!id)
      id = "window_" + new Date().getTime();
      
    if ($(id))
      alert("Window " + id + " is already registered in the DOM! Make sure you use setDestroyOnClose() or destroyOnClose: true in the constructor");

    this.options = Object.extend({
      className:         "dialog",
      blurClassName:     null,
      minWidth:          100, 
      minHeight:         20,
      resizable:         true,
      closable:          true,
      minimizable:       true,
      maximizable:       true,
      draggable:         true,
      userData:          null,
      showEffect:        (Window.hasEffectLib ? Effect.Appear : Element.show),
      hideEffect:        (Window.hasEffectLib ? Effect.Fade : Element.hide),
      showEffectOptions: {},
      hideEffectOptions: {},
      effectOptions:     null,
      parent:            document.body,
      title:             " ",
      url:               null,
      onload:            Prototype.emptyFunction,
      width:             200,
      height:            300,
      opacity:           1,
      recenterAuto:      true,
      wiredDrag:         false,
      closeCallback:     null,
      destroyOnClose:    false,
      gridX:             1, 
      gridY:             1      
    }, arguments[optionIndex] || {});
    if (this.options.blurClassName)
      this.options.focusClassName = this.options.className;
      
    if (typeof this.options.top == "undefined" &&  typeof this.options.bottom ==  "undefined") 
      this.options.top = this._round(Math.random()*500, this.options.gridY);
    if (typeof this.options.left == "undefined" &&  typeof this.options.right ==  "undefined") 
      this.options.left = this._round(Math.random()*500, this.options.gridX);

    if (this.options.effectOptions) {
      Object.extend(this.options.hideEffectOptions, this.options.effectOptions);
      Object.extend(this.options.showEffectOptions, this.options.effectOptions);
      if (this.options.showEffect == Element.Appear)
        this.options.showEffectOptions.to = this.options.opacity;
    }
    if (Window.hasEffectLib) {
      if (this.options.showEffect == Effect.Appear)
        this.options.showEffectOptions.to = this.options.opacity;
    
      if (this.options.hideEffect == Effect.Fade)
        this.options.hideEffectOptions.from = this.options.opacity;
    }
    if (this.options.hideEffect == Element.hide)
      this.options.hideEffect = function(){ Element.hide(this.element); if (this.options.destroyOnClose) this.destroy(); }.bind(this)
    
    if (this.options.parent != document.body)  
      this.options.parent = $(this.options.parent);
      
    this.element = this._createWindow(id);       
    this.element.win = this;
    
    // Bind event listener
    this.eventMouseDown = this._initDrag.bindAsEventListener(this);
    this.eventMouseUp   = this._endDrag.bindAsEventListener(this);
    this.eventMouseMove = this._updateDrag.bindAsEventListener(this);
    this.eventOnLoad    = this._getWindowBorderSize.bindAsEventListener(this);
    this.eventMouseDownContent = this.toFront.bindAsEventListener(this);
    this.eventResize = this._recenter.bindAsEventListener(this);
 
    this.topbar = $(this.element.id + "_top");
    this.bottombar = $(this.element.id + "_bottom");
    this.content = $(this.element.id + "_content");
    
    Event.observe(this.topbar, "mousedown", this.eventMouseDown);
    Event.observe(this.bottombar, "mousedown", this.eventMouseDown);
    Event.observe(this.content, "mousedown", this.eventMouseDownContent);
    Event.observe(window, "load", this.eventOnLoad);
    Event.observe(window, "resize", this.eventResize);
    Event.observe(window, "scroll", this.eventResize);
    Event.observe(this.options.parent, "scroll", this.eventResize);
    
    if (this.options.draggable)  {
      var that = this;
      [this.topbar, this.topbar.up().previous(), this.topbar.up().next()].each(function(element) {
        element.observe("mousedown", that.eventMouseDown);
        element.addClassName("top_draggable");
      });
      [this.bottombar.up(), this.bottombar.up().previous(), this.bottombar.up().next()].each(function(element) {
        element.observe("mousedown", that.eventMouseDown);
        element.addClassName("bottom_draggable");
      });
      
    }    
    
    if (this.options.resizable) {
      this.sizer = $(this.element.id + "_sizer");
      Event.observe(this.sizer, "mousedown", this.eventMouseDown);
    }  
    
    this.useLeft = null;
    this.useTop = null;
    if (typeof this.options.left != "undefined") {
      this.element.setStyle({left: parseFloat(this.options.left) + 'px'});
      this.useLeft = true;
    }
    else {
      this.element.setStyle({right: parseFloat(this.options.right) + 'px'});
      this.useLeft = false;
    }
    
    if (typeof this.options.top != "undefined") {
      this.element.setStyle({top: parseFloat(this.options.top) + 'px'});
      this.useTop = true;
    }
    else {
      this.element.setStyle({bottom: parseFloat(this.options.bottom) + 'px'});      
      this.useTop = false;
    }
      
    this.storedLocation = null;
    
    this.setOpacity(this.options.opacity);
    if (this.options.zIndex)
      this.setZIndex(this.options.zIndex)

    if (this.options.destroyOnClose)
      this.setDestroyOnClose(true);

    this._getWindowBorderSize();
    this.width = this.options.width;
    this.height = this.options.height;
    this.visible = false;
    
    this.constraint = false;
    this.constraintPad = {top: 0, left:0, bottom:0, right:0};
    
    if (this.width && this.height)
      this.setSize(this.options.width, this.options.height);
    this.setTitle(this.options.title)
    Windows.register(this);      
  },
  
  // Destructor
  destroy: function() {
    this._notify("onDestroy");
    Event.stopObserving(this.topbar, "mousedown", this.eventMouseDown);
    Event.stopObserving(this.bottombar, "mousedown", this.eventMouseDown);
    Event.stopObserving(this.content, "mousedown", this.eventMouseDownContent);
    
    Event.stopObserving(window, "load", this.eventOnLoad);
    Event.stopObserving(window, "resize", this.eventResize);
    Event.stopObserving(window, "scroll", this.eventResize);
    
    Event.stopObserving(this.content, "load", this.options.onload);

    if (this._oldParent) {
      var content = this.getContent();
      var originalContent = null;
      for(var i = 0; i < content.childNodes.length; i++) {
        originalContent = content.childNodes[i];
        if (originalContent.nodeType == 1) 
          break;
        originalContent = null;
      }
      if (originalContent)
        this._oldParent.appendChild(originalContent);
      this._oldParent = null;
    }

    if (this.sizer)
        Event.stopObserving(this.sizer, "mousedown", this.eventMouseDown);

    if (this.options.url) 
      this.content.src = null

     if(this.iefix) 
      Element.remove(this.iefix);

    Element.remove(this.element);
    Windows.unregister(this);      
  },
    
  // Sets close callback, if it sets, it should return true to be able to close the window.
  setCloseCallback: function(callback) {
    this.options.closeCallback = callback;
  },
  
  // Gets window content
  getContent: function () {
    return this.content;
  },
  
  // Sets the content with an element id
  setContent: function(id, autoresize, autoposition) {
    var element = $(id);
    if (null == element) throw "Unable to find element '" + id + "' in DOM";
    this._oldParent = element.parentNode;

    var d = null;
    var p = null;

    if (autoresize) 
      d = Element.getDimensions(element);
    if (autoposition) 
      p = Position.cumulativeOffset(element);

    var content = this.getContent();
    // Clear HTML (and even iframe)
    this.setHTMLContent("");
    content = this.getContent();
    
    content.appendChild(element);
    element.show();
    if (autoresize) 
      this.setSize(d.width, d.height);
    if (autoposition) 
      this.setLocation(p[1] - this.heightN, p[0] - this.widthW);    
  },
  
  setHTMLContent: function(html) {
    // It was an url (iframe), recreate a div content instead of iframe content
    if (this.options.url) {
      this.content.src = null;
      this.options.url = null;
      
  	  var content ="<div id=\"" + this.getId() + "_content\" class=\"" + this.options.className + "_content\"> </div>";
      $(this.getId() +"_table_content").innerHTML = content;
      
      this.content = $(this.element.id + "_content");
    }
      
    this.getContent().innerHTML = html;
  },
  
  setAjaxContent: function(url, options, showCentered, showModal) {
    this.showFunction = showCentered ? "showCenter" : "show";
    this.showModal = showModal || false;
  
    options = options || {};

    // Clear HTML (and even iframe)
    this.setHTMLContent("");
 
    this.onComplete = options.onComplete;
    if (! this._onCompleteHandler)
      this._onCompleteHandler = this._setAjaxContent.bind(this);
    options.onComplete = this._onCompleteHandler;

    new Ajax.Request(url, options);    
    options.onComplete = this.onComplete;
  },
  
  _setAjaxContent: function(originalRequest) {
    Element.update(this.getContent(), originalRequest.responseText);
    if (this.onComplete)
      this.onComplete(originalRequest);
    this.onComplete = null;
    this[this.showFunction](this.showModal)
  },
  
  setURL: function(url) {
    // Not an url content, change div to iframe
    if (this.options.url) 
      this.content.src = null;
    this.options.url = url;
    var content= "<iframe frameborder='0' name='" + this.getId() + "_content'  id='" + this.getId() + "_content' src='" + url + "' width='" + this.width + "' height='" + this.height + "'> </iframe>";
    $(this.getId() +"_table_content").innerHTML = content;
    
    this.content = $(this.element.id + "_content");
  },

  getURL: function() {
  	return this.options.url ? this.options.url : null;
  },

  refresh: function() {
    if (this.options.url)
	    $(this.element.getAttribute('id') + '_content').src = this.options.url;
  },
  
  // Stores position/size in a cookie, by default named with window id
  setCookie: function(name, expires, path, domain, secure) {
    name = name || this.element.id;
    this.cookie = [name, expires, path, domain, secure];
    
    // Get cookie
    var value = WindowUtilities.getCookie(name)
    // If exists
    if (value) {
      var values = value.split(',');
      var x = values[0].split(':');
      var y = values[1].split(':');

      var w = parseFloat(values[2]), h = parseFloat(values[3]);
      var mini = values[4];
      var maxi = values[5];

      this.setSize(w, h);
      if (mini == "true")
        this.doMinimize = true; // Minimize will be done at onload window event
      else if (maxi == "true")
        this.doMaximize = true; // Maximize will be done at onload window event

      this.useLeft = x[0] == "l";
      this.useTop = y[0] == "t";

      this.element.setStyle(this.useLeft ? {left: x[1]} : {right: x[1]});
      this.element.setStyle(this.useTop ? {top: y[1]} : {bottom: y[1]});
    }
  },

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人高清不卡| 亚洲日本中文字幕区| 91成人免费电影| 色综合一区二区| 91久久精品一区二区三| 精品国产乱码久久久久久免费| 欧美一级理论片| 久久久国产精品不卡| 欧美国产日韩精品免费观看| 国产精品色在线| 亚洲综合免费观看高清完整版 | 午夜精品视频在线观看| 亚洲第一会所有码转帖| 裸体歌舞表演一区二区| 国产99久久久国产精品免费看 | 国产在线国偷精品免费看| 国产高清视频一区| 91麻豆高清视频| 欧美一区二区在线不卡| 欧美激情中文字幕| 国内成人精品2018免费看| 91丨九色丨尤物| 国产精品美女久久久久久| 国产一区二三区| 久久综合色之久久综合| 亚洲精品福利视频网站| 韩国v欧美v亚洲v日本v| 日韩美女天天操| 樱桃国产成人精品视频| 不卡av在线免费观看| 91精品国产综合久久久久久久| 欧美国产国产综合| 国产.精品.日韩.另类.中文.在线.播放 | 欧美中文字幕一二三区视频| 日韩丝袜情趣美女图片| 喷白浆一区二区| 在线影视一区二区三区| 亚洲美女屁股眼交| 国产成人午夜精品影院观看视频| 久久看人人爽人人| 国产91综合一区在线观看| 欧美高清在线一区二区| 99精品国产视频| 久久人人爽人人爽| 国产精品亚洲第一区在线暖暖韩国| 欧美巨大另类极品videosbest | 欧美经典三级视频一区二区三区| 国产盗摄一区二区三区| 中文字幕一区二区三区乱码在线 | 麻豆精品一区二区| 欧美性感一区二区三区| 1区2区3区精品视频| 91免费版pro下载短视频| 亚洲国产美女搞黄色| 99国产精品一区| 亚洲成年人影院| 精品国产凹凸成av人导航| 国产·精品毛片| 亚洲一区二区三区美女| 日韩午夜小视频| 99这里只有久久精品视频| 久久青草欧美一区二区三区| 波多野结衣中文一区| 手机精品视频在线观看| 欧美日韩一区二区三区免费看| 夜夜精品视频一区二区| 91精品91久久久中77777| 欧美aaaaa成人免费观看视频| 国产亚洲精品超碰| 国产成人精品亚洲日本在线桃色| 亚洲激情网站免费观看| 日韩一区二区三区在线观看| av在线播放不卡| 奇米一区二区三区av| 18涩涩午夜精品.www| 日韩欧美国产1| 在线看日本不卡| 国产成人在线色| 人人狠狠综合久久亚洲| 亚洲欧洲国产日本综合| 欧美精品一区二区三区蜜臀| 欧美亚洲动漫另类| 不卡视频在线看| 精品亚洲国内自在自线福利| 久久久精品影视| 欧美日韩黄视频| 黑人巨大精品欧美黑白配亚洲| 亚洲精品一二三| 国产日韩三级在线| 91小视频免费看| 国产乱码精品一区二区三区av | 91麻豆精品国产91久久久使用方法| 99久久精品费精品国产一区二区 | 日日摸夜夜添夜夜添精品视频| 国产精品毛片a∨一区二区三区| 精品国一区二区三区| 在线成人av网站| 在线看一区二区| 91福利国产成人精品照片| 成人黄色一级视频| 国产成人精品aa毛片| 国产综合久久久久久久久久久久| 日韩专区一卡二卡| 午夜电影一区二区三区| 亚洲一区视频在线| 亚洲伦理在线免费看| 日韩码欧中文字| 成人免费在线视频观看| 国产精品亲子伦对白| 中文av一区二区| 国产精品天美传媒| 国产精品午夜在线| 久久久天堂av| 欧美韩国一区二区| 国产精品美女www爽爽爽| 日本一区二区三区高清不卡 | 亚洲伊人色欲综合网| 一区二区三区资源| 亚洲线精品一区二区三区八戒| 亚洲精品国产无天堂网2021| 一区二区三区免费在线观看| 一区二区欧美国产| 亚洲成人tv网| 奇米一区二区三区| 国产一区二区三区四区在线观看| 国产成人精品免费在线| fc2成人免费人成在线观看播放| 99久久精品99国产精品| 在线视频综合导航| 91精品啪在线观看国产60岁| 日韩欧美卡一卡二| 中文字幕精品一区二区精品绿巨人 | 日本一区二区成人在线| 国产精品久久久久久久浪潮网站| 欧美一区二区网站| 久久丝袜美腿综合| 亚洲欧美在线观看| 亚洲国产精品一区二区www在线| 日韩激情一区二区| 国产精品亚洲专一区二区三区| av网站一区二区三区| 在线观看成人小视频| 欧美大片在线观看一区| 国产精品网站一区| 婷婷综合久久一区二区三区| 国内不卡的二区三区中文字幕| aaa国产一区| 日韩你懂的在线播放| 中文字幕av免费专区久久| 亚洲一区二区成人在线观看| 久久99精品视频| 91看片淫黄大片一级在线观看| 欧美一区中文字幕| 国产精品不卡在线| 久久精品国产在热久久| 99久久综合国产精品| 日韩欧美国产精品| 亚洲男人电影天堂| 国内成人免费视频| 欧美区一区二区三区| 欧美国产一区在线| 天天综合色天天| 91免费版pro下载短视频| 精品裸体舞一区二区三区| 精品第一国产综合精品aⅴ| 国产精品 日产精品 欧美精品| 成人av网站免费观看| 日韩欧美在线综合网| 亚洲综合偷拍欧美一区色| 韩国精品主播一区二区在线观看| 欧美丝袜丝交足nylons图片| 国产人久久人人人人爽| 日本免费新一区视频| 国产又粗又猛又爽又黄91精品| 欧美性大战久久久久久久蜜臀| 欧美韩国一区二区| 九一久久久久久| 欧美一区二区三区在线视频| 一区二区三区四区不卡在线| 国产69精品久久久久毛片| 精品国产乱码久久久久久久 | 国产精品久久久久久久久免费相片 | 国产精品18久久久久久久久| 欧美乱妇15p| 亚洲一二三专区| 91视频免费观看| 国产精品女人毛片| 国产 欧美在线| 国产色91在线| 成人免费毛片片v| 91精品国产入口| 五月天丁香久久| 精品视频999| 偷窥国产亚洲免费视频| 欧美揉bbbbb揉bbbbb| 亚洲国产精品久久久男人的天堂| 欧美亚洲国产怡红院影院| 亚洲精品久久久蜜桃| 在线精品视频免费播放| 亚洲午夜激情网站|