It's not about errors there's no errors, my problem is i want let these URLs in Table  "defaultMusic" works in GuiGridList like when i put an URL in Editbox. 
To be more clear,  
I want let all acess for guigridlist like when i put url of music in editbox the same working i wants it to happen for gridlist when i selecte random URL in grid list ,it must create object/start musics/stop musics...etc 
    defaultMusic = { 
        { "Hip Hop Radio", "http://mp3uplink.duplexfx.com:8054/listen.pls" }, 
        { "A horse with no name", "http://netanimations.net/A-Horse-With-No-Name.mp3" }, 
          {"Hit Radio", "http://www.181.fm/winamp.pls?station=181-power&style=mp3&description=Power%20181%20(Top%2040)&file=181-power.pls" } 
      
    } 
      
    local rx, ry = guiGetScreenSize ( ) 
    button = { } 
    GUIEditor_Grid = {} 
    window =  guiCreateWindow(510,288,352,322,"Speaker management.",false) 
    guiWindowSetSizable(window, false) 
    guiSetVisible ( window, false ) 
    CurrentSpeaker = guiCreateLabel(11,288,232,19,"Radio exist: No",false, window) 
    volume = guiCreateLabel(11,254,237,18,"Radio Vol: 100%", false, window) 
    pos = guiCreateLabel(71,271,232,19," X: 0 , Y: 0 , Z: 0", false, window) 
    guiCreateLabel(139,18,85,19,"Current URL:",false, window) 
    guiCreateLabel(13,56,100,17,"Radio list:",false, window) 
    guiCreateLabel(11,271,225,18,"Radio pos:", false, window)   
    url =  guiCreateEdit(9,35,328,20, "", false, window)   
    button["place"] = guiCreateButton(9,225,94,24,"Create/Pla", false, window) 
    button["remove"] = guiCreateButton(127,225,94,24,"Destroy", false, window) 
    button["v-"] = guiCreateButton(247,255,94,24,"Vol -", false, window) 
    button["v+"] = guiCreateButton(247,285,94,24,"Vol +", false, window) 
    button["close"] = guiCreateButton(247,225,94,24,"Close", false, window)   
    local List = guiCreateGridList(9,73,334,146,false,window) 
    guiGridListSetSelectionMode(List,0) 
    local col = guiGridListAddColumn(List,"Radio:",0.9,window) 
        for i=1, #defaultMusic do 
            guiGridListSetItemText(List, guiGridListAddRow(List), 1, defaultMusic[i][1], false, false) 
        end 
  
    addEventHandler( "onClientGUIClick", List, 
        function() 
            local row,col = guiGridListGetSelectedItem(List) 
            if (row ~= -1 and col ~= -1) then 
                playSound(defaultMusic[row][2]) 
            end 
        end) 
  
    local isSound = false 
    addEvent ( "onPlayerViewSpeakerManagment", true ) 
    addEventHandler ( "onPlayerViewSpeakerManagment", root, function ( current ) 
        local toState = not guiGetVisible ( window ) 
        guiSetVisible ( window, toState ) 
        showCursor ( toState ) 
        if ( toState == true ) then 
            guiSetInputMode ( "no_binds_when_editing" ) 
            local x, y, z = getElementPosition ( localPlayer ) 
            guiSetText ( pos, "X: "..math.floor ( x ).." , Y: "..math.floor ( y ).." , Z: "..math.floor ( z ) ) 
            if ( current ) then guiSetText ( CurrentSpeaker, "Radio exist: Yes" ) isSound = true 
            else guiSetText ( CurrentSpeaker, "Radio exist: No" ) end 
        end 
    end ) 
      
    addEventHandler ( "onClientGUIClick", root, function ( ) 
        if ( source == button["close"] ) then 
            guiSetVisible ( window, false ) 
            showCursor ( false ) 
        elseif ( source == button["place"] ) then 
            if ( isURL ( ) ) then 
                triggerServerEvent ( "onPlayerPlaceSpeakerBox", localPlayer, guiGetText ( url,col,row ), isPedInVehicle ( localPlayer ) ) 
                guiSetText ( CurrentSpeaker, "Radio exist: Yes" ) 
                isSound = true 
                guiSetText ( volume, "Radio Vol: 100%" ) 
            else 
                print ( "You need to enter a URL.", 255, 0, 0 ) 
            end 
        elseif ( source == button["remove"] ) then 
            triggerServerEvent ( "onPlayerDestroySpeakerBox", localPlayer ) 
            guiSetText ( CurrentSpeaker, "Radio exist: Yes" ) 
            isSound = false 
            guiSetText ( volume, "Radio Vol: 100%" ) 
        elseif ( source == button["v-"] ) then 
            if ( isSound ) then 
                local toVol = math.round ( getSoundVolume ( speakerSound [ localPlayer ] ) - subTrackOnSoundDown, 2 ) 
                if ( toVol > 0.0 ) then 
                    print ( "Volume set to "..math.floor ( toVol * 100 ).."%!", 0, 255, 0 ) 
                    triggerServerEvent ( "onPlayerChangeSpeakerBoxVolume", localPlayer, toVol ) 
                    guiSetText ( volume, "Radio Vol: "..math.floor ( toVol * 100 ).."%" ) 
                else 
                    print ( "The volume cannot go any lower.", 255, 0, 0 ) 
                end 
            end 
        elseif ( source == button["v+"] ) then 
            if ( isSound ) then 
                local toVol = math.round ( getSoundVolume ( speakerSound [ localPlayer ] ) + subTrackOnSoundUp, 2 ) 
                if ( toVol < 1.1 ) then 
                    print ( "Volume set to "..math.floor ( toVol * 100 ).."%!", 0, 255, 0 ) 
                    triggerServerEvent ( "onPlayerChangeSpeakerBoxVolume", localPlayer, toVol ) 
                    guiSetText ( volume, "Radio Vol: "..math.floor ( toVol * 100 ).."%" ) 
                else 
                    print ( "The volume cannot go any higher.", 255, 0, 0 ) 
                end 
            end 
        end 
    end ) 
      
    speakerSound = { } 
    addEvent ( "onPlayerStartSpeakerBoxSound", true ) 
    addEventHandler ( "onPlayerStartSpeakerBoxSound", root, function ( who, url,col,row, isCar,defaultMusic ) 
        if ( isElement ( speakerSound [ who ] ) ) then destroyElement ( speakerSound [ who ] ) end 
        local x, y, z = getElementPosition ( who ) 
        speakerSound [ who ] = playSound3D ( url,col,row, x, y, z, true ) 
        setSoundVolume ( speakerSound [ who ], 1 ) 
        setSoundMinDistance ( speakerSound [ who ], 25 ) 
        setSoundMaxDistance ( speakerSound [ who ], 40 ) 
        if ( isCar ) then 
            local car = getPedOccupiedVehicle ( who ) 
            attachElements ( speakerSound [ who ], car, 0, 5, 1 ) 
        end 
    end ) 
      
    addEvent ( "onPlayerDestroySpeakerBox", true ) 
    addEventHandler ( "onPlayerDestroySpeakerBox", root, function ( who ) 
        if ( isElement ( speakerSound [ who ] ) ) then 
            destroyElement ( speakerSound [ who ] ) 
        end 
    end ) 
      
