Dat is dus een afknappertje... - Videosnacks - RTL.NL
var ns_loadingtime1=new Date().getTime(); this.name='hmg'; if(window.moveBy){function moveBy(dX,dY){}} if(window.moveTo){function moveTo(dX,dY){}}
#tracking,#tracking2{position:absolute;right:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0,1px,1px,0);visibility:hidden} /* #rtlmatchbox{font-family:arial;font-size:11px;position:absolute;overflow:hidden;z-index:1;left:774px;top:42px;height:184px;_height:186px;width:160px;_width:162px;clip:rect(0,162px,186px,0);border:#000 solid 1px;color:#000;background-color:#FFF;background:#FFF} */ /* #rtlmatchbox font{font-family:arial;font-size:11px;text-decoration:none;line-height:12px} */ .rtl120x600{visibility:hidden;overflow:hidden;width:120px;height:600px} /* .rtl120x66{visibility:hidden;overflow:hidden;z-index:1;width:120px;height:66px;position:absolute} */ /* .rtl162x66{visibility:hidden;overflow:hidden;z-index:1;width:162px;height:66px;position:absolute} */ .rtl468x60{visibility:hidden;overflow:hidden;z-index:20;width:468px;height:60px} /* #rtlbox2{left:774px;top:360px} */ /* #rtlskyscraper,#rtlskyscraper2,#rtlskyscraper3{position:absolute;left:774px;z-index:19} #rtlskyscraper3{top:432px} */ #rtlskyscraper3{position:absolute;left:774px;z-index:19;top:432px} /* a.rtlsponsorlink{color:#00F;text-decoration:underline;font-size:11px;font-family:arial;width:158px} */ /* td.rtlsponsorlink{color:#000;text-decoration:none;font-size:11px;font-family:arial;width:160px;padding:1px} */ .hide{display:none} #dart{position:absolute;left:294px;top:52px;z-index:20} #mp_login_iframe{display:none;position:absolute;top:40px;left:150px;width:500px;height:1250px;z-index:1001} #rtl_nav2_logo{padding:0;margin:0;float:none;position:relative} #rtl_nav2_bg_top{border:0;position:absolute;right:0;top:0;height:26px;background-color:#F90;width:100%} #rtl_nav2_bg_bottom{border:0;position:absolute;right:0;top:26px;height:18px;background-color:#333;width:100%} #rtl_nav2_top{position:absolute;left:0;top:0;height:26px;background-color:#F90;width:936px;z-index:100;text-align:left} /* #rtl_nav2_top .rtl_nav2_td{background:transparent url(/system/menu/nav/nav_balk_streepje.png) right top no-repeat} */ #rtl_nav2_top .rtl_nav2_td{padding:0 10px 0 4px;background:transparent url(/_internal/anyfile_cache!0/hryf0iyz8yr8obf3biwpykn2tb1dqeu.png) right top no-repeat;border:0} /* #rtl_nav2_top td{padding:0 13px 0 7px} */ #rtl_nav2_top #rtl_nav2_td_last{padding:0 13px 0 4px;background-color:#F90} .rtl_nav2_a:link,.rtl_nav2_a:hover,.rtl_nav2_a:visited,.rtl_nav2_a:active{color:#000;font:bold 13px arial,verdana,sans-serif;text-decoration:none;line-height:26px} .rtl_nav2_buttons{border:0;margin:0 0 0 142px;padding:0;width:700px;text-align:center} .rtl_nav2_fav:link,.rtl_nav2_fav:hover,.rtl_nav2_fav:visited,.rtl_nav2_fav:active{color:#FFF;font:bold 11px arial,sans-serif;text-decoration:none;padding:0 0 0 15px} #rtl_nav2_logo{border:0;position:absolute;left:6px;top:0;z-index:100} #rtl_nav2_alle_programma /* ,#rtl_nav2_alle_programma_rtlnl */ {position:absolute;left:6px;top:26px;z-index:100;padding:1px 0 1px 11px;width:199px;_width:210px} /* #rtl_nav2_alle_programma_rtlnl{top:27px;background-color:#333;_padding:1px 0 2px 11px} */ /* #rtl_nav2_alle_programma_rtlnl a,#rtl_nav2_alle_programma_rtlnl a,:active #rtl_nav2_alle_programma_rtlnl a:visited,#rtl_nav2_alle_programma_rtlnl a:hover{color:#FFF;font:bold 11px arial,sans-serif;text-decoration:none;line-height:15px} */ #rtl_nav2_mp_logo,#rtl_nav2_mp_status,#rtl_nav2_mp_container{position:absolute;z-index:100;cursor:hand;cursor:pointer;border:0} #rtl_nav2_mp_logo{left:913px;top:0} #rtl_nav2_mp_status{border:0;color:#FFD596;font:normal 10px arial,sans-serif;top:12px;left:830px} #rtl_nav2_mp_container{border:0;color:#FFF;font:bold 11px arial,sans-serif;top:26px;left:830px;text-decoration:underline} /* #rtl_navslider_container{position:absolute;left:-744px;top:0;z-index:1000;visibility:hidden} #rtl_navslider_banner_container{position:absolute;width:684px;height:43px;border-bottom:1px solid #CCC;overflow:hidden;cursor:pointer} #rtl_navslider_logo_container{position:absolute;left:684px;cursor:pointer} */ html,body{margin:0;padding:0} a,span,div,i,b,u,p,br,li,body,tr,td,th,table{font-size:11px;font-family:verdana,arial,sans-serif;} a{text-decoration:none;} body{ background:#000000; margin:0px; font-family:verdana, arial, sans-serif; color:#ffffff; font-size:10px; } a{ color:#ffffff; } /* Site header + navigatie */ #rtlpp_header{ position:absolute; left:12px; top:67px; } #rtlpp_site_nav{ position:absolute; left:15px; top:114px; } #rtlpp_total_container{ position:absolute; left:0px; top:156px; } #rtlpp_site_nav a, #rtlpp_site_nav a:hover, #rtlpp_site_nav a:active, #rtlpp_site_nav a:visited{ text-decoration:none; font-size:16px; } #rtlpp_player_banner_container{ float:left; } #rtlpp_player{ text-align:center; width:720px; } #rtlpp_banner{ padding: 0px; text-align:center; width: 468px; position:absolute; top:52px; left:520px; } #rtlpp_related_content{ margin-left:0px; width:265px; overflow:auto; margin-bottom:1px; border-left:1px solid #2d2d2d; border-bottom:1px solid #2d2d2d; } #rtlpp_related_title{ background-color:#ff9900; color:#ffffff; font-size:14px; font-weight:bold; padding:20px 0px 0px 13px; height:24px; _height:44px; overflow:hidden; } .rttpp_related_item, .rttpp_related_item_over{ background:transparent; width:auto; height:64px; margin-bottom:3px; cursor:pointer; clear:both; position:relative; } .rttpp_related_item_active{ background:#b2b4bf; width:auto; height:64px; margin-bottom:3px; cursor:pointer; clear:both; } .rttpp_related_item_title{ float:left; font-size:11px; color:#ffffff; height:30px; width:130px; margin-top:8px; overflow:hidden; line-height:14px; } .rttpp_related_item_date{ float:left; font-size:10px; color:#666666; height:12px; width:130px; } .rttpp_related_item_site{ float:left; font-size:11px; width:130px; } #rtlpp_archive_container{ float:left; width:720px; height:462px; } .rtlpp_archive_tab{ background:transparent url(/system/videoplayer/v3_images/black/tab_n_right.gif) right bottom no-repeat; height:25px; float:left; _width:13px; cursor:pointer; } .rtlpp_archive_tab .rtlpp_archive_click{ background:transparent url(/system/videoplayer/v3_images/black/tab_n.gif) left bottom no-repeat; height:25px; margin-right:11px; } .rtlpp_archive_tab_active{ _width:13px; background:transparent url(/system/videoplayer/v3_images/black/tab_n_right_active.gif) right bottom no-repeat; height:25px; float:left; cursor:pointer; } .rtlpp_archive_tab_active .rtlpp_archive_click{ background:transparent url(/system/videoplayer/v3_images/black/tab_n_active.gif) left bottom no-repeat; height:25px; margin-right:11px; } .rtlpp_archive_tab_next{ _width:13px; background:transparent url(/system/videoplayer/v3_images/black/tab_n_right.gif) right bottom no-repeat; height:25px; float:left; cursor:pointer; } .rtlpp_archive_tab_next .rtlpp_archive_click{ background:transparent url(/system/videoplayer/v3_images/black/tab_n_prev_active.gif) left bottom no-repeat; height:25px; margin-right:11px; } .rtlpp_archive_tab_text{ padding:7px 0px 0px 6px; color:#8e8c8c; } .rtlpp_archive_tab_active .rtlpp_archive_tab_text{ padding:7px 0px 0px 6px; color:#ffffff; } .rtlpp_archive_tab_text_over{ padding:7px 0px 0px 6px; color:#ffffff; } #rtlpp_archive_global{ width:992px; clear:both; margin-left:10px; margin-top:8px; } #rtlpp_archive_content{ width:720px; clear:both; } .rtlpp_archive_tab_empty{ width:5px; height:25px; background:transparent url(/system/videoplayer/v3_images/black/tab_n_pref_empty.gif) top left no-repeat; float:left; } .rtlpp_archive_tab_empty_prev{ width:5px; height:25px; background:transparent url(/system/videoplayer/v3_images/black/tab_n_pref_active_empty.gif) top left no-repeat; float:left; } .rtlpp_archive_item, .rtlpp_archive_item_over{ float:left; background:transparent url(/system/videoplayer/v3_images/black/archive_item.gif) left top no-repeat; width:127px; height:117px; margin:6px 0px 0px 10px; cursor:pointer; position:relative; } .rtlpp_archive_item_active{ float:left; background:transparent url(/system/videoplayer/v3_images/black/archive_item_active.gif) left top no-repeat; width:127px; height:117px; margin:6px 0px 0px 10px; cursor:pointer; } .rtlpp_archive_item .rtlpp_play_over, .rtlpp_archive_item .rtlpp_play_over{ width:33px; height:33px; position:absolute; left:45px; top:22px; z-index:11; } .rtlpp_archive_item_over .rtlpp_play_over, .rttpp_related_item_over .rtlpp_play_over{ background:transparent url(/system/videoplayer/v3_images/black/play.png) 0px 0px no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/play.png, sizingMethod=scale); width:33px; height:33px; position:absolute; left:45px; top:22px; z-index:11; } .rttpp_related_item .rtlpp_play_over, .rttpp_related_item_over .rtlpp_play_over{ position:absolute; left:37px; top:16px; width:33px; height:33px; z-index:11; visibility: visible; } .rttpp_related_item .rtlpp_play_over { visibility: hidden; } .rtlpp_archive_item_over .rtlpp_betaal, .rttpp_related_item_over .rtlpp_betaal, .rtlpp_archive_item .rtlpp_betaal, .rttpp_related_item .rtlpp_betaal{ background:transparent url(/system/videoplayer/v3_images/black/betaal.gif) 0px 0px no-repeat; width:13px; height:12px; position:absolute; left:106px; top:59px; } .rttpp_related_item_over .rtlpp_betaal,.rttpp_related_item .rtlpp_betaal{ left:98px; top:51px; } .rtlpp_archive_item_img{ margin:9px 0px 0px 0px; text-align:center; } .rtlpp_archive_item_title,.rttpp_related_item_over .rtlpp_archive_item_title{ margin:3px 8px 0px 8px; height:24px; line-height:12px; overflow:hidden; width:110px; } .rtlpp_archive_item_date{ margin:3px 8px 0px 8px; line-height:12px; overflow:hidden; color:#666666; font-size:10px; } .rtlpp_archive_content{ height:0px; width:0px; display:none; position:absolute; left:-1000px; top:-1000px; z-index:0; clear:both; } .rtlpp_archive_content_show{ height:400px; overflow:auto; display:block; clear:both; background-color:#272626; border:0px; } .rtlpp_archive_content_show .rtlpp_archive_tab{ background:transparent url(/system/videoplayer/v3_images/black/sub_header.gif) left top no-repeat; height:20px; _height:23px; float:none; padding:3px 0px 0px 20px; cursor:pointer; color:#949494; clear:both; display:block; width:auto; border:1px solid #4d5458; border-bottom:0px; font-size:12px; font-weight:bold; } .rtlpp_archive_content_show .rtlpp_archive_tab_active{ background:transparent url(/system/videoplayer/v3_images/black/sub_header_active.gif) left top no-repeat; float:none; height:20px; _height:23px; padding:3px 0px 0px 20px; cursor:pointer; color:#ffffff; display:block; clear:both; width:auto; border:1px solid #4d5458; border-bottom:0px; font-size:12px; font-weight:bold; } .hidden{ display:none; } .rtlpp_archive_content_container{ padding:0px; background:#151515 url(/system/videoplayer/v3_images/black/archief_bg.gif) left top repeat-x; border:1px solid #4d5458; border-top:0px; margin-bottom:1px; } .rtlpp_archive_content_container_single{ padding:0px 0px 12px 0px; background:#151515 url(/system/videoplayer/v3_images/black/archief_bg.gif) left top repeat-x; border:1px solid #4d5458; } .rtlpp_archive_content_container_single_spacer{ background:#272626 none; height:10px; } .season_special .rtlpp_archive_tab_active{ background:#272626 none; border:0px; height:25px; _height:30px; padding:5px 0px 0px 0px; } .season_nav_prev{ width:17px; height:18px; background:transparent url(/system/videoplayer/v3_images/black/season_prev.gif) left 0px no-repeat; cursor:pointer; } .season_nav_next{ width:17px; height:18px; background:transparent url(/system/videoplayer/v3_images/black/season_next.gif) right 0px no-repeat; cursor:pointer; } /* loading, error classes */ .rtlpp_error_melding{ background:transparent url(/system/videoplayer/v3_images/black/error_melding.gif) left top no-repeat; width:200px; height:135px; border:1px solid #ffffff; cursor:pointer; } #rtlpp_error_pane{ position:absolute; left:44px; top:90px; z-index:1000; display:none; } #rtlpp_error_archive{ position:absolute; left:250px; top:150px; z-index:100; display:none; } #loading_location_pane{ position:absolute; left:10px; top:75px; width:26px; height:26px; z-index:1000; display:none; } #loading_location_archive{ position:absolute; left:319px; top:150px; width:55px; height:55px; z-index:100; display:none; } .rtlpp_loading_1{ background:transparent url(/system/videoplayer/v3_images/black/1.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/1.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_2{ background:transparent url(/system/videoplayer/v3_images/black/2.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/2.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_3{ background:transparent url(/system/videoplayer/v3_images/black/3.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/3.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_4{ background:transparent url(/system/videoplayer/v3_images/black/4.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/4.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_5{ background:transparent url(/system/videoplayer/v3_images/black/5.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/5.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_6{ background:transparent url(/system/videoplayer/v3_images/black/6.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/6.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_7{ background:transparent url(/system/videoplayer/v3_images/black/7.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/7.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_8{ background:transparent url(/system/videoplayer/v3_images/black/8.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/8.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_9{ background:transparent url(/system/videoplayer/v3_images/black/9.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/9.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_10{ background:transparent url(/system/videoplayer/v3_images/black/10.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/10.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_11{ background:transparent url(/system/videoplayer/v3_images/black/11.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/11.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_12{ background:transparent url(/system/videoplayer/v3_images/black/12.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/12.png, sizingMethod=scale); width:26px; height:26px; } .rtlpp_loading_large_1{ background:transparent url(/system/videoplayer/v3_images/black/1_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/1_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_2{ background:transparent url(/system/videoplayer/v3_images/black/2_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/2_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_3{ background:transparent url(/system/videoplayer/v3_images/black/3_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/3_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_4{ background:transparent url(/system/videoplayer/v3_images/black/4_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/4_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_5{ background:transparent url(/system/videoplayer/v3_images/black/5_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/5_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_6{ background:transparent url(/system/videoplayer/v3_images/black/6_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/6_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_7{ background:transparent url(/system/videoplayer/v3_images/black/7_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/7_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_8{ background:transparent url(/system/videoplayer/v3_images/black/8_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/8_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_9{ background:transparent url(/system/videoplayer/v3_images/black/9_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/9_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_10{ background:transparent url(/system/videoplayer/v3_images/black/10_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/10_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_11{ background:transparent url(/system/videoplayer/v3_images/black/11_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/11_large.png, sizingMethod=scale); width:55px; height:55px; } .rtlpp_loading_large_12{ background:transparent url(/system/videoplayer/v3_images/black/12_large.png) left top no-repeat; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=/system/videoplayer/v3_images/black/12_large.png, sizingMethod=scale); width:55px; height:55px; } #media_top_container { position: relative; left: 0px; top: 0px; width: 720px; height: 404px; background-color: black; } .control_container { position: absolute; left: -2000px; top: 0px; padding: 0px; visibility: hidden; } .control_container object, .control_container embed { position: absolute; left: 0px; top: 0px; margin: 0px; } #do_clicktag_container { width: 720px; height: 404px; cursor: pointer; background-color: #000; filter: alpha(opacity=0); } /* Buttons e.d. in playervak. */ #share_container { width: 720px; height: 404px; background-color: #CCC; background-image: url(/system/taf/img_player/share_container_bg.jpg); } #share_container div, #share_container span { text-align: left; } .share_back_button { position: absolute; left: 0px; top: 15px; width: 67px; height: 22px; cursor: pointer; background-image: url(/system/taf/img_player/terug_button.png); _background-image: none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src=/system/taf/img_player/terug_button.png,sizingMethod=scale); } .hyvesbutton_share_container { width: 33px; height: 30px; background-image: url(/system/taf/img_player/hyves_in_combined_button.png); _background-image: none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src=/system/taf/img_player/hyves_in_combined_button.png,sizingMethod=scale); } .share_hr { position: absolute; width: 720px; height: 3px; overflow: hidden; background-color: #CED1DA; background-image: url(/system/taf/img_player/share_hr_bg.gif); background-repeat: repeat-x; } .share_title { position: absolute; width: 200px; font-family: Verdana, Arial; font-size: 14px; font-weight: bold; color: #000; } .share_taf_buttons_container { position: absolute; right: 15px; top: 15px; width: 150px; height: 40px; } .share_taf_buttons_container div{ position: absolute; width: 37px; height: 37px; cursor: pointer; } .share_combined_buttons_container { position: absolute; left: 160px; top: 75px; width: 200px; height: 40px; } .share_combined_buttons_container div { position: absolute; cursor: pointer; } /* Errors. */ #error_subcontainer { position: absolute; left: 20px; top: 20px; width: 678px; _width: 680px; height: 362px; _height: 364px; border: 1px solid #CCC; background-color: #FFF; color: #000; } #error_message { position: static; margin: 10px; text-align: left; font-family: Verdana, Arial; font-size: 11px; color: #000; } #error_message a { font-family: Verdana, Arial; font-size: 11px; color: #000; } .rttpp_related_item_img{ margin:0px 6px 0px 1px; } #rtlpp_global_container{ margin-top:0px; width:266px; height:606px; _height:592px; float:left; overflow:hidden; margin:0px; } #rtlpp_related_title{ color:#ffffff; font-size:14px; font-weight:bold; padding:20px 0px 0px 13px; height:24px; _height:44px; overflow:hidden; } #rtlpp_related_content{ margin-left:0px; width:265px; overflow:auto; margin-bottom:1px; } #rtlpp_related_container{ width:266px; float:right; } .rtlpp_archive_content_container_single{ _position:absolute; _width:702px; }
body{width:100%;margin-top:5px;} a{text-decoration:underline;} #noscript_warning{display:none;}
///// streamsense (jan 2010). var streamSenseScript = '/_internal/anyfile_cache!0/51mffit97xv63g4qnqbal4qziz4nwhh.js'; ///////////////////// ///// Globale variabelen. ///////////////////// var RTLPlayerPage = true; ///////////////////// ///// Plugin detectie. ///////////////////// function PluginInfo(silverlight_version, allow_non_wmp_plugins){ this.forceWMP = (location.href.indexOf('forcewmp') != -1); this.noSilverlight = (location.href.indexOf('nosilverlight') != -1); this.WIN = (typeof navigator.platform == 'string' && navigator.platform.toLowerCase().indexOf('win') != -1); this.MAC = (typeof navigator.platform == 'string' && navigator.platform.toLowerCase().indexOf('mac') != -1); this.Linux = (typeof navigator.platform == 'string' && navigator.platform.toLowerCase().indexOf('linux') != -1); this.IE = (typeof ActiveXObject != 'undefined' && this.WIN); this.Gecko = (typeof document.addBinding == 'function'); this.Safari = (typeof navigator.vendor == 'string' && navigator.vendor.indexOf('Apple') != -1); this.Chrome = (navigator.userAgent.indexOf('Chrome') != -1); this.Opera = this.detectOpera(); this.SilverlightWindowless = this.determineSilverlightWindowless(); ///// WMV plugin detectie. this.WMPScriptable = false; this.WMPVersion = -1; this.WMPOtherBrowser = false; this.WMPFirefoxPlugin = false; this.WMVPluginName = this.detectWMVPlugin('WMPlayer.OCX.7'); this.WMVPluginInstalled = (this.WMVPluginName != ''); ///// Flash detectie. this.Flash9Installed = this.detectFlash(9); this.Flash8Installed = this.detectFlash(8); ///// Silverlight detectie. this.SilverlightInstalled = (this.noSilverlight? false: this.detectSilverlight(silverlight_version)); ///// this.WMVPluginQuality = this.determinePluginQuality(); this.validMediaPlugin = (this.WMVPluginQuality <= (allow_non_wmp_plugins? 4: 3)); this.validDRMPlugin = (this.WMVPluginName == 'windows media player' || this.IE); ///// this.defaultControlName = (this.SilverlightInstalled && !this.forceWMP)? 'silverlightInfo': 'wmvInfo'; this.useStreamSenseJSIE = (this.defaultControlName == 'wmvInfo' && this.WMPScriptable); this.useStreamSenseJSFF = (this.defaultControlName == 'wmvInfo' && this.WMPFirefoxPlugin); } PluginInfo.prototype = { determinePluginQuality: function(){ if(this.SilverlightInstalled && !this.forceWMP){ return 1; } else if(this.WMPScriptable){ return 2; } else if(this.WMPFirefoxPlugin){ return 2.5; } else if(this.IE || this.WMPOtherBrowser){ ///// Er wordt aangenomen dat IEWIN altijd over WMP kan beschikken (ook als deze niet detecteerbaar is). return 3; } else if(this.WMVPluginInstalled){ return 4; } else { return 99; } }, determineSilverlightWindowless: function(){ if(window.opera){ // False notes by the fat lady. return false; } else if(this.Gecko && this.MAC){ // FF MAC. return false; } else if(this.Safari && (this.WIN || typeof window.XSLTProcessor == 'undefined')){ // Safari < 3 en Safari WIN. return false; } else if(this.Chrome && !this.WIN){ // Vooruitziende blik. return false; } else if(!this.WIN && !this.MAC){ return false; } /* Blijft over: - IE WIN - Firefox WIN - Chrome WIN - Safari 3.0 MAC */ return true; }, ///// detectWMVPlugin: function(wmp_progid){ if(this.IE){ var wmp_obj = null; var err = false; var wmp_version_string; var wmp_version_int; ///// try { wmp_obj = new ActiveXObject(wmp_progid); wmp_version_string = wmp_obj.versionInfo; } catch(e){ err = true; } finally { wmp_obj = null; } ///// if(!err){ wmp_version_int = (typeof wmp_version_string == 'string')? parseInt(wmp_version_string): NaN; this.WMPVersion = (!isNaN(wmp_version_int))? wmp_version_int: -1; this.WMPScriptable = (this.WMPVersion > -1); return 'windows media player'; } } else if(typeof navigator.mimeTypes == 'object'){ var plugin_available = (typeof navigator.mimeTypes['video/x-ms-wvx'] != 'undefined' && navigator.mimeTypes['video/x-ms-wvx'].enabledPlugin && typeof navigator.mimeTypes['video/x-ms-wvx'].enabledPlugin.name == 'string'); var plugin_name = plugin_available? navigator.mimeTypes['video/x-ms-wvx'].enabledPlugin.name.toLowerCase(): ''; /* Extra platform check ingevoegd wegens Totem mediaplayer. */ if(plugin_name.indexOf('windows media player') > -1 && this.WIN){ if(plugin_name.indexOf('firefox plugin') > -1){ this.WMPFirefoxPlugin = true; } else { this.WMPOtherBrowser = true; } plugin_name = 'windows media player'; } return plugin_name; } ///// return ''; }, detectSilverlight: function(version){ ///// Toevoeging ivm Moonlight (publiceert zichzelf ten onrechte als SL3). if(this.Linux){ return false; } ///// var isVersionSupported=false; try { var control = null; try { control = new ActiveXObject('AgControl.AgControl'); if (control.IsVersionSupported(version)){ isVersionSupported = true; } control = null; } catch (e) { var plugin = navigator.plugins["Silverlight Plug-In"]; if ( plugin){ var actualVer = plugin.description; if(actualVer === "1.0.30226.2") actualVer = "2.0.30226.2"; var actualVerArray =actualVer.split("."); while ( actualVerArray.length > 3) actualVerArray.pop(); while ( actualVerArray.length < 4) actualVerArray.push(0); var reqVerArray = version.split("."); while ( reqVerArray.length > 4) reqVerArray.pop(); var requiredVersionPart ; var actualVersionPart var index = 0; do { requiredVersionPart = parseInt(reqVerArray[index]); actualVersionPart = parseInt(actualVerArray[index]); index++; } while (index < reqVerArray.length && requiredVersionPart === actualVersionPart); if ( requiredVersionPart <= actualVersionPart && !isNaN(requiredVersionPart) ){ isVersionSupported = true; } } } } catch (e){ isVersionSupported = false; } return isVersionSupported; }, detectFlash: function(version){ var flash_version = -1; if(typeof window.ActiveXObject != 'undefined' && navigator.platform.indexOf('Win') != -1){ try{ var flash_obj = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + version); flash_version = version; } catch (e){ flash_version = -1; } flash_obj = null; } else if(typeof navigator.plugins == 'object'){ var flash_obj = navigator.plugins['Shockwave Flash']; if (flash_obj && typeof flash_obj.description == 'string'){ var version_nr = flash_obj.description.match(/\d+\.\d/); flash_version = version_nr? parseInt(version_nr[0], 10): flash_version; } } return (flash_version >= version); }, detectOpera: function(){ if(window.opera) return true; //// if(location.href.indexOf('isopera') > -1){ Cookies.set('isopera', 'yes', 100); return true; } ///// if(location.href.indexOf('notopera') > -1){ Cookies.remove('isopera'); return false; } ///// if(Cookies.get('isopera') == 'yes'){ return true; } ///// How unfortunate .. return false; } }; //////////////////// ///// Client info. //////////////////// function ClientInfo(){ this.volumeCookie = 'rtl_player_volume'; this.qualityCookie = 'rtl_player_quality'; ///// this.volume = Cookies.get(this.volumeCookie); this.volume = /^\d{1,2}|100$/.test(this.volume)? Number(this.volume): 80; this.quality = Cookies.get(this.qualityCookie); ///// Onderstaande regel aanpassen voor default bitrates ('high' of 'low') this.quality = /^(low|medium|high)$/.test(this.quality)? this.quality: 'high'; } ClientInfo.prototype = { setVolume: function(new_volume){ this.volume = new_volume; Cookies.set(this.volumeCookie, new_volume, 365); }, setQuality: function(new_quality){ var new_q = (new_quality == 'mid'? 'medium': new_quality); this.quality = new_q; Cookies.set(this.qualityCookie, new_q, 365); } }; //////////////////// ///// Media info. //////////////////// function MediaInfo(clip_info){ this.ns_PixelUrlBase = 'http://nl.sitestat.com/rtl/rt-nl/s?'; ///// streamsense (jan 2010). this.streamSenseUrl = ''; this.streamSenseAttributes = {}; this.doDebug = (location.href.indexOf('debugplayer') > -1); this.initialPath = ''; this.filePath = ''; this.clipInfoValidation = this.validateClipInfo(clip_info, true); this.clipInfo = this.clipInfoValidation.info; this.setInitialPixelUrl(clip_info); this.defaultControl = window[pluginInfo.defaultControlName]; this.timeStamp = 0; this.initialTweenDone = false; this.isTweening = false; this.tweenHeight = (MediaInfo.customHeight != null? MediaInfo.customHeight: (this.defaultControl == wmvInfo? 404 + wmvInfo.controlsHeight: 404)); this.bannerContainer = document.getElementById('rtlpp_banner'); this.bannerIframe = null; this.bannerTimer = null; this.bannerClipInfo = null; this.trackingPixel = null; this.prestate = '\/(\/channels\/player\/ajax_video\/)'; if(this.defaultControl == wmvInfo){ this.wvxDomain = (location.href.indexOf('htt'+'ps:\/\/') > -1? 'htt'+'p:\/\/ww'+'w.rt'+'l.nl': 'htt'+'p:\/\/' + location.hostname); } else { this.wvxDomain = (location.href.indexOf('htt'+'ps:\/\/') > -1? 'htt'+'ps:\/\/': 'htt'+'p:\/\/') + location.hostname; } this.currentScroll = document.body.scrollTop; this.xmlhttp = this.createXMLHTTPObject(); } MediaInfo.customStart = null; MediaInfo.customHeight = null; MediaInfo.prototype = { start: function(){ if(this.tweenHeight != 404){ document.getElementById('media_top_container').style.height = this.tweenHeight + 'px'; } ///// var func; if(typeof MediaInfo.customStart == 'function'){ this.doTween(MediaInfo.customStart); } else if(pluginInfo.forceWMP && !pluginInfo.validDRMPlugin){ func = function(){ errorInfo.showNoDRMPluginMessage();}; this.doTween(func); } else if(!pluginInfo.validMediaPlugin){ func = function(){ errorInfo.showNoValidPluginMessage();}; this.doTween(func); } else if(this.clipInfo){ func = function(){ mediaInfo.playItem(true);}; this.doTween(func); } }, doTween: function(func){ this.isTweening = true; ///// var player_container = document.getElementById('rtlpp_player'); var related_container = document.getElementById('rtlpp_related_container'); var related_title = document.getElementById('rtlpp_related_title'); var related_content = document.getElementById('rtlpp_related_content'); ///// var player_new_height = this.tweenHeight; var related_new_height = (related_title? 44: 0) + ((typeof max_mod == 'number' && parseInt(max_mod) > 0? parseInt(max_mod): 3) * (pluginInfo.IE? 66: 67)); ///// var player_tween = new Tween(player_container.style, 'height', Tween.strongEaseInOut, 1, player_new_height, 2, 'px'); player_tween.onMotionFinished = function(){ mediaInfo.isTweening = false; mediaInfo.initialTweenDone = true; related_content.style.height = max_related_mod + 'px'; related_content.style.overflow = 'auto'; func(); }; player_tween.start(); player_container.style.visibility = 'visible'; ///// if(window.related_active == 'yes'){ var related_tween = new Tween(related_container.style, 'height', Tween.strongEaseInOut, 1, related_new_height, 2, 'px'); related_tween.start(); related_container.style.visibility = 'visible'; } }, isDRMOrInvalid: function(){ if(this.clipInfo && typeof this.clipInfo.path == 'string' && this.clipInfo.path != ''){ location.href = this.clipInfo.path + '?forcewmp'; } }, playItem: function(is_initial){ this.currentScroll = document.body.scrollTop; this.doScroll(); ///// if(!this.initialTweenDone){ var func = function(){ mediaInfo.playItem(false);}; this.doTween(func); return; } ///// if(!pluginInfo.validMediaPlugin){ errorInfo.showNoValidPluginMessage(); } else if(this.clipInfo){ this.timeStamp = (new Date).getTime(); this.editClipInfo(); ///// Stats (aanroep voor showClip() ivm Streamsense). this.setPixels(this.clipInfo, is_initial); ///// juli2009 if(typeof this.clipInfo.dart1 == 'string' && this.clipInfo.dart1.length > 0 && !pluginInfo.forceWMP && location.href.indexOf('https://') != 0){ this.defaultControl.shutUp(); streamspotInfo.showStreamspot(this.clipInfo.dart1, "prerollPlayer"); } else { streamspotInfo.playing = false; streamspotInfo.resetBase(); this.defaultControl.showClip(this.clipInfo); this.playBanner(this.clipInfo); } ///// Onder andere URL tell-a-friend resetten. shareInfo.refresh(this.clipInfo); ///// Overlay legen. overlayInfo.clearState(); } else { this.debug('ongeldige clip info'); } }, ///// Stats. setInitialPixelUrl: function(clip_info){ ///// Nog nodig? if(typeof clip_info != 'object' || clip_info == null){ window.ns_pixelUrl = this.ns_PixelUrlBase; return; } ///// if(typeof clip_info.counter == 'string' && typeof clip_info.channel == 'string' && typeof clip_info.context == 'string'){ window.ns_pixelUrl = this.ns_PixelUrlBase + clip_info.counter + '&ns_channel=' + clip_info.channel + '&ns_context=' + clip_info.context + '&ns__t=' + (new Date()).getTime(); } }, setPixels: function(clip_info, is_initial){ ///////////////////// ///// Voor de zekerheid ... ///////////////////// if(typeof location.protocol != 'string' && typeof location.hostname != 'string') return; ///////////////////// ///// Debuggen stats. ///////////////////// var debugstats = (typeof location.search == 'string' && location.search.indexOf('debugstats') != -1); ///////////////////// ///// Resetten rtl_source alleen bij vervolgclips. ///////////////////// if(clip_info != window.clipInfo){ window.rtl_source = (typeof clip_info.rtlSource == 'string')? clip_info.rtlSource: 'unknown'; } ///////////////////// ///// Url voor nieuwe sitestat telling aanmaken. ///////////////////// var new_stat_input_url = location.protocol + '//' + location.hostname + clip_info.path; var new_stat_pixel_url = rtlnav_trackingurl(new_stat_input_url).replace(/&/g, '&'); ///////////////////// ///// Vanuit nieuwe sitestat url streamsense props genereren. ///////////////////// this.createStreamsenseProps(new_stat_pixel_url); if(debugstats){ alert('Streamsense new url:\n' + this.streamSenseUrl); alert('Streamsense new clip attributes:\n\n' + debugSource(this.streamSenseAttributes)); } ///////////////////// ///// Overige acties alleen bij vervolgclips (oktober 2009). ///////////////////// if(is_initial || clip_info == window.clipInfo){ return;} ///////////////////// ///// Nieuwe sitestat telling. ///////////////////// var image = new Image(); image.src = new_stat_pixel_url; if(debugstats){ alert('Sitestat new pixel:\n' + new_stat_pixel_url); } ///////////////////// ///// Oude sitestat telling ///////////////////// if(typeof clip_info.counter == 'string' && typeof clip_info.channel == 'string' && typeof clip_info.context == 'string'){ window.ns_pixelUrl = this.ns_PixelUrlBase + clip_info.counter + '&ns_channel=' + clip_info.channel + '&ns_context=' + clip_info.context + '&ns__t=' + (new Date()).getTime(); var image = new Image(); image.src = window.ns_pixelUrl; if(debugstats){ alert('Sitestat old pixel:\n' + window.ns_pixelUrl); } } ///////////////////// ///// Tracking pixel. ///////////////////// if(typeof clip_info.trackingPixel == 'string' && clip_info.trackingPixel.length > 4){ this.trackingPixel = new Image(); this.trackingPixel.src = clip_info.trackingPixel; if(debugstats){ alert('Tracking pixel:\n' + clip_info.trackingPixel); } } }, createStreamsenseProps: function(new_url){ ///// Resetten properties. this.streamSenseUrl = ''; this.streamSenseAttributes = {}; this.streamSenseSilverlightString = ''; // verwijderen http://nl.sitestat.com/rtl/rtlnieuws/s?miMedia.2010.week03.do_1600_adoptie-avi_plain&ns_c=ISO-8859-1&rtl_station=rtl4&rtl_site=rtlnieuws&rtl_uuid=components.actueel.rtlnieuws.miMedia.2010.week03.do_1600_adoptie-avi_plain&rtl_zone=video&rtl_seizoen=0&rtl_release=0&rtl_source=video.overig&rtl_mp=yes&rtl_userid=0f3c9cb9d8ac428f&ns_channel=entertainment/rtlnieuws&ns_context=rtl4&ns__t=1264089589021 ///// Genereren URL. var first_part_match = new_url.match(/^(.+\?[^&]+)&/); this.streamSenseUrl = first_part_match? first_part_match[1]: ''; if(this.streamSenseUrl == '') return; ///// Checken aanwezigheid GET vars gedeelte. var query_match = new_url.match(/\?(.+)$/); if(!query_match) return; ///// var query_vars = query_match[1].split('&'); var valid_vars = { rtl_station: 1, rtl_site: 1, rtl_uuid: 1, rtl_zone: 1, rtl_seizoen: 1, rtl_release: 1, rtl_source: 1, rtl_mp: 1, rtl_userid: 1 }; ///// var silverlight_str = ''; for(var i = 1; i < query_vars.length; i++){ var key_value = query_vars[i].split('='); if(key_value.length == 2 && valid_vars.hasOwnProperty(key_value[0])){ this.streamSenseAttributes[key_value[0]] = unescape(key_value[1]); silverlight_str += key_value[0] + '=' + key_value[1] + '&'; } } ///// this.streamSenseSilverlightString = this.streamSenseUrl; this.streamSenseSilverlightString += (silverlight_str != '')? '&' + silverlight_str.replace(/&$/, ''): ''; }, ///// Schrijven nieuwe banner. playBanner: function(clip_info){ if(!this.bannerContainer || typeof clip_info != 'object' || clip_info == null || typeof clip_info.dartURL != 'string' || clip_info.dartURL.indexOf('http://') != 0) return; ///// if(clip_info == this.bannerClipInfo){ return; } this.bannerClipInfo = clip_info; ///// if(this.bannerIframe == null){ while(this.bannerContainer.hasChildNodes()){ this.bannerContainer.removeChild(this.bannerContainer.lastChild); } this.bannerIframe = document.createElement('iframe'); this.bannerIframe.setAttribute('frameBorder', 0); this.bannerIframe.setAttribute('marginWidth', 0); this.bannerIframe.setAttribute('marginHeight', 0); this.bannerIframe.setAttribute('scrolling', 'no'); this.bannerIframe.style.width = '468px'; this.bannerIframe.style.height = '60px'; this.bannerIframe.style.filter = 'alpha(opacity=100)'; this.bannerContainer.appendChild(this.bannerIframe); } ///// this.bannerIframe.setAttribute('src', clip_info.dartURL); }, doScroll: function(){ if(document.body.scrollTop != this.currentScroll || this.currentScroll == 0) return; this.currentScroll -= (this.currentScroll > 25? 25: this.currentScroll); document.body.scrollTop = this.currentScroll; if(this.currentScroll > 0){ setTimeout("mediaInfo.doScroll()", 25); } }, ///// createXMLHTTPObject: function(){ try { if(window.XMLHttpRequest){ this.xmlhttp = new XMLHttpRequest(); } else { this.xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } } catch(e){ this.xmlhttp = null; } ///// return this.xmlhttp; }, loadClipInfo: function(file_path){ if(typeof file_path != 'string' || file_path == ''){ return; } if(this.isTweening){ return; } if(this.filePath == file_path){ return; } if(pluginInfo.forceWMP){ location.href = file_path; return; } ///// Vreemde elementen binnen de pagina. if(!RTLPlayerPage){ location.href = file_path; return; } if(pluginInfo.WMVPluginQuality > 2){ location.href = file_path; return; } this.filePath = file_path; ///// var compare_result = this.comparePaths(); if(!compare_result){ location.href = file_path; return; } ///// if(this.xmlhttp == null){ this.debug('Het xmlhttp object is null.'); location.href = file_path; return; } if(!pluginInfo.SilverlightInstalled && !pluginInfo.WMPScriptable){ location.href = file_path; return; } ///// try { this.xmlhttp.onreadystatechange = function(){}; this.xmlhttp.abort(); this.xmlhttp.onreadystatechange = function(){ mediaInfo.handleClipInfo(); }; this.xmlhttp.open('GET', this.prestate + this.filePath + location.search, true); this.xmlhttp.send(null); } catch(e){ this.debug('Fout bij uitvoeren xmlhttp request.'); location.href = file_path; } ///// if(window.ActiveXObject){ document.body.setActive(); } }, handleClipInfo: function(){ if(this.xmlhttp.readyState < 4){ return; } if((this.xmlhttp.status != 200 && this.xmlhttp.status != 304)){ this.debug('Ongeldige status xmlhttp object (' + this.xmlhttp.status + ').'); location.href = this.filePath; return; } ///// var clip_info; try { eval('clip_info = ' + this.xmlhttp.responseText); } catch(e){ clip_info = null; } if(clip_info == null){ this.debug('Ongeldige syntax JSON string:\n\n' + this.xmlhttp.responseText); location.href = this.filePath; return; } ///// var validation_result = this.validateClipInfo(clip_info, false); if(validation_result.error != ''){ this.debug('JSON string is niet valide:\n\n' + validation_result.error); location.href = this.filePath; return; } ///// this.clipInfoValidation = validation_result; this.clipInfo = this.clipInfoValidation.info; ///// this.playItem(false); }, ///// comparePaths: function(){ var initial_list = this.initialPath.split('/'); var file_list = this.filePath.split('/'); var check_length = 4; check_length = (initial_list.length < check_length)? initial_list.length: check_length; check_length = (file_list.length < check_length)? file_list.length: check_length; ///// for(var i = 0; i < check_length; i++){ if(initial_list[i] != file_list[i]){ return false; } } ///// return true; }, validateClipInfo: function(clip_info, is_initial){ var result = { error: '', warnings: [], info: null }; ///// if(typeof clip_info != 'object' || clip_info == null){ result.error += 'clip info is null or not an object'; return result; } //// Zetten initialPath. if(is_initial && typeof clip_info.path == 'string'){ this.initialPath = clip_info.path; } ///// if(typeof clip_info.path != 'string'){ result.error += 'path property is missing\n'; } ///// if(typeof clip_info.title != 'string'){ result.error += 'title property is missing\n'; } if(typeof clip_info.date != 'string'){ result.error += 'date property is missing\n'; } if(typeof clip_info.items != 'object' || !(clip_info.items instanceof Array)){ result.error += 'items property is not an array\n'; return result; } ///// var valid_items = []; var item; var nr; for(var i = 0; i < clip_info.items.length; i++){ item = clip_info.items[i]; if(typeof item != 'object' || item == null){ result.warnings.push('item ' + i + ' in items array is null or not an object'); continue; } ///// nr = (typeof item.bandwidth == 'string' || typeof item.bandwidth == 'number')? parseInt(item.bandwidth, 10): NaN; if(isNaN(nr) || nr < 1){ result.warnings.push('item ' + i + ' in items array has missing or invalid bandwidth property'); continue; } item.bandwidth = nr; ///// if(typeof item.format != 'string'){ result.warnings.push('item ' + i + ' in items array has missing or invalid format property'); continue; } if(item.format.toLowerCase().indexOf('wm') != 0){ result.warnings.push('item ' + i + ' in items array is not a windows media item'); continue; } ///// nr = (typeof item.width == 'string' || typeof item.width == 'number')? parseInt(item.width, 10): NaN; if(isNaN(nr) || nr < 0){ result.warnings.push('item ' + i + ' in items array has missing or invalid width property'); nr = 0; } item.width = nr; ///// nr = (typeof item.height == 'string' || typeof item.height == 'number')? parseInt(item.height, 10): NaN; if(isNaN(nr) || nr < 0){ result.warnings.push('item ' + i + ' in items array has missing or invalid height property'); nr = 0; } item.height = nr; ///// valid_items.push(item); } ///// if(valid_items.length == 0){ result.error += 'no valid items found'; return result; } valid_items.sort(function (a, b){ return a.bandwidth - b.bandwidth;}); ///// clip_info.items = valid_items; result.info = clip_info; return result; }, editClipInfo: function(){ var index; switch(clientInfo.quality){ case 'low': this.clipInfo.selectedIndex = 0; break; case 'high': this.clipInfo.selectedIndex = this.clipInfo.items.length - 1; break; default: this.clipInfo.selectedIndex = Math.floor((this.clipInfo.items.length - 1) / 2); break; } ///// for(var i = 0; i < this.clipInfo.items.length; i++){ this.clipInfo.items[i].wvxPath = this.wvxDomain + '/(ord=' + this.timeStamp + ')/system/video/wvx' + this.clipInfo.path + '/' + this.clipInfo.items[i].bandwidth + '.wvx'; } ///// if(typeof this.clipInfo.dartURL == 'string'){ var clip_info = this.clipInfo; clip_info.dartURL = clip_info.dartURL.replace("rtl4.rtl.nl","rtlgemist.rtl.nl"); clip_info.dartURL = clip_info.dartURL.replace("rtl5.rtl.nl","rtlgemist.rtl.nl"); clip_info.dartURL = clip_info.dartURL.replace("rtl7.rtl.nl","rtlgemist.rtl.nl"); clip_info.dartURL = clip_info.dartURL.replace("rtl8.rtl.nl","rtlgemist.rtl.nl"); clip_info.dartURL = clip_info.dartURL.replace("yorin.rtl.nl","rtlgemist.rtl.nl"); clip_info.dartURL = clip_info.dartURL.replace("service.rtl.nl","rtlgemist.rtl.nl"); var parts = clip_info.dartURL.split(';'); var dart_url = ""; var new_keys = new Array(); for(var a =0; a < parts.length;a++) { var key_val = parts[a].split("="); if(key_val.length == 2) { if(key_val[0] == "xprog" || key_val[0]=="url" || key_val[0]=="chan"|| key_val[0]=="dcopt")continue; } new_keys[new_keys.length] = parts[a]; } dart_url += new_keys.join(';') + ';ord=' + this.timeStamp; this.clipInfo.dartURL = dart_url; } ///// if(typeof this.clipInfo.dart1 == 'string' && this.clipInfo.dart1.length > 0){ this.clipInfo.dart1 += ';ord=' + this.timeStamp; } ///// return this.clipInfo; }, debug: function(msg){ if(this.doDebug){ alert(msg); } } }; //////////////////// ///// Algemeen info-object. //////////////////// function ControlInfo(container_id){ if(typeof container_id == 'string'){ this.doDebug = (location.href.indexOf('debugplayer') > -1); this.controlContainerID = container_id; this.controlContainer = document.getElementById(container_id); this.controlWritten = null; this.control = null; ControlInfo.instances.push(this); } } ControlInfo.prototype = { resetBase: function(){ this.controlWritten = null; this.control = null; this.controlContainer.innerHTML = ''; }, ///// write: function(object_string){ this.controlContainer.innerHTML = object_string; this.controlWritten = true; }, ///// show: function(){ var style_obj = this.controlContainer.style; style_obj.left = '0px'; style_obj.visibility = 'visible'; }, hide: function(){ var style_obj = this.controlContainer.style; style_obj.left = '-2000px'; // style_obj.visibility = 'hidden'; }, debug: function(msg){ if(this.doDebug){ alert(msg); } }, addEvent: function(object, eventstring, func){ if(typeof window.addEventListener == 'function'){ object.addEventListener(eventstring, func, false); } else { object.attachEvent('on' + eventstring, func); } } }; ControlInfo.baseWidth = 720; ControlInfo.baseHeight = 404; ControlInfo.instances = []; ControlInfo.instanceShown = null; ControlInfo.showInstance = function(instance){ ControlInfo.instanceShown = instance; for(var i = 0; i < ControlInfo.instances.length; i++){ ControlInfo.instances[i][(ControlInfo.instances[i] == instance? 'show': 'hide')](); } }; //////////////////// ///// Flash streamspots. //////////////////// /* Interface streamspotcontainer: testInterfaceCalled():String showStreamspot(streamspot:String, duration:Number):Boolean deleteStreamspot():Boolean showControls(activate:Boolean):Boolean setVolume(new_volume:Number):Boolean */ function StreamspotInfo(container_id){ ControlInfo.call(this, container_id); this.fallbackTime = 20; this.playing = false; this.swfPath = defaultSWFPath; } StreamspotInfo.prototype = new ControlInfo; StreamspotInfo.prototype.writeControl = function(streamspot, volume, playerID){ var flash_vars = 'streamspot=' + encodeURIComponent(streamspot) + '&volume=' + volume + '&playerid=' + playerID; var w = ControlInfo.baseWidth; var h = ControlInfo.baseHeight; var object_string = '<obj'+'ect classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + w + '" height="' + h + '" id="streamspot_flash_object" align="middle">' + '<par'+'am name="allowScriptAccess" value="always" />' + '<par'+'am name="flashvars" value="' + flash_vars + '" />' + '<par'+'am name="allowFullScreen" value="false" />' + '<par'+'am name="movie" value="' + this.swfPath +'" />' + '<par'+'am name="wmode" value="opaque" />' + '<par'+'am name="quality" value="high" />' + '<par'+'am name="bgcolor" value="#000000" />' + '<emb'+'ed sr'+'c="' + this.swfPath +'" flashvars="' + flash_vars + '" wmode="opaque" quality="high" bgcolor="#000000" width="' + w + '" height="' + h + '" name="streamspot_flash_embed" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' + '<\/obj'+'ect>'; ///// this.write(object_string); }; ///// Aanroepen flash container methods. StreamspotInfo.prototype.testInterfaceCaller = function(){ var method_name = 'showStreamspot'; var embs = document.embeds; var flash_el = (embs && embs['streamspot_flash_embed'] && embs['streamspot_flash_embed'][method_name])? embs['streamspot_flash_embed']: document.getElementById('streamspot_flash_object'); var result; try { result = flash_el.testInterfaceCalled(); } catch(e){ result = 'Error'; } ///// var interface_supported = (result == 'ResponseFromFlash'); this.control = (interface_supported? flash_el: null); }; StreamspotInfo.prototype.showStreamspot = function(streamspot, playerID){ ///// juli2009 this.playing = true; if(!pluginInfo.Flash9Installed || pluginInfo.Opera){ setTimeout("openNext('prerollPlayer')", 10); return; } ///// ControlInfo.showInstance(this); ///// this.resetBase(); this.writeControl(streamspot, clientInfo.volume, playerID); }; StreamspotInfo.prototype.showStreamspotControls = function(activate){ if(!this.control) return; try { this.control.showControls(activate); } catch(e){ } }; StreamspotInfo.prototype.setStreamspotVolume = function(new_volume){ if(!this.control) return; try { this.control.setVolume(new_volume); } catch(e){ } }; ///// Vanuit Flash aangeroepen functies. function testInterfaceCalled(interface_supported){ setTimeout(function(){ streamspotInfo.testInterfaceCaller();}, 50); } function registerVolume(new_volume){ clientInfo.setVolume(new_volume); } function streamspotReady(){ ///// Aanroep vanuit SWF bij laden streamspot (juli2009). mediaInfo.playBanner(mediaInfo.clipInfo); } function openNext(streamspotPlayerId){ if(streamspotPlayerId == 'prerollPlayer') { if(!streamspotInfo.playing){ return; } else { streamspotInfo.playing = false; } ///// try { mediaInfo.playBanner(mediaInfo.clipInfo); } catch(e){ } ///// Kleine timeout nodig voor resetBase ivm Safari WIN. setTimeout(function(){ streamspotInfo.resetBase();}, 25); setTimeout(function(){ mediaInfo.defaultControl.showClip(mediaInfo.clipInfo);}, 50); } if(streamspotPlayerId == 'postRollPlayer') { ///// postRoll Ended ///// Idem Kleine timeout nodig voor hidePlayer ivm Safari WIN. setTimeout(function(){ hidePlayer();}, 25); } } ///////////////////// ///// Overlay streamspots (SL). ///////////////////// /* Overlay toevoeging. */ function OverlayInfo(container_id, instance_id){ if(typeof container_id != 'undefined'){ ControlInfo.call(this, container_id); this.instanceID = instance_id; this.compatible = this.determineCompatibility(); this.proxyContainer = null; this.proxyControl = null; this.proxyPath = '/system/scripts/overlayproxy.swf'; this.proxyVars = 'TestInterfaceJSFunction=' + this.instanceID + '.testInterfacePassive'; this.proxyInitError = ''; this.requestIdentifiers = {}; this.requestsDone = 0; this.streamspotDoneInfoRequest = false; this.streamspotParams = null; this.streamspotShowing = false; this.streamspotShowingTimeout = null; this.streamspotAsxUrl = ''; this.start(); } } ///// Static. OverlayInfo.createInstance = function(container_id, instance_id){ if(pluginInfo.defaultControlName == 'silverlightInfo'){ return new OverlayInfo(container_id, instance_id); } else { return new OverlayInfoWMP(container_id, instance_id); } }; ///// Overerving en overriding. OverlayInfo.prototype = new ControlInfo; ///// Aanvangen. OverlayInfo.prototype.start = function(){ if(!this.compatible) return; this.writeProxy(); }; OverlayInfo.prototype.determineCompatibility = function(){ ///// Geen Flash, niet compatible. if(!pluginInfo.Flash9Installed){ return false; } return pluginInfo.SilverlightWindowless; }; ///// Schrijven proxy en testen interface. OverlayInfo.prototype.writeProxy = function(){ this.proxyContainer = document.createElement('div'); var stl = this.proxyContainer.style; stl.position = 'absolute'; stl.width = '1px'; stl.height = '1px'; stl.zIndex = 500; stl.backgroundColor = 'pink'; document.body.appendChild(this.proxyContainer); var object_string = '<obj' + 'ect classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="1" height="1" id="' + this.instanceID + '_obj" align="middle">' + '<par' + 'am name="allowScriptAccess" value="always" />' + '<par' + 'am name="allowFullScreen" value="false" />' + '<par' + 'am name="movie" value="' + this.proxyPath + '" />' + '<par' + 'am name="quality" value="high" />' + '<par' + 'am name="wmode" value="transparent" />' + '<par' + 'am name="bgcolor" value="#ffffff" />' + '<par' + 'am name="flashvars" value="' + this.proxyVars + '" />' + '<emb' + 'ed src="' + this.proxyPath + '" flashvars="' + this.proxyVars + '" quality="high" wmode="transparent" bgcolor="#ffffff" width="1" height="1" name="' + this.instanceID + '_emb" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' + '</object>'; this.proxyContainer.innerHTML = object_string; }; OverlayInfo.prototype.testInterfacePassive = function(string){ if(string != 'CallFromFlash'){ } else { var self = this; setTimeout(function(){ self.testInterfaceActive();}, 50); } }; OverlayInfo.prototype.testInterfaceActive = function(){ var embs = document.embeds; var embid = this.instanceID + '_emb'; var flash_obj = (embs && embs[embid] && embs[embid].testInterfacePassive)? embs[embid]: document.getElementById(this.instanceID + '_obj'); ///// var return_value; try { return_value = flash_obj.testInterfacePassive(); } catch(e){ return_value = 'Error'; } ////// if(return_value != 'ResponseFromFlash'){ } else { this.proxyControl = flash_obj; } }; ///// Ophalen en afhandelen data. OverlayInfo.prototype.getInfo = function(){ if(!this.compatible){ return; } ///// Indien info reeds gehaald, geen actie. if(this.streamspotDoneInfoRequest){ return; } else { this.streamspotDoneInfoRequest = true; } ///// if(!mediaInfo.clipInfo || typeof mediaInfo.clipInfo.dartURL != 'string' || mediaInfo.clipInfo.dartURL.indexOf('http://') != 0){ return; } ///// this.streamspotAsxUrl = this.createAsxUrl(mediaInfo.clipInfo.dartURL); if(this.streamspotAsxUrl == ''){ return; } if(location.href.indexOf('testoverlays') != -1){ this.streamspotAsxUrl = 'http://www.rtl.nl/demo/player_streamspot_test/test.asx'; } ///// var req_ident = this.createRequestIdentifier(); this.requestIdentifiers[req_ident] = { nr: ++this.requestsDone, clipInfo: mediaInfo.clipInfo, url: this.streamspotAsxUrl }; ///// this.debug('OverlayInfo.prototype.getInfo\nurl: ' + this.streamspotAsxUrl); ///// try { this.proxyControl.getRequest(this.streamspotAsxUrl, req_ident, this.instanceID + '.handleInfo') } catch(e){ } }; OverlayInfo.prototype.handleInfo = function(obj){ try { var request_info = (obj && typeof obj.requestIdentifier == 'string' && obj.requestIdentifier != '' && this.requestIdentifiers.hasOwnProperty(obj.requestIdentifier))? this.requestIdentifiers[obj.requestIdentifier]: null; if(!request_info) { return; } /* Bij delay kan info betrekking hebben op inmiddels verouderde clip. Derhalve check uitvoeren. Bij overeenkomst clipInfo property naar null (niet meer nodig). */ if(request_info.clipInfo != mediaInfo.clipInfo){ return; } else { request_info.clipInfo = null; } ///// var data_string_encoded = (typeof obj.dataStringEncoded == 'string')? obj.dataStringEncoded: ''; if(!data_string_encoded || data_string_encoded.length > 30000){ return; } var data_string_decoded = decodeURIComponent(data_string_encoded); ///// var asx_rx = /<ASX[^>]*>([\s\S]+?)<\/ASX>/i; var asx_match = data_string_decoded.match(asx_rx); if(!asx_match){ this.debug('Overlay streamspots error: geen ASX element gevonden.\n\n' + data_string_decoded); return; } ///// var ref_rx = /<REF\s+HREF=['"]([^'"]+)['"]\s*\/>/i; var ref_match = asx_match[1].match(ref_rx); if(!ref_match){ return; } ///// var ref_val = ref_match[1].replace(/^\s+/g, '').replace(/\s+$/g, ''); if(ref_val.indexOf('http://') != 0){ return; } if(!/\.swf(\?|$)/.test(ref_val)){ this.debug('Overlay streamspots error: URL lijkt niet te verwijzen naar SWF.\n\n' + data_string_decoded); return; } ///// var starttime_rx = /<STARTTIME\s*VALUE=['"]([^'"]+)['"]\s*\/>/i; var starttime_match = asx_match[1].match(starttime_rx); if(!starttime_match){ starttime_match = ['', '0:40']; this.debug('Overlay streamspots error: Geen of ongeldige STARTTIME gevonden.\nSTARTTIME gezet op default (40 sec.).\n\n' + data_string_decoded); return; } ///// var starttime_val = this.numberFromTimespan(starttime_match[1].replace(/^\s+/g, '').replace(/\s+$/g, '')); if(starttime_val == -1){ this.debug('Overlay streamspots error: Ongeldige STARTTIME gevonden.\n\n' + data_string_decoded); return; } ///// var duration_rx = /<DURATION\s+VALUE=['"]([^'"]+)['"]\s*\/>/i; var duration_match = asx_match[1].match(duration_rx); if(!duration_match){ this.debug('Overlay streamspots error: Geen of ongeldige DURATION gevonden.\n\n' + data_string_decoded); return; } ///// var duration_val = this.numberFromTimespan(duration_match[1].replace(/^\s+/g, '').replace(/\s+$/g, '')); if(duration_val < 1){ this.debug('Overlay streamspots error: Ongeldige DURATION gevonden.\n\n' + data_string_decoded); return; } ///// this.streamspotParams = { clipInfo: mediaInfo.clipInfo, url: ref_val, beginTime: starttime_val, duration: duration_val }; ///// this.beginWaiting(); } catch(e){ } }; ///// Beginnen met wachten. OverlayInfo.prototype.beginWaiting = function(){ try { silverlightInfo.control.Content.ControllerBase.set_s_OverLayTriggerAtSeconds(this.streamspotParams.beginTime); } catch(e){ // this.debug('Overlay streamspots: error bij aanroep set_s_OverLayTriggerAtSeconds.'); } }; ///// Aanvangen en eindigen streamspot. OverlayInfo.prototype.beginStreamspot = function(){ ///// Geen actie als streamspotParams == null. if(!this.streamspotParams) return; ///// Geen actie als SL object op dit moment niet getoond wordt. if(ControlInfo.instanceShown != silverlightInfo) return; ///// Indien SL op dit moment fullscreen geen actie ondernemen. var sl_fullscreen = (silverlightInfo.control && silverlightInfo.control.content && silverlightInfo.control.content.fullScreen); if(sl_fullscreen) return; ///// Schrijven object en zetten timer. this.writeStreamspot(); ///// try { silverlightInfo.control.Content.asxlister.sl_controller('0'); } catch(e){ // this.debug('Overlay streamspots: error bij aanroep sl_controller (param = 0).'); } }; OverlayInfo.prototype.writeStreamspot = function(){ var scope = this; if(this.streamspotShowing){ return; } else { this.streamspotShowing = true; this.streamspotShowingTimeout = setTimeout(function(){ scope.stats('http://nl.sitestat.com/rtl/test/s?overlay.finish'); scope.endStreamspot(true); }, this.streamspotParams.duration * 1000); } ///// this.stats('http://nl.sitestat.com/rtl/test/s?overlay.start'); ///// var w = ControlInfo.baseWidth; var h = ControlInfo.baseHeight; var url = this.streamspotParams.url; var object_string = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + w + '" height="' + h + '" id="overlay_control_obj" align="middle">' + '<param name="allowScriptAccess" value="always" />' + '<param name="allowFullScreen" value="false" />' + '<param name="movie" value="' + url + '" />' + '<param name="quality" value="high" />' + '<param name="wmode" value="transparent" />' + '<param name="bgcolor" value="#ffffff" />' + '<embed src="' + url + '" quality="high" wmode="transparent" bgcolor="#ffffff" width="720" height="404" name="overlay_control_embed" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' + '</object>'; ///// Bij schrijven object streamspotParams op null om meervoudig schrijven van object te voorkomen. this.streamspotParams = null; ///// this.write(object_string); this.show(); }; OverlayInfo.prototype.endStreamspot = function(till_finish){ this.streamspotShowing = false; ///// Notificatie Silverlight (controls mogen weer getoond worden). try { silverlightInfo.control.Content.asxlister.sl_controller('2'); } catch(e){ // this.debug('Overlay streamspots: error bij aanroep sl_controller (param = 2).'); } ///// Deleten flash object en verbergen container. this.resetBase(); this.hide(); }; OverlayInfo.prototype.pauseVideoAndDeleteOverlay = function(){ var scope = this; setTimeout(function(){ scope.deleteOverlay(true);}, 1000); try { silverlightInfo.control.Content.ControllerBase.PauseMedia(); } catch(e){ //this.debug('Overlay streamspots: error bij aanroep PauseMedia.'); } }; OverlayInfo.prototype.deleteOverlay = function(has_clicked){ this.stats((has_clicked? 'http://nl.sitestat.com/rtl/test/s?overlay.click': 'http://nl.sitestat.com/rtl/test/s?overlay.close')); clearTimeout(this.streamspotShowingTimeout); this.endStreamspot(); }; ///// Bij aanvang nieuwe clip wordt oorspronkelijke toestand hersteld. OverlayInfo.prototype.clearState = function(){ if(this.requestsDone == 0) return; clearTimeout(this.streamspotShowingTimeout); this.endStreamspot(); this.streamspotDoneInfoRequest = false; }; ///// Assistentie methods. OverlayInfo.prototype.stats = function(url){ var source_url = url + (url.indexOf('?') == -1? '?': '&') + 'ns__t=' + (new Date).getTime(); var img = new Image(); img.src = source_url; if(location.href.indexOf('debugstats') != -1){ // alert('Overlay stats (pixel):\n' + source_url); } }; OverlayInfo.prototype.createAsxUrl = function(dart_url){ var url = dart_url; var matches = [ {rx: /sz=\d{2,3}x\d{2,3}/, match: false, str: 'sz=62x91'}, {rx: /pos=top/, match: false, str: 'pos=streamspot'}, {rx: /tile=\d/, match: false, str: 'tile=3'} ]; var func = function(t){ matches[i].match = true; return matches[i].str;}; ///// for(var i = 0; i < matches.length; i++){ url = url.replace(matches[i].rx, func); if(!matches[i].match) return ''; } return url; }; OverlayInfo.prototype.createRequestIdentifier = function(){ var request_identifier; do { request_identifier = 'id' + (new Date()).getTime(); } while(this.requestIdentifiers.hasOwnProperty(request_identifier)); return request_identifier; }; OverlayInfo.prototype.numberFromTimespan = function(timespan){ var test = timespan.match(/^([0-1]\d:|2[0-3]:|\d:)?([0-5]\d:|\d:)([0-5]\d|[0-5]\d\.\d+|\d|\d.\d+)$/); return test? (test[1]? parseInt(test[1], 10) * 3600: 0) + (parseInt(test[2], 10) * 60) + Number(test[3]): -1; }; ///////////////////// ///// Overlay streamspots (WMP). ///////////////////// function OverlayInfoWMP(container_id, instance_id){ OverlayInfo.apply(this, arguments); var scope = this; this.pollTimer = (this.compatible? setInterval(function(){ scope.pollPosition( );}, 750): null); } ///// Overerving en overriding. OverlayInfoWMP.prototype = new OverlayInfo; OverlayInfoWMP.prototype.determineCompatibility = function(){ ///// Geen Flash, niet compatible. if(!pluginInfo.Flash9Installed){ return false; } return (pluginInfo.IE && pluginInfo.WMPScriptable); }; OverlayInfoWMP.prototype.beginWaiting = function(){ ///// Geen zinnige implementatie voor beginWaiting bij WMP versie. }; OverlayInfoWMP.prototype.beginStreamspot = function(){ ///// Geen actie als streamspotParams == null. if(!this.streamspotParams){ return; } ///// Geen actie als WMP object op dit moment niet getoond wordt. if(ControlInfo.instanceShown != wmvInfo){ return; } ///// Indien SL op dit moment fullscreen geen actie ondernemen. var wmp_fullscreen = (wmvInfo.control && wmvInfo.control.fullScreen); if(wmp_fullscreen){ return; } ///// Schrijven object en zetten timer. this.writeStreamspot(); }; OverlayInfoWMP.prototype.endStreamspot = function(){ this.streamspotShowing = false; ///// Deleten flash object en verbergen container. this.resetBase(); this.hide(); }; OverlayInfoWMP.prototype.pauseVideoAndDeleteOverlay = function(){ var scope = this; setTimeout(function(){ scope.deleteOverlay(true);}, 1000); try { wmvInfo.control.controls.pause(); } catch(e){ } }; ///// Specifieke methods voor WMP versie. OverlayInfoWMP.prototype.pollPosition = function(){ try { if(typeof wmvInfo != 'object' || !wmvInfo.control || !wmvInfo.control.currentMedia){ return; } ///// Data nog ophalen if(!this.streamspotDoneInfoRequest){ if(wmvInfo.control.currentMedia.getItemInfo("streamtype") == 'vod'){ this.getInfo(); } return; } //// Check op gevuld zijn streamspotParams. if(this.streamspotParams){ var position = wmvInfo.control.controls.currentPosition; position = isNaN(position)? -1: position; if(position >= this.streamspotParams.beginTime && position < this.streamspotParams.beginTime + 1.5){ this.beginStreamspot(); } } } catch(e){ } }; ///////////////////// ///// Silverlight info-object. ///////////////////// function SilverlightInfo(container_id){ ControlInfo.call(this, container_id); this.initArgs = null; this.selectedIndex = null; this.silverlightErrors = []; this.xapPath = defaultXAPPath; } SilverlightInfo.ControllerSize = 2; SilverlightInfo.prototype = new ControlInfo; SilverlightInfo.prototype.show = function(){ if(overlayInfo.streamspotShowing){ overlayInfo.show(); } ControlInfo.prototype.show.call(this); }; ///// Schrijven control. SilverlightInfo.prototype.writeControl = function(clip_info, items_string){ var selected_item = clip_info.items[clip_info.selectedIndex]; ///// var init_params_obj = { keep_alive: 20, STREAMSENSE_ONLY_WHEN_URL_CONTAINS_SKO_: 0, ControllerSize: SilverlightInfo.ControllerSize, JavascriptClientInfoObjectQualityProperty: 'quality', quality: clientInfo.quality, ///// streamsense (jan 2010). ssense_host_prefix: mediaInfo.streamSenseSilverlightString, SessionStreamSenseTimestamp: (new Date()).getTime(), JavascriptClientInfoObjectVolumeProperty: 'volume', JavascriptClientInfoObjectName: 'clientInfo', debug: 0, DefaultVolumeValue: clientInfo.volume, asxurl: items_string }; ///// var init_params = '%SILVERLIGHT_SEND_POSTROLL_TRIGGER%=1,'; for(var i in init_params_obj){ if(!init_params_obj.hasOwnProperty(i)) continue; init_params += i + '=' + init_params_obj[i] + ','; } ///// var w = ControlInfo.baseWidth; var h = ControlInfo.baseHeight; // FOR UPDATING THE LOADING % STRING // '<pa'+'ram name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />' + var object_string = '<obj'+'ect id="silverlight_control" data="data:application/x-silverlight," type="application/x-silverlight-2" width="' + w + '" height="' + h + '">' + '<pa'+'ram name="source" value="' + this.xapPath + '" />' + '<pa'+'ram name="onerror" value="onerrorSilverlight" />' + '<pa'+'ram name="onload" value="onloadSilverlight" />' + '<pa'+'ram name="background" value="white" />' + '<pa'+'ram name="enableHtmlAccess" value="true" />' + '<pa'+'ram name="minRuntimeVersion" value="3.0.40624.0" />' + '<pa'+'ram name="EnableGPUAcceleration" value="true" />' + '<pa'+'ram name="splashscreensource" value="/system/videoplayer/plugin_files/sl_init_1.0/init.xaml"/>'+ '<pa'+'ram name="Windowless" value="' + pluginInfo.SilverlightWindowless + '" />' + '<pa'+'ram name="initParams" value="' + init_params + '" />' + '<\/obj'+'ect>'; object_string += '<ifr'+'ame style="visibility:hidden;height:0;width:0;border:0;"><\/ifr'+'ame>'; ///// this.write(object_string); ///// var scope = this; this.addEvent(window, 'beforeunload', function(){ scope.beforeUnload();}); }; SilverlightInfo.prototype.showClip = function(clip_info){ ControlInfo.showInstance(silverlightInfo); ///// var selected_item = clip_info.items[clip_info.selectedIndex]; var items_string = this.createItemsString(clip_info.items); try { if(silverlightInfo.control){ silverlightInfo.control.Content.asxlister.loadasx(items_string); } else { throw {}; } } catch(e){ this.resetBase(); this.writeControl(clip_info, items_string); } }; SilverlightInfo.prototype.createItemsString = function(items){ var filler = ''; var seperator = '|'; var items_string; ///// switch(items.length){ case 0: items_string = ''; break; case 1: if(items[0].bandwidth < 780) items_string = items[0].wvxPath + seperator + filler + seperator + filler; else if(items[0].bandwidth >= 780 && items[0].bandwidth < 820) items_string = filler + seperator + items[0].wvxPath + seperator + filler; else items_string = filler + seperator + filler + seperator + items[0].wvxPath; break; case 2: if(items[1].bandwidth < 1480){ items_string = items[0].wvxPath + seperator + items[1].wvxPath + seperator + filler; } else { items_string = filler + seperator + items[0].wvxPath + seperator + items[1].wvxPath; } break; default: items_string = ''; for(var i = items.length - 3; i < items.length; i++){ items_string += items[i].wvxPath + (i < items.length - 1? seperator: ''); } break; } ///// return items_string; }; SilverlightInfo.prototype.beforeUnload = function(){ return; try { this.control.Content.asxlister.OnBeforeUnloadSL(); } catch(e){ } }; SilverlightInfo.prototype.shutUp = function(){ /////juli2009 this.resetBase(); }; ///// Vanuit Silverlight aangeroepen functies. function onloadSilverlight(sender, args){ try { silverlightInfo.control = sender.getHost(); } catch(e){ silverlightInfo.control = null; } silverlightInfo.initArgs = args; } function onerrorSilverlight(sender, args) { var errMsg; try { var appSource = ""; if (sender != null && sender != 0) { appSource = sender.getHost().Source; } var errorType = args.ErrorType; var iErrorCode = args.ErrorCode; errMsg = "Unhandled error in Silverlight 2 Application " + appSource + "<br />" ; errMsg += "Code: " + iErrorCode + "<br />"; errMsg += "Category: " + errorType + "<br />"; errMsg += "Message: " + args.ErrorMessage + "<br />"; if (errorType == "ParserError"){ errMsg += "File: " + args.xamlFile + "<br />"; errMsg += "Line: " + args.lineNumber + "<br />"; errMsg += "Position: " + args.charPosition + "<br />"; } else if (errorType == "RuntimeError"){ if (args.lineNumber != 0){ errMsg += "Line: " + args.lineNumber + "<br />"; errMsg += "Position: " + args.charPosition + "<br />"; } errMsg += "MethodName: " + args.methodName + "<br />"; } } catch(e){ errMsg = "Unhandled error in Silverlight 2 Application. Unable to read additional information."; } ///// silverlightInfo.silverlightErrors.push(errMsg); silverlightInfo.debug(errMsg); } function onSourceDownloadProgressChanged(sender, eventArgs) { // sender.findName("Label").Text = "Loading: " + Math.round((eventArgs.progress * 1000)) / 10 + "%"; } function f_showswf(streamspot, duration, selected_index){ ///// juli2009 } function f_startedWMVfile(){ ///// juli2009 try { overlayInfo.getInfo(); } catch(e){ } } function f_startOverlay(player_id){ overlayInfo.beginStreamspot(); } function registerBitrate(new_bitrate){ clientInfo.setQuality(new_bitrate); } function showHyves(){ shareInfo.doHyves(); } function showMailShare(){ shareInfo.showContainer(true); } function isDRM(){ mediaInfo.isDRMOrInvalid(); } function handleScriptCommand(scType, Param){ if(window.rtlchat){ rtlchat.handleScriptCommand(scType, Param, silverlightInfo); } else if(location.href.indexOf('debugplayer') != -1 && typeof chatDebugAlert == 'undefined'){ window.chatDebugAlert = true; alert('Er is geen chat handler gevonden.'); } } function mediaEnded(r_StrPlayerID){ f_StartPostRoll(r_StrPlayerID); } function f_StartPostRoll(r_StrPlayerID) { //// alert('f_StartPostRoll'); //if(location.href.indexOf('postroll') != -1) doPostRoll(); //else // hidePlayer(); } function f_status(playerID, source , status, volume) { } function doPostRoll() { mediaInfo.clipInfo.dart1 = mediaInfo.clipInfo.dart1.replace(/rtlgemist.rtl.nl/, "rtlgemist.postroll.rtl.nl"); mediaInfo.clipInfo.dart2 = mediaInfo.clipInfo.dart1.replace(/rtlgemist.rtl.nl/, "rtlgemist.postroll.rtl.nl"); mediaInfo.clipInfo.dart3 = mediaInfo.clipInfo.dart1.replace(/rtlgemist.rtl.nl/, "rtlgemist.postroll.rtl.nl"); mediaInfo.clipInfo.dartURL = mediaInfo.clipInfo.dartURL.replace(/rtlgemist.rtl.nl/, "rtlgemist.postroll.rtl.nl"); mediaInfo.bannerClipInfo = null; /* else playBanner() will fail @ -> if(clip_info == this.bannerClipInfo) return; */ streamspotInfo.showStreamspot(mediaInfo.clipInfo.dart1, "postRollPlayer"); } function f_write_endPixel(url) { EndImage = new Image(); EndImage.src = url; } function hidePlayer() { streamspotInfo.resetBase(); var player_container = document.getElementById('rtlpp_player'); var player_close_tween = new Tween(player_container.style, 'height', Tween.strongEaseInOut, parseInt(player_container.style.height), 1, 2, 'px'); // tween to 0 fails in ie player_close_tween.onMotionFinished = function(){ player_container.style.visibility = 'hidden'; mediaInfo.initialTweenDone = false; mediaInfo.isTweening = false; }; if(!mediaInfo.isTweening) { mediaInfo.isTweening = true; mediaInfo.filePath = ''; player_close_tween.start(); } } ///////////////////// ///// WMV plugin. ///////////////////// function WMVInfo(container_id, do_clicktag_id){ ControlInfo.call(this, container_id); this.writes = 0; this.defaultControlsHeight = 60; this.controlsHeight = this.determineControlsHeight(); this.doClicktagDiv = document.getElementById(do_clicktag_id); this.streamSense = null; this.onBeforeUnloadAttached = false; this.doingLicenseAcquisition = false; } WMVInfo.prototype = new ControlInfo; ///// Overriden show, hide en reset. WMVInfo.prototype.show = function(){ ///// Code ten behoeve van streamspot clicks verwijderd (juli 2009). if(overlayInfo.streamspotShowing){ overlayInfo.show(); } ControlInfo.prototype.show.call(this); }; WMVInfo.prototype.hide = function(){ ///// Code ten behoeve van streamspot clicks verwijderd (juli 2009). ControlInfo.prototype.hide.call(this); }; ///// Schrijven control. WMVInfo.prototype.writeControl = function(clip_info){ ControlInfo.showInstance(wmvInfo); ///// var selected_item = clip_info.items[clip_info.selectedIndex]; var sizes = this.calculateRenderSize(selected_item); var object_string; /* Weer een uitzondering: ditmaal i.v.m. problemen WMP Firefox Plugin in Chrome. */ if(pluginInfo.WMPFirefoxPlugin){ object_string = '<emb'+'ed name="wmv_control_embed" sr'+'c="' + selected_item.wvxPath + '" width="' + sizes.w + '" height="' + sizes.h + '" autoplay="1" controller="1" showstatusbar="1"><\/emb'+'ed>'; } else { object_string = '<obj'+'ect id="wmv_control_object" width="' + sizes.w + '" height="' + sizes.h + '" classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject">' + '<par'+'am name="URL" value="' + selected_item.wvxPath + '">' + '<par'+'am name="autoStart" value="true">' + '<par'+'am name="uiMode" value="full">' + '<par'+'am name="volume" value="' + clientInfo.volume + '">' + '<par'+'am name="stretchToFit" value="true">' + '<par'+'am name="windowlessVideo" value="true">' + '<emb'+'ed name="wmv_control_embed" sr'+'c="' + selected_item.wvxPath + '" width="' + sizes.w + '" height="' + sizes.h + '" autoplay="1" controller="1" showstatusbar="1"><\/emb'+'ed>' + '<\/obj'+'ect>'; } ///// this.controlContainer.innerHTML = ''; if(pluginInfo.WMPOtherBrowser){ var div = document.createElement('div'); div.style.position = 'absolute'; div.style.visibility = 'visible'; div.style.left = sizes.x + 'px'; div.style.top = sizes.y + 'px'; this.controlContainer.appendChild(div); div.innerHTML = object_string; this.controlWritten = true; } else { this.write(object_string); } this.writes++; ///// if(pluginInfo.WMPScriptable){ try { this.control = document.getElementById('wmv_control_object'); this.control.attachEvent('MediaChange', mediaChangeWMV); this.control.attachEvent('ScriptCommand', handleScriptCommandWMV); this.control.attachEvent('OpenStateChange', handleOpenStateChange); this.control.attachEvent('PlayStateChange', handlePlayStateChange); this.control.attachEvent('DoubleClick', handleDoubleClickWMV); if(!this.onBeforeUnloadAttached){ this.onBeforeUnloadAttached = true; window.attachEvent('onbeforeunload', function(){ wmvInfo.registerVolume();}); } } catch(e){ this.control = null; } } else if(pluginInfo.WMPFirefoxPlugin){ /* Noodzakelijkerwijs uitvoeren met kleine delay. */ setTimeout(function(){ wmvInfo.afterWriteActions();}, 1000); } ///// if(pluginInfo.WMVPluginQuality >= 2.4){ this.controlContainer.style.width = '732px'; this.controlContainer.style.height = (mediaInfo.tweenHeight + 12) + 'px'; document.getElementById('rtlpp_player').style.overflow = 'visible'; } }; WMVInfo.prototype.showClip = function(clip_info){ ControlInfo.showInstance(this); ///// ///// try { if(this.control){ this.control.close(); this.control.URL = clip_info.items[clip_info.selectedIndex].wvxPath; try { //this.control.settings.volume = clientInfo.volume; } catch(err){ } } else { throw {}; } } catch(e){ this.resetBase(); this.writeControl(clip_info); } ///// streamsense (jan 2010). this.setStreamsense(); ///// this.doingLicenseAcquisition = false; }; ///// streamsense (jan 2010). WMVInfo.prototype.setStreamsense = function(){ var debugstats = (typeof location.search == 'string' && location.search.indexOf('debugstats') != -1); ///// if(!pluginInfo.WMPScriptable && !pluginInfo.WMPFirefoxPlugin){ if(debugstats){ alert('Streamsense incompatible'); } return; } ///// if(!this.streamSense){ var dom_obj = (pluginInfo.WMPScriptable? this.control: document.embeds.wmv_control_embed); if(dom_obj){ try { this.streamSense = new ns_.StreamSense(dom_obj, mediaInfo.streamSenseUrl); this.streamSense.getClip().setAttributes(mediaInfo.streamSenseAttributes); } catch(e){ if(debugstats){ alert('Error bij init streamsense: ' + (e.message || e)); } } } } else { try { this.streamSense.setPixelURL(mediaInfo.streamSenseUrl); this.streamSense.getClip().setAttributes(mediaInfo.streamSenseAttributes); } catch(e){ if(debugstats){ alert('Error bij refresh streamsense: ' + (e.message || e)); } } } }; ///// WMVInfo.prototype.afterWriteActions = function(){ try { document.wmv_control_embed.settings.volume = clientInfo.volume; if(!this.onBeforeUnloadAttached){ this.onBeforeUnloadAttached = true; this.addEvent(window, 'beforeunload', function(){ wmvInfo.registerVolume();}); } } catch(e){ } }; ///// WMVInfo.prototype.registerVolume = function(){ if(this != mediaInfo.defaultControl) return; var ctrl = this.control || document.wmv_control_embed; var new_volume; try { new_volume = ctrl.settings.volume; } catch(e){ new_volume = NaN; } if(!isNaN(new_volume)){ clientInfo.setVolume(new_volume); } }; WMVInfo.prototype.calculateRenderSize = function(selected_item){ ///// Geen WMP in FF of Opera, dan standaard maten. if(!pluginInfo.WMPOtherBrowser){ return {x: 0, y: 0, w: ControlInfo.baseWidth, h: (ControlInfo.baseHeight + this.controlsHeight)}; } var x, y, w, h, tmp; ///// w = selected_item.width; h = selected_item.height; if(w == 0 || h == 0){ w = 720; h = 404; } if(w > ControlInfo.baseWidth){ tmp = (ControlInfo.baseWidth / w); w = ControlInfo.baseWidth; h = Math.round(tmp * h); } h = h + this.controlsHeight; x = (w == ControlInfo.baseWidth)? 0: Math.round((ControlInfo.baseWidth / 2) - (w / 2)); y = (h >= ControlInfo.baseHeight)? 0: Math.round((ControlInfo.baseHeight / 2) - (h / 2)); return {x: x, y: y, w: w, h: h}; }; WMVInfo.prototype.determineControlsHeight = function(){ if(pluginInfo.WMVPluginName.indexOf('windows media player') != -1) return 66; else if(pluginInfo.WMVPluginName.indexOf('flip4mac') != -1) return 15; else return this.defaultControlsHeight; }; WMVInfo.prototype.openClicktagURL = function(div_el){ var clicktag_rx = /clickTag=([^&]+)/; var cm_url = (wmvInfo.control && wmvInfo.control.currentMedia? wmvInfo.control.currentMedia.sourceURL: ''); var clicktag_matches = cm_url.match(clicktag_rx); if(clicktag_matches){ var clicktag_url = unescape(clicktag_matches[1]).replace(/^\s+/g, '').replace(/\s+$/g, ''); if(clicktag_url.indexOf('http://') != 0) clicktag_url = 'http://' + clicktag_url; window.open(clicktag_url, '_blank'); } }; WMVInfo.prototype.shutUp = function(){ ///// juli2009 var do_reset_base = true; if(pluginInfo.WMPScriptable && this.control){ do_reset_base = false; try { this.control.controls.stop(); } catch(e){ do_reset_base = true; } } if(do_reset_base){ this.resetBase(); } }; ///// Vanuit WMV plugin aangeroepen functies. function mediaChangeWMV(Item){ ///// Code ten behoeve van streamspot clicks verwijderd (juli 2009). } function handleScriptCommandWMV(scType, Param){ if(window.rtlchat){ rtlchat.handleScriptCommand(scType, Param, wmvInfo); } else if(location.href.indexOf('debugplayer') != -1 && typeof chatDebugAlert == 'undefined'){ window.chatDebugAlert = true; alert('Er is geen chat handler gevonden.'); } } function handlePlayStateChange(NewState){ if(NewState == 8) { //alert(NewState); //8 == endofstream doPostRoll(); } } function handleOpenStateChange(NewState){ switch(NewState){ case 16: if(wmvInfo.doingLicenseAcquisition){ try { wmvInfo.doingLicenseAcquisition = false; wmvInfo.control.controls.stop(); } catch(e){ } } else { wmvInfo.doingLicenseAcquisition = true; } break; case 17: wmvInfo.doingLicenseAcquisition = false; break; } } function handleDoubleClickWMV(nButton, nShiftState, fX, fY){ try { if(!wmvInfo.control.fullScreen){ wmvInfo.control.fullScreen = true; } } catch(e){ } } ///////////////////// ///// Share. ///////////////////// function ShareInfo(container_id){ ControlInfo.call(this, container_id); this.taf = null; ///// this.extenderTopContainer = document.getElementById('extender_share_top_container'); this.extenderSubContainer = document.getElementById('extender_share_sub_container'); this.extenderContainer = document.getElementById('extender_share_container'); this.extenderTafExtraContainer = document.getElementById('extender_share_tafextra_top_container'); this.extenderImageLinkText = document.getElementById('extender_share_imagelink_text'); this.extenderSiteTitle = document.getElementById('extender_share_site_title'); this.extenderClipTitle = document.getElementById('extender_share_clip_title'); this.extenderQualityLow = document.getElementById('extender_share_quality_select_low_button'); this.extenderQualityHigh = document.getElementById('extender_share_quality_select_high_button'); this.extenderSelectedEl = null; ///// this.flashLinkHTML = '<object width="377" height="314" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">\n<param name="movie" value="http://www.rtl.nl/system/video/swf##component_path##" />\n<param name="wmode" value="transparent" />\n<embed src="http://www.rtl.nl/system/video/swf##component_path##" type="application/x-shockwave-flash" wmode="transparent" width="377" height="314" />\n</object>'; this.imageLinkHTML = '<a href="http://www.rtl.nl##component_path##"><img src="##image_path##" border="0" /></a>'; this.usedLinkHTML = 'flashLinkHTML'; ///// this.useExtender = (!pluginInfo.SilverlightInstalled || pluginInfo.forceWMP); this.useExtenderTween = (pluginInfo.WMVPluginQuality < 3); this.extenderPositions = {closed: -272, open: 0}; this.extenderHasFocus = false; this.extenderMouseOver = false; this.extenderExplicitClosing = false; this.extenderIsOpen = false; this.extenderCloseTimer = null; this.extenderCloseTimeout = 2000; this.extenderLastMousemove = (new Date()).getTime(); this.extenderMouseMoveTimer = null; this.silverlightDownloadUrl = 'http://www.microsoft.com/SILVERLIGHT/resources/install.aspx'; if(this.useExtender){ this.prepareExtender(); } ///// this.tween = null; this.tweenDirection = 0; } ShareInfo.prototype = new ControlInfo; ShareInfo.prototype.show = function(){ if(!this.useExtender){ this.taf.taf_top_container.style.display = 'block'; } ControlInfo.prototype.show.call(this); }; ShareInfo.prototype.hide = function(){ if(!this.useExtender){ this.taf.tafextra_top_container.style.visibility = 'hidden'; this.taf.taf_top_container.style.display = 'none'; } ControlInfo.prototype.hide.call(this); }; ShareInfo.prototype.resetBase = function(){ if(this.useExtender){ this.resetExtender(); } }; ///// Voorbereiden extender. ShareInfo.prototype.prepareExtender = function(){ if(!pluginInfo.IE){ this.extenderTopContainer.addEventListener('focus', function(e){ shareInfo.onFocus(e);}, true); this.extenderTopContainer.addEventListener('blur', function(e){ shareInfo.onBlur(e);}, true); } else { this.extenderTopContainer.onfocusin = function(){ shareInfo.onFocus();}; this.extenderTopContainer.onfocusout = function(){ shareInfo.onBlur();}; } ///// if(this.useExtenderTween){ this.extenderSubContainer.style.left = this.extenderPositions.closed + 'px'; } }; ///// Refreshen data bij starten van iedere clip. ShareInfo.prototype.refresh = function(clip_info){ ///// Kwaliteitsbuttons aanpassen. switch(clip_info.items.length){ case 1: this.extenderQualityLow.className = (clip_info.items[0].bandwidth < 850? 'extender_share_quality_select_button_active': 'extender_share_quality_select_button_hidden'); this.extenderQualityHigh.className = (clip_info.items[0].bandwidth < 850? 'extender_share_quality_select_button_hidden': 'extender_share_quality_select_button_active'); this.extenderSelectedEl = (clip_info.items[0].bandwidth < 850? this.extenderQualityLow: this.extenderQualityHigh); break; default: this.extenderQualityLow.className = (clip_info.selectedIndex == clip_info.items.length - 1? 'extender_share_quality_select_button': 'extender_share_quality_select_button_active'); this.extenderQualityHigh.className = (clip_info.selectedIndex == clip_info.items.length - 1? 'extender_share_quality_select_button_active': 'extender_share_quality_select_button'); this.extenderSelectedEl = (clip_info.selectedIndex == clip_info.items.length - 1? this.extenderQualityHigh: this.extenderQualityLow); break; } ///// Titels aanpassen. var title_no_entities = clip_info.title.removeHtmlEntities() + default_site_title; document.title = title_no_entities; this.extenderSiteTitle.innerHTML = window.siteTitle; this.extenderClipTitle.firstChild.nodeValue = title_no_entities; ///// Tekstvak link vullen. this.extenderImageLinkText.value = this[this.usedLinkHTML].replace(/##component_path##/g, clip_info.path).replace(/##image_path##/g, clip_info.label); ///// url tell-a-friend aanpassen. this.taf.sendMessageURL = clip_info.taf; }; ///// Tonen en verbergen standaard container. ShareInfo.prototype.showContainer = function(activate){ if(activate){ ControlInfo.showInstance(this); } else { ControlInfo.showInstance((streamspotInfo.playing? streamspotInfo: mediaInfo.defaultControl)); } }; ///// Tonen en verbergen extender. ShareInfo.prototype.showExtender = function(){ this.extenderIsOpen = true; ///// clearInterval(this.extenderMouseMoveTimer); clearTimeout(this.extenderCloseTimer); ///// this.extenderLastMousemove = (new Date()).getTime(); this.extenderMouseMoveTimer = setInterval(function(){ shareInfo.pollMouseMove();}, 1000); ///// this.extenderTopContainer.style.visibility = 'visible'; this.extenderContainer.style.visibility = 'inherit'; this.extenderTafExtraContainer.style.visibility = 'hidden'; if(!this.useExtenderTween) return; ///// var left_pos = parseInt(this.extenderSubContainer.style.left, 10); this.tweenDirection = 1; this.tween = new Tween(this.extenderSubContainer.style, 'left', Tween.strongEaseOut, left_pos, this.extenderPositions.open, 0.5, 'px'); this.tween.shareInfo = this; this.tween.onMotionFinished = function(){ this.shareInfo.tweenDirection = 0; this.shareInfo.taf.positionAddressBook(); }; this.tween.start(); }; ShareInfo.prototype.hideExtender = function(){ this.extenderIsOpen = false; ///// clearInterval(this.extenderMouseMoveTimer); clearTimeout(this.extenderCloseTimer); ///// if(!this.useExtenderTween){ this.resetExtender(); return; } ///// var left_pos = parseInt(this.extenderSubContainer.style.left, 10); this.tweenDirection = -1; this.tween = new Tween(this.extenderSubContainer.style, 'left', Tween.strongEaseIn, left_pos, this.extenderPositions.closed, 0.5, 'px'); this.tween.shareInfo = this; this.tween.onMotionFinished = function(){ this.shareInfo.resetExtender(); this.shareInfo.tweenDirection = 0; }; this.tween.start(); }; ShareInfo.prototype.hideExtenderExplicit = function(){ if(this.taf.busy) return; this.extenderExplicitClosing = true; this.hideExtender(); }; ShareInfo.prototype.resetExtender = function(){ this.extenderTopContainer.style.visibility = 'hidden'; this.extenderContainer.style.visibility = 'hidden'; this.extenderTafExtraContainer.style.visibility = 'hidden'; this.extenderExplicitClosing = false; }; ///// Event handlers ivm tonen en verbergen extender. ///// Mousemove. ShareInfo.prototype.doMouseMove = function(e){ this.extenderLastMousemove = (new Date()).getTime(); }; ShareInfo.prototype.pollMouseMove = function(){ if(!this.extenderIsOpen || this.extenderHasFocus || this.taf.busy) return; ///// if((new Date()).getTime() - this.extenderLastMousemove > 5000){ this.hideExtenderExplicit(); } }; ///// Mouseover en mouseout. ShareInfo.prototype.doMouseOver = function(el){ if(!this.useExtender || this.extenderExplicitClosing) return; ///// this.extenderMouseOver = true; clearTimeout(this.extenderCloseTimer); ///// if(this.extenderIsOpen) return; ///// if(this.tweenDirection == -1){ this.tween.stop(); } ///// this.showExtender(); }; ShareInfo.prototype.doMouseOut = function(el){ if(!this.useExtender) return; ///// this.extenderMouseOver = false; clearTimeout(this.extenderCloseTimer); ///// if(this.extenderHasFocus || this.taf.busy || this.extenderExplicitClosing) return; ///// this.extenderCloseTimer = setTimeout(function(){ shareInfo.hideExtender();}, this.extenderCloseTimeout); }; ///// Focus en blur. ShareInfo.prototype.onFocus = function(e){ if(this.extenderExplicitClosing) return; ///// if(pluginInfo.IE){ var active_nodename = event.srcElement.nodeName.toLowerCase(); if(active_nodename == 'input' || active_nodename == 'textarea' || active_nodename == 'select'){ this.extenderHasFocus = true; } } else { this.extenderHasFocus = true; } ///// if(this.extenderHasFocus){ clearTimeout(this.extenderCloseTimer); } }; ShareInfo.prototype.onBlur = function(e){ this.extenderHasFocus = false; ///// if(this.extenderMouseOver || this.taf.busy || this.extenderExplicitClosing) return; ///// this.extenderCloseTimer = setTimeout(function(){ shareInfo.hideExtender();}, this.extenderCloseTimeout); }; ///// Bitrate aanpassen. ShareInfo.prototype.changeQuality = function(evt){ if(!mediaInfo.clipInfo || !mediaInfo.clipInfo.path) return; ///// var source = (window.event? event.srcElement: evt.target); source = (source.nodeType == 3? source.parentNode: source); var rel = source.getAttribute('rel'); if(!rel || this.extenderSelectedEl == this['extenderQuality' + rel]) return; ///// this.extenderSelectedEl.className = 'extender_share_quality_select_button'; this.extenderSelectedEl = this['extenderQuality' + rel]; this.extenderSelectedEl.className = 'extender_share_quality_select_button_active'; ///// clientInfo.setQuality(rel.toLowerCase()); ///// if(pluginInfo.WMVPluginQuality >= 4){ location.href = mediaInfo.clipInfo.path; } else { mediaInfo.playItem(false); } }; ///// Hyves. ShareInfo.prototype.doHyves = function(){ if(!mediaInfo.clipInfo) return; var open_url = '/system/videoplayer/derden/hyves/?video=' + encodeURIComponent(mediaInfo.clipInfo.path) + '&titel=' + encodeURIComponent(document.title); try { var win = window.open(open_url, 'add_to_hyves'); win.focus(); } catch(e){ } }; ///// Silverlight downloaden. ShareInfo.prototype.doSilverlightDownload = function(){ try { var win = window.open(this.silverlightDownloadUrl, 'download_sl'); win.focus(); } catch(e){ } }; ///////////////////// ///// Error. ///////////////////// function ErrorInfo(container_id){ ControlInfo.call(this, container_id); this.silverlightDownloadUrl = 'http://www.microsoft.com/SILVERLIGHT/resources/install.aspx'; } ErrorInfo.prototype = new ControlInfo; ErrorInfo.prototype.resetBase = function(){ }; ErrorInfo.prototype.showNoValidPluginMessage = function(){ ControlInfo.showInstance(this); var no_plugin_string = '<h3 style="font-size:12px;">Je hebt waarschijnlijk niet de juiste software geïnstalleerd waardoor wij de video niet kunnen afspelen.<\/h3>'; no_plugin_string += 'De videos van RTL zijn het best te bekijken met Microsoft Silverlight. Download <a href="' + this.silverlightDownloadUrl + '" target="_blank" style="font-size:11px;text-decoration:underline;">hier<\/a> de nieuwste versie van dit programma.'; document.getElementById('error_message').innerHTML = no_plugin_string; }; ErrorInfo.prototype.showNoDRMPluginMessage = function(){ ControlInfo.showInstance(this); var no_drm_add = (pluginInfo.WIN? 'Download <a hr'+'ef="http://www.microsoft.com/windows/windowsmedia/player/11/default.aspx" target="_blank" style="font-size:11px;text-decoration:underline;">hier<\/a> de nieuwste versie.': 'Deze is helaas niet beschikbaar voor dit systeem.'); var no_drm_string = '<h3 style="font-size:12px;">Deze video kan alleen worden afgespeeld in Windows Media Player. ' + no_drm_add + '<\/h3>'; document.getElementById('error_message').innerHTML = no_drm_string; }; ///////////////////// ///// Custom. ///////////////////// function CustomInfo(container_id, callback_func, custom_height){ ControlInfo.call(this, container_id); if(typeof callback_func == 'function'){ this.overrideStart(callback_func); } if(typeof custom_height == 'number' && custom_height > 0){ MediaInfo.customHeight = custom_height; } } CustomInfo.prototype = new ControlInfo; CustomInfo.prototype.resetBase = function(){ }; CustomInfo.prototype.overrideStart = function(callback_func){ var scope = this; var start_func = function(){ ControlInfo.showInstance(scope); try { callback_func(); } catch(e){ } }; MediaInfo.customStart = start_func; ///// this.overrideLoadClipInfo(); }; CustomInfo.prototype.showAndDeleteOtherControls = function(){ if(mediaInfo.isTweening) return; ///// var instance; for(var i = 0; i < ControlInfo.instances.length; i++){ var instance = ControlInfo.instances[i]; if(instance != this){ instance.hide(); instance.resetBase(); } } ///// ControlInfo.instanceShown = this; this.show(); ///// this.overrideLoadClipInfo(); }; CustomInfo.prototype.setHeight = function(new_height){ if(mediaInfo.isTweening) return; if(typeof new_height != 'number' || new_height < 0) return; document.getElementById('rtlpp_player').style.height = new_height + 'px'; }; CustomInfo.prototype.overrideLoadClipInfo = function(){ MediaInfo.prototype.loadClipInfo = function(file_path){ if(typeof file_path != 'string' || file_path == '') return; location.href = file_path; }; }; ///////////////////// ///// Cookies. ///////////////////// var Cookies = { set: function(name, value, days){ var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = name + '=' + value + '; expires=' + date.toGMTString() + '; path=/; domain=.rtl.nl'; }, get: function(name){ var rx = eval('/' + name + '=([^;]+)/'); var cookie_nv = document.cookie.match(rx); return (cookie_nv? cookie_nv[1]: ''); }, remove: function(name){ this.set(name, '', -1); } }; ///////////////////// ///// Algemene assisterende functies. ///////////////////// String.prototype.removeHtmlEntities = function(){ var html_entities = { /* Latin 1. */ nbsp: 160, iexl: 161, cent: 162, pound: 163, curren:164, yen: 165, brvbar: 166, sect: 167, uml: 168, copy: 169, ordf: 170, laquo: 171, not: 172, shy: 173, reg: 174, macr: 175, deg: 176, plusmn: 177, sup2: 178, sup3: 179, acute: 180, micro: 181, para: 182, middot: 183, cedil: 184, supl: 185, ordm: 186, raquo: 187, frac14: 188, frac12: 189, frac34: 190, iquest: 191, Agrave: 192, Aacute: 193, Acirc: 194, Atilde: 195, Auml: 196, Aring: 197, AElig: 198, Ccedil: 199, Egrave: 200, Eacute: 201, Ecirc: 202, Euml: 203, Igrave: 204, Iacute: 205, Icirc: 206, Iuml: 207, ETH: 208, Ntilde: 209, Ograve: 210, Oacute: 211, Ocirc: 212, Otilde: 213, Ouml: 214, times: 215, Oslash: 216, Ugrave: 217, Uacute: 218, Ucirc: 219, Uuml: 220, Yacute: 221, THORN: 222, szlig: 223, agrave: 224, aacute: 225, acirc: 226, atilde: 227, auml: 228, aring: 229, aelig: 230, ccedil: 231, egrave: 232, eacute: 233, ecirc: 234, euml: 235, igrave: 236, iacute: 237, icirc: 238, iuml: 239, eth: 240, ntilde: 241, ograve: 242, oacute: 243, ocirc: 244, otilde: 245, ouml: 246, divide: 247, oslash: 248, ugrave: 249, uacute: 250, ucirc: 251, uuml: 252, yacute: 253, thorn: 254, yuml: 255, /* HTML/XML speciale karakters (apos niet in HTML 4). */ apos: 39, quot: 34, amp: 38, lt: 60, gt: 62, /* Overig. */ OElig: 338, oelig: 339, Scaron: 352, scaron: 353, Yuml: 376, circ: 710, tilde: 732, ensp: 8194, emsp: 8195, thinsp: 8201, zwnj: 8204, zwj: 8205, lrm: 8206, rlm: 8207, ndash: 8211, mdash: 8212, lsquo: 8216, rsquo: 8217, sbquo: 8218, ldquo: 8220, rdquo: 8221, bdquo: 8222, dagger: 8224, Dagger: 8225, permil: 8240, lsaquo: 8249, rsaquo: 8250, euro: 8364 }; ///// return this.replace(/&([a-z0-9]{3,7});/gi, function(t){ var entity_name = t.replace('&', '').replace(';', ''); return (html_entities.hasOwnProperty(entity_name)? String.fromCharCode(html_entities[entity_name]): ''); }).replace(/&#([0-9]+|x[0-9A-F]+);/g, function(t){ return (t.indexOf('x') != -1)? String.fromCharCode( parseInt( t.replace(/[^0-9A-F]/gi, ''), 16) ): String.fromCharCode( Number( t.replace(/[^0-9]/g, '') ) ); }); }; ///////////////////// ///// Ten behoeve van debuggen stats. ///////////////////// function debugSource(obj){ var output = [], temp; for (var i in obj){ if (obj.hasOwnProperty(i)){ temp = i + ":"; switch (typeof obj[i]){ case "string" : temp += "\"" + obj[i] + "\""; break; default : temp += obj[i]; } output.push(temp); } } return "{\n" + output.join('\n') + "\n}"; }; ///////////////////// ///// Vanuit pagina aangeroepen functies. ///////////////////// function new_video(vid_url, vid_nr_id, type, el){ if(typeof window.mediaInfo == 'undefined') return; mediaInfo.loadClipInfo(vid_url); } ///////////////////// ///// pluginInfo en clientInfo instanties. ///////////////////// var pluginInfo = new PluginInfo('3.0.40624.0', true); var clientInfo = new ClientInfo(); ///////////////////// ///// Laden streamsense script indien nodig. ///////////////////// ///// streamsense (jan 2010). if(pluginInfo.useStreamSenseJSIE || pluginInfo.useStreamSenseJSFF){ document.write('<scr' + 'ipt src="' + streamSenseScript + '" type="text/javascript"><\/scr' + 'ipt>'); }
//////////////////// ///// Standaard Tell-a-friend. //////////////////// function RTLTAF(id, getlist_url, verify_url, addlist_url, send_message_url){ if(arguments.length > 0){ this.id = id; ///// this.getlistURL = getlist_url; this.verifyURL = verify_url; this.addlistURL = addlist_url; this.sendMessageURL = send_message_url; ///// this.getlistAjax = null; this.verifyAjax = null; this.addlistAjax = null; this.sendMessageAjax = null; ///// this.userEmail = ''; this.loggedIn = false; this.addressList = []; ///// this.emailRX = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; this.emailFromString = ''; this.emailToString = ''; this.emailCheckTimeout = 1000; this.emailCheckTimer = null; ///// this.fromSend = ''; this.toSend = []; ///// this.plusminusRow = null; this.toHeader = null; this.fromHeader = null; this.addHeader = null; this.addContainer = null; this.addlistResultHeader = null; ///// this.addressBookPosition = {x: 0, y: 0, w: 0, h: 0}; this.overflowXSupport = false; ///// this.busy = false; ///// shareInfo.taf = this; if(window.clipInfo) clipInfo.taf = send_message_url; } }; RTLTAF.createInstance = function(id, getlist_url, verify_url, addlist_url, send_message_url){ if(shareInfo.useExtender){ return new RTLTAF_Extender(id, getlist_url, verify_url, addlist_url, send_message_url); } else { return new RTLTAF(id, getlist_url, verify_url, addlist_url, send_message_url); } }; RTLTAF.prototype = { start: function(){ var els = ['taf_top_container', 'taf_van_input', 'taf_naar_input', 'taf_opties_button', 'taf_verzend_button', 'taf_loguit_button', 'taf_login_button', 'taf_adresboek_button', 'taf_adresboek_container', 'tafextra_top_container', 'taf_adresboek_subcontainer', 'tafextra_content_container', 'tafextra_content_table', 'tafextra_naam_input', 'tafextra_bericht_textarea', 'tafextra_plusrow', 'tafextra_plusmintemplate', 'tafextra_namen_rij', 'tafextra_namen_span', 'tafextra_adreslijst', 'tafextra_result_container', 'tafextra_result_table', 'tafextra_toheader', 'tafextra_fromheader', 'tafextra_addheader', 'tafextra_result_addcontainer', 'tafextra_result_addbutton', 'tafextra_addlistresult_container', 'tafextra_addlistresult_table', 'tafextra_addlistresult_header', 'tafextra_error_container', 'tafextra_error_table', 'tafextra_errorspan']; for(var i = 0; i < els.length; i++){ this[els[i]] = this.getObj(els[i]); } ///// this.prepareGeneral(); ///// if(this.loggedIn && this.userEmail != ''){ var van_span = this.getObj('taf_van_span'); van_span.firstChild.nodeValue = this.userEmail; van_span.style.display = 'block'; this.taf_van_input.value = this.userEmail; this.taf_loguit_button.className = 'taf_loguit'; this.taf_opties_button.className = 'taf_opties'; this.taf_naar_input.className = 'taf_input'; this.taf_naar_input.disabled = false; /* Aanpassing 20090416 just-in-time halen adresboek data. */ this.taf_adresboek_button.className = 'taf_adresboek'; /* Einde aanpassing. */ } else { this.taf_van_input.style.display = 'block'; this.verifyAjax = this.createXMLHTTP(); } ///// this.taf_top_container.style.visibility = 'visible'; }, prepareGeneral: function(){ this.plusminusRow = this.tafextra_plusmintemplate; this.plusminusRow.removeAttribute('id'); this.plusminusRow.parentNode.removeChild(this.plusminusRow); this.toHeader = this.tafextra_toheader; this.toHeader.removeAttribute('id'); this.toHeader.parentNode.removeChild(this.toHeader); this.fromHeader = this.tafextra_fromheader; this.fromHeader.removeAttribute('id'); this.fromHeader.parentNode.removeChild(this.fromHeader); this.addHeader = this.tafextra_addheader; this.addHeader.removeAttribute('id'); this.addHeader.parentNode.removeChild(this.addHeader); this.addContainer = this.tafextra_result_addcontainer; this.addContainer.removeAttribute('id'); this.addContainer.parentNode.removeChild(this.addContainer); this.addlistResultHeader = this.tafextra_addlistresult_header; this.addlistResultHeader.removeAttribute('id'); this.addlistResultHeader.parentNode.removeChild(this.addlistResultHeader); ///// this.taf_van_input.value = ''; this.taf_naar_input.value = ''; ///// this.overflowXSupport = (typeof this.taf_adresboek_subcontainer.style.overflowX == 'string'); var mpstatus = this.getCookie('mediapaspoort_loggedin'); var mpname = this.getCookie('mediapaspoort_loginid'); this.userEmail = mpname.trim(); this.loggedIn = (mpstatus == 'yes'); }, positionAddressBook: function(){ var btn = this.taf_adresboek_button; var xy = this.getXY(btn); if(this.addressBookPosition.x != xy.x || this.addressBookPosition.y != xy.y){ with(this.taf_adresboek_container.style){ left = (xy.x + - 125) + 'px'; top = xy.y + 'px'; } this.addressBookPosition = xy; } ///// }, /* Polling Mediapaspoort. */ pollMP: function(){ var mpstatus = this.getCookie('mediapaspoort_loggedin'); var mpname = this.getCookie('mediapaspoort_loginid'); var logged_in = (mpstatus == 'yes'); var user_email = mpname.trim(); if(logged_in != this.loggedIn || user_email != this.userEmail){ location.href = location.href; return; } }, /* XMLHTTP. */ createXMLHTTP: function(){ var xmlhttp = null; try { if(typeof XMLHttpRequest != 'undefined'){ xmlhttp = new XMLHttpRequest(); } else if(typeof ActiveXObject != 'undefined'){ xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } } catch(e){ xmlhttp = null; } return xmlhttp; }, getData: function(url, method, xmlhttp_name, callback_name, doc_el_name, send_string){ var xmlhttp = this[xmlhttp_name]; var instance = this; try { xmlhttp.onreadystatechange = function(){}; xmlhttp.abort(); xmlhttp.onreadystatechange = function(){ instance.handleData(xmlhttp_name, callback_name, doc_el_name);}; xmlhttp.open(method, url, true); xmlhttp.send(send_string); } catch(e){ this[callback_name]({error_string: 'fout bij initiëren request'}); } }, handleData: function(xmlhttp_name, callback_name, doc_el_name){ var xmlhttp = this[xmlhttp_name]; if(xmlhttp.readyState != 4){ return; } ///// if(xmlhttp.status != 200 && xmlhttp.status != 304){ this[callback_name]({error_string: 'status: ' + xmlhttp.status}); return; } ///// var parser_error = false; try{ if(doc_el_name.indexOf(xmlhttp.responseXML.documentElement.nodeName.toLowerCase()) == -1){ throw {}; } }catch (e){ parser_error = true; } if(parser_error){ this[callback_name]({error_string: 'ongeldige XML'}); return; } ///// this[callback_name]({error_string: '', xml_dom: xmlhttp.responseXML}); }, /* Afhandelen adreslijst data. */ handleListData: function(result_obj){ if(result_obj.error_string != ''){ return;} var doc_el = result_obj.xml_dom.documentElement; var address_els = doc_el.getElementsByTagName('address'); var container = this.taf_adresboek_subcontainer; for(var i = 0; i < address_els.length; i++){ var address_string = (address_els[i].hasChildNodes() && address_els[i].firstChild.nodeType == 3)? address_els[i].firstChild.nodeValue: ''; if(address_string == ''){ continue;} var span = this.createAddress(address_string); container.appendChild(span); } ///// this.handleAddressBookLayout(); ///// this.addEvent(window, 'unload', function(){ var spans = container.getElementsByTagName('span'); for(var i = 0; i < spans.length; i++){ spans[i].onmouseover = null; spans[i].onmouseout = null; spans[i].onclick = null; } }); }, createAddress: function(string){ this.addressList.push(string); ///// var option = document.createElement('option'); option.setAttribute('value', string); option.appendChild(document.createTextNode(string)); this.tafextra_adreslijst.appendChild(option); ///// var instance = this; var span = document.createElement('span'); span.setAttribute('rel', string); span.className = 'taf_adres'; span.appendChild(document.createTextNode(' ' + string)); span.onmouseover = function(){ this.className = 'taf_adres_on';}; span.onmouseout = function(){ this.className = 'taf_adres';}; span.onclick = function(){ instance.handleAddressClick(this);}; return span; }, handleAddressBookLayout: function(){ var container = this.taf_adresboek_subcontainer; var btn = this.taf_adresboek_button; var spans = container.getElementsByTagName('span'); if(spans.length > 0){ btn.className = 'taf_adresboek'; } if(this.overflowXSupport){ container.style.overflowX = 'hidden'; } else if(spans.length > 7){ for(var i = 0; i < spans.length; i++){ spans[i].style.width = '176px'; } } }, /* Afhandelen antwoord op verzenden. */ sendMessage: function(srt){ var message = ''; var name = ''; this.toSend.length = 0; if(srt == 'simple'){ this.fromSend = this.taf_van_input.value.trim(); this.toSend.push(this.taf_naar_input.value.trim()); } else { var inputs = this.tafextra_content_table.getElementsByTagName('input'); var to_inputs = []; var email_inputs = []; var error_inputs = []; for(var i = 0; i < inputs.length; i++){ if(inputs[i].className == 'tafextra_naar_input'){ to_inputs.push(inputs[i]); var val = inputs[i].value.trim().toLowerCase(); var valid = (this.emailRX.test(val)); if(!valid && val != ''){ error_inputs.push(inputs[i]); } else if(valid){ email_inputs.push(inputs[i]); if(this.toSend.indexOf(val) == -1){ this.toSend.push(val);} } } } ///// for(var i = 0; i < to_inputs.length; i++){ to_inputs[i].style.border = '1px solid #808080'; to_inputs[i].style.color = '#000000'; to_inputs[i].parentNode.parentNode.parentNode.getElementsByTagName('td')[0].style.color = '#000000'; } ///// if(error_inputs.length > 0){ for( var i = 0; i < error_inputs.length; i++){ error_inputs[i].style.border = '1px solid #FE0202'; error_inputs[i].style.color = '#FE0202'; error_inputs[i].parentNode.parentNode.parentNode.getElementsByTagName('td')[0].style.color = '#FE0202'; } this.busy = true; alert('Vul een geldig emailadres in.'); error_inputs[0].focus(); this.busy = false; return; } else if(email_inputs.length == 0){ this.busy = true; alert('Vul minimaal één emailadres in.'); to_inputs[0].focus(); this.busy = false; return; } ///// this.fromSend = this.taf_van_input.value.trim(); name = this.tafextra_naam_input.value.trim(); message = this.tafextra_bericht_textarea.value.trim(); } ///// var send_string = 'from=' + escape(this.fromSend); for(var i = 0; i < this.toSend.length; i++){ send_string += '&address=' + escape(this.toSend[i]); } send_string += (name != '' && !name.outsideLatin1())? '&name=' + escape(name): ''; send_string += (message != '')? '&message=' + escape(message.escapeXML(127)): ''; ///// this.busy = true; this.sendMessageAjax = this.sendMessageAjax || this.createXMLHTTP(); this.getData(this.sendMessageURL, 'POST', 'sendMessageAjax', 'handleMessageData', 'result,fail', send_string); }, handleMessageData: function(result_obj){ this.busy = false; if((result_obj.error_string != '' && result_obj.error_string.indexOf('XML') == -1)){ this.handleError(result_obj.error_string); return; } ///// var container = this.tafextra_result_table; while(this.addContainer.hasChildNodes()){ this.addContainer.removeChild(this.addContainer.lastChild);} while(container.hasChildNodes()){ container.removeChild(container.lastChild);} container.appendChild(this.toHeader); for(var i = 0; i < this.toSend.length; i++){ var div = this.createNode('div', 'tafextra_result_to', [], []); div.appendChild(document.createTextNode(' ' + this.toSend[i])); container.appendChild(div); } container.appendChild(this.fromHeader); var div = this.createNode('div', 'tafextra_result_to', [], []); div.appendChild(document.createTextNode(' ' + this.fromSend)); container.appendChild(div); if(this.loggedIn){ for(var i = 0; i < this.toSend.length; i++){ if(this.addressList.indexOf(this.toSend[i]) == -1){ var checkbox = this.createNode('input', 'tafextra_result_addinput', [['type', 'checkbox'], ['rel', this.toSend[i]]], []); var span = this.createNode('span', 'tafextra_result_addspan', [['rel', 'tafextra_result_addspan']], []); span.appendChild(document.createTextNode(this.toSend[i])); this.addChildren(this.addContainer, [checkbox, span, document.createElement('br')]); } } if(this.addContainer.hasChildNodes()){ this.addChildren(container, [this.addHeader, this.addContainer]);} } this.tafextra_result_addbutton.style.visibility = (this.addContainer.hasChildNodes())? 'visible': 'hidden'; this.openExtra('result'); }, /* Verzenden data voor toevoegen aan adreslijst. */ sendAddListData: function(){ this.busy = true; var inputs = this.addContainer.getElementsByTagName('input'); var send_string = ''; for(var i = 0; i < inputs.length; i++){ if(inputs[i].checked && inputs[i].getAttribute('rel')){ send_string += (send_string == ''? '': '&') + 'address=' + escape(inputs[i].getAttribute('rel')); } } ///// if(send_string == ''){ alert('Selecteer minimaal één adres.'); this.busy = false; return; } ///// for(var i = 0; i < this.addressList.length; i++){ send_string += '&address=' + escape(this.addressList[i]); } ///// this.addlistAjax = this.addlistAjax || this.createXMLHTTP(); this.getData(this.addlistURL, 'POST', 'addlistAjax', 'handleAddListData', 'list', send_string); }, handleAddListData: function(result_obj){ this.busy = false; if(result_obj.error_string != ''){ this.handleError(result_obj.error_string); return; } ///// var doc_el = result_obj.xml_dom.documentElement; var ok_els = doc_el.getElementsByTagName('ok'); var add_list = []; for(var i = 0; i < ok_els.length; i++){ if(ok_els[i].hasChildNodes() && ok_els[i].firstChild.nodeType == 3){ var email = ok_els[i].firstChild.nodeValue.trim(); if(this.emailRX.test(email) && this.addressList.indexOf(email) == -1){ add_list.push(email); } } } ///// while(this.tafextra_addlistresult_table.hasChildNodes()){ this.tafextra_addlistresult_table.removeChild(this.tafextra_addlistresult_table.lastChild);} this.tafextra_addlistresult_table.appendChild(this.addlistResultHeader); for(var i = 0; i < add_list.length; i++){ var div = this.createNode('div', 'tafextra_result_to', [], []); div.appendChild(document.createTextNode(' ' + add_list[i])); this.tafextra_addlistresult_table.appendChild(div); this.taf_adresboek_subcontainer.appendChild(this.createAddress(add_list[i])); } this.handleAddressBookLayout(); ///// this.openExtra('addlistresult'); }, /* Afhandelen errors. */ handleError: function(string){ var error_string = 'Er is een fout opgetreden bij het verzenden.'; error_string += (string != '')? '<br />(' + string + ')': ''; this.tafextra_errorspan.innerHTML = error_string; this.openExtra('error'); }, /* Controleren "Van" adres. */ startVerify: function(){ this.taf_opties_button.className = 'taf_opties_disabled'; this.taf_verzend_button.className = 'taf_verzend_disabled'; this.taf_login_button.className = 'taf_login_disabled'; this.taf_naar_input.className = 'taf_input_disabled'; this.taf_naar_input.disabled = true; this.getData(this.verifyURL, 'POST', 'verifyAjax', 'handleVerifyData', 'fail,ok', 'account=' + escape(this.emailFromString)); }, handleVerifyData: function(result_obj){ var err = (result_obj.error_string != ''); var mp_address = false; var email_address = ''; if(!err){ var doc_el = result_obj.xml_dom.documentElement; mp_address = (doc_el.nodeName.toLowerCase() == 'ok'); email_address = (doc_el.hasChildNodes() && doc_el.firstChild.nodeType == 3)? doc_el.firstChild.nodeValue: ''; } ///// var taf_naar_value = this.taf_naar_input.value.trim(); var taf_naar_valid = (this.emailRX.test(taf_naar_value)); this.taf_opties_button.className = mp_address? 'taf_opties_disabled': 'taf_opties'; this.taf_verzend_button.className = (mp_address || !taf_naar_valid)? 'taf_verzend_disabled': 'taf_verzend'; this.taf_login_button.className = mp_address? 'taf_login': 'taf_login_disabled'; this.taf_naar_input.className = mp_address? 'taf_input_disabled': 'taf_input'; this.taf_naar_input.disabled = mp_address; }, /* Nieuwe rij toevoegen. */ addNewRow: function(source){ var next_tr = this.findSiblingElement('nextSibling', source.parentNode.parentNode.parentNode); next_tr.parentNode.insertBefore(this.plusminusRow.cloneNode(true), next_tr); source.style.visibility = 'hidden'; this.adjustHeight('content'); }, /* Afhandelen events. */ handleClick: function(evt){ if(this.busy){ return;} var source = (window.event)? event.srcElement: evt.target; source = (source.nodeType == 3)? source.parentNode: source; var id = source.getAttribute('id'); var rel = source.getAttribute('rel'); switch(rel){ case 'tafextra_plus': this.addNewRow(source); return; case 'tafextra_close': if(source.className.indexOf('disabled') != -1){ return;} this.closeExtra(); return; case 'tafextra_result_addspan': var input = source.previousSibling; input.checked = !input.checked; return; case 'taf_loguit_button': show_mp_iframe(false, 'reload_parent_window', '', true, 'logout=1'); return; case 'taf_adresboek_button': /* Aanpassing 20090416 just-in-time halen adresboek data. */ if(!this.getlistAjax){ this.getlistAjax = this.createXMLHTTP(); this.getData(this.getlistURL, 'GET', 'getlistAjax', 'handleListData', 'list', null); } /* Einde aanpassing. */ this.taf_adresboek_container.style.visibility = 'visible'; this.taf_adresboek_subcontainer.style.display = 'block'; source.className = 'taf_adresboek'; return; case 'taf_login_button': show_mp_iframe(false, 'reload_parent_window', 'tell_a_friend', true); return; case 'taf_verzend_button': if(source.className.indexOf('disabled') != -1){ return;} this.sendMessage('simple'); return; case 'tafextra_verzenden_button': if(source.className.indexOf('disabled') != -1){ return;} this.sendMessage('extra'); return; case 'taf_opties_button': if(source.className.indexOf('disabled') != -1){ return;} if(this.loggedIn && !this.tafextra_namen_rij.parentNode){ this.tafextra_plusrow.parentNode.appendChild(this.tafextra_namen_rij); } /* Aanpassing 20090416 just-in-time halen adresboek data. */ if(!this.getlistAjax && this.loggedIn && this.userEmail != ''){ this.getlistAjax = this.createXMLHTTP(); this.getData(this.getlistURL, 'GET', 'getlistAjax', 'handleListData', 'list', null); } /* Einde aanpassing. */ this.openExtra('content'); return; case 'tafextra_close_button': this.closeExtra(); return; case 'tafextra_result_addbutton': this.sendAddListData(); return; } }, handleKeyUp: function(input_field){ var raw_string = input_field.value; var trimmed_string = raw_string.trim(); var id = input_field.getAttribute('id'); var valid_address = (this.emailRX.test(trimmed_string)); if(id.indexOf('taf_van_input') != -1){ if(trimmed_string == this.emailFromString){ return;} try { clearTimeout(this.emailCheckTimer); this.verifyAjax.onreadystatechange = function(){}; this.verifyAjax.abort(); } catch(e){ } this.emailFromString = trimmed_string; if(valid_address){ this.emailCheckTimer = setTimeout("rtltaf.startVerify()", this.emailCheckTimeout); } else { this.taf_opties_button.className = 'taf_opties_disabled'; this.taf_verzend_button.className = 'taf_verzend_disabled'; this.taf_login_button.className = 'taf_login_disabled'; this.taf_naar_input.className = 'taf_input_disabled'; this.taf_naar_input.disabled = true; } } else { if(valid_address){ if(this.taf_verzend_button.className == 'taf_verzend_disabled'){ this.taf_verzend_button.className = 'taf_verzend'; } } else { if(this.taf_verzend_button.className == 'taf_verzend'){ this.taf_verzend_button.className = 'taf_verzend_disabled'; } } } }, handleAddressClick: function(span){ if(this.busy){ return;} var rel = span.getAttribute('rel'); this.taf_adresboek_container.style.visibility = 'hidden'; this.taf_adresboek_subcontainer.style.display = 'none'; span.className = 'taf_adres'; this.taf_naar_input.value = rel; this.taf_verzend_button.className = 'taf_verzend'; }, handleSelectChange: function(list){ if(this.busy){ return;} var sel = list.options[list.selectedIndex].value; if(!sel){ return;} var tr = list.parentNode.parentNode.previousSibling; while(tr.nodeType != 1){ tr = tr.previousSibling;} tr.getElementsByTagName('input')[0].value = sel; list.selectedIndex = 0; list.blur(); }, handleAddresBookMouseOut: function(evt, container){ var el_xy = this.getXY(container); var mouse_xy = this.getMouseXY(evt); if(mouse_xy.x < el_xy.x + 2 || mouse_xy.x > el_xy.x + el_xy.w - 2 || mouse_xy.y < el_xy.y + 2 || mouse_xy.y > el_xy.y + el_xy.h - 2){ container.style.visibility = 'hidden'; document.getElementById('taf_adresboek_subcontainer').style.display = 'none'; var spans = container.getElementsByTagName('span'); for(var i = 0; i < spans.length; i++){ spans[i].className = 'taf_adres'; } } }, /* Openen en bepalen hoogte extra container. */ openExtra: function(which){ this.taf_van_input.readOnly = true; ///// var subs = ['content', 'result', 'addlistresult', 'error']; for(var i = 0; i < subs.length; i++){ this['tafextra_' + subs[i] + '_container'].style.display = 'none'; } this['tafextra_' + which + '_container'].style.display = 'block'; ///// var show_list = (which == 'content' && this.loggedIn); this.tafextra_namen_span.style.display = show_list? 'inline': 'none'; this.tafextra_adreslijst.style.display = show_list? 'inline': 'none'; ///// this.placeExtraContainer(which); }, closeExtra: function(){ this.taf_van_input.readOnly = false; this.tafextra_top_container.style.visibility = 'hidden'; this.tafextra_namen_span.style.display = 'none'; this.tafextra_adreslijst.style.display = 'none'; this.tafextra_result_addbutton.style.visibility = 'hidden'; }, placeExtraContainer: function(which){ /* Theoretisch riskant (Jacco). */ if(this.tafextra_top_container.parentNode == this.taf_top_container){ document.body.appendChild(this.tafextra_top_container); } ///// var scroll_y = (typeof window.pageYOffset == 'number')? window.pageYOffset: document.body.scrollTop; with(this.tafextra_top_container.style){ left = '150px'; top = (100 + scroll_y) + 'px'; display = 'block'; visibility = 'visible'; } ///// this.adjustHeight(which); }, adjustHeight: function(which){ var sub_height = this['tafextra_' + which + '_table'].offsetHeight + 90; this['tafextra_' + which + '_container'].style.height = sub_height + 'px'; this.tafextra_top_container.style.height = (sub_height + 55) + 'px'; }, /* Assisterende functies. */ preloadImages: function(urls){ if(typeof urls != 'object'){ return;} for(var i = 0; i < urls.length; i++){ var img = new Image(); img.src = urls[i]; } }, setCookie: function(name, value, days){ var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); document.cookie = name + '=' + value + '; expires=' + date.toGMTString() + '; path=/; domain=.rtl.nl'; }, getCookie: function(name){ var rx = new RegExp(name + "=([^;]+)"); var value = rx.exec(document.cookie); return (value != null) ? unescape(value[1]) : ''; }, addEvent: function(object, eventstring, func){ if(typeof window.addEventListener == 'function'){ object.addEventListener(eventstring, func, false); } else { object.attachEvent('on' + eventstring, func); } }, getXY: function(element){ var el = element; var x_offset = 0; var y_offset = 0; while(el.offsetParent){ x_offset += el.offsetLeft; y_offset += el.offsetTop; el = el.offsetParent; } var w = (element.offsetWidth)? element.offsetWidth: 0; var h = (element.offsetHeight)? element.offsetHeight: 0; return {x: x_offset, y: y_offset, w: w, h: h}; }, getMouseXY: function(e){ var add_scroll = (window.ActiveXObject || window.opera || (typeof window.getSelection == 'function' && typeof window.getSelection().getRangeAt == 'function')); if(window.event){ mouse_x = (add_scroll)? event.clientX + document.body.scrollLeft: event.clientX; mouse_y = (add_scroll)? event.clientY + document.body.scrollTop: event.clientY; } else { mouse_x = e.pageX; mouse_y = e.pageY; } return {x: mouse_x, y: mouse_y}; }, getObj: function(id){ return document.getElementById(id); }, findSiblingElement: function(dir, start_el){ var el = start_el[dir]; while(el && el.nodeType != 1){ el = el[dir] } return el; }, createNode: function(node, clss, attributes, css_attributes){ var new_node = document.createElement(node); if(clss != ''){ new_node.className = clss;} this.createAttributes(new_node, attributes, 'HTML'); this.createAttributes(new_node, css_attributes, 'CSS'); ///// return new_node; }, createAttributes: function(node, attributes, type){ for(var i = 0; i < attributes.length; i++){ (type == 'CSS')? node.style[attributes[i][0]] = attributes[i][1]: node.setAttribute(attributes[i][0], attributes[i][1]); } }, addChildren: function(node, children){ for(var i = 0; i < children.length; i++){ node.appendChild(children[i]); } } }; //////////////////// ///// Tell-a-friend voor WMV share. //////////////////// function RTLTAF_Extender(id, getlist_url, verify_url, addlist_url, send_message_url){ RTLTAF.apply(this, arguments); } RTLTAF_Extender.prototype = new RTLTAF; RTLTAF_Extender.prototype.start = function(){ var els = ['container', 'taf_van_input', 'taf_naar_input', 'taf_opties_button', 'taf_verzend_button', 'taf_loguit_button', 'taf_login_button', 'taf_adresboek_button', 'taf_adresboek_container', 'tafextra_top_container', 'taf_adresboek_subcontainer', 'tafextra_content_container', 'tafextra_content_table', 'tafextra_naam_input', 'tafextra_bericht_textarea', 'tafextra_plusrow', 'tafextra_plusmintemplate', 'tafextra_namen_rij', 'tafextra_namen_span', 'tafextra_adreslijst', 'tafextra_result_container', 'tafextra_result_table', 'tafextra_toheader', 'tafextra_fromheader', 'tafextra_addheader', 'tafextra_result_addcontainer', 'tafextra_result_addbutton', 'tafextra_addlistresult_container', 'tafextra_addlistresult_table', 'tafextra_addlistresult_header', 'tafextra_error_container', 'tafextra_error_table', 'tafextra_errorspan']; for(var i = 0; i < els.length; i++){ this[els[i]] = this.getObj('extender_share_' + els[i]); } ///// this.prepareGeneral(); ///// if(this.loggedIn && this.userEmail != ''){ var van_span = this.getObj('extender_share_taf_van_span'); van_span.firstChild.nodeValue = this.userEmail; van_span.style.display = 'block'; this.taf_van_input.value = this.userEmail; this.taf_loguit_button.className = 'taf_loguit'; this.taf_opties_button.className = 'taf_opties'; this.taf_naar_input.className = 'taf_input'; this.taf_naar_input.disabled = false; /* Aanpassing 20090416 just-in-time halen adresboek data. */ this.taf_adresboek_button.className = 'taf_adresboek'; /* Einde aanpassing. */ } else { this.taf_van_input.style.display = 'block'; this.verifyAjax = this.createXMLHTTP(); } }; /* Aanpassing 20090416 just-in-time halen adresboek data. */ RTLTAF_Extender.prototype.handleClick = function(evt){ if(this.busy){ return;} ///// var source = (window.event)? event.srcElement: evt.target; source = (source.nodeType == 3)? source.parentNode: source; if(source.getAttribute('id') == 'extender_share_taf_adresboek_button'){ if(this.taf_adresboek_container.parentNode != document.body){ document.body.appendChild(this.taf_adresboek_container); } this.positionAddressBook(); } ///// RTLTAF.prototype.handleClick.call(this, evt); }; /* Einde aanpassing. */ RTLTAF_Extender.prototype.placeExtraContainer = function(which){ this.container.style.visibility = 'hidden'; this.tafextra_top_container.style.visibility = 'inherit'; }; RTLTAF_Extender.prototype.addNewRow = function(source){ var next_tr = this.findSiblingElement('nextSibling', source.parentNode.parentNode.parentNode); var cloned_node = this.plusminusRow.cloneNode(true); next_tr.parentNode.insertBefore(cloned_node, next_tr); source.style.visibility = 'hidden'; cloned_node.getElementsByTagName('input')[0].focus(); ///// var inputs = this.tafextra_content_table.getElementsByTagName('input'); var to_inputs = 0; for(var i = 0; i < inputs.length; i++){ if(inputs[i].className == 'tafextra_naar_input'){ to_inputs++; } } ///// if(to_inputs > 5){ cloned_node.getElementsByTagName('div')[1].style.visibility = 'hidden'; } }; RTLTAF_Extender.prototype.handleMessageData = function(result_obj){ RTLTAF.prototype.handleMessageData.call(this, result_obj); var hr_div = document.createElement('div'); hr_div.className = 'wmv_share_hr'; hr_div.style.position = 'relative'; hr_div.style.marginTop = '5px'; if(this.fromHeader.parentNode == this.tafextra_result_table){ this.tafextra_result_table.insertBefore(hr_div.cloneNode(true), this.fromHeader); } if(this.addHeader.parentNode == this.tafextra_result_table){ this.tafextra_result_table.insertBefore(hr_div.cloneNode(true), this.addHeader); } }; RTLTAF_Extender.prototype.openExtra = function(which){ RTLTAF.prototype.openExtra.call(this, which); ///// var inputs = this['tafextra_' + which + '_container'].getElementsByTagName('input'); var found_input = null; for(var i = 0; i < inputs.length; i++){ if(inputs[i].offsetWidth){ found_input = inputs[i]; break; } } ///// if(found_input){ found_input.focus(); } }; RTLTAF_Extender.prototype.closeExtra = function(){ this.taf_van_input.readOnly = false; this.tafextra_top_container.style.visibility = 'hidden'; this.tafextra_namen_span.style.display = 'none'; this.tafextra_adreslijst.style.display = 'none'; this.tafextra_result_addbutton.style.visibility = 'hidden'; this.container.style.visibility = 'inherit'; this.tafextra_top_container.style.visibility = 'hidden'; }; //////////////////// ///// Assisterende methods. //////////////////// String.prototype.trim = function(){ return this.replace(/^\s+/g,'').replace(/\s+$/g,''); }; String.prototype.outsideLatin1 = function(){ for(var i = 0; i < this.length; i++){ if(this.charCodeAt(i) > 255){ return true; } } return false; }; String.prototype.escapeXML = function(encode_above, do_special_chars){ var xml_special = String.fromCharCode(60, 62, 39, 34, 38); var tmp = ''; var i = 0; var c, cc, c2, cc2; while(i < this.length){ c = this.charAt(i); cc = c.charCodeAt(0); if((do_special_chars && xml_special.indexOf(c) != -1) || cc > encode_above){ if(cc < 0xD800 || cc > 0xDFFF){ tmp += '&#' + cc + ';'; i++; } else { c2 = this.charAt(i + 1); cc2 = (c2 != '')? c2.charCodeAt(0): NaN; if(cc >= 0xD800 && cc <= 0xDBFF && !isNaN(cc2) && cc2 >= 0xDC00 && cc2 <= 0xDFFF){ cc = (((cc & 1023) << 10) | (cc2 & 1023)) + 0x10000; tmp += '&#' + cc + ';'; i += 2; } else { i++; } } } else { tmp += c; i++; } } return tmp; }; Array.prototype.indexOf = Array.prototype.indexOf || function(val){ for(var i = 0; i < this.length; i++){ if(this[i] === val){ return i; } } return -1; }; Array.prototype.push = Array.prototype.push || function(){ for(var i = 0; i < arguments.length; i++){ this[this.length] = arguments[i]; } return this.length; };
/* Top container. */ #taf_top_container { position: absolute; width: 720px; height: 185px; top: 128px; left: 0px; } #taf_top_container div { position: absolute; } #taf_top_container_bg { width: 720px; height: 210px; left: 0px; top: 20px; background-image: url(/system/taf/img_player/taf_top_container_bg.png); background-repeat: no-repeat; _background-image: none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src=/system/taf/img_player/taf_top_container_bg.png,sizingMethod=scale); } /* Titel. */ .taf_title { font-family: Verdana, Arial; font-size: 14px; font-weight: bold; color: #000; } /* Inputvelden en -labels. */ .taf_input_label { color: #A5A4A9; font-weight: bold; line-height: 15px; } .taf_input_container { width: 200px; height: 18px; overflow: hidden; } .taf_input, .taf_input_disabled { border: 1px solid #000; width: 198px; _width: 200px; height: 15px; _height: 17px; font-family: Verdana, Arial; font-size: 10px; background-color: #FFFFFF; } .taf_input_disabled { border: 1px solid #DDDDDD; background-color: #EEEEEE; } /* Van veld. */ #taf_van_span, #taf_van_input { display: none; } #taf_van_span { line-height: 15px; } /* Buttons algemeen. */ #taf_top_container div { background-repeat: no-repeat; } /* Opties button. */ .taf_opties, .taf_opties_on, .taf_opties_disabled { width: 56px; height: 17px; left: 120px; top: 115px; visibility: visible; font-family: Verdana, Arial; font-weight: bold; color: #FFF; cursor: pointer; _cursor: hand; filter: alpha(opacity=100); opacity: 1; } .taf_opties_on { color: #FF9900; } .taf_opties_disabled { filter: alpha(opacity=20); opacity: 0.2; cursor: default; } /* Verzend button. */ .taf_verzend, .taf_verzend_on, .taf_verzend_disabled { width: 80px; height: 17px; left: 200px; top: 115px; font-family: Verdana, Arial; font-weight: bold; color: #FFF; cursor: pointer; _cursor: hand; filter: alpha(opacity=100); opacity: 1; } .taf_verzend_on { color: #FF9900; } .taf_verzend_disabled { filter: alpha(opacity=20); opacity: 0.2; cursor: default; } /* Uitloggen button. */ .taf_loguit, .taf_loguit_on, .taf_loguit_disabled { width: 91px; height: 17px; left: 300px; top: 55px; visibility: visible; font-family: Verdana, Arial; font-weight: bold; color: #FFF; cursor: pointer; _cursor: hand; filter: alpha(opacity=100); opacity: 1; } .taf_loguit_on { color: #FF9900; } .taf_loguit_disabled { visibility: hidden; } /* Inloggen button. */ .taf_login, .taf_login_on, .taf_login_disabled { width: 91px; height: 17px; left: 300px; top: 55px; visibility: visible; font-family: Verdana, Arial; font-weight: bold; color: #FFF; cursor: pointer; _cursor: hand; filter: alpha(opacity=100); opacity: 1; } .taf_login_on { color: #FF9900; } .taf_login_disabled { visibility: hidden; } /* Adresboek button. */ .taf_adresboek, .taf_adresboek_on, .taf_adresboek_disabled { width: 91px; height: 17px; left: 300px; top: 85px; visibility: visible; font-family: Verdana, Arial; font-weight: bold; color: #FFF; cursor: pointer; _cursor: hand; filter: alpha(opacity=100); opacity: 1; } .taf_adresboek_on { color: #FF9900; } .taf_adresboek_disabled { visibility: hidden; } /* Adresboek container. */ #taf_adresboek_container { position: absolute; left: 300px; top: 85px; width: 193px; _width: 195px; height: 127px; _height: 129px; background-color: #FFFFFF; border: 1px solid #000; z-index: 500; visibility: hidden; } #taf_adresboek_header { position: static; width: 193px; height: 17px; margin: 0; padding: 0; background-color: #000; font-family: Verdana, Arial; font-weight: bold; color: #FFF; text-align: left; background-repeat: no-repeat; } #taf_adresboek_subcontainer { position: static; width: 193px; height: 110px; margin: 0; padding: 0; overflow: auto; } .taf_adres, .taf_adres_on { cursor: pointer; _cursor: hand; display: block; width: 193px; height: 17px; line-height: 17px; text-align: left; overflow: hidden; } .taf_adres { color: #999; background-color: #FFF; } .taf_adres_on { color: #FFF; background-color: #CDD0D9; } /* CSS ten behoeve van MP lookalike venster. */ /* Topcontainer en header. */ #tafextra_top_container { position: absolute; z-index: 1000; width: 450px; height: 300px; _width: 452px; _height: 302px; border: 1px solid #959595; background-color: #C1C1C1; filter: alpha(opacity=95); display: none; } #tafextra_top_container td, #tafextra_top_container span, #tafextra_top_container div { font-family: Arial; font-size: 11px; color: #000000; } .tafextra_header { position: absolute; width: 450px; height: 32px; _height: 33px; background-color: #C2C2C2; background-image: url(/service/registratie/components/images/bg_header.jpg); border-bottom: 2px solid #999999; } .tafextra_mplogo { position: absolute; z-index: 10; left: 3px; top: 2px; } .tafextra_close, .tafextra_close_on { position: absolute; right: 0px; top: 0px; width: 15px; height: 15px; background-color: transparent; background-repeat: no-repeat; background-image: url(/system/taf/img/tafextra_close.gif); cursor: pointer; _cursor: hand; } .tafextra_close_on { background-color: #666; } /* Content container. */ #tafextra_content_container, #tafextra_result_container, #tafextra_addlistresult_container, #tafextra_error_container { position: absolute; left: 10px; top: 43px; width: 428px; _width: 430px; height: 245px; _height: 247px; background-color: #DDDDDD; border: 1px solid #FFFFFF; } #tafextra_content_table, #tafextra_addlistresult_container, #tafextra_error_table { margin: 4px; } #tafextra_content_table td { padding: 3px; padding-top: 4px; } #tafextra_content_table input, #tafextra_content_table textarea, .tafextra_naar_input, #tafextra_adreslijst { font-family: Arial; font-size: 11px; border: 1px solid #808080; } #tafextra_naam_input { width: 300px; height: 18px; _height: 20px; } #tafextra_bericht_textarea { width: 300px; height: 60px; overflow: auto; } .tafextra_naar_container { position: relative; margin: 0px; padding: 0px; width: 100%; height: 22px; } .tafextra_naar_input { width: 275px; height: 18px; _height: 20px; margin: 0px; } .tafextra_plusminbutton, .tafextra_plusminbutton_over { position: absolute; top: 0px; _top: 1px; height: 16px; _height: 20px; width: 18px; _width: 20px; color: #000; font-family: Arial; font-size: 14px; font-weight: bold; border: 1px solid #666; background: #E9E9E9 url(/service/registratie/components/images/bg_button.gif) top left repeat-x; line-height: 16px; text-align: center; margin: 0px; padding: 0px; cursor: pointer; _cursor: hand; } .tafextra_plusminbutton_over { border: 1px solid #666; border-bottom: 1px solid #000; border-right: 1px solid #000; background: #E8E8E8; } #tafextra_adreslijst { width: 300px; height: 18px; _height: 20px; } /* Resultaat. */ #tafextra_result_table, #tafextra_addlistresult_table { margin: 0; padding: 0; padding-bottom: 20px; } .tafextra_resultheader, .tafextra_result_to { padding: 3px 0px 3px 0px; border-bottom: 1px solid #FFFFFF; background-color: #F0F0F0; width: 428px; font-weight: bold; } .tafextra_result_to { background-color: transparent; font-weight: normal; } .tafextra_result_addspan { cursor: pointer; _cursor: hand; } #tafextra_errorspan { display: block; margin: 4px; font-weight: bold; } /* Buttons onderaan. */ .tafextra_button, .tafextra_button_over { color: #000; font-family: Arial; font-size: 11px; border: 1px solid #666; background: #E9E9E9 url(/service/registratie/components/images/bg_button.gif) top left repeat-x; padding-left: 20px; padding-right: 20px; line-height: 24px; cursor: pointer; _cursor: hand; } .tafextra_button_over { border: 1px solid #666; border-bottom: 1px solid #000; border-right: 1px solid #000; background: #E8E8E8; } #tafextra_verzenden_button, #tafextra_result_addbutton { position: absolute; right: 4px; bottom: 6px; }
kwaliteit>
laag
hoog
RTL Z
Titel
share>
mail>
van
aan
opties
verstuur
uitloggen
inloggen
adresboek
imagelink>
mail>
Naam
Bericht
Naar
+
Naar
+
Adressen
Kies adres uit lijst
terug
verzenden
Deze pagina is verstuurd naar:
Door:
Toevoegen aan adreslijst:
terug
OK
Opgeslagen adressen:
terug
Test
terug
adresboek
Deel deze video
Stuur deze video door
van
aan
opties
verstuur
uitloggen
inloggen
adresboek
adresboek
© 2010 RTL Nederland
|
Contact
|
Colofon
|
Adverteren
Gebruiksvoorwaarden
|
Privacy statement
|
RTL home
Naam
Bericht
Naar
+
Naar
+
Adreslijst
Kies adres uit lijst
Sluiten
Verzenden
Deze pagina is verstuurd naar:
Door:
Toevoegen aan adreslijst:
Sluiten
OK
Opgeslagen adressen:
Sluiten
Sluiten
Deze site maakt uitgebreid gebruik van de mogelijkheden van JavaScript. Uw browser ondersteunt geen JavaScript of JavaScript-ondersteuning is uitgeschakeld. Hierdoor zult u bepaalde onderdelen van de site niet kunnen gebruiken.