Order Now AdSolution Sign Up | Login » Bits on the Run Sign Up | Login »

Forums

/

redirect after intro

13 replies [Last post]

I'm trying to create an embedded youtube intro which redirects to the next page when the video is complete. I've used a javascript code I found here and on google codes. The problem: sometimes the page redirects right on time, sometimes too soon. I've tried it in different operating systems and web browsers, but can't figure it out.
Is there anybody out there that can save me?

Here's the url: http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/intro.htm

And this is the code:
<HTML dir="">
<HEAD>
<Style type="text/css">BODY { font-family: arial; }</style>
<TITLE></TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1255">
</HEAD>
<BODY dir=rtl bgcolor="white">
<script type="text/javascript">
/**
* SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
*/
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
</script>

<div id="player">This text will be replaced</div>

<script type="text/javascript">
var so = new SWFObject('http://www.longtailvideo.com/jw/embed/player.swf','mpl','705','480','9');
so.addParam('allowscriptaccess','always');
so.addParam('allowfullscreen','true');
so.addParam('flashvars','&file=http://www.youtube.com/watch?v=o4NS-g5ty20&controlbar=none&autostart=true&displayclick=none&icons=fa...');
so.write('player');
</script>
</BODY>
</HTML>
<script type="text/javascript">
var player = null;
function playerReady(obj) {
player = document.getElementsByName(obj.id)[0];
player.addModelListener('STATE', 'stateMonitor');
};
function stateMonitor(obj) {
if(obj.newstate == 'COMPLETED') {
document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
}
};
</script>
</BODY>
</HTML>
</P></TD></TR></TBODY></TABLE>
<P align=center><FONT size=4><A href="../../homepage/amots\home.htm">דילוג על הפתיח</A></FONT></P>
</BODY>
</HTML>
</BODY>
</HTML>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">

  <head>

    <title>Re-Direct on COMPLETION - JWMP v4.x - swfovject v1.5</title>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">

    <style type="text/css">
      body
      {
        font-family:   arial;
      }
    </style>

    <script src="<strong>swfobject.js</strong>"></script>

    <script type="text/javascript">
      var player    =  null;
      var playlist  =  null;

      function playerReady(obj)
      {
        player = document.getElementById(obj.id);
alert('Player ID: ' + player.id);
        addListeners();
      };

      function addListeners
      {
        playlist = player.getPlaylist();

        if(playlist.length > 0)
        {
          player.addModelListener('STATE', 'stateMonitor');
alert('Listeners Added!');
        }
        else
        {
alert('Try Again!');
          setTimeout("addListeners();", 100);
        }
      };

      function stateMonitor(obj)
      {
        if(obj.newstate == 'COMPLETED')
        {
          document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
        }
      };
    </script>

  </head>

  <body dir=rtl bgcolor="white">

    <div id="player"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Get the Adobe Flash Player to see this video.</a></div>

    <script type="text/javascript">
      var so = new SWFObject(<strong>'player.swf'</strong>, 'mpl', '705', '480', '9.0.124');
          so.addParam('allowscriptaccess',   'always');
          so.addParam('allowfullscreen',     'true');
          so.addVariable('file',             'http://www.youtube.com/watch?v=o4NS-g5ty20');
          so.addVariable('controlbar',       'none');
          so.addVariable('autostart',        'true');
          so.addVariable('displayclick',     'none');
          so.addVariable('icons',            'false');
          so.addVariable('stretching',       'exactfit');
          so.write('player');
    </script>

    <p align=center>
      <strong>
        <font size=4>
          <a href="../../homepage/amots\home.htm">דילוג על הפתיח</a>
        </font>
      </strong>
    </p>

  </body>

</html>

Adjust the path to swfobject.js and player.swf to be the location of the files on your server. Be sure that you have the YouTube proxy YT.SWF in the same directory as the Flash movie player.swf.

Comment out or delete the alerts when they get annoying.

Wow, that was quick. You don't seem Lost at all, but I still am.
This is what the page looks like now:
http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/intro5.htm
It stops playing in the middle, and does'nt redirect at all.
Is it a problem that I have'nt uploaded the player to my server, and my source is: http://www.longtailvideo.com/jw/embed/player.swf
My source for the swfobject is:
http://www.jeroenwijering.com/embed/swfobject.js
I don't know how to upload the player and swfobject to my server. And I don't even know what youtube proxy means.
I guess by now you've realized that I'm not much of a JS developer. I'm a more of a copy-paste guy, actualy.

A small typO on my part.

View the functioning page here: http://willswonders.myip.org:8074/yoav.html

Just copy the page source from your browser to get the updated code — then adjust the paths to swfobject.js & player.swf to be your server.

Something like this:

http://www.orianit.edu-negev.gov.il/galgalim/swfobject.js
http://www.orianit.edu-negev.gov.il/galgalim/player.swf