--Volume 
    addEvent ( "onPlayerChangeSpeakerBoxVolumeC", true ) 
    addEventHandler ( "onPlayerChangeSpeakerBoxVolumeC", root, function ( who, vol ) 
        if ( isElement ( speakerSound [ who ] ) ) then 
            setSoundVolume ( speakerSound [ who ], tonumber ( vol ) ) 
        end 
    end ) 
      
    function isURL ( ) 
        if ( guiGetText ( url,col,row ) ~= "" ) then 
            return true 
        else 
            return false 
        end 
    end 
      
    function math.round(number, decimals, method) 
        decimals = decimals or 0 
        local factor = 10 ^ decimals 
        if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor 
        else return tonumber(("%."..decimals.."f"):format(number)) end 
    end 
 
--server side: 
local isSpeaker = false 
  
function print ( player, message, r, g, b ) 
    outputChatBox ( message, player, r, g, b ) 
end 
  
speakerBox = { } 
addCommandHandler ( "speaker", function ( thePlayer  ) 
    if ( isElement ( speakerBox [ thePlayer] ) ) then isSpeaker = true end 
    triggerClientEvent ( thePlayer, "onPlayerViewSpeakerManagment", thePlayer, isSpeaker ) 
end ) 
  
addEvent ( "onPlayerPlaceSpeakerBox", true ) 
addEventHandler ( "onPlayerPlaceSpeakerBox", root, function ( url, isCar,row,col )  
    if ( url ) then 
        if ( isElement ( speakerBox [ source ] ) ) then 
            local x, y, z = getElementPosition ( speakerBox [ source ] )  
            -- 
            destroyElement ( speakerBox [ source ] ) 
            removeEventHandler ( "onPlayerQuit", source, destroySpeakersOnPlayerQuit ) 
        end 
        local x, y, z = getElementPosition ( source ) 
        local rx, ry, rz = getElementRotation ( source ) 
        speakerBox [ source ] = createObject ( 2229, x-0.1, y+0.5, z - 1, 0, 0, rx ) 
        print ( source, "SPEAKER: Speaker is succssfully placed.", 0, 255, 0 ) 
        addEventHandler ( "onPlayerQuit", source, destroySpeakersOnPlayerQuit ) 
        triggerClientEvent ( root, "onPlayerStartSpeakerBoxSound", root, source, url, isCar,col,row ) 
        if ( isCar ) then 
            local car = getPedOccupiedVehicle ( source ) 
            attachElements ( speakerBox [ source ], car, 0.25, -1.3, -0.5, -0.5, 0, 0 ) 
        end 
    end 
end ) 
  
addEvent ( "onPlayerDestroySpeakerBox", true ) 
addEventHandler ( "onPlayerDestroySpeakerBox", root, function ( ) 
    if ( isElement ( speakerBox [ source ] ) ) then 
        destroyElement ( speakerBox [ source ] ) 
        triggerClientEvent ( root, "onPlayerDestroySpeakerBox", root, source ) 
        removeEventHandler ( "onPlayerQuit", source, destroySpeakersOnPlayerQuit ) 
        print ( source, "SPEAKER: Speaker has been removed.", 255, 0, 0 ) 
    else 
        --print  
    end 
end ) 
  
addEvent ( "onPlayerChangeSpeakerBoxVolume", true )  
addEventHandler ( "onPlayerChangeSpeakerBoxVolume", root, function ( to ) 
    triggerClientEvent ( root, "onPlayerChangeSpeakerBoxVolumeC", root, source, to ) 
end )