text:
I recently wrote a really long (about 20,000 words) blog post. I had been saving it periodically as I typed, but it suddenly reached a point where the Save button just didn't work anymore. Bringing up Firebug I could see that the Ajax request was being sent and a 500 sytem Error was being returned by the server. When I tried to insert a breakpoint in the method it was never being hit.
This made me think that this size limitation was probably in ASP.Net, not in the BlogEngine.Net codebase, and sure enough that is what it is. jQuery doesn't limit the size, but ASP.NET does by default. You can adjust it with this web.config setting:
<system.web.extensions> </system.web.extensions>
Where x is the size limit in bytes.
If you insert this section into your web.config and start seeing errors, you will need to install ASP.NET AJAX. Visit www.asp.net/ajax for more details.
If you ever come across a situation where a page on your site is not working as it should, but when you open Firebug to see what is happening it all works fine, chances are that somewhere in your Javascript/JQuery code there is a console.log() statement. If Firebug is not open, console will be undefined and the rest of the scripts may not run. In my case, the problem was reported that clicking the save button on an html form resulted in the Json results prompting "Save As" dialog like the one below, instead of being processed:
Naturally, I spent most of the afternoon looking into why JSON results might prompt you with a Save As Dialog in an MVC application, and none of the reported fixes was working. I opened Firebug to look at some html and noticed that suddenly the page looked different - there was a lot more formatting, and it just looked like this was how the page was supposed to look. Not only that, but with Firebug open, the Save button correctly used Ajax to submit the form and the Save as Dialog didn't popup. So I closed Firebug and refreshed the page. Broken Again. Luckily for me, a collegue had recently had the same problem last week, and pointed out that a console.log statement had been responsible. There were no console.log statements on the page in question, but a global Find operation located one on the master page. Commenting it out made everything work as it was supposed to.
The moral of the story is that if you use console.log statements while debugging, make sure you remove them all when you are done, or better yet, create a global Javascript function that you can call from anywhere which first ensures that console is not undefined. Something like this should work:
function debug(text) { if ((typeof(Debug) !== 'undefined') && Debug.writeln) { Debug.writeln(text); } if (window.console && window.console.log) { window.console.log(text); } if (window.opera) { window.opera.postError(text); } if (window.debugService) { window.debugService.trace(text); } }
Is there any way to disable the fullscreen mode or disable
the double click event for a Media Player built with Microsoft Expression Encoder?
Edit BasePlayer.js:
I tried various methods to overide this method in the inherited Extended Player Class, but without success. Perhaps there are private member variables that the inherited class cannot access, or perhaps I was doing something wrong. In any case, this method works. If you know of a better one, let me know.
Well now there is such a control.
Edit: Actually, the standard asp Panel control has a
"DefaultButton" property which implements similar functionality,
however it only allows you to use asp button controls as your
designated button. If you want to use an asp LinkButton control or some
other type of control as your default button it does nothing for you.
So if you are using asp Button Controls exclusively, I recommend you
use that property. If not, then read on...
You can register the control on a page by page basis as needed or you can add it to the <Pages> section of the web.config file to make it available to any page on the site (Listing 1).
<pages enableSessionState="true" enableViewStateMac="true" enableEventValidation="true">
<add tagPrefix="WBN" namespace="WilliaBlog.Net.Examples" assembly="WilliaBlog.Net.Examples"/>
Then add the control to the page in such a way that it wraps your inputs:
<WBN:VirtualForm id="vf1" runat="server" SubmitButtonId="Button1" UseDebug="false">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
As you can see from Listing 2 you should use the Server side ID of the button (this will be automatically converted to the clientside ID by the virtual form control. Test it live.
The actual server side Virtual Form web custom control is really very simple. It inherits System.Web.UI.WebControls.Panel and contains a property to allow you to set the id of the button or linkbutton you want to push when hitting Enter. I chose to embed the Javascript file into the dll for the sake of portability. (Originally I had it in an external .JS file that was added to the header in the master page, but if I - or somebody else - wanted to use this control on another site, that adds an additional layer of complexity in the setup - they have to remember to load that Javascript file and while we could host it in a central location for all sites to share, embedding the file in the dll seemed the wisest choice.) The downside to this technique is that the js file has to travel over the wire every time the page is requested and cannot therefore be cached on the client, which will negatively impact any low-bandwidth users of the web application. For that reason, I have used the YUI Compressor to strip out all the comments and additional whitespace and included 2 versions of the script in the dll. When you set the property UseDebug to true, it will use the long verbose version which makes it much easier to debug in firebug, but when it is all working, use the compressed version by omitting this property from the control declaration or by setting it to false.
To make files accessible from your server control's assembly, simply add the file to your project, go to the Properties pane, and set the Build Action to Embedded Resource. To expose the file to a web request, you need to add code like lines 7 and 8 in Listing 3 below. These entries expose the embedded resource so that the ClientScriptManager can both get to the file and know what kind of file it is. You could also embed CSS, images and other types of files in this way. Note: The project's default namespace (as defined in the Application tab of the project's Properties page) needs to be added as a prefix to the filename of embedded resources.
So, besides exposing these properties, all the control really does is override the onPreRender event and inject some Javascript into the page. Lines 75 to 79 in Listing 3 inject the link to the embedded Javascript file, which appears in the page source as something like this:

Next it dynamically generates a script to create a new instance of the virtual form object, passing in the clientid of the VirtualForm Server control and the clientid of the button we want it to use, and register this as a startup script on the page.
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Text;
5 using System.Web;
6 using System.Web.UI;
7 using System.Web.UI.WebControls;
9 // Script Resources
10 [assembly: WebResource("WilliaBlog.Net.Examples.VirtualForm_Debug.js", "text/javascript")]
11 [assembly: WebResource("WilliaBlog.Net.Examples.VirtualForm_min.js", "text/javascript")]
13 namespace WilliaBlog.Net.Examples
14 {
16 [ToolboxData("<{0}:VirtualForm runat=server></{0}:VirtualForm>")]
17 public class VirtualForm : System.Web.UI.WebControls.Panel
18 {
19 [Bindable(true), DefaultValue("")]
20 public string SubmitButtonId
21 {
22 get
23 {
24 string s = (string)ViewState["SubmitButtonId"];
25 if (s == null)
26 {
27 return string.Empty;
28 }
29 else
30 {
31 return s;
32 }
33 }
34 set { ViewState["SubmitButtonId"] = value; }
35 }
37 [DefaultValue(false)]
38 public bool UseDebug
39 {
40 get
41 {
42 string s = (string)ViewState["UseDebug"];
43 if (string.IsNullOrEmpty(s))
44 {
45 return false;
46 }
47 else
48 {
49 return s.ToLower() == "true";
50 }
51 }
52 set { ViewState["UseDebug"] = value; }
53 }
55 public VirtualForm() : base() { }
57 protected override void OnPreRender(System.EventArgs e)
58 {
59 if (!string.IsNullOrEmpty(this.SubmitButtonId))
60 {
61 Control theButton = this.FindControl(this.SubmitButtonId);
62 if ((theButton != null))
63 {
64 string resourceName;
65 if (this.UseDebug)
66 {
67 resourceName = "WilliaBlog.Net.Examples.VirtualForm_Debug.js";
68 }
69 else
70 {
71 resourceName = "WilliaBlog.Net.Examples.VirtualForm_min.js";
72 }
74 ClientScriptManager cs = this.Page.ClientScript;
76 string scriptLocation = cs.GetWebResourceUrl(this.GetType(), resourceName);
77 if (!cs.IsClientScriptIncludeRegistered("VirtualFormScript"))
78 {
79 cs.RegisterClientScriptInclude("VirtualFormScript", scriptLocation);
80 }
82 // New script checks for "Sys" Object, if found events will be rewired after updatepanel refresh.
83 StringBuilder sbScript = new StringBuilder(333);
84 sbScript.AppendFormat("");
95 string scriptKey = string.Format("initVirtualForm_" + this.ClientID);
97 if (!cs.IsStartupScriptRegistered(scriptKey))
98 {
99 cs.RegisterStartupScript(this.GetType(), scriptKey, sbScript.ToString(), false);
100 }
101 }
102 }
103 base.OnPreRender(e);
104 }
105 }
106 }
Most of the code is of course JavaScript. Lines 13 to 62 simply create the WilliaBlog Namespace and I 'borrowed' it from the The Yahoo! User Interface Library (YUI). The WilliaBlog.Net.Examples.VirtualForm object begins on line 65. Essentially, it loops through every input control (lines 159-164) within the parent Div (the id of this div is passed as an argument to the contructor function) and assigns an onkeypress event (handleEnterKey) to each of them. All keystrokes other than the enter key pass through the code transparently, but as soon as enter is detected, the default behavior is cancelled and the submitVirtual function is called instead. That function simply checks to see if the button you supplied is an input (image or submit button) or an anchor (Hyperlink or link button), and simulates a click on it, either by calling the click() method of the former or by navigating to the href property of the latter. The removeEvent and stopEvent methods are never actually called, but I included them for good measure.
1 /****************************************************************************************************************************
2 *
3 * File : VirtualForm_Debug.js
4 * Created : April 08
5 * Author : Rob Williams
6 * Purpose : This is the fully annotated, easy to understand and modify version of the file, however I would recommend you use
7 * something like the YUI Compressor (http://developer.yahoo.com/yui/compressor/) to minimize load time.
8 * This file has its Build Action Property set to "Embedded Resource" which embeds the file inside the dll, so we never have to
9 * worry about correctly mapping a path to it.
10 *
11 *****************************************************************************************************************************/
13 if (typeof WilliaBlog == "undefined" || !WilliaBlog) {
14 /**
15 * The WilliaBlog global namespace object. If WilliaBlog is already defined, the
16 * existing WilliaBlog object will not be overwritten so that defined
17 * namespaces are preserved.
18 * @class WilliaBlog
19 * @static
20 */
21 var WilliaBlog = {};
22 }
24 /**
25 * Returns the namespace specified and creates it if it doesn't exist
26 *

27 * WilliaBlog.namespace("property.package");
28 * WilliaBlog.namespace("WilliaBlog.property.package");
29 *

30 * Either of the above would create WilliaBlog.property, then
31 * WilliaBlog.property.package
32 *
33 * Be careful when naming packages. Reserved words may work in some browsers
34 * and not others. For instance, the following will fail in Safari:
35 *

36 * WilliaBlog.namespace("really.long.nested.namespace");
37 *

38 * This fails because "long" is a future reserved word in ECMAScript
39 *
40 * @method namespace
41 * @static
42 * @param {String*} arguments 1-n namespaces to create
43 * @return {Object} A reference to the last namespace object created
44 */
45 WilliaBlog.RegisterNamespace = function() {
46 var a=arguments, o=null, i, j, d;
47 for (i=0; i<a.length; i=i+1) {
48 d=a[i].split(".");
49 o=WilliaBlog;
51 // WilliaBlog is implied, so it is ignored if it is included
52 for (j=(d[0] == "WilliaBlog") ? 1 : 0; j<d.length; j=j+1) {
53 o[d[j]]=o[d[j]] || {};
54 o=o[d[j]];
55 }
56 }
58 return o;
59 };
61 //declare the 'WilliaBlog.Net.Examples' Namespace
62 WilliaBlog.RegisterNamespace("WilliaBlog.Net.Examples");
64 //declare Virtual Form Object
65 WilliaBlog.Net.Examples.VirtualForm = function(formDiv,submitBtnId)
66 {
67 this.formDiv = formDiv; //The id of the div that represents our Virtual Form
68 this.submitBtnId = submitBtnId; //The id of the button or Linkbutton that should be clicked when pushing Enter
70 // When using these functions as event delegates the this keyword no longer points to this object as it is out of context
71 // so instead, create an alias and call that instead.
72 var me = this;
74 this.submitVirtual = function()
75 {
76 var target = document.getElementById(me.submitBtnId);
77 //check the type of the target: If a button then call the click method.
78 if(target.tagName.toLowerCase() === 'input')
79 {
80 document.getElementById(me.submitBtnId).click();
81 }
82 //If a link button then simulate a click.
83 if(target.tagName === 'A')
84 {
85 window.location.href = target.href;
86 }
87 };
89 this.handleEnterKey = function(event){
90 var moz = window.Event ? true : false;
91 if (moz) {
92 return me.MozillaEventHandler_KeyDown(event);
93 } else {
94 return me.MicrosoftEventHandler_KeyDown();
95 }
96 };
98 //Mozilla handler (also Handles Safari)
99 this.MozillaEventHandler_KeyDown = function(e)
100 {
101 if (e.which == 13) {
102 e.returnValue = false;
103 e.cancel = true;
104 e.preventDefault();
105 me.submitVirtual(); // call the delegate function that simulates the correct button click
106 return false;
107 }
108 return true;
109 };
111 //IE Handler
112 this.MicrosoftEventHandler_KeyDown = function()
113 {
114 if (event.keyCode == 13) {
115 event.returnValue = false;
116 event.cancel = true;
117 me.submitVirtual(); // call the delegate function that simulates the correct button click
118 return false;
119 }
120 return true;
121 };
123 this.addEvent = function(ctl, eventType, eventFunction)
124 {
125 if (ctl.attachEvent){
126 ctl.attachEvent("on" + eventType, eventFunction);
127 }else if (ctl.addEventListener){
128 ctl.addEventListener(eventType, eventFunction, false);
129 }else{
130 ctl["on" + eventType] = eventFunction;
131 }
132 };
134 this.removeEvent = function(ctl, eventType, eventFunction)
135 {
136 if (ctl.detachEvent){
137 ctl.detachEvent("on" + eventType, eventFunction);
138 }else if (ctl.removeEventListener){
139 ctl.removeEventListener(eventType, eventFunction, false);
140 }else{
141 ctl["on" + eventType] = function(){};
142 }
143 };
145 this.stopEvent = function(e)
146 {
147 if (e.stopPropagation){
148 // for DOM-friendly browsers
149 e.stopPropagation();
150 e.preventDefault();
151 }else{
152 // For IE
153 e.returnValue = false;
154 e.cancelBubble = true;
155 }
156 };
158 //Grab all input elements within virtual form (contents of a div with divID)
159 this.inputs = this.formDiv.getElementsByTagName("input");
161 //loop through them and add the keypress event to each to listen for the enter key
162 for (var i = 0; i < this.inputs.length; i++){
163 this.addEvent(this.inputs[i],"keypress",this.handleEnterKey);
164 }
165 }
A real world example of this technique can be seen at http://www.thejamesbondmovies.com
It only took me about an hour to create this example. I started by dragging all 8 videos into Microsoft Expression Encoder, selected the "Expression" player template and clicked encode. This gave me the full player functionality you see here, play, stop, pause, etc. and by default it simply played all 8 videos one after the other. But I wanted my users to be able to pick and chose which videos to play, so I opened the project in Microsoft Expression Blend 2 September preview and resized the outer, root canvas by setting the height to 593 to give me room to place the thumbnails, and gave it a black background color.
Next I created the arrows that move the playlist left and right. If you have arrows as PNG images you can use them, but I chose to create them using XAML by drawing a white square, filling it with white color converting it to a path, and then using the pen tool to delete a corner and thereby converting it to a triangle which I simply rotated, moved and sized until it looked right. Set the cursor property to "Hand" so that users know it is a button. I then copied it, rotated it to point the other way and moved the second arrow into position on the other side. This gave me the XAML below which appeared just before the closing </canvas> tag.
<Path x:Name="LeftArrow" Opacity="0.74" Width="38" Height="38" Stretch="Fill" Stroke="#FF000000" Canvas.Left="11" Canvas.Top="514" Data="M37.5,0.5 L37.5,37.5 0.5,37.5 z" Fill="#FFFFFFFF" Cursor="Hand" RenderTransformOrigin="0.5,0.5"><Path.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><SkewTransform AngleX="0" AngleY="0"/><RotateTransform Angle="134.119"/><TranslateTransform X="0" Y="0"/></TransformGroup></Path.RenderTransform></Path><Path x:Name="RightArrow" Opacity="0.74" Width="38" Height="38" Stretch="Fill" Stroke="#FF000000" Canvas.Left="588" Canvas.Top="514" Data="M37.5,0.5 L37.5,37.5 0.5,37.5 z" Fill="#FFFFFFFF" Cursor="Hand" RenderTransformOrigin="0.5,0.5"><Path.RenderTransform><TransformGroup><ScaleTransform ScaleX="1" ScaleY="1"/><SkewTransform AngleX="0" AngleY="0"/><RotateTransform Angle="314.365"/><TranslateTransform X="0" Y="0"/></TransformGroup></Path.RenderTransform></Path>
Next I dragged the first thumbnail (for movie # 1) onto the area, roughly where you see it now, resized it and moved it into position. I named it "play0", set its opacity to 74% to make an easy rollover effect that you'll see later on; then went into the XAML editor and simply copied the Image element 3 more times, renaming each one in turn to play1, play2, etc. and updating the Source property of each to point to the right thumbnail image. Next I had to move the new images, since they all sat on top of one another, using the basic formula left=previousImageLeft + Image Width + 4 pixels. Then playing with the spacing between them until it was roughly even. Given the width of my thumbnail and the width of the canvas it turned out to be impossible without further resizing and in the end I decided that for this example it was good enough. So I now had my four thumbnail "buttons" making up my playlist and if you can fit all of your items on the screen you can skip ahead to the JavaScript, but if you want to have them scroll keep reading.
I grouped these four images into a canvas - have Blend do this for you by control + clicking on the object names (in this case play0, play1, etc.) in the Objects and Timeline area and then pressing ctl + G or right clicking and choosing Group Into > Canvas. It is better to have blend create the canvas for you as it will update all the canvas.left, canvas.top properties for you. I called this new canvas "playlist1", then using the XAML editor copied it and created "playlist2", naming the objects play4, play5, etc. and updating the Source of each as before. Then I moved this canvas off the screen by simply setting the canvas.Left Property to a value I knew would push it out of sight. Finally, I grouped playlist1 and playlist2 into another canvas, this time calling it "Library".
Using the timeline editor I created a simple animation that moved the "Library" Canvas 613 pixels to the left over the course of 2 seconds. If you have never done this before it is really easy:
As you can hopefully see on the video, you simply click on "Open, create or manage Storyboards", click "Create new", give it a name, make sure "Create as Resource" is checked so that we can access it through code, move 2 seconds into the timeline and add a keyframe to start the recorder, then make your changes. In this case we are changing the Left poperty so that it moves 613 pixels to the left - just far enough to bring the second "page" of buttons onto the screen. Stop the recorder and as you scrub through the timeline you can see the animation or click the play button to preview it.
Making it animate back the other way was a little trickier to do using the IDE, so I simply copied the XAML and changed the values myself.
Now if you have been trying this yourself you might be wondering why your thumbnails can be seen moving underneath, or even on top of the left and right arrows created earlier, while mine do not. The answer is that I have put my "Library" Canvas inside another Canvas called "ClippedCanvas" which has been "clipped", or cropped if you prefer using RectangleGeometry. Everything that falls outside the geometry you provide is hidden, or "clipped." The numbers represent X coordinates, Y coordinates, Width & Height in that order. X & Y in this case are relative to the container canvas ("ClippedCanvas"). So basically I am cropping an area from the top left of where Clipped Canvas begins, 550 pixels wide and 114 high, anything within the canvas that falls outside that region will not be seen. If you click on "ClippedCanvas" in the Objects and Timeline you will see it outlined in Blend and have a better understanding of where it is drawn.
So, the Final XAML for my Playlist region looks like this:
<Canvas x:Name="ClippedCanvas" Canvas.Top="491" Canvas.Left="43" Width="550" Height="90"><Canvas.Clip><RectangleGeometry Rect="0, 0, 550, 114"/></Canvas.Clip><Canvas.Resources><Storyboard x:Name="MoveLeft01"><DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="Library" From="13" To="-613" Duration="0:0:2" /></Storyboard><Storyboard x:Name="MoveRight02"><DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="Library" From="-613" To="13" Duration="0:0:2" /></Storyboard></Canvas.Resources> <Canvas Width="1157.275" Height="82.96" Canvas.Left="0" Canvas.Top="0" x:Name="Library"><Canvas Width="550.275" Height="82.96" x:Name="playlist1"><Image x:Name="play0" Opacity="0.74" Width="133.275" Height="82.96" Source="1.png" Stretch="Fill" Cursor="Hand" /><Image x:Name="play1" Opacity="0.74" Width="133.275" Height="82.96" Source="2.png" Stretch="Fill" Cursor="Hand" Canvas.Left="139"/><Image x:Name="play2" Opacity="0.74" Width="133.275" Height="82.96" Source="3.png" Stretch="Fill" Cursor="Hand" Canvas.Left="278"/><Image x:Name="play3" Opacity="0.74" Width="133.275" Height="82.96" Source="4.png" Stretch="Fill" Cursor="Hand" Canvas.Left="417"/></Canvas><Canvas Width="550.275" Height="82.96" x:Name="playlist2" Canvas.Left="607"><Image x:Name="play4" Opacity="0.74" Width="133.275" Height="82.96" Source="5.png" Stretch="Fill" Cursor="Hand" /><Image x:Name="play5" Opacity="0.74" Width="133.275" Height="82.96" Source="6.png" Stretch="Fill" Cursor="Hand" Canvas.Left="139"/><Image x:Name="play6" Opacity="0.74" Width="133.275" Height="82.96" Source="7.png" Stretch="Fill" Cursor="Hand" Canvas.Left="278"/><Image x:Name="play7" Opacity="0.74" Width="133.275" Height="82.96" Source="8.png" Stretch="Fill" Cursor="Hand" Canvas.Left="417"/></Canvas></Canvas></Canvas>
Code that I added or changed is in bold, the rest is straight from the Encoder's original output.
var curPos = 1; //track the current position of the playlistsvar maxPos = 2; //How many pages of clips do we have?var cVideos = 8; //How many video Clips do we have?function get_mediainfo(mediainfoIndex) {switch (mediainfoIndex) { case 0:return { "mediaUrl": "Movie1.wmv","placeholderImage": "","chapters": [ ] }; case 1:return { "mediaUrl": "Movie2.wmv","placeholderImage": "","chapters": [ ] }; case 2:return { "mediaUrl": "Movie3.wmv","placeholderImage": "","chapters": [ ] }; case 3:return { "mediaUrl": "Movie4.wmv","placeholderImage": "","chapters": [ ] }; case 4:return { "mediaUrl": "Movie5.wmv","placeholderImage": "","chapters": [ ] }; case 5:return { "mediaUrl": "Movie6.wmv","placeholderImage": "","chapters": [ ] }; case 6:return { "mediaUrl": "Movie7.wmv","placeholderImage": "","chapters": [ ] }; case 7:return { "mediaUrl": "Movie8.wmv","placeholderImage": "","chapters": [ ] }; default:throw Error.invalidOperation("No such mediainfo");}}function StartWithParent(parentId, appId) {new StartPlayer_0(parentId);}function StartPlayer_0(parentId) {this._hostname = EePlayer.Player._getUniqueName("xamlHost");Silverlight.createObjectEx( { source: 'player.xaml', parentElement: $get(parentId ||"divPlayer_0"), id:this._hostname, properties:{ width:'100%', height:'100%', version:'1.0', background:document.body.style.backgroundColor, isWindowless:'false' }, events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );this._currentMediainfo = 0; }StartPlayer_0.prototype= {_handleLoad: function(plugIn) {this._player = $create( ExtendedPlayer.Player, { // propertiesautoPlay : true, volume : 1.0,muted : false}, { // event handlersmediaEnded: Function.createDelegate(this, this._onMediaEnded),mediaFailed: Function.createDelegate(this, this._onMediaFailed)},null, $get(this._hostname) ); //wire up the rollover and click events for each of our play buttons for (var i = 0; i < cVideos; i++){var element = plugIn.Content.findName('play' + i);element.addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));element.addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));element.addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._playX));}plugIn.Content.findName('LeftArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));plugIn.Content.findName('LeftArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));plugIn.Content.findName('LeftArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideLeft));plugIn.Content.findName('RightArrow').addEventListener("MouseEnter", Function.createDelegate(this,this._rollOver));plugIn.Content.findName('RightArrow').addEventListener("MouseLeave", Function.createDelegate(this,this._rollOut));plugIn.Content.findName('RightArrow').addEventListener("MouseLeftButtonUp", Function.createDelegate(this,this._slideRight));this._playNextVideo(); },_rollOver: function(sender, eventArgs) {sender.opacity=1;},_rollOut: function(sender, eventArgs) {sender.opacity=0.74;},_playX: function(sender, eventArgs) {var X = Number(sender.Name.substring(4));this._currentMediainfo = X;this._player.set_mediainfo( get_mediainfo( X ));sender.opacity=1;},_slideLeft: function(sender, eventArgs) {switch(curPos){case 1:break;default:sender.findName("MoveRight0" + curPos).Begin();curPos--; }}, _slideRight: function(sender, eventArgs) {switch(curPos){ case maxPos:break; default:sender.findName("MoveLeft0" + curPos).Begin();curPos++; }},_onMediaEnded: function(sender, eventArgs) {//window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);},_onMediaFailed: function(sender, eventArgs) {alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );},_playNextVideo: function() {if (this._currentMediainfo<cVideos)this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) ); } }
First I added a reference to the plug-in the HandleLoad function, as described here. Then, because I had named all of my play buttons sequentially, it was easy to loop though them all adding some event handlers for rollover effects and the click event. Next I added similar event handlers to the navigation arrows. The rollover effect, as hinted at earlier was simply to set the opacity to 100% on mouseover and back to 74% on mouse out.
The click event for the play buttons simply play the selected movie, based on the number parsed from the name of the sender ("play0", "play1", etc.). The navigation arrows call the _slideLeft and _slideRight functions which simply play the animations to move the buttons left and right. if you have more than 2 pages of play buttons, then it gets slightly more complicated, obviously you have to create more animations, and they have to be carefully numbered so that you play the appropriate animation based on which 'page' of buttons you are currently on. Go to TheJamesBondMovies.com and take a look at the StartPlayer.js on that site for a better understanding of how to make this technique work with multiple pages.
Well, that was my solution, I'm sure there are other ways to do this, but I don't think this way is overly complicated and I hope someone finds it helpful.
Download the Project files: PlaylistSample.zip (364.40 kb)
Download the Silverlight 2 version: ScrollingPlaylist2.zip (1.22 mb)
I finished building my first 100% pure Silverlight 1.0 application, the result of which can be viewed at http://www.thejamesbondmovies.com, and
I wanted to share a few of the techniques I learned. Anyone who has played with Microsoft Expression Encoder will probably recognize the player as coming from one of the built in templates. Expanding the
XAML to include my own elements was not too difficult, the Blend 2 September Preview made that quite easy. When I have more time I will describe in detail how I made the scrollable playlist as I could find no tutorials anywhere on how to do that, but for right now I just want to address the basics of Scripting the output. I am by no means a JavaScript Guru, which is perhaps why I struggled a bit to understand exactly how to interact with my new elements, and exactly where to put my code. When you build a new Silverlight application in Blend 2 or Visual Studio the JavaScript that is provided to you as a starting point
appears to be quite different to that outputted by the encoder. Visual Studio gives you the following in a file called (by default) Scene.xaml.js:
if (!window.SilverlightJSApplication1)
window.SilverlightJSApplication1 = {};
SilverlightJSApplication1.Scene = function()
SilverlightJSApplication1.Scene.prototype =
handleLoad: function(plugIn, userContext, rootElement)
this.plugIn = plugIn;
// Sample button event hookup: Find the button and then attach event handlers
this.button = rootElement.children.getItem(0);
this.button.addEventListener("MouseEnter", Silverlight.createDelegate(this, this.handleMouseEnter));
this.button.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
this.button.addEventListener("MouseLeftButtonUp", Silverlight.createDelegate(this, this.handleMouseUp));
this.button.addEventListener("MouseLeave", Silverlight.createDelegate(this, this.handleMouseLeave));
// Sample event handlers
handleMouseEnter: function(sender, eventArgs)
// The following code shows how to find an element by name and call a method on it.
var mouseEnterAnimation = sender.findName("mouseEnter");
handleMouseDown: function(sender, eventArgs)
var mouseDownAnimation = sender.findName("mouseDown");
handleMouseUp: function(sender, eventArgs)
var mouseUpAnimation = sender.findName("mouseUp");
// Put clicked logic here
handleMouseLeave: function(sender, eventArgs)
var mouseLeaveAnimation = sender.findName("mouseLeave");
Blend 2 gives you an almost identical file called Page.xaml.js:
if (!window.MyProjName)
window.MyProjName = {};
MyProjName.Page = function()
MyProjName.Page.prototype =
handleLoad: function(control, userContext, rootElement)
this.control = control;
// Sample event hookup:
rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
// Sample event handler
handleMouseDown: function(sender, eventArgs)
// The following line of code shows how to find an element by name and call a method on it.
// this.control.content.findName("Timeline1").Begin();
Both of these files make it very easy to pick up your own named elements, and add event handlers to them because the handleLoad function passes the
plugIn (visual Studio) or control (Blend 2) argument that can be used to easily find a reference to your own XAML element:
control.content.findName("MyXamlElement"); //or plugIn.content.findName("MyXamlElement");
But having played with that model a few times and become comfortable with it, you then navigate to your Expression encoder's output location and find as many as
six JavaScript files. Obviously, Silverlight.js and MicrosoftAjax.js aren't what you're looking for, PlayerStrings.js is pretty empty, and BasePlayer.js clearly wasn't designed for easy editing as it has been compressed. So that just leaves player.js and StartPlayer.js. I'll come back to player.js in a moment,
for it is StartPlayer.js that is the Expression Encoder's equivalent to Scene.xaml.js.
function get_mediainfo(mediainfoIndex) {
switch (mediainfoIndex) {
case 0:
return { "mediaUrl": "MyVideo.wmv",
"placeholderImage": "",
"chapters": [
] };
throw Error.invalidOperation("No such mediainfo");
function StartWithParent(parentId, appId) {
new StartPlayer_0(parentId);
function StartPlayer_0(parentId) {
this._hostname = EePlayer.Player._getUniqueName("xamlHost");
Silverlight.createObjectEx( { source: 'player.xaml',
parentElement: $get(parentId ||"divPlayer_0"),
properties:{ width:'100%', height:'100%', version:'1.0', background:document.body.style.backgroundColor, isWindowless:'false' },
events:{ onLoad:Function.createDelegate(this, this._handleLoad) } } );
this._currentMediainfo = 0;
StartPlayer_0.prototype= {
_handleLoad: function() {
this._player = $create( ExtendedPlayer.Player,
{ // properties
autoPlay : true,
volume : 1.0,
muted : false
{ // event handlers
mediaEnded: Function.createDelegate(this, this._onMediaEnded),
mediaFailed: Function.createDelegate(this, this._onMediaFailed)
null, $get(this._hostname) );
_onMediaEnded: function(sender, eventArgs) {
window.setTimeout( Function.createDelegate(this, this._playNextVideo), 1000);
_onMediaFailed: function(sender, eventArgs) {
alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
_playNextVideo: function() {
var cVideos = 1;
if (this._currentMediainfo<cVideos)
this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) );
The first thing I noticed was that unlike the Visual Studio output, the _handleLoad function from Expression
Encoder does not pass in a control or PlugIn reference, so how do you get one? Well the way I did it (and I could find no documentation anywhere
on how to do this) was simply to add my own (new code is bold):
StartPlayer_0.prototype= {
_handleLoad: function(control) {
this._player = $create( ExtendedPlayer.Player,
{ // properties
autoPlay : true,
volume : 1.0,
muted : false
{ // event handlers
mediaEnded: Function.createDelegate(this, this._onMediaEnded),
mediaFailed: Function.createDelegate(this, this._onMediaFailed)
null, $get(this._hostname) );
That's all there is to it. Now go ahead and add your events as before. But wait, so what is player.js for then? Glad you asked. Player.js allows you to override the code in the BasePlayer.js file that
so clearly was not meant for editing. For example, suppose you had created an animation in your
XAML that made the video screen appear, perhaps from behind theatre style curtains that parted, or from behind some other element. You could override the
play() function in BasePlayer.js to play your animation before the video:
ExtendedPlayer.Player = function(domElement) {
ExtendedPlayer.Player.initializeBase(this, [domElement]);
ExtendedPlayer.Player.prototype = {
play: function() {
ExtendedPlayer.Player.callBaseMethod(this, 'play');
stop: function() {
ExtendedPlayer.Player.callBaseMethod(this, 'stop');
pause: function() {
alert('You clicked Pause');
ExtendedPlayer.Player.callBaseMethod(this, 'pause');
ExtendedPlayer.Player.registerClass('ExtendedPlayer.Player', EePlayer.Player);
If, like me, you have just spent an hour or so trying to figure out why your simple alert box isn't popping up on page load after registering the script with Page.ClientScript.RegisterStartUpScript; you might find you are missing a form with a runat="server" tag on your page. It doesn't matter where it is, but it does have to be on the page somewhere, in order for the Javascript to be injected into the page. In the end I figured it out the hard way - close examination of pages where it worked vs pages where it didn't work.
I was surprised to see that the XAML media element did not have a loop property built into it. Surely having a clip loop is basic functionality? In any case I came up with a JavaScript solution that seemed much simpler to implement than the pure XAML solution offered on the MSDN website.
handleLoad: function(control, userContext, rootElement) { this.control = control; // Get a reference to your media element (mine is called "MainMovie") this.movie = control.content.findName("MainMovie"); // Add an Event Listener for the "MediaEnded" Event this.movie.addEventListener("MediaEnded", Silverlight.createDelegate(this,this.movieMediaEnded)); }, //When the end of the movie is reached, return the movie to the start and play it again movieMediaEnded: function(sender, eventArgs) { sender.Position = "00:00:00"; sender.play(); }
See my solution in action at The Daily Prophet Online.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <StackPanel>  <MediaElement Name="myMediaElement" > <MediaElement.Triggers> <EventTrigger RoutedEvent="MediaElement.Loaded"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard>  <MediaTimeline Source="media\tada.wav" Storyboard.TargetName="myMediaElement" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </MediaElement.Triggers> </MediaElement> </StackPanel> </Page>
Visit my other sites:
© Copyright 2007-2019 Williablog.net. All rights reserved. | Powered by BlogEngine.NET 126.96.36.199


text:
Cisco 1000 MXP, Telepresence for Cubicles or Home Offices
Talk and collaborate face-to-face from your desktop at a moment´s notice with a stylish, fully integrated personal telepresence system. The Cisco TelePresence System 1000 MXP with Multiway technology instantly integrates multi-party video calls.
This system is ideal for offices and small meeting rooms and includes a camera, a 12.1-inch LCD screen, speakers, cables, and a microphone. It has an ultra-thin portable frame and can be wall-mounted.
With the Cisco TelePresence System 1000 MXP at your disposal, you can:
- Set up powerful, live presentations with a one-step plug-in or LAN connection
- Send and view presentations and presenters simultaneously
System Capabilities
The system supports up to 3840 kbps ISDN or 768-kbps IP (H.323 or SIP). Strong security includes a high level of embedded encryption as well as IEEE 802.1x and H.235 authentication.
The following features help ensure a high-quality experience:
- Streaming capabilities
- Expressway technology
- URI dialing
- Superior video quality incorporating the H.264 standard
- Protection against network interruptions with automatic downspeeding and Intelligent Packet Loss Recovery (IPLR)

subset: commoncrawl


text:
Arsenic-Based Sea Monkeys
Now with FIVE nucleotide base pairs!
- Everything you need to grow your own little arsenic-based monsters
- Eggs, habitat, optional face mask with respirator
- Teach children about REAL, hardcore science
Now with FIVE nucleotide base pairs!
Everyone knows that a NASA funded research team claims to have found a bacterium (GFAJ-1) in Mono Lake, California, that when starved of phosphorus substitutes arsenic and continues thriving. Some folks say bunk, some folks wonder why astrobiologists are bothering to study things on Earth, and others just want to know what's in it for them.
Well, we now know what's in it for them, er...you. See, the arsenic chomping bacteria are cool, but what's even cooler are the Artemia monica found eating said bacteria. Duh, what? Artemia monica is the fancypants name for Sea Monkeys (specifically, those found in Mono Lake, California). And what's even cooler, by eating the GFAJ-1, the Sea Monkeys have also gained the ability to substitute arsenic for phosphorus. Promptly removing this new breed of Sea Monkey's eggs from the water instantly puts them into cryptobiosis (another fancypants word meaning, "suspended animation.") Because of this cryptobiosis and the fact that Sea Monkeys breed at an alarming rate, we have tons of eggs which we can now offer to all of you. That's right, you can get your very own Arsenic-Based Sea Monkeys today!
Straight from Mono Lake (just like GFAJ-1), these Arsenic-Based Sea Monkeys are 100% pure science and 100% fun, which means 200% awesome for you!
You get everything you need to grow your own: from the eggs to a neato habitat, and we also have an optional face mask with respirator! We've really pulled out all the stops with this kit. And of course you get some arsenic. Seriously, we couldn't call them Arsenic-Based Sea Monkeys and not give you some arsenic, right? Well, you get some, and you also get some stickers to decorate the included habitat with! Arsenic-Based Sea Monkeys are a great way for children to learn about the wonders of science and when not to put things in their mouths. Treat your Arsenic-Based Sea Monkeys well and if you're lucky (and have the right background music), you'll notice them mating and laying tons of Arsenic-Based Sea Monkey eggs for you to grow even more!
** Bonus ** Dr. Mindel's Family-Friendly Science Fact: Did you know that because of all the regicide committed with it, arsenic was once called the King of Poisons? It's true! So, that means Arsenic-Based Sea Monkeys are really Sea Monkey royalty! Bow down before them, pull on your protective suit (included in the Optional Safety Pack), and get ready to grow the most awesomest of the instant pets: Arsenic-Based Sea Monkeys.
Product Specifications
- WARNING: Harmful or fatal if swallowed. Harmful if inhaled or absorbed through skin. May cause allergic skin reaction. May cause irritation to skin, eyes, and respiratory tract. Affects central nervous system.
- PRECAUTIONS: Do not breathe vapor or mist. Use only with adequate ventilation. Wash thoroughly after handling.
- Arsenic-Based Sea Monkeys Kit includes:
- Sea Monkey habitat
- Instant live eggs
- Growth food
- Feeding spoons
- Magic portal magnifying lens
- Beakers (3)
- Petri dishes (6)
- Agar jelly
- Pipette
- Pipette tips (3)
- Arsenic (aka The King of Poisons!)
- Full color illustrated instruction manual
- Decorative habitat stickers
- Instructional DVD, including directions for emergency situations
- Dimercaprol (20 mg) tablets are included in case of accidental arsenic poisoning. Follow the dosing instructions based on your body weight. Do not take Dimercaprol if you are nursing, pregnant, or could become pregnant.
- CAUTION: Do not tap on glass. Enraged Sea Monkeys can become extremely violent
- REMEMBER: Dispose of all chemicals in a safe and environmentally friendly manner
- COMING SOON: Lice - the Sea Monkeys for your head!
Optional Safety Pack Includes:
- Protective suit (one size fits all)
- Face mask with respirator
- Chemical resistant gloves


text:
|My legs as my Honda Accord sees them.
|I walked out my front door straight in to this kid. 10 (possibly 11) points and his identical twin brother was across the street. I've taken pics of these guys before. Nice to see them back.
7.75 miles with 1520ft of gain in 54:54 (7:05 pace). Average HR 154. This was an aerobic threshold effort run. I did my (very) regular 2.6 mile climb up to 9200ft altitude in 19:28 (7:29 pace) which is one of the top 4 fastest times I've done on this climb. My legs don't feel great coming off a fairly solid week on the bike but I was able to just muscle the climb today, no finesse. Time to rest now with 4 days until the Silver Rush 50s.
I'm feeling pretty nervous about the bike, probably because I'm feeling very fit. And this will be my first mountain bike race ever. The fitter you are the more pressure there is. This is also why I feel no nerves when I think of the run. My goals are to simply get near the front of each race and actually race with the intent of placing well. A top 5 on the bike and a top 5 on the run would be satisfying. Sub 5:00 bike/ sub 8:00 run. I think the run goal is going to be quite difficult.


text:
A dying man's last words.
May 31, 2010 by lmae123
Posted in Bible, God is Awesome, Testimony | Leave a Comment
Leave a Reply Cancel reply
AaronMy bread-winner, farmer, tree-cutter, mechanic, carpenter, and welder. He enjoys working with his hands and working with his brothers on the family farm. I am blessed to have him as my other half.
Psalm 34:7
Click here for forecast
Blog Stats
- 31,011 hits
- "Adult" Life Aaron and I Abortion Alternative Health America Apples ASL/Deaf culture Baptism Bible Birthday Wishlist Blessings Blogging Bridal Shower Canning Carter Conlon Cats Chiropractor/Back Pain Church Cleaning College Composting Cooking Coupons / Saving Money Courtship Crochet David Wilkerson Debi Pearl Dieting End times Engagement Facebook Fast Family Farm Farmer's Market Feminism For Fun Former Influences Friends Garage Sale-ing Garden General Goals God's Provision God is Awesome Good Website Greenhouse Headcovering Health and Weightloss Heaven Herb of the Week Herbs Holidays Home Management and Organization Home Remedies House & Home Humor Josh and Amanda's Wedding Just Because Leonard Ravenhill Life Living Modestly Love Marriage Michigan Modesty Money Savers Morals and Ethics Music New Page News Persecution Pets Philipians 4:13 Pictures Prayer Projects Psalm 127:3 Quidam Quiverful Quotes Random Life Reflections Repurposing Scripture Sewing Shopping Small Groups Steve's Ordination Testimony The Future Thrift stores Trips Uncategorized Updates Wedding Wisdom Teeth
Looking for something?
Recent Comments
Aunt Carolyn on he (the Enemy) says, He (The F… Aunt Carolyn on Herb Love aunt carolyn on Ready for Revamping? Betsy Cook on Expression. Debbie on Thought of the Day
Top Posts


text:
| 12/21/2018
Related Posts
- Elistair Launches the Ligh-T V4 – New generation of Drone Tethers (04/30/2019)
- Drone Tethers for Emergency Services Applications (03/25/2019)
- Overview of the New Technical Solutions for major Events Security (02/19/2019)
- Elistair tethered drones selected for broadcasting & security at the Super Bowl (02/11/2019)
- French Police uses Elistair tethered drone For security at the Bordeaux Arena. (12/07/2018)
- Authorities choose the Orion drone for security of the Ryder Cup 2018. (10/02/2018)
- Deployment of A Tethered Drone for the Motorcycle World Championship. (09/19/2018)
- Elistair tethered drone for France 2nd largest air show, for flow management. (06/06/2018)
- Orion: The Persistent Tethered Drone designed for Surveillance and Communications (03/06/2018)
- Elistair raises 2 million euros with Starquest Capital and accelerates its international growth (01/22/2018)


text:
Our Top 10 Favorite Personalized Holiday Gifts
9 Dec
The Stationery Studio has picked their top 10 favorite personalized holiday gifts to help you wrap up your holiday gift giving.
The items we've selected for you are part of our Superfast gift selections that are guaranteed to arrive by December 24 (when you order by December 16).
1. For the person who loves to cook or bake … our personalized recipe card box is a beautiful and useful present!
2. For elegant gift giving, our wine tags are the perfect way to gift and go!
3. For the men on your list, these monogrammed cufflinks make an impressive stocking stuffer.
4. Why not gift her with a beautiful soap set featured on The Today Show and in O Magazine?
5. For the person who still loves printed calendars, these colorful personalized calendars are perfect!
6. For anyone who loves to entertain, our selection of serving trays makes this gift easy to give!
7. For the person in your life who loves a written note, check out our gorgeous tablet set.
8. Hosting a party or going to a cocktail party? Stir sticks are the best way to deck the bar in style!
9. Our best seller, these notecards are simply perfect gifts.
10. Another one of our best sellers, this stamper is a classic!
For even more gift giving ideas that are part of our Superfast gifts, go to our site and find the perfect gifts for everyone on your list!
Happy Shopping!


text:
Happy Weekend Friends! I am so excited that Friday is here! It has been a very hectic week. I have something for you! Look at this....
These sweet bloggers asked me to team up to do a give away with them.
To enter for a chance to win... follow these cute blogs and leave a comment for each blog you follow... including mine. :) For more chances..... follow our TPT shops and leave a comment for each TPT shop you follow! Easey Peasy!
Kindergarten Kronicles
TPT Shop
Rowdy in Room 300
TPT Shop
Ketchen's Kindergarten
TPT Shop
Can Do Kinders TPT Shop


text:
Take your Bible, if you will, and look with me at the tenth chapter of Matthew. It is our unique and long awaited privilege to enter into an examination of Matthew chapter 10 verses 24 to 4?. And I think it would be fitting if I read that section to you, although this morning I'm going to do nothing more than introduce it, I think it would be well to have it in mind.
Beginning at verse 24 of Matthew 10, our Lord instructing the disciples says:
The disciple is not above his teacher, nor the servant above his lord. It is enough for the disciple that he be like his teacher, and the servant like his lord. If they have called the master of the house Beelzebub, how much more shall they call them of his household? Fear them not therefore: for there is nothing covered, that shall not be revealed; and hidden that shall not be known. What I tell you in darkness, that speak in light: and what ye hear in the ear, that proclaim upon the housetops. And fear not them who kill the body, but are not able to kill the soul: but rather fear him which is able to destroy both soul and body in hell. Are not two sparrows sold for a farthing? And one of them shall not fall on the ground without your Father. But the very hairs of your head are all numbered.
Fear not therefore, ye are of more value than many sparrows. Whosoever therefore shall confess Me before men, him will I confess also before My Father who is in heaven. But whosoever shall deny Me before men, him will I also deny before My Father who is in heaven. Think not that I am come to send peace on earth, I am not come to send peace but a sword. For I am come to set a man at variance against his father, and the daughter against her mother, and the daughterinlaw against her mother inlaw. And a man's foes shall be they of his own household. He that loveth father or mother more than Me is not worthy of Me: and he that loveth son or daughter more than Me is not worthy of Me. And he that taketh not his cross, and followeth after Me, is not worthy of Me. He that findeth his life shall lose it: and he that loseth his life for My sake shall find it. He that receiveth you receiveth Me, and he that receiveth Me receiveth Him that sent Me. He that receiveth a prophet in the name of a prophet shall receive a prophet's reward; and he that receiveth a righteous man in the name of a righteous man shall receive a righteous man's reward. And whosoever shall give to drink unto one of these little ones a cup of cold water only in the name of a disciple, verily I say unto you, he shall in no way lose his reward.
I believe that this section of Scripture is the most crucial and the most definitive and the most monumental passage ever uttered by our Lord on the subject of discipleship. This, in fact, is the teaching of the Lord Jesus Christ on the matter of discipleship. What its cost is, and what it involves. And consequently it demands our great attention.
Now the matter of discipleship is of major emphasis here at Grace Church. We are absolutely and totally convinced that the church has a single simplified task as stated by the Lord Jesus Christ in Matthew 2S when He said, "God into all the world and make disciples, baptizing them and teaching them to observe all things whatsoever I have commanded you, and lo, I am with you always even to the end of the age." God into all the world and make disciples. In Matthew chapter 10 our Lord is making disciples.
He is building up disciples. The word disciple is mathetes. it means learner. He has the group of twelve and He is building them to maturity to send them out to reproduce and advance the Kingdom.
And that is the same process He has called us to be engaged in...
the process of making disciples. This means more than leading people to Jesus Christ. That is not the end of our commission, that is the beginning. I never ever ascend the steps to speak in this pulpit with any other thought in my mind than build up the saints of God. To put it in the terms of Ephesians, "To perfect the saints for the work of the ministry." I believe that is the perspective of the teacher. We are to reproduce mature disciples who in turn can reproduce themselves. We are not interested in short circuiting that, we are not interested in short cutting that, we are not interested in minimizing that, we are interested only in the fulfillment of the goal of producing mature and reproductive disciples.
All of the teaching and preaching, all of the personal counseling, all of the extensive ministry that goes on here and through our tapes and radio and books and everything else we do, is to take people to the point of maturity in the faith. Now that's what our Lord was after. He wanted people who would come and learn of Him. He even said that. "Take My yoke upon you and learn of Me." Be discipled by Me. And I really believe that that is the essence of what conversion is. Conversion is identifying yourself as one willing to learn from Jesus Christ all things whatsoever He has commanded.
And the implication of such learning is obedience. When you become a Christian, in effect, you are saying I choose to be a learner of the Lord Jesus Christ and to submit to such as He instructs. That's the stuff of genuine conversion.
It isn't just meeting Jesus and ending it there. It is affirming His Lordship, and His role as teacher, and your role as pupil....to be brought to maturity.
Now that was the Lord's task with the twelve. That was precisely the task of the twelve with the generation they were to reach. You see it, I think, most clearly in the Apostle paul whose great desire was to bring the saints to maturity. Now that's my task...the task of every Christian preacher, teacher, pastor, leader. We all have the responsibility to teach, to disciple....as you do as well in the sphere of your own ministry.
But let me see if I can't talk about that for just a moment in a context that will help us as we approach this passage. I know what my commitment is. I know what my calling is. I know God has called me to teach the Word...the preach the Word...to build the saints to maturity. I know that. I know that's the mandate that I have from God and I am held accountable to Him to fulfill that as much as is in me possible in the power of the Spirit of God. I know my commitment. And my commitment is to do that although I sometimes struggle with my weakness and ignorance and the flesh, and other things, to get through to the accomplishing of that end, I know what the task is and I know that I'm committed to that task. But what I don't know is whether you're committed to the task of learning and that's the issue. The Lord faced that same thing. He knew what His task was...He knew what the truth was....and He knew how to communicate the truth but what He was looking for was open hearts to receive it...the ready mind, the ready heart.
Now I know some of you enough to know that you are that ready mind. You are that ready heart. You want to receive the truth of God and you want having received it to implement it.
And you want your life to be being transformed. Others of you, I know, and I'm...maybe I don't know you well enough to know that because I'm not sure where you are. Some of you I don't know at all, so I don't know where you are. But the real issue in the church is that the leadership is committed to doing what the Bible says to do and what we have to feel is that you're committed to receiving it when we give it. It's like a radio program, it's one thing to broadcast, it's something else to tune in and listen.
It doesn't do us a bit of good to preach the message unless somebody is on our channel.
You know, when the radio goes out it goes out all over Los Angeles and I think 1?5 other cities in America now, and whether they know it or not my voice is all over the place but only a few people tune in. And that's how it is, I think, in a sense, with the church. There's a lot of broadcasting going on but maybe not enough receiving. And I believe that that may be because we've never really understood the stuff of which discipleship is made and going into the Christian faith we never really understood it.
When Jesus called disciples to Himself, He really carefully instructed them in the matters of what they would be facing. And consequently it kept out those halfhearted people who weren't willing to make the commitment. Jesus did the same thing when He talked about a narrow gate and a narrow way. He kept out the people that weren't willing to make the commitment, to pay the price. And the challenge of the Lord and the challenge of the Apostles, and the challenge of the ministers of today is to find a willing hearted people...to find an openhearted people...to find a responsive group who will say We will obey all things whatsoever the Lord has commanded us. We are willing and eager and anxious no matter what the price.
Now that is the stuff of true discipleship. That is how it is to be when you sign up to be a follower of Jesus Christ. And I think, more than any passage we have studied. this passage is going to force you to face that reality. The Lord really draws discipleship down to very clear issues. And you and I as we go through this section, and we're not going to rush through it, we'll cover a little today and some more next time and then finish it out later. But I want us to go patiently because this is such critical truth. If you've ever wondered about dedication and...and we've all gone to churches, you know, where somebody gave an altar call and people went down and they dedicated and rededicated their lives, and we've all gone to camps, or most of us have, and we've seen dedication services and we've read about people who were consecrated and committed and recommitted and reconsecrated, and we've even gone through some of that catharsis of the cleansing work o. the Spirit through the Word, and we've made new resolutions and some of them we followed up on and some of them we would find even difficult to remember. And if you've ever wondered what the real stuff of commitment is, and where the bottom line of consecration comes.
and what it really means to be set apart or sanctified, I think you'll find the answer right here. In fact, this text is so filled with rich truth regarding discipleship that it has been the focus of Christians through the centuries and becomes the key point in learning Jesus' perspective on dedication to Himself. If you're just kind of floating along, if you haven't really made the commitment the way it ought to be made, you're going to be forced against the wall in this passage.
I heard on the news this week about a lady whose claimed to be a Christian for several years, and gone around and given her testimony for the Lord, has just done a spread for playboy magazine.
If that kind of Christianity is what you're used to you're really going to get it in the neck in Matthew chapter 10. Because what our Lord calls us to here is infinitely something apart from that.
Now the truths in this passage, and I'm going to keep giving you some thoughts on it before we hit it, but the truths in this passage, now listen carefully to what I say here because I think it's important, are so essential because they are among the favorite teachings of Jesus. You say Well, how do you know that? Because I know a little bit about what it is to be a teacher, and let me tell you how it is. As one who teaches the Word of God I have found that there are certain key truths that you must deal with, basic to salvation and basic to discipleship, basic to spiritual growth. And what happens to a teacher is as he studies the Word of God for preparing to teach he finds certain concise and effective ways to communicate those basic essentials. Like, if you point me in the middle of the night and ask me how to be saved, I'll pop out of bed and basically give you number 4gc in my mental catalog. And I'll fire out salvation as I perceive it, spoken as clearly as I can speak it to make it understandable. And I have found certain ways to express that. And so as many times as I might travel in different places, and speak to that issue, I will find myself using some of the same terminology because as a teacher I have learned how to express that in a way that is clear, hopefully, and I've maintained that expression.
Now when it comes to basics of spiritual life, I'll go around this country and I'll be asked to speak on a certain theme and invariably when that theme intersects with principles of spiritual life, principles of discipleship, I find myself going back to the same passages, back to the same phrases, the same concepts, and often the same illustrations because they so firmly in my mind make the point and so clearly elucidate in various circumstances what people need to understand. In other words, there is a deposit of basic information that can be communicated effectively in a simple way. And any teacher learns how to do that effectively and goes back to that in all different circumstances.
Now that is precisely what our Lord does in this passage. Now listen carefully, there have been critics who have approached Matthew lO and they have said Matthew didn't really record what Jesus said.
Matthew picked stuff from all over the place and put it together as if Jesus said it. He took a little of what He said over here, and a little of what He said over here, and a little over here and a little over here...and they call this redaction criticism. That Matthew is not a writer recording what Jesus actually said to His disciples, he's an editor and he's pulling it from all over everywhere and sticking it together and stuffing it in this chapter as if it were one speech by our Lord.
Now the basic error of that view is that it gives no place to repetition in the life of the teacher. The other answer to this passage is Of course what Jesus says appears here and there all through the gospels. You'll find almost all of these principles somewhere else but that does not mean that Jesus only said things one time in one place to one people for one purpose. What it shows us is that like any other teacher He had truth which He drew out in all different places, all different circumstances for all different unique place and time situations and with nuances of variation, communicated the same basic stuff.
Now if you accept the redaction critic's view, first of all you've destroyed the integrity of Matthew, then you've played with the integrity of Jesus and you've, thirdly, denied the fact that a teacher has the right to repeat himself and that you can never do for the Bible itself says we learn line upon line, line upon line, precept upon precept, and precept upon precept. The Lord here is giving us, as He gave the twelve, a body of His favorite teaching on the matter of discipleship. And since discipleship is a matter that followed Him all through His life and which He had to deal with multiples of people in different situations, He repeats these truths over and over, sometimes changing the terms, the phrases and the point that He's making but yet using some of the same concepts and the same words to express it... So you will find, and this is the point you need to get, that from Matthew lO on, if you get this chapter, you are going to intersect with these same thoughts again and again as you read the rest of Matthew into Mark, into Luke, and although the terms are somewhat different you'll find the same principles in John also. Don't deny the Lord that privilege. This is some of His very favorite truth.
I'll even go a step further. I think if the Lord was in panorama City today and I said to Him Would You preach this morning? And I told Him that you all were already saved, for the most part, and that I had spent some time trying to communicate to you and so had many other teachers, and that you'd been brought along and were really pretty ready to go out and change the world, I wouldn't be a bit surprised to hear Him tell you to open to Matthew lO. Because, I think this instruction is so near and dear to His heart. And that's why it's repeated so many times. And that's why you must learn it and not just hear it but respond to it.
When you became a Christian, beloved, you did not just buy fire insurance, you did not just jump down the escape hatch from hell, you affirmed the Lordship of Christ and that means that you affirmed a response of obedience. You said You are the teacher, I am the learner. And you will learn all things whatsoever He has commanded you. And if you came in on any other terms, it's questionable whether you're in at all.
Now, the people who have responded to the truths of Matthew 10:
24 to 42 have been the kind of people who change the world. We're talking about total dedication, total commitment, the real stuff, nothing held back. And those are the kinds of people who in deep self examination came to a consecration and a dedication level that set them a cut above everybody else....and made them the kind that God could use to change the course of history.
We think of Florence Nightengale, at SO years of age she wrote this in her diary: "I am thirty years of age, the age at which Christ began His mission. Now, no more childish things, no more vain things." She wrote that on her thirtieth birthday. Years later, near the end of her illustrious and heroic life, she was asked for the secret of her life. And this is what she said: I can only give one explanation, that is this I have kept nothing back from God."
end quote. Kept nothing back, that's what the Lord is talking about here.
One night Dr. Howard A. Kelly graduated from medical college.
You might know him for his great work at John's Hopkins as a world famed surgeon and gynecologist. The night that he graduated from medical college he wrote this in his diary: "Today I dedicate myself, my time, my capabilities, my ambition, everything to Him. Blessed Lord, sanctify me to Thy uses, give me no worldly success which may not lead me nearer to my Saviour." That remarkable man could tell many stories of what it means to be dedicated. I remember reading one. He was traveling in the midwest and through some circumstances needed a drink of water and stopped at a house. Knocked at the door and asked if they could provide him a drink. That drink was provided for him. He remembered the name of the young girl who had given him the drink, though she didn't know who he was. Years later that same young girl grew up and was stricken with a very serious disease and had to come to John's Hopkins for a series of surgeries. As it turned out, Dr. Kelly was her surgeon. After all of the care that had to be given to her, the bill was in excess of ?50 thousand dollars.
There was no insurance to cover it. She was fearful until she received a bill said paid in full by a glass of water. Remarkable man.
Jim Elliot, the Auca Indian martyr wrote in his diary this: "God, I pray Thee, light these idle sticks of my life that I may burn for Thee. Consume my life, my God, for it is Thine. I seek not a long life but a full one like You Lord Jesus." That's exactly what he got. In the very flower of his youth a native threw a spear right through him.
It's this kind of dedication that we're talking about. This is to put it in a contemporary mode so you don't think it's just something way back when. If you know anything about revival and the history of revival in our own country, you've heard the name Jonathan Edwards....great preacher. God used him mightily. There was a reason. The reason was he was willing to pay the price. The reason was he counted the cost. The reason was he gave everything.
He became that fullfledged disciple. He was the one with the open heart who wanted nothing other than what God was wanting to give him. And he wrote this, and this was the changing point in his life: "I claim no right to myself. no right to this understanding, this will, these affections that are in me. Neither do I have any right to this body or its members, no right to this tongue, to these hands, feet, ears or eyes. I have given myself clear away and not retained anything of my own. I have been to God this morning and told Him I have given myself wholly to Him, I have given every power so that for the future I claim no right to myself in any respect. I've expressly promised Him, for by His grace I will not fail. I take Him as my whole portion and felicity looking upon nothing else as any part of my happiness. His law is the constant rule of my obedience. I will fight with all my might against the world, the flesh and the devil to the end of my life.
I will adhere to the faith of the gospel however hazardous and difficult the profession and practice of it may be. I pray, God, for the sake of others to look on this as selfdedication. Henceforth, I am not to act in any respect as my own, I shall act as my own if I ever make use of any of my powers to do anything that is not to the glory of God. Or, to fail to make the glorifying of Him my whole and entire business. If I murmur in the least at affliction, if I am in any way uncharitable, if I revenge my own case. if I do anything purely to please myself or omit anything because it's a great denial, if I trust to myself. if I take any praise for any good which Christ does by me, or if I am in any way proud, I shall act as my own and not God's. But I purpose to be absolutely His."
Now that's consecration. And God used that man beyond his imagination.
Now, we're called to that kind of commitment in this chapter.
And I am just kind of forewarning you that that's what you're going to face in this chapter. And as we go through it every time you're going to be sort of put to the wall to evaluate and selfexamine your commitment level.
Now, let's look at the passage. And we'll examine the first two verses this morning. Jesus has named the twelve. Going through the gospel of Matthew now, we have seen that Matthew is presenting the King. He's presented the ancestry of the King. He's presented the arrival of the King, the anticipation of the King and the prophecies...the announcer of the King, John the Baptist, His herald.
He's presented the axioms of the King, or His principles in the Sermon on the Mount. The acts of the King, if you will, His miracles and so forth, and now we're meeting the agents of the King, His ambassadors, the twelve, the ones He sends out. And in verse i through 4 of chapter 10 we met the twelve.
Then in verses 5 through 15 He gave them instruction for their ministry. And then in verse i8 to 2S He told them how the world would react. So, He names them, instructs them, and then lets them know what it's going to be like when they get out there. Now remember this because it's so very important to rightly interpret the section, the priority focus initially in the chapter is on the twelve. That's where the basic focus comes, on the twelve. But as you go through the chapter you can see clearly that it extends beyond them. In fact, in verse 2S it talks about the people who minister till the son of man returns, the second coming. So, you start out with the twelve, and the Lord telescopes what He teaches to encompass all who ever follow Him.
You also will note that it begins with a priority focus on a short term, several week ministry that the twelve are going to be .
engaged in as they go out to get experience for their ultimate sending after the resurrection. But though it initially focuses on that brief several week ministry it also telescopes to encompass every mission throughout all time that anyone who represents Christ will ever take. So, that the principles begin with a very limited focus and they telescope to a large and wide horizon.
We see first the twelve and then we see all those who follow Christ. First, their initial mission, and then we see their later mission after the Spirit empowers them. And then we see the mission of all who ever serve Christ as we flow through this marvelous chapter.
And so we see the reaching to the broadest possible limit of all servants in all times on all missions, there are principles of importance.
Now, as we've approached verse 23 we have covered everything till the second coming, till the son of man be come. So, we've picked up all those who serve the Lord through all periods on all mission tim...
fields until the Lord comes. Now having given us that wide scope in verse ?8, watch carefully. the Lord maintains that widest possible scope for the instruction of verses ?4 and following. So that now He has taken us to that wide level, encompassing all of time until Jesus comes and in that context He talks about every disciple He'll ever have throughout all of that period and gives the definition of their discipleship from verse 24 to 42. The scope is broad now and the principles are for all time. The Lord then closes this discourse with general teaching, referring to all disciples in all missions through all times. And therefore, I've entitled this section The Hallmarks of Discipleship....The Hallmarks of Discipleship. And it is as much for us as it was for the twelve, as it was for paul, as it was for the people they discipled, as it was for the Florence Nightengales and the Jonathan Edwards and whoever else responded to these truths.
Now just to let you know that this is indeed a general statement, notice verse ?4 the term "The disciple," and really what He is saying is any disciple. The twelve have been named as such. The twelve have been called Apostles since verse 2. They're trained and ready to be sent. But now He uses the word disciple. He backs off from Apostle and He emphasizes the learning process and He broadens to encompass any disciple. Then He also uses in verse i and 2, the word servant, and again a very general word. The servant...
whatever servant...anyone who serves Me.
Further, you'll notice there is a word whosoever in verse S2.
Whosoever therefore, and verse 3S whosoever is used again. And it's also used one other time. Three times it says whosoever. Nine times it says He that...and that can be anybody. He that does this, or be that does that, so the terms fit the general character of this particular portion. We are at the widest possible horizon, encompassing all of those who name the name of Jesus Christ who are disciples and servants, and whosoevers, and he that's. I just want you to see the wide focus because it's important for your understanding.
Now our Lord is going to say this For those people who truly want to come and be My disciple, here's what I ask. That's it.
This is what I require. This is the stuff of real discipleship.
And by the way, again we must note how honest Jesus is...right up front. He doesn't hold back anything. He tells them the cost. You don't do anyone a favor by trying to get them to accept Christ without letting them know what is really involved in such acceptance.
That's how we get so many false believers. If they knew the truth they wouldn't come. We know that because in John 8 it says, "Many disciples were following Him," and then He started saying You have to eat My flesh and drink My blood. In other words, you've got to be involved in My dying and My death and at that point it says And many of His disciples walked no more with Him. I mean, that was more than they were ready to handle. And then you have the fellow that comes to Him and says I'll follow You wherever You go. And He says Well, note this, will you? Foxes have holes, and birds have nests, but I don't even have a place to lay My head. And they guy split. No, that isn't what I'm after. I want a little comfort with my ministry.
And the fellow who came and said I'll follow You wherever You go but first I want to go bury my father. And what he meant was my father's not even dead, I want to wait until he dies and get my inheritance. And Jesus said You'd better let the dead bury their dead. And the implication of the text again is the guy turned around and walked away. He wasn't interested.
And the other fellow came and said Well, I...I'd like to follow You but I...I want to go say goodbye to my mommy, and my daddy. Too tied to the family. Jesus turned His back on him too.
You see, He was very up front, it will cost you your family, fella, it will cost you your inheritance and it will cost you your comfort and those are the terms. And they didn't want them. We don't do anybody any favors by introducing them to Christ and to His Lordship and introducing Him as the teacher, and then saying There's no price to pay because there is. The way is narrow and the gate is narrow as well. And that's the way the Lord always presents it.
Now, the honesty of Jesus in verses 18 to 28 demands the section in verses 24 to 42. It's very important to note that.
You know, Jesus' messages are so clear and logical, I guess that's why I get so upset at the redaction critics who say Well, this doesn't make sense, it's all hodgepodged together, therefore Matthew must be an editor who picked it out of the air everywhere.
They do the same thing on the Sermon on the Mount. They take the Sermon on the Mount and they say Well, Matthew took a little of this and a little of that and a little of that, like he was some kind of a cook, you know, making hash. And he just threw it all and stirred it up and it all came out. And yeah. Jesus said it somewhere or sometime or some...and they miss the flow of the whole thing which is the genius of it. Listen, He tells them in 5 to 15 here's how to minister. He tells them in I0 to 28 here's what will happen. And having told them here's what will happen, He says to them in 24 to 42 are you willing to pay the price? That's it. It's absolutely logical. I think the reason most redaction critics don't know that is because they don't know God so their eyes..
are blinded, because the flow is so obvious.
Now the whole thing begins in verse 24, let's look at it. Now here's His general teaching on discipleship, and as I said, it's among His favorite truths to teach. The disciple is not above his teacher, nor the servant above his lord. Now, stop there for a minute.
That's the basic premise. The disciples are going to be saying to themselves Man, we're going to be sheep among wolves, verse 18.
Verse 17, we're going to go and get scourged in the synagogue.
Verse lS, we're going to be dragged before pagan courts. Verse 21, ** John says myes.
our own family is going to put us to death. Verse 22. we're going to be hated by all kinds of people for His sake. We're going to have to endure. Verse 22, we're going to be persecuted all over the country so we have to keep running from city to city. And they're going to be saying Well, what is this kind of an offer?
And the Lord comes back and says The disciple is not above his teacher, nor the servant above his lord. Why should you expect to get any different treatment than I received? Did you hear that?
Now I...it's going to get very direct as He goes through this, very straight forward. The statement is axiomatic. And Jesus uses it again in other places the disciple is not above his teacher. I mean, that's axiomatic, you don't have to prove that. If I'm your teacher, and you sit under Me then you're only going to learn what I tell you. And you've taken the role under Me. So the disciple is not above his teacher. He by very definition and affirmation and acquiescence takes the place underneath his teacher by his own volition. But even where his volition is not involved He uses another metaphor, the servant is above his lord?
No. The lord is above the servant. The first case we assume the disciple chooses his teacher, the second case the lord buys the servant.
But in either case, there is the role of subservience, we are under Him. The disciple is a learner. The teacher is the one who knows. The learner doesn't know. The one who doesn't know isn't above the one who knows. The lord is the master, the slave is the slave doulos. And by very definition he is the one who does what the master tells him. So, the Lord is simply saying this The first basic principle of discipleship is that you submit yourselves to Me. Your volition can be seen in the disciple?
teacher motif. My sovereignty is manifest in the Lord and servant motif. And there you have the duality of the salvation doctrine.
We choose to be a disciple to learn at the feet of Jesus but He chooses us as His servant sovereignly. But in either case it is axiomatic that we are submissive.
Now that's how it is going in. When you become a Christian and you affirm that you will follow Jesus Christ it is axiomatic that you are saying I submit to Your instruction. I submit to Your commands. I submit to the truth You will teach me, the wisdom. I submit to those orders You will give me to carry them out. That's basic.
Now, there is both a positive and a negative in this. Let me talk about the positive for a minute. The disciple is not above his teacher Jesus also uses that phrase in Luke ?:4O and it was a favorite phrase of His and He says it this way, listen now:
"A disciple is not above his teacher," then He says this, "but everyone after he has been fully trained will be like his teacher."
Did you get that? So what is the first perspective that a pupil has toward his teacher? That ultimately some day he will be...what?...like his teacher. What does it mean to be a disciple then? It means to pursue being like...whom? Christ, very basic, that is the very basic element of discipleship. From the positive side in Luke 8:4O the Lord is simply saying when you're fully trained you're going to be like your teacher. And that's true discipleship, you are a learner learning to be like Christ. You are a learner growing toward Christ likeness. First John 2:8 sums it up: "He that saith he abides in Him ought so to walk even as He walked." If you go around saying you abide in Christ and Christ is your master, and you are His student, He is your teacher and you are His pupil. then you ought to manifest His life.
Now this is the goal of all discipleship as stated clearly in the great commission Go into all the world and make disciples.
What does that involve? Teaching them to observe all things whatsoever I have commanded you. In other words, a disciple is one who knows the Word and obeys the Word.
You have the same thing in Colossians S:1?: "Let the word of Christ dwell in you...what?...richly." ....richly. We are to be dominated by the word of Christ so that we become like Him. He is the teacher who teaches and teaches and feeds and feeds. In fact, you can get a hint at it if you look at verse 27. He says: "What I tell you in darkness speak in light." And that little phrase is beautiful. What He says effectively is what I've been whispering in your ears is what you're going to proclaim. In other words, you have no message but what I give you. You have no truth but what I tell you.
Now, we are to learn then that a disciple is to be like his teacher in the positive sense. Now stay with me, one more thought on this one. The goal of the Christian life then is an ascending toward Christ likeness. We know that's the goal because what happens, according to I John S, the moment we are glorified in heaven? It says we shall be like Him for we shall...what?...see Him as He is.
That's the goal. And although it isn't fully consummated until then we know that must be the goal because that's what happens when we go there. So all the way along in life we are going toward Christ's likeness.
Now, what is going to be the very obvious result of that?
If you and I move to be more like Christ then the world will treat us the way it treated Him. Right? That's what He's saying. So.
look at the negative side and the negative side is really the strength of the context here. I drew the positive from another passage the negative is in the context. He's simply saying the disciple is not above his teacher, and the servant is not above his lord in the sense of persecution. The past passage. In other words, you don't expect to have it any different than I do do you? I mean, if they've treated Me the way they've treated Me, why should they treat you any different? Now listen to me, and the more like Me you are the more they'll treat you like they've treated Me.
You can kind of gauge your own Christian life that way, can't you? The more like Christ you are the more the world will treat you like they treated Christ. Maybe you don't get much persecution because there's not much similarity
The context is persecution, hostility and death. And we have to be ready to accept that. Now this is an amazing call to discipleship. I want you to come and be My disciples and be like Me and get ready to pay the supreme price. That's what He is saying. And if you aren't willing to come on those terms then you're not going to come.
Now, go to verse 25 and look how He repeats the same thing and throws in a very insightful phrase "It is enough,"....it is enough...
"for the disciple that he be like his teacher and the servant like his lord." You know what one thing about a true disciple he is content to be like his teacher. He doesn't have to be greater than his teacher, he doesn't have to go beyond, it's not an ego trip, a true disciple is content to be like his teacher. A true servant is content not to go above his lord, but to be like his lord and faithful to his lord. It is enough.
Now, what is He saying? True disciples seek nothing more.
They're not in it for what they can get out of it, they're not on an ego trip. And they seek nothing less they're not going to try to escape what the Lord couldn't escape. They're willing to take it all. Nothing more nothing less. Oh, this is a beautiful statement "It is enough" literally translated means It is sufficient, or it must be sufficient. It is sufficient for me to be like my Lord and to be treated like my Lord. That is sufficient for me.
paul was like that. paul said. his great prayer That I may know Him and the fellowship of His...what?...sufferings. It is enough?..it is enough. I don't ask anymore than that. I don't ask to be loved by the world, I don't ask to be famous, I don't ask to be accepted, I don't ask to miss the persecution. I don't ask to be everybody's friend. I ask only to be like my Lord and to pursue to be like Him means to be treated like He was treated.
That's all. Now that's where you start. You assume that.
And you want to know how they were treated verse 25, the Lord gives an illustration. "If they have called the master of the house Beelzebub, how much more shall they call them of his household?" And here He uses the word The master of the house, the one who rules the house. And it's the idea of the......the Lord of the house. I mean, and if they call Him the devil and you're under Him what do you expect they'll call you? That's the point.
And, by the way, that's a real condition. You say Jesus is saying that they called Him the devil did people call Jesus the devil? That's right. They called Him Satan. That's what He's saying. Because Beelzebub is a reference to Satan. It had become and we don't really know the history or the etymology of how it became so but in the time of the Lord Beelzebub or Beelzebul.
sometimes ends with a b sometimes with an 1, had become the designation, in some people's vocabulary, for the devil himself. But just to show you that this is not unrealistic, go back to chapter g verse S4. Already this is apparent to the disciples that it's coming because when Jesus had healed the blind men, and healed the one with the demon, in verse S4 the pharisees said He cast out demons through the prince of demons. In other words, He is working for the devil the prince of demons.
Now that they're so they were, you know, believing in themselves as the religiously erudite and astute and they knew God, and they were so far from the truth, they saw the lovely spotless holy, absolutely pure Son of God living God in human flesh in the world and they watched Him and they heard Him and they said He's demon possessed. That shows you how bright they were. I mean, they were so far away from the truth, they couldn't have been anymore distant. He's demon possessed He's working for the prince of devils.
Now, go over to chapter 12 verse ?4. "And when the pharisees heard it," and here again Jesus is healing, and casting out demons, "they said, This man does not cast out demons but by Beelzebub, the prince of demons." There again they said He's demon possessed.
Now go back to chapter 10 verse ?5. Most interesting...here they even go beyond that. The Lord says They will call Me Beelzebub period. They'll not say He works for Beelzebub, or He casts out demons by the power of Beelzebub, they'll say He is Beelzebub. He is Satan. The ultimate blasphemy. And if they say that about Me what do you think they're going to say about you?
Now, that is a critical statement and I want to take you into the word Beelzebub for just a minute so you'll understand it. Turn to II Kings chapter I...II Kings chapter i. And listen carefully cause this is the root of that word and we don't really know what goes on between II Kings much and the New Testament, it's hard to trace the meaning of the word, but in II Kings i:i: "Moab rebelled against Israel after the death of Ahab." The death of Ahab, frankly, was no big loss. But once Ahab was dead the Moabites felt they could move in because the nation was in somewhat a disarray. And then comes Ahaziah who was no gain either. "And Ahaziah fell down through a lattice in his upper chamber."
I don't know whether he was drunk or uncoordinated, but he fell out of a window and got himself all messed up....it says he was sick, he was ill, he was somehow incapacitated.
And so, here...what's he going to do now, the man is tragically ill and so he decides to send messengers. You would think he'd send them to God, but he doesn't. He said "Go inquire of Baalzebub the god of Ekron."
Now Ekron was one of the towns in the country of the Philistines. Ekron comes up later in this same book, but it was a town and this was the god of Ekron, Baalzebub. And that's really all we know about it. Of course, the angel of the Lord said to Elijah the Tishbite. Arise, go up and meet the messengers of the king of Samaria and say to them, Is it because there is not a God in Israel that you have to go ask Baalzebub the god of Ekron?
What are you doing doing that? That shows you something of the apostasy of Israel at that time.
But this Baalzebub basically, as far as we can tell in the Hebrew, means "lord of the flies." You've probably heard that term as a title for a book or a film or something. But it basically means lord of the flies....lord of the carrion flies. Apparently this deity was somehow associated with the flies, I can't imagine but that's the way it is. And Baal means lord and we know in the Old Testament they worshipped Baal, that means lord. That's just...
that's like Allah to a Moslem, just means lord. And they would attach other names on the back of it to identify it. But this was the Baal of the flies, the lord of the flies.
Now when you come to the New Testament you'll notice in Matthew 10, that the Baa1 becomes Bee1 and some...for some reason there's a variant in the spelling and sometimes it ends zebub and sometimes zebul, sometimes with a b and sometimes with an 1. Now when it ends with an 1 the best sources indicate that it means lord of the dwelling. And it may have been that this lord of the flies grew to great prominence and they just changed his name to zebul from zebub and meant lord of the dwelling. In other words, he was the master of all of the dwelling place of all of the demons.
So, somehow in the progress of this word, this local Ekronite god becomes the lord of all the dwelling....that's...that's a possibility.
It's a possibility. We really can't fill in all the details.
Then also there is one other form that appears. Instead of zebul, zebu1, there's a zebe1 and zebe1 means in Hebrew dung.
And we say Well, how did he get to be the lord of the dung? Well, the best answer to that is that that is a title of derision given by the people who scorned this pagan god....lord of the dwelling nothing, lord of the dung is what he is. It would be an epithet of derision.
But, lord of the dung, or dwelling, or whatever, he isn't anybody anyway, so what's the difference. He...he can't be offended, only the true God can. Nonetheless, in the time of the Lord it became common to designate Satan in these terms; Beelzebub and Beelzebul.
And so the Lord is simply saying if they're going to call Me Satan, if they're going to go so far as to name Me the devil himself, what do you think they're going to do to you?
Now what is the point? You have to be willing to pay the price. The more you move to be like Christ, which is the goal of all discipleship, the more the world is going to treat you the way they treated Him and when they treat you the way they treated Him they're going to treat you evil because that's the way they perceived Him. Now with that in mind you can understand the instruction of the gospel of John where in the thirteenth chapter of John's gospel, and I'll just read a couple of verses, you don't need to turn to it.
John lS:18, it says: "Verily, verily I say unto you, The servant,"
and here's the same thought, our Lord teaching again, "The servant is not greater than his lord." There's that phrase He likes to use.
"Neither He that is sent greater than He that sent Him."
In other words, why would you expect anything different than .
what the Lord received? Now, go to chapter 15 for a moment of John's gospel, verse i8. "If the world hate you, you know that it hated Me before it hated you. If you were of the world," that is if you're identified with the world, and you appear with them and you go along with what they do, "the world would love its own. But, because you're not of the world, I've chosen you out of the world therefore the world hateth you. Remember the word that I said unto you," and here He comes with the same phrase again. "The servant is not greater than his lord. If they have persecuted Me, they will have...they will also persecute you. If they've kept My saying, they will keep yours also. But all these things will they do unto you for My namesake because they know not Him that sent Me."
Then in chapter 18, He says: "The day will come when they think they're doing God a favor when they kill you."
So, the point is this the way they treated Christ was bad...
that's the way they're going to treat you. The more you become like Christ the more you're going to get it. And yet that is the goal. It's almost a trap, you come into the discipleship thing.
you're committed to being like Christ, and you know from the very beginning that the more like Christ you become the more the system will resent you.
Now let me add a footnote. In spite of this God is moving in the hearts of people in the world to redeem them. Right? And those people will be attracted by your testimony. You know, I...
I would venture to say that it's pretty safe to assume that most of us became Christians because we saw something in the life of someone else that we wanted. That's usually it. There's something attractive; a joy, a peace, a freedom from guilt, a sense of forgiveness, the hope of eternal life, peace in the heart, and so while we're becoming more like Christ we will become more attractive. We will become more attractive to those whom God is calling to Himself.
But we will become more distasteful to the system that hated Christ.
You see? So there's no way around it, people. That is the price of discipleship...more attractive and more malignant in terms of the world's revulsion. It goes together.
The whole thing begins at that point. And that's just the introduction. We'll find out next time the beginning, the five marks of true disciples. Let's pray.
Lord, we all desire to respond to the call of discipleship as we should. Help us to make that commitment now, to be willing to be like You, to pursue that no matter what it costs. To know we become more distasteful to the world and yet more attractive to those You're calling to Yourself.
With your heads bowed for just a moment listen to what one person said, and maybe this can be a point of commitment for us.
One day I looked at myself at the self that Christ can see.
And I saw the person I am today, and the one I ought to be.
I saw how little I really pray, how little I really do.
I saw the influence of my life, how little of it was true.
I saw the bundle of faults and fears I ought to lay on the shelf.
I had given a little bit to God but I had never given myself.
I came back from seeing myself with the mind made up to be The sort of person that Christ can use...with a heart He longs to see.
Father, we would be that kind of person with a heart You long to see. Truly committed to walk in obedience to Your will. Father, bring into the prayer room those You would have to come and may these truths reach deep into all our hearts. prepare us for what is ahead as we study this great chapter, in Christ's name. Amen.
This article is also available and sold as a booklet.
This sermon series includes the following messages:
Please contact the publisher to obtain copies of this resource.Publisher Information