BVB Source Codes

Jie Yang v0.6.3 article system Show fck_dialog_common.js Source code

Return Download Jie Yang v0.6.3 article system: download fck_dialog_common.js Source code - Download Jie Yang v0.6.3 article system Source code - Type:.js
  1. ?*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2008 Frederico Caldeira Knabben
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * Useful functions used by almost all dialog window pages.
  22.  * Dialogs should link to this file as the very first script on the page.
  23.  */
  24.  
  25. // Automatically detect the correct document.domain (#123).
  26. (function()
  27. {
  28.         var d = document.domain ;
  29.  
  30.         while ( true )
  31.         {
  32.                 // Test if we can access a parent property.
  33.                 try
  34.                 {
  35.                         var test = window.parent.document.domain ;
  36.                         break ;
  37.                 }
  38.                 catch( e ) {}
  39.  
  40.                 // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
  41.                 d = d.replace( /.*?(?:\.|$)/, '' ) ;
  42.  
  43.                 if ( d.length == 0 )
  44.                         break ;         // It was not able to detect the domain.
  45.  
  46.                 try
  47.                 {
  48.                         document.domain = d ;
  49.                 }
  50.                 catch (e)
  51.                 {
  52.                         break ;
  53.                 }
  54.         }
  55. })() ;
  56.  
  57. // Attention: FCKConfig must be available in the page.
  58. function GetCommonDialogCss( prefix )
  59. {
  60.         // CSS minified by http://iceyboard.no-ip.org/projects/css_compressor
  61.         return FCKConfig.BasePath + 'dialog/common/' + '|.ImagePreviewArea{border:#000 1px solid;overflow:auto;width:100%;height:170px;background-color:#fff}.FlashPreviewArea{border:#000 1px solid;padding:5px;overflow:auto;width:100%;height:170px;background-color:#fff}.BtnReset{float:left;background-position:center center;background-image:url(images/reset.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.BtnLocked,.BtnUnlocked{float:left;background-position:center center;background-image:url(images/locked.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.BtnUnlocked{background-image:url(images/unlocked.gif)}.BtnOver{border:outset 1px;cursor:pointer;cursor:hand}' ;
  62. }
  63.  
  64. // Gets a element by its Id. Used for shorter coding.
  65. function GetE( elementId )
  66. {
  67.         return document.getElementById( elementId )  ;
  68. }
  69.  
  70. function ShowE( element, isVisible )
  71. {
  72.         if ( typeof( element ) == 'string' )
  73.                 element = GetE( element ) ;
  74.         element.style.display = isVisible ? '' : 'none' ;
  75. }
  76.  
  77. function SetAttribute( element, attName, attValue )
  78. {
  79.         if ( attValue == null || attValue.length == 0 )
  80.                 element.removeAttribute( attName, 0 ) ;                 // 0 : Case Insensitive
  81.         else
  82.                 element.setAttribute( attName, attValue, 0 ) ;  // 0 : Case Insensitive
  83. }
  84.  
  85. function GetAttribute( element, attName, valueIfNull )
  86. {
  87.         var oAtt = element.attributes[attName] ;
  88.  
  89.         if ( oAtt == null || !oAtt.specified )
  90.                 return valueIfNull ? valueIfNull : '' ;
  91.  
  92.         var oValue = element.getAttribute( attName, 2 ) ;
  93.  
  94.         if ( oValue == null )
  95.                 oValue = oAtt.nodeValue ;
  96.  
  97.         return ( oValue == null ? valueIfNull : oValue ) ;
  98. }
  99.  
  100. function SelectField( elementId )
  101. {
  102.         var element = GetE( elementId ) ;
  103.         element.focus() ;
  104.  
  105.         // element.select may not be available for some fields (like <select>).
  106.         if ( element.select )
  107.                 element.select() ;
  108. }
  109.  
  110. // Functions used by text fields to accept numbers only.
  111. var IsDigit = ( function()
  112.         {
  113.                 var KeyIdentifierMap =
  114.                 {
  115.                         End                     : 35,
  116.                         Home            : 36,
  117.                         Left            : 37,
  118.                         Right           : 39,
  119.                         'U+00007F'      : 46            // Delete
  120.                 } ;
  121.  
  122.                 return function ( e )
  123.                         {
  124.                                 if ( !e )
  125.                                         e = event ;
  126.  
  127.                                 var iCode = ( e.keyCode || e.charCode ) ;
  128.  
  129.                                 if ( !iCode && e.keyIdentifier && ( e.keyIdentifier in KeyIdentifierMap ) )
  130.                                                 iCode = KeyIdentifierMap[ e.keyIdentifier ] ;
  131.  
  132.                                 return (
  133.                                                 ( iCode >= 48 && iCode <= 57 )          // Numbers
  134.                                                 || (iCode >= 35 && iCode <= 40)         // Arrows, Home, End
  135.                                                 || iCode == 8                                           // Backspace
  136.                                                 || iCode == 46                                          // Delete
  137.                                                 || iCode == 9                                           // Tab
  138.                                 ) ;
  139.                         }
  140.         } )() ;
  141.  
  142. String.prototype.Trim = function()
  143. {
  144.         return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
  145. }
  146.  
  147. String.prototype.StartsWith = function( value )
  148. {
  149.         return ( this.substr( 0, value.length ) == value ) ;
  150. }
  151.  
  152. String.prototype.Remove = function( start, length )
  153. {
  154.         var s = '' ;
  155.  
  156.         if ( start > 0 )
  157.                 s = this.substring( 0, start ) ;
  158.  
  159.         if ( start + length < this.length )
  160.                 s += this.substring( start + length , this.length ) ;
  161.  
  162.         return s ;
  163. }
  164.  
  165. String.prototype.ReplaceAll = function( searchArray, replaceArray )
  166. {
  167.         var replaced = this ;
  168.  
  169.         for ( var i = 0 ; i < searchArray.length ; i++ )
  170.         {
  171.                 replaced = replaced.replace( searchArray[i], replaceArray[i] ) ;
  172.         }
  173.  
  174.         return replaced ;
  175. }
  176.  
  177. function OpenFileBrowser( url, width, height )
  178. {
  179.         // oEditor must be defined.
  180.  
  181.         var iLeft = ( oEditor.FCKConfig.ScreenWidth  - width ) / 2 ;
  182.         var iTop  = ( oEditor.FCKConfig.ScreenHeight - height ) / 2 ;
  183.  
  184.         var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes,scrollbars=yes" ;
  185.         sOptions += ",width=" + width ;
  186.         sOptions += ",height=" + height ;
  187.         sOptions += ",left=" + iLeft ;
  188.         sOptions += ",top=" + iTop ;
  189.  
  190.         // The "PreserveSessionOnFileBrowser" because the above code could be
  191.         // blocked by popup blockers.
  192.         if ( oEditor.FCKConfig.PreserveSessionOnFileBrowser && oEditor.FCKBrowserInfo.IsIE )
  193.         {
  194.                 // The following change has been made otherwise IE will open the file
  195.                 // browser on a different server session (on some cases):
  196.                 // http://support.microsoft.com/default.aspx?scid=kb;en-us;831678
  197.                 // by Simone Chiaretta.
  198.                 var oWindow = oEditor.window.open( url, 'FCKBrowseWindow', sOptions ) ;
  199.  
  200.                 if ( oWindow )
  201.                 {
  202.                         // Detect Yahoo popup blocker.
  203.                         try
  204.                         {
  205.                                 var sTest = oWindow.name ; // Yahoo returns "something", but we can't access it, so detect that and avoid strange errors for the user.
  206.                                 oWindow.opener = window ;
  207.                         }
  208.                         catch(e)
  209.                         {
  210.                                 alert( oEditor.FCKLang.BrowseServerBlocked ) ;
  211.                         }
  212.                 }
  213.                 else
  214.                         alert( oEditor.FCKLang.BrowseServerBlocked ) ;
  215.     }
  216.     else
  217.                 window.open( url, 'FCKBrowseWindow', sOptions ) ;
  218. }
  219.  
  220. /**
  221.  Utility function to create/update an element with a name attribute in IE, so it behaves properly when moved around
  222.  It also allows to change the name or other special attributes in an existing node
  223.         oEditor : instance of FCKeditor where the element will be created
  224.         oOriginal : current element being edited or null if it has to be created
  225.         nodeName : string with the name of the element to create
  226.         oAttributes : Hash object with the attributes that must be set at creation time in IE
  227.                                                                 Those attributes will be set also after the element has been
  228.                                                                 created for any other browser to avoid redudant code
  229. */
  230. function CreateNamedElement( oEditor, oOriginal, nodeName, oAttributes )
  231. {
  232.         var oNewNode ;
  233.  
  234.         // IE doesn't allow easily to change properties of an existing object,
  235.         // so remove the old and force the creation of a new one.
  236.         var oldNode = null ;
  237.         if ( oOriginal && oEditor.FCKBrowserInfo.IsIE )
  238.         {
  239.                 // Force the creation only if some of the special attributes have changed:
  240.                 var bChanged = false;
  241.                 for( var attName in oAttributes )
  242.                         bChanged |= ( oOriginal.getAttribute( attName, 2) != oAttributes[attName] ) ;
  243.  
  244.                 if ( bChanged )
  245.                 {
  246.                         oldNode = oOriginal ;
  247.                         oOriginal = null ;
  248.                 }
  249.         }
  250.  
  251.         // If the node existed (and it's not IE), then we just have to update its attributes
  252.         if ( oOriginal )
  253.         {
  254.                 oNewNode = oOriginal ;
  255.         }
  256.         else
  257.         {
  258.                 // #676, IE doesn't play nice with the name or type attribute
  259.                 if ( oEditor.FCKBrowserInfo.IsIE )
  260.                 {
  261.                         var sbHTML = [] ;
  262.                         sbHTML.push( '<' + nodeName ) ;
  263.                         for( var prop in oAttributes )
  264.                         {
  265.                                 sbHTML.push( ' ' + prop + '="' + oAttributes[prop] + '"' ) ;
  266.                         }
  267.                         sbHTML.push( '>' ) ;
  268.                         if ( !oEditor.FCKListsLib.EmptyElements[nodeName.toLowerCase()] )
  269.                                 sbHTML.push( '</' + nodeName + '>' ) ;
  270.  
  271.                         oNewNode = oEditor.FCK.EditorDocument.createElement( sbHTML.join('') ) ;
  272.                         // Check if we are just changing the properties of an existing node: copy its properties
  273.                         if ( oldNode )
  274.                         {
  275.                                 CopyAttributes( oldNode, oNewNode, oAttributes ) ;
  276.                                 oEditor.FCKDomTools.MoveChildren( oldNode, oNewNode ) ;
  277.                                 oldNode.parentNode.removeChild( oldNode ) ;
  278.                                 oldNode = null ;
  279.  
  280.                                 if ( oEditor.FCK.Selection.SelectionData )
  281.                                 {
  282.                                         // Trick to refresh the selection object and avoid error in
  283.                                         // fckdialog.html Selection.EnsureSelection
  284.                                         var oSel = oEditor.FCK.EditorDocument.selection ;
  285.                                         oEditor.FCK.Selection.SelectionData = oSel.createRange() ; // Now oSel.type will be 'None' reflecting the real situation
  286.                                 }
  287.                         }
  288.                         oNewNode = oEditor.FCK.InsertElement( oNewNode ) ;
  289.  
  290.                         // FCK.Selection.SelectionData is broken by now since we've
  291.                         // deleted the previously selected element. So we need to reassign it.
  292.                         if ( oEditor.FCK.Selection.SelectionData )
  293.                         {
  294.                                 var range = oEditor.FCK.EditorDocument.body.createControlRange() ;
  295.                                 range.add( oNewNode ) ;
  296.                                 oEditor.FCK.Selection.SelectionData = range ;
  297.                         }
  298.                 }
  299.                 else
  300.                 {
  301.                         oNewNode = oEditor.FCK.InsertElement( nodeName ) ;
  302.                 }
  303.         }
  304.  
  305.         // Set the basic attributes
  306.         for( var attName in oAttributes )
  307.                 oNewNode.setAttribute( attName, oAttributes[attName], 0 ) ;     // 0 : Case Insensitive
  308.  
  309.         return oNewNode ;
  310. }
  311.  
  312. // Copy all the attributes from one node to the other, kinda like a clone
  313. // But oSkipAttributes is an object with the attributes that must NOT be copied
  314. function CopyAttributes( oSource, oDest, oSkipAttributes )
  315. {
  316.         var aAttributes = oSource.attributes ;
  317.  
  318.         for ( var n = 0 ; n < aAttributes.length ; n++ )
  319.         {
  320.                 var oAttribute = aAttributes[n] ;
  321.  
  322.                 if ( oAttribute.specified )
  323.                 {
  324.                         var sAttName = oAttribute.nodeName ;
  325.                         // We can set the type only once, so do it with the proper value, not copying it.
  326.                         if ( sAttName in oSkipAttributes )
  327.                                 continue ;
  328.  
  329.                         var sAttValue = oSource.getAttribute( sAttName, 2 ) ;
  330.                         if ( sAttValue == null )
  331.                                 sAttValue = oAttribute.nodeValue ;
  332.  
  333.                         oDest.setAttribute( sAttName, sAttValue, 0 ) ;  // 0 : Case Insensitive
  334.                 }
  335.         }
  336.         // The style:
  337.         oDest.style.cssText = oSource.style.cssText ;
  338. }
  339.  
downloadfck_dialog_common.js Source code - Download Jie Yang v0.6.3 article system Source code
Related Source Codes/Software:
Jilin classification information release system v5.0 trial version - A ready-made classifieds site publishing system, h... 2016-09-21
Linyi CMS v6.5 market classification information - A. supply and demand information function: informa... 2016-09-21
Tesco discount net SQL version - And presentations, faster. 2016-09-21
- electronic enterprise website management system In a fully functional version - Super suitable for enterprise agents build a corpo... 2016-09-21
Rio mesh network hard disk system v3.0 - System functions: 1, increase the progress of Asp... 2016-09-21
Classified information network business in suzhou - Overall module: classification of supply and deman... 2016-09-21
NPOINT virtual host v1.7.0 formal version management system - The system main function is introduced 2016-09-21
IDC sales web site - Beautiful IDC sales web site source code 2016-09-21
Oo 126 CMS movie site system - This procedure ASP + ACC/ASP + SQL, using new kern... 2016-09-21
Pcook CMS bubble guest v3.0 SDCMS version - Developed by Asp+Access, and meet the needs of sma... 2016-09-21
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top