You absolutely have to serve the swfobject.js & player.swf files from your own server if you want to use the JavaScript API. Trying to run JavaScript when the files are coming from another domain is prohibited by browsers to prevent cross-site scripting attacks.

Download the player package from here: http://www.longtailvideo.com/players/jw-flv-player/

Unzip the package and upload player.swf to your server, just like you do with HTML documents.

The version of swfobject in the package is the wrong one for your player embedding code, so get the correct (v1.5) version of SWFObject from here and then upload it to your server. http://blog.deconcept.com/swfobject/#download

Thanks for the detailed explanation. For some reason I was'nt able to open the page you sent:
http://willswonders.myip.org:8074/yoav.html
Could you please send me the source code?
I really appreciate all the trouble you're going to, just to help out a total stranger.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">

  <head>

    <title>Re-Direct on COMPLETION - JWMP v4.x - swfovject v1.5</title>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">

    <style type="text/css">
      body
      {
        font-family:   arial;
      }
    </style>

    <script src="swfobject.js"></script>

    <script type="text/javascript">
      var player    =  null;
      var playlist  =  null;

      function playerReady(obj)
      {
        player = document.getElementById(obj.id);
alert('Player ID: ' + player.id);
        addListeners();
      };

      function addListeners()
      {
        playlist = player.getPlaylist();

        if(playlist.length > 0)
        {
          player.addModelListener('STATE', 'stateMonitor');
alert('Listeners Added!');
        }
        else
        {
alert('Try Again!');
          setTimeout("addListeners();", 100);
        }
      };

      function stateMonitor(obj)
      {
        if(obj.newstate == 'COMPLETED')
        {
          document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
        }
      };
    </script>

  </head>

  <body dir=rtl bgcolor="white">

    <div id="player"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Get the Adobe Flash Player to see this video.</a></div>

    <script type="text/javascript">
      var so = new SWFObject('player-4.5.227.swf', 'mpl', '705', '480', '9.0.124');
          so.addParam('allowscriptaccess',   'always');
          so.addParam('allowfullscreen',     'true');
          so.addVariable('file',             'http://www.youtube.com/watch?v=o4NS-g5ty20');
          so.addVariable('controlbar',       'none');
          so.addVariable('autostart',        'true');
          so.addVariable('displayclick',     'none');
          so.addVariable('icons',            'false');
          so.addVariable('stretching',       'exactfit');
          so.addVariable('id',               'mpl');
          so.write('player');
    </script>

    <p align=center>
      <strong>
        <font size=4>
          <a href="../../homepage/amots\home.htmדילוג על הפתיח</a>
        </font>
      </strong>
    </p>

  </body>

</html>

Thanks, but I still get the same problem, even after I've uploaded the player and the swfobject to my server. When using IE7 with vista or xp, sometimes the video redirects when it's completed, and sometimes it redirects before the end.
Here's the link:
http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/intro4.htm
Hope you're not about to give up on me.

Temporarily, use this page with the controlbar and State display. The player should always play the full 17 seconds before the State is changed to COMPLETED and the page is redirected.

Play it a few times and note the time when the State changes to COMPLETED and the page is redirected prematurely.

It may be that YouTube isn't delivering the full 17 seconds of video each time. Otherwise, with the full video, the player should play the full 17 seconds.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">

  <head>

    <title>Re-Direct on COMPLETION - JWMP v4.x - swfovject v1.5</title>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">

    <style type="text/css">
      body
      {
        font-family:   arial;
      }
    </style>

    <script src="swfobject.js"></script>

    <script type="text/javascript">
      var player    =  null;
      var playlist  =  null;

      function playerReady(obj)
      {
        player = gid(obj.id);
alert('Player ID: ' + player.id);
        addListeners();
      };

      function addListeners()
      {
        playlist = player.getPlaylist();

        if(playlist.length > 0)
        {
          player.addModelListener('STATE', 'stateMonitor');
alert('Listeners Added!');
        }
        else
        {
alert('Try Again!');
          setTimeout("addListeners();", 100);
        }
      };

      function stateMonitor(obj)
      {
gid('state').innerHTML = 'State: ' + obj.newstate;

        if(obj.newstate == 'COMPLETED')
        {
          document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
        }
      };

      function gid(name)
      {
        return document.getElementById(name);
      };
    </script>

  </head>

  <body dir=rtl bgcolor="white">

    <div id="player"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Get the Adobe Flash Player to see this video.</a></div>

    <script type="text/javascript">
      var so = new SWFObject('http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/regFiles/player.swf', 'mpl', '705', '480', '9.0.124');
          so.addParam('allowscriptaccess',   'always');
          so.addParam('allowfullscreen',     'true');
          so.addVariable('file',             'http://www.youtube.com/watch?v=o4NS-g5ty20');
        //so.addVariable('controlbar',       'none');
so.addVariable('controlbar',       'bottom');
          so.addVariable('autostart',        'true');
          so.addVariable('displayclick',     'none');
          so.addVariable('icons',            'false');
          so.addVariable('stretching',       'exactfit');
          so.addVariable('id',               'mpl');
          so.write('player');
    </script>

    <div id="state"></div>

    <p align=center>
      <strong>
        <font size=4>
          <a href="../../homepage/amots\home.htm">דילוג על הפתיח</a>
        </font>
      </strong>
    </p>

  </body>

</html>

I played it 20 times using the last code you sent me:
7 times it redirected perfectly after the full 17 seconds
5 times after 10 seconds
3 times after 9 seconds
2 times after 8 seconds
3 times after 7 seconds
In all cases the state did not change to complete, but stayed on playing status.
By the way, one of my first attempts was to use a youtube chromeless demo from google codes, as seen in this url:
http://code.google.com/intl/iw/apis/youtube/chromeless_example_1.html
I have not experienced any problems with the redirection, as you can see on this page:
http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/testytr4.htm
But when I try to delete the information display, the redirection stops functioning completely.
I tried to use an iframe to hide the information display:
http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/intro1a.htm
But that seems like a a bad solution, don't you agree?

I'm puzzled now.

The browser can't get to the redirection unless newstate=COMPLETEDif(obj.newstate == 'COMPLETED')so I don't understand how it is redirecting prematurely.

Comment out this line and run it a few times to see what the state is when it stops.<strong>//</strong>document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";

Since it's only one file of a known duration, maybe specifying the duration in the player code will help???

          so.addVariable('autostart',        'true');
          <strong>so.addVariable('duration',         '17');</strong>
          <strong>so.addVariable('respectduration',  'true');</strong>
          so.addVariable('displayclick',     'none');

Adding the duration did'nt help.
When ther's no redirection code, the video plays fine all the way, and the state changes to complete at the end.
Is it possible to define a redirection not when the video completes, but after it plays for exactly 17 seconds?
I tried it with a html redirection code, but of course that's not accurate enough.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">

  <head>

    <title>Re-Direct on COMPLETION - JWMP v4.x - swfovject v1.5</title>

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">

    <style type="text/css">
      body
      {
        font-family:   arial;
      }
    </style>

    <script src="swfobject.js"></script>

    <script type="text/javascript">
      var player    =  null;
      var playlist  =  null;

      function playerReady(obj)
      {
        player = gid(obj.id);
alert('Player ID: ' + player.id);
        addListeners();
      };

      function addListeners()
      {
        playlist = player.getPlaylist();

        if(playlist.length > 0)
        {
        //player.addModelListener('STATE', 'stateMonitor');
          player.addModelListener('TIME',  'timeMonitor');
alert('Listeners Added!');
        }
        else
        {
alert('Try Again!');
          setTimeout("addListeners();", 100);
        }
      };

      function stateMonitor(obj)
      {
gid('state').innerHTML = 'State: ' + obj.newstate;

        if(obj.newstate == 'COMPLETED')
        {
          document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
        }
      };

      function timeMonitor(obj)
      {
gid('position').innerHTML = 'Position: ' + obj.position;
        if(obj.position > 16.9)
        {
          document.location.href = "http://www.orianit.edu-negev.gov.il/galgalim/sites/homepage/amots/home.htm";
        }
      };

      function gid(name)
      {
        return document.getElementById(name);
      };
    </script>

  </head>

  <body dir=rtl bgcolor="white">

    <div id="player"><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Get the Adobe Flash Player to see this video.</a></div>

    <script type="text/javascript">
      var so = new SWFObject('player-4.5.227.swf', 'mpl', '705', '480', '9.0.124');
          so.addParam('allowscriptaccess',   'always');
          so.addParam('allowfullscreen',     'true');
          so.addVariable('file',             'http://www.youtube.com/watch?v=o4NS-g5ty20');
        //so.addVariable('controlbar',       'none');
so.addVariable('controlbar',       'bottom');
          so.addVariable('autostart',        'true');
          so.addVariable('duration',         '17');
          so.addVariable('respectduration',  'true');
          so.addVariable('displayclick',     'none');
          so.addVariable('icons',            'false');
          so.addVariable('stretching',       'exactfit');
          so.addVariable('id',               'mpl');
          so.write('player');
    </script>

    <div id="state"></div>
    <div id="position"></div>

    <p align=center>
      <strong>
        <font size=4>
          <a href="../../homepage/amots\home.htm">דילוג על הפתיח</a>
        </font>
      </strong>
    </p>

  </body>

</html>

When I used the code with the time monitor and the state monitor, the problem remained the same. when I deleted the state monitor and left only the time monitor, the page did'nt redirect at all.

Is the time monitor counting up to 17?

It seems like you are not always getting a full video file from YouTube.

Does the duration, at the right side of the control bar, always show 17?

Perhaps try reducing the time a bit, to 16.5 or whatever???

Unfortunately, it always works for me, so I'm just guessing now... :S