]> git.sesse.net Git - vlc/blobdiff - share/http/js/functions.js
Don't escape single quotes since it's not needed anymore
[vlc] / share / http / js / functions.js
index fe767914753a2c8dffcc3152572eb7da7d1d797f..86f9645f3db8889bd450fb2ddd7a619ac0cbc7ce 100644 (file)
@@ -197,6 +197,7 @@ function toggle_show_node( id )
 }
 
 function show( id ){ document.getElementById( id ).style.display = 'block'; }
+function showinline( id ){ document.getElementById( id ).style.display = 'inline'; }
 
 function hide( id ){ document.getElementById( id ).style.display = 'none'; }
 
@@ -204,6 +205,12 @@ function checked( id ){ return document.getElementById( id ).checked; }
 
 function value( id ){ return document.getElementById( id ).value; }
 
+function setclass( obj, value )
+{
+    obj.setAttribute( 'class', value ); /* Firefox */
+    obj.setAttribute( 'className', value ); /* IE */
+}
+
 function radio_value( name )
 {
     var radio = document.getElementsByName( name );
@@ -219,7 +226,7 @@ function radio_value( name )
 
 function check_and_replace_int( id, val )
 {
-    var objRegExp = /^\d\d*$/;
+    var objRegExp = /^\d+$/;
     if( value( id ) != ''
         && ( !objRegExp.test( value( id ) )
              || parseInt( value( id ) ) < 1 ) )
@@ -228,7 +235,7 @@ function check_and_replace_int( id, val )
 }
 
 function addslashes( str ){ return str.replace(/\'/g, '\\\''); }
-function escapebackslashes( str ){ return str.replace(/\\[^']/g, '\\\\'); }
+function escapebackslashes( str ){ return str.replace(/\\/g, '\\\\'); }
 
 function toCamelCase( str )
 {
@@ -280,7 +287,7 @@ function in_play()
     var input = value('input_mrl');
     if( value('sout_mrl') != '' )
         input += ' '+value('sout_mrl');
-    var url = 'requests/status.xml?command=in_play&input='+escape( input );
+    var url = 'requests/status.xml?command=in_play&input='+encodeURIComponent( addslashes(escapebackslashes(input)) );
     loadXMLDoc( url, parse_status );
     setTimeout( 'update_playlist()', 1000 );
 }
@@ -289,7 +296,7 @@ function in_enqueue()
     var input = value('input_mrl');
     if( value('sout_mrl') != '' )
         input += ' '+value('sout_mrl');
-    var url = 'requests/status.xml?command=in_enqueue&input='+escape( input );
+    var url = 'requests/status.xml?command=in_enqueue&input='+encodeURIComponent( addslashes(escapebackslashes(input)) );
     loadXMLDoc( url, parse_status );
     setTimeout( 'update_playlist()', 1000 );
 }
@@ -370,6 +377,10 @@ function fullscreen()
 {
     loadXMLDoc( 'requests/status.xml?command=fullscreen', parse_status );
 }
+function snapshot()
+{
+    loadXMLDoc( 'requests/status.xml?command=snapshot', parse_status );
+}
 function update_status()
 {
     loadXMLDoc( 'requests/status.xml', parse_status );
@@ -460,21 +471,21 @@ function parse_status()
 
             var randomtag = status.getElementsByTagName( 'random' );
             if( randomtag.length > 0 ? randomtag[0].firstChild.data == "1" : 0)
-                document.getElementById( 'btn_shuffle').setAttribute( 'class', 'on' );
+                setclass( document.getElementById( 'btn_shuffle'), 'on' );
             else
-                document.getElementById( 'btn_shuffle').setAttribute( 'class', 'off' );
+                setclass( document.getElementById( 'btn_shuffle'), 'off' );
                
             var looptag = status.getElementsByTagName( 'loop' );
             if( looptag.length > 0 ? looptag[0].firstChild.data == "1" : 0)
-                document.getElementById( 'btn_loop').setAttribute( 'class', 'on' );
+                setclass( document.getElementById( 'btn_loop'), 'on' );
             else
-                document.getElementById( 'btn_loop').setAttribute( 'class', 'off' );
+                setclass( document.getElementById( 'btn_loop'), 'off' );
 
             var repeattag = status.getElementsByTagName( 'repeat' );
             if( repeattag.length > 0 ? repeattag[0].firstChild.data == "1" : 0 )
-                document.getElementById( 'btn_repeat').setAttribute( 'class', 'on' );
+                setclass( document.getElementById( 'btn_repeat'), 'on' );
             else
-                document.getElementById( 'btn_repeat').setAttribute( 'class', 'off' );
+                setclass( document.getElementById( 'btn_repeat'), 'off' );
 
             var tree = document.createElement( "ul" );
             var categories = status.getElementsByTagName( 'category' );
@@ -557,7 +568,7 @@ function parse_playlist()
                     }
 
                     var nd = document.createElement( "div" );
-                    nd.setAttribute( 'class', 'pl_node' );
+                    setclass( nd, 'pl_node' );
                     nd.setAttribute( 'id', 'pl_'+elt.getAttribute( 'id' ) );
                     pos.appendChild( nd );
                 }
@@ -566,12 +577,12 @@ function parse_playlist()
                     if( pos.hasChildNodes() )
                     pos.appendChild( document.createElement( "br" ) );
                     var pl = document.createElement( "a" );
-                    pl.setAttribute( 'class', 'pl_leaf' );
+                    setclass( pl, 'pl_leaf' );
                     pl.setAttribute( 'href', 'javascript:pl_play('+elt.getAttribute( 'id' )+');' );
                     pl.setAttribute( 'id', 'pl_'+elt.getAttribute( 'id' ) );
                     if( elt.getAttribute( 'current' ) == 'current' )
                     {
-                        pl.setAttribute( 'style', 'font-weight: bold;' );
+                        pl.style.fontWeight = 'bold';
                         var nowplaying = document.getElementById( 'nowplaying' );
                         clear_children( nowplaying );
                         nowplaying.appendChild( document.createTextNode( elt.getAttribute( 'name' ) ) );
@@ -646,14 +657,14 @@ function parse_browse_dir( )
                 if( elt.nodeName == "element" )
                 {
                     var item = document.createElement( "a" );
-                    item.setAttribute( 'class', 'browser' );
+                    setclass( item, 'browser' );
                     if( elt.getAttribute( 'type' ) == 'directory' )
                     {
-                        item.setAttribute( 'href', 'javascript:browse_dir(\''+escapebackslashes(addslashes(elt.getAttribute( 'path' )))+'\');');
+                        item.setAttribute( 'href', 'javascript:browse_dir(\''+addslashes(escapebackslashes(elt.getAttribute( 'path' )))+'\');');
                     }
                     else
                     {
-                        item.setAttribute( 'href', 'javascript:browse_path(\''+escapebackslashes(addslashes(elt.getAttribute( 'path' )))+'\');' );
+                        item.setAttribute( 'href', 'javascript:browse_path(\''+addslashes(escapebackslashes(elt.getAttribute( 'path' )))+'\');' );
                     }
                     item.appendChild( document.createTextNode( elt.getAttribute( 'name' ) ) );
                     pos.appendChild( item );
@@ -661,8 +672,8 @@ function parse_browse_dir( )
                     {
                         pos.appendChild( document.createTextNode( ' ' ) );
                         var item = document.createElement( "a" );
-                        item.setAttribute( 'class', 'browser' );
-                        item.setAttribute( 'href', 'javascript:browse_path(\''+escapebackslashes(addslashes(elt.getAttribute( 'path' )))+'\');');
+                        setclass( item, 'browser' );
+                        item.setAttribute( 'href', 'javascript:browse_path(\''+addslashes(escapebackslashes(elt.getAttribute( 'path' )))+'\');');
                         item.appendChild( document.createTextNode( '(select)' ) );
                         pos.appendChild( item );
                     }
@@ -1015,7 +1026,7 @@ function browse( dest )
 function browse_dir( dir )
 {
     document.getElementById( 'browse_lastdir' ).value = dir;
-    loadXMLDoc( 'requests/browse.xml?dir='+escape(dir), parse_browse_dir );
+    loadXMLDoc( 'requests/browse.xml?dir='+encodeURIComponent(dir), parse_browse_dir );
 }
 function browse_path( p )
 